Ok. I have been trying to use Jbpm and Seam for my current project. The following is a rant about jbpm. I had to let my frustrations out so here goes. The following are my personal opinions and experiences. You have been warned :)
I have been using jbpm with varying levels of success in my current project for about 9 months. Getting it to work in seam isn't as easy as people make out. Sure it works if you just want a basic implementation but as soon as you try to use reminders or any scheduled feature you basically have to start extending the seam jbpm component because you cant enable the scheduler in the default implementation! I only found that out by posting on the jbpm forum and getting some quite rude responses from a particular individual that is very knowledgeable about jbpm but spends his time telling users of the forum to google the answer or read the source/unit tests (which by the way aren't very well javadoc'd). Having worked that out the actual implementation is not that hard and is documented on this site somewhere but you still need to know you need to do it. The same post also talks about versioning of your definitions to stop them from being continually re-defined every jboss server restart.
Ok so jbpm is now up and running and sending reminders. Now to the next problem - I have just realised that the ForEachForkActionHandler part of my jbpm process isn't doing what its meant to. I need it to spawn tasks and assign those to users. To do this an object is persisted in jbpm (locally to the task-node) and then should be read out and used when the task is initialised. Not the case it seems (see my other post called jbpm woes and help me if you can).
To try and solve this problem I tried upgrading to the latest version - a task which should be as simple as getting the latest version from the jbpm website. So I head over there and get version 3.2.7 (version 4.x is not supported in seam) I deploy and immediately get an issue. A quick google shows I need to add <mapping resource="org/jbpm/db/hibernate.types.hbm.xml" /> to my hibernate.cfg.xml. Yay it deployed! First attempt to use it finds another bug. Looking in jira its fixed in version 3.2.9 - What?!?! I just got the latest version from their website! - it seems not. Looking in jira shows there are versions 3.2.8, 3.2.9, 3.2.10. then I notice 3.3.0 and 3.3.1 (surely 3.3.1 is newer than 3.2.x so I get that). Wrong again it apears to be older. 3.2.9 is the latest. But that is no where to be found online and 3.2.8 still has the bug in it :(
So whats the deal? Jbpm documentation is large and often of limited help. The forums are less than helpful as you usually just get a
look in the code type response. and you cant even be sure what the latest version of the code is!
Now I might have overlooked something obvious. Perhaps all the problems I've had are easily fixable and there is a clear link to the latest code somewhere in which case I will bite my tongue and appologise but I have used many many open source libraries over the years and have never encountered one which is proving quite so difficult to use.