process management blog posts

jBPM 3 seam/jsf/richfaces based console

Blog: PlanetjBPM's Weblog

A few months ago, development on the new console for jBPM started.  Initially, it was the intention that this console could also serve as the next console for jBPM 3 with the jBPM 3.3 branche initially being the target. Not much later, it was decided to only develop this console for jBPM 4 and the jBPM 3.3 branch was discontinued and 3.2 was the main stable branche again.

Personally I thought it was a pity that jBPM 3.x did not get a new and shiny (web 2.0?, whatever that may be) console. Fortunately the new console is opensource and therefore I think that just ‘complaining’ is no valid reaction and that I could/should work a little sweat by doing it myself.

Well… no, I didn’t… mainly for one reason. Time… Since that is limited and the frameworks that I use in my day job, Seam, JSF/Facelets and Richfaces are not aligned with how the new console is being implemented (GWT, no seam), so I choose not to do. Until two weeks ago.

A customer told me they got some internal requests for a more advanced ui for an application. What they wanted was not something I did before, so I needed to experiment a little. My experiments turned out to be fruitful, so I decided to put some time in it and try to create a new console. Yes, besides the time I spend in the jBPM forum, on the tenniscourt, golfcourse, and on my Yamaha YZF600R, there is still some time left, being in between girlfriends helps)

Still, I choose not to do it in GWT, but neither did I try to use the existing console. Why a new console you might ask and not extend the one already there since it is JSF based? The main reason was that it is based on Gravel (http://www.jboss.org/gravel/) . Something that predates Seam and Richfaces/Ajax4JSF but in a way tries to accomplish the same. If you visit the project page and click some links, especially doc related links, you know why I did not want to put much effort in it. Not that it is badly designed or anything, I just don’t think it will stand the test of time. And besides, I did reuse some of the code behind the current console though, so not all was lost.

But before I’ll present you the first screencast of this jBPM 3.x console, let me summarize what it provides:

  • Many of the same things the current jBPM 3.x console (duh, you would say, but let me tell you that ‘porting’ his took just 3 days)
  • A look that is comparable with the jBPM 4 console
  • The ability to open multiple tabs (not browsertabs, but in the application) for almost anything, including the ability to work on multiple tasks at the same time
  • Context menu support for actions on almost anything
  • Doubleclick functionality to open items (e.g. tasks)
  • Based on JSF/Facelets/Richfaces/Seam
  • Advanced UI components from Richfaces, so no fully custom things anymore
  • Seam components for accessing tasklists, etc, comparable to the ones that by default in Seam, but more suitable for paging, filtering etc.

jBPM Console

(Thanks to Joram for putting this screencast on his site since wordpress does not allow embedding flash)

But before everybody starts cheering, let me also state what it is not:

  • It is not the official replacement of the jBPM 3 console. Not that I would mind if it became that, but since jBPM 3 is in ‘maintanance mode’ when 4 will officially be out, not much official effort will be put in jBPM 3.
  • It is not fully seam based in the way that it does not use the entitymanager (@JbpmContext is not used, https://jira.jboss.org/jira/browse/JBPM-1770)
  • It is not a competitor for the jBPM 4 console, although it would be very simple to make it usable for 4.0
  • The source is not free/open yet mainly because I need a repository and for it and it needs some cleaning up since I focussed on functionality (stupid me ;-))