Posted on 2009-07-03 11:51:00.0 by Ivelin
[ View original post ]
Posted on 2009-07-03 10:54:39.0 by kukeltje
[ View original post ]
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.

(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
)

Post to DZone
Post to del.icio.us
Digg this!
Stumble It!
Posted on 2009-07-02 19:23:00.0 by serge.pagop
[ View original post ]
If you leave in Munich and you are a Java and JBoss Frameworks fan, then do not miss Peter Muir by the
JBoss User Group München with
JSR-299 - Contexts and Dependency Injection for Java EE (06.07.09 at 19:00 PM).
Here the abstract:
JSR-299: Contexts and Dependency Injection for Java EE is an elegant set of new services for Java that draws upon ideas from JBoss Seam and Google Guice. While many of the features provided (dependency injection, contextual lifecycle, configuration, interception, event notification) are familiar, the innovative use of meta-annotations is uniquely expressive and typesafe.
In this session, Pete will introduce how JSR-299: Contexts and Dependency Injection for Java EE enhances the Java EE programming model step by step, and describe how it integrates with existing other Java EE technologies, such as EJB 3.0, JSF, and Servlets.
For more information, please take a look at the
JBUGM site. And thanks to our sponsors
innoQ Deutschland GmbH,
JBoss a division of Red Hat and
mgm technology partners.
Bests
Post to DZone
Post to del.icio.us
Digg this!
Stumble It!
Posted on 2009-07-02 15:15:32.0 by Adam Warski
[ View original post ]
If you’ll be in Warsaw this weekend, and if you speak polish, be sure not to miss Javarsovia, a one-day conference organized by the Warsaw JUG. I am giving a talk there about how you can use annotations together with static analysis to find bugs in your program early (first presentation in the 3rd track, 9:45, room 103B). Among other things, I’ll be demoing the static access detector and the typestate checker.
See you there!
Adam
Post to DZone
Post to del.icio.us
Digg this!
Stumble It!
Posted on 2009-07-02 10:15:00.0 by salaboy
[ View original post ]
Hi guys and girls out there, my name is Mauricio Salatino (a.k.a. Salaboy), I'm working at a health care company in Argentina, located in Capital Federal, Buenos Aires. I've been working, almost full time, with the Drools team as a contributor for about 8 months now. While the work has been very demanding, requiring a lot of initiative and hard work, it's been hugely rewarding and a fantastic experience both professionally and personally.
My employers would like to hire someone else to work with me (located in Capital Federal, Buenos Aires - Argentina).
The ideal skillset is:
- GWT
- Eclipse RPC
- BAM
- Drools Basics
- Tenacity, Passion and Initiative
While the technical skills are important, it is far more important to find someone with the interest and motiviation to work on Drools. While the best mentoring is available to hand, it's very passive and you need to ask - you will not be spoon fed. The ideal candidate will be able work with minimal guidance and direction under their own initiative. Working on Drools and OSS should be a passion that will drive many long coding nights.
If you know GWT and have experience with BPM, BAM, Business Rules, CEP, or if you are already involved with another Open Source project, this is a great chance for you to get involved.
Interested, think you could meet this challenge to work with one of the most exciting OSS teams in the world? If so then email me with your resume and a covering letter explaining why you are prefect for the position. Please use the email subject heading "DROOLS JOB".
Here is my mail: salaboy@gmail.com
Posted on 2009-07-02 09:55:45.0 by Pete Muir
[ View original post ]
Unfortunately a hiccup with SourceForge has meant that Seam and Web Beans downloads are currently unavailable - please bear with us while we sort it out.
In the meantime, I've put the latest releases of Seam and Web Beans up on another server:
Posted on 2009-07-02 05:11:00.0 by Michael Neale
[ View original post ]

A new tool is in the works that we are currently code naming Advisor (open to other ideas ? perhaps Smart Forms?). This idea came about on talking with the good folks at
Solnet Solutions in New Zealand (NZ is also known as Middle Earth !) - they had a need to create Questionnaire style form apps quickly - which were generated dynamically, entirely from writing rules (so they could quickly change, and roll out new apps etc). This was a forms engine with a few twists, and sounded very interesting...
In the last couple of months Solnet have been beavering away on this tool, which will be open sourced soon. There are a few components to it, but first lets look at some samples:
1) "Earth departure card":
(iPhone)

(and web):

2) Tax calculator:

To get the above to work in this tool, only a few things were needed: 1) Some rules to express the question logic, 2) CSS styles to make the forms look how you want (everything is style-able) - to fit in with a given look. Its not just dumb form fields either, there are lots of things you can do, the questions can be quite complex structures etc..
If you were writing rules by hand, they would take the form of:
when
#some conditions go here, or none if you like
then
Question question = new Question();
question.setId("flight");
question.setAnswerType("text");
question.setPreLabel("Flight number / Name of ship");
insertLogical(question);
In the condition part - you do whatever you normally do. If there is no condition part, then obviously it executes. In the RHS is where it is interesting: the tool provides some built in model classes which allow you to "ask questions".
You can then use the answers to that question to drive further questions, and so on (creating a chain of logic, like a decision tree) - so it is intelligently asking the user more questions depending on the answers received. (Truth maintenance - logical assertions, are very useful here, as the user could change an answer, and then the items in the "subtree" below it are no longer needed, and will be retracted automatically):
rule "next country"
when
Question(id == "stayingInNZ", answer != "true");
then
Question question = new Question();
question.setId("countryNext");
question.setAnswerType("text");
question.setPreLabel("or");
insertLogical(question);
end
The above says that when the "stayingInNZ" question is answered (to "not true") then ask them for another country etc...

(by clicking on "Yes" radio button, other questions are revealed - this happens via ajax - talking to the server as the user enters data, executing rules etc).
There are a few components at work: A web front end (based on jQuery) and the Advisor logic itself (which, no surprise, is implemented itself in rules). Obviously this isn't locking it in to web front ends (so you could have other front ends or systems answering questions, not just a user via a web browser).

My sketch above tries to convey the different parts. The Advisor logic lives on the server - hosted in the new "execution server" (more on that in a future post) which is a web server that talks XML to a stateful knowledge session (and of course the Advisor is a model + rules itself). In the web case, the "client" is a javascript library, using jQuery that renders questions based on responses from the knowledge session.
This "client" is generic, and can be hosted in any web page or app (doesn't require java) - it can "hang" off a html "div". CSS provides styling for all controls/fonts/colours (I even saw an example where a slider was used to provide a numeric value).
"Pixie Dust": As we were designing this, we realised most of the logic can and should be implemented in built in rules - we affectionately called these "pixie dust" rules - not meant to be edited or viewed by end users, but they do the magic behind the scenes.
There is much more that is possible: for instance mapping from the "answers" coming back from a user to a pojo which you use in your business rules (so you can use the Q&A stuff as a means to request for more data when needed).
Why this is interesting: using rules and truth maintenance to establish chains of logic allows large Q&A apps to be developed that intelligently ask for more data as needed (eg when evaluating someone for life insurance). Of course, there are features built in such as Groups, which allow more traditional "form" and "page" style behavior that people will expect (much more then can be shown here) - and you have the full power of all the normal things you might want to do with Drools.
Next steps: One of the key aims is to have a domain specific GUI in Guvnor to assist with building these apps end to end (guiding the user to make it as easy as is possible) - and adding the Advisor "pixie dust" to any set of rules, and running these apps (and deploying etc..).
I hope this is an interesting introduction, there is more to come...
Posted on 2009-07-02 04:05:37.0 by Bob McWhirter
[ View original post ]
Bob McWhirter's presentation recorded on JavaOne 2009 is now available!

Don't forget to watch part two. Happy watching!
Post to DZone
Post to del.icio.us
Digg this!
Stumble It!
Posted on 2009-07-01 20:06:19.0 by max
[ View original post ]
One of the new components in RichFaces 3.3.1 is rich:colorPicker. The component is based on jQuery widget and has the same functionality and events. Using the component is straight forward. Here is an example.
JSF page:
<h:outputText id="text" value="RichFaces is cool!"
style="font-size: x-large; color: #{colorBean.color}"/>
<h:form>
<rich:colorPicker value="#{colorBean.color}">
<a4j:support event="onchange" reRender="text"/>
</rich:colorPicker>
</h:form>
Initial rendering and opening the picker:

After color selection:

Post to DZone
Post to del.icio.us
Digg this!
Stumble It!
Posted on 2009-07-01 12:43:00.0 by serge.pagop
[ View original post ]
During the analyze and design of a product, Business Champions and Architects use some words (Key Words) to indicate some requirement levels in specification. Their meaning is well-defined by the memo of
S. Bradner, Key Words for use in RFCs to Indicate Requirement Levels. But here is a summary:
- MUST ~ REQUIRED ~ SHALL - Is an absolute requirement.
- SHOULD ~ RECOMMENDED - It is strongly suggested to follow the instructions, but deviation is not excluded, if there is a reason.
- MAY ~ CAN ~ OPTIONAL - System is furthermore interoperable, if an optional item is missed
Bests.
Post to DZone
Post to del.icio.us
Digg this!
Stumble It!