As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
I think it is not an aspect of being "cooler". Setting up a clustered environment with JTA, XA-Transactional JMS, Hibernate, maybe caching, etc. in a broader scale is not an easy task. Hence bringing a new component into this battle (ibatis) is real effort. So it is understandable, that this is not taken lightly. That's said from the user perspective.On the other hand I agree: Providing multiple persistence implementations is a lot of work without new functionality (I wouldn't say without value ;-)). And I agree it should not be first priority. That's said from the team perspective.A pitty that Hibernate is not Apache licensed…
Hi! Just one comment about iBatis and JDBC. Now all the system has SQL and JDBC - simple example is Google App Engine. It has (even limited) JPA or JDO - but not JDBC as persistence layer. If somebody will want to try Activiti to be deployed into GAE - with iBatis - no chance. With JPA - probably (since JPA is really limited in GAE) it will be possible. With fully plugable persistance layer - it will be defenetly will be possible.
Also - I thing one of the major advantage of jBPM was embedding. It was really very easy embed jBPM into project, close integrate it with your project infrastructure (Spring Context, Hibernate Session Factory, Transaction Managment) and use it like one of the component in your system.Storng relation to Hibernate (not JPA) sometimes produced problems - for example in project used Glassfish as deployment platform and EclipseLink as JPA provider we had to switch whole project from EclipseLink to Hibernate to use jBPM (since jBPM was one of the core and most important service in the app).
I think supporting JPA in Activiti will be really big advantage in terms of embedding - people will able to use same JPA provider and JPA setting as they use for whole app, and configure things like caching and support for clustering for whole app (own code and embeded activiti).Fully pluggable persistence will be extremely great - since may enable using of Activiti in some specific encironment (GAE for example)
I don't see the point in using a document-oriented database to store process states.
There was a discussion on NoSQL related to the jBPM5 roadmap on the jBPM developers' mailing list a few days or weeks ago. There were also voices asking to support non-relational databases. I don't see the point in using a document-oriented database to store process states.
I don't see the point in using a document-oriented database to store process states.Sebastian, deploying everything in the cloud, e.g. EC2 or the like, is the reason for this requirement.
There was a discussion on NoSQL related to the jBPM5 roadmap on the jBPM developers' mailing list a few days or weeks ago. There were also voices asking to support non-relational databases. I don't see the point in using a document-oriented database to store process states.Hi Sebastian, so noSQL isn´t only document based. You can have another approach like key-value ( Redis is my choice) or MongoDB ( was developed by DoubleClick team) that use both concepts.
Here's the summary of how I see the tradeoff:on the one hand: "although i'm very convinced that there is no valid argumentation for us to support multiple persistence providers, i think might still can consider it because embeddablility is in our core values. and if 80% of developers consider persistence framework as part of the app environment that we have to embed into, then at least we should consider it."on the other hand, supporting multiple persistence frameworks will be a very big challenge to get the QA set up. it's not only just providing an implementation of the persistence session interface. it's also figuring out how to deal with the differences between persistence providers without breaking the other providers. and imagine the build scripts for continuous integration when we want to test the matrix of {servers like tomcat versions, jboss, genronimo} x {transaction demarcation technologies like Spring, JDBC, JTA} x {persistence providers} x {databases like oracle, mysql, postgresql,…}i think the work involved to support different persistence providers is underestimated big time. and it's not adding any functional features. probably the point why i currently tip over to not supporting multiple DB persistence providers: i don't see the value. i can see that an architect thinks it's cooler that all of his application is build on the same persistence provider. but i think that is only a small aspect compared to the bigger issue of QA and the immense amount of work that will go into it. that extra effort of building the pluggability and the QA effort will come at the expense of more interesting features that we could build.thoughts?
For what I understood, Tom was going to provide variable JPA persistence independantly from how their internal persistance is managed. If that's the case, I don't see a problem with iBatis.
on the other hand, supporting multiple persistence frameworks will be a very big challenge to get the QA set up. it's not only just providing an implementation of the persistence session interface. it's also figuring out how to deal with the differences between persistence providers without breaking the other providers