-
1. Re: Seam3 and JBPM intergration wishlist
pmuir Jul 21, 2010 11:03 AM (in response to varunshaji)Yes, we are planning to support pageflow via both jBPM 3 and Drools 5 in Seam 3.
-
2. Re: Seam3 and JBPM intergration wishlist
varunshaji Jul 29, 2010 11:43 PM (in response to varunshaji)JBPM 3.2.2 which is the jbpm used in Seam 2.2.1 lacks major support for JUEL..The support for scripting is limited. But found JBPM 4 supports JUEL completely and also supports - My Link
It would be better to have an intergration with JBPM4 rather than JBPM3 taking to consideration the new features it would bring in pageflow.
-
3. Re: Seam3 and JBPM intergration wishlist
varunshaji Jul 30, 2010 12:20 AM (in response to varunshaji)
varun ss wrote on Jul 29, 2010 23:43:
JBPM 3.2.2 which is the jbpm used in Seam 2.2.1 lacks major support for JUEL..The support for scripting is limited. But found JBPM 4 supports JUEL completely and also supports - My Link
It would be better to have an intergration with JBPM4 rather than JBPM3 taking to consideration the new features it would bring in pageflow.JBPM 4 is based on BPMN so it would be a complete revamp..but is it possible to bring in a JUEL intergration through pageflow and JBPM3 ..i feel that would be a necessity as the existing el support is very limited..
-
4. Re: Seam3 and JBPM intergration wishlist
varunshaji Sep 28, 2010 7:04 AM (in response to varunshaji)Pageflow should be positioned as an alternative to spring webflow according to my viewpoint. But currently a number of deficiencies exist in pageflow which restrict smooth transition from webflow to pageflow.
I have an use case like
Environment :
I am not using process-flow(work-flow). Just using pageflow with conversation scope.
Case :
"<page name="search" view-id="/AI/search.xhtml" redirect="true">
<transition name="avail" to="availability">
<action expression="#{bookingFlowHandler.search}"/>
<action expression="#{bookingFlowHandler.initFlightListWidget}"/>
</transition>
</page>
<page name="availability" view-id="/AI/availability.xhtml" redirect="true">
<transition name="book" to="passengerdetail">
<action expression="#{bookingFlowHandler.selectFlight}"/>
<action expression="#{bookingFlowHandler.initpassengerDetailWidget}"/>
</transition>
</page>
<page name="passengerdetail" view-id="/AI/summary.xhtml" redirect="true">
<transition name="summay" to="summary">
<action expression="#{bookingFlowHandler.updatePassenger}"/>
<action expression="#{bookingFlowHandler.iniSummaryWidget}"/>
</transition>
</page>"
Here i am using fictional reservation system. I search for flights. And from the list i select a flight. Enter passenger detail. And go to the summary page.
All service calls are bolder.
So during a transition i call the service and submit data if required. And from the service i get the response data. This response data i need to set to some screen model -''widget" to display in screen. So majority transition will have a pattern like some servce calls and some model updates. Currenlty thr is no way i can transfer the data returned form the service to the model through pageflow. I need to do in code.
This decrease the flexibility in wiring the flow. As the service and the models are tight coupled through java code. I need to have a declarative way of doing this
In spring webflow we have a feature like ::
"<view-state id="search">
<transition on="avail" to="availability">
<evaluate expression="#{bookingFlowHandler.search}" result="flowScope.flightList"/>
<evaluate expression="#{bookingFlowHandler.initFlightListWidget(flightList)}"/>
</transition>
</view-state>"
Here we have an <evaluate expression similiar to <action expression but with added support for storing the return result from the call into a scope.
Similarly it provides more flexibility to pageflow if it could include something like above ::
"<page name="search" view-id="/AI/search.xhtml" redirect="true">
<transition name="avail" to="availability">
<action expression="#{bookingFlowHandler.search}" store="flightList"/>
<action expression="#{bookingFlowHandler.initFlightListWidget(flightList)}"/>
</transition>
</page>"
where flightlist could be looked up in the CDI and Seam context. And if not found put into the default conversation scope with key 'flightList'. This could facilitate loose coupling of the service and the model and thus enhance wiring!! -
5. Re: Seam3 and JBPM intergration wishlist
varunshaji Oct 1, 2010 12:32 PM (in response to varunshaji)Well upon the advice from Timohr i mixed up the xsd's of jpdl and pageflow. I included the node and decision from jpdl that are more powerful than pageflow.. So now i have a working pageflow which can replace the springwebflow..
And for transfering the data b/w the nodes i used the contexts.Th contexts from Seam and JBPM were used.Programaticaly added the values to contexts.. Still I feel its better to have a declarative way to do this. i feel the pageflow has been severly restricted as of Seam 2.2.1. In Seam 3 i expect more power..like more features of jpdl could be included in the pageflow xsd..Like the node, the decision could be the one from jpdl rather than the pageflow decision since one can have multpile branches out from decision rather than only 2 possibilities.
Include the JSF events/contexts into the JPDL. That way i could use JPDL to wire AJAX which is not implemented in any of the existing frameworks..Which will be a great boost..As new gen application has this problem of hardwired AJAX calls. So a ActionEvent or a ValueChange event could act as a signal/event inside the JBPM. currently only web page wiring is possible..this way i can wire ajax..which will be tremendously useful for JSF applications using Richfaces/icefaces and even Flex applications.
-
6. Re: Seam3 and JBPM intergration wishlist
varunshaji Oct 20, 2010 5:50 AM (in response to varunshaji)The current Pageflow has a drawback.. i saw its source also mentioned it. Before any page is to be served it checks whether the viewId of the current request is same as the pageflow state. THus it puts a limitation for the pageflow to do redirection to external websites and return and join the pageflow back. SInce the return request are GET request.
I tried a hack like commented the check But i feel its insecure. Would thr be a solution to this in new Pageflow. The old pageflow only had transitions from postback as it was invoked only from the application phase.
But it would be better to get it invoked from a GET request with the outcome as a parameter for the GET.This ia a requirement as JSF supports GET now!!
So the pageflow in this case can be invoked from the renderphase..