Hi, Lance --

> I have been looking through the bpel-parser and bom and want to make sure
> I'm on right track. I got the source from here (
> http://pxe.intalio.org/public/pxe-src-r812.zip ) and have been focusing on
> the packages com.fx.pxe.sax.fsa.bpel_2_0 and com.fx.pxe.bom.api. I am
> looking for parser/bom support for some of the new 2.0 constructs ( i.e.
> <if>,<forEach>, etc ... ) and I don't see these objects ( i.e.
> com.fx.pxe.sax.fsa.bpel_2_0.BpelIfState ). Am I looking in the right place
> or perhaps I'm making a bad assumption as to the implementation?

The BPEL 2.0 specific sub-handlers are here:

http://tinyurl.com/jufvy

And here's the <bpel:if> activity piece:

http://tinyurl.com/eo2xo

The BOM SwitchActivity suffices for both 1.1 and 2.0, so if you were
to look into the bit that handles SAX events for a <bpel:if>
(IfActivityState in com.fs.pxe.sax.fsa.bpel_2_0), you'd see that get
created:

24               protected Activity createActivity(StartElement se) {
25                      return new SwitchActivityImpl();
26              }

Things like expressions (attributes in 1.1 versus bodies of elements
in 2.0) are abstracted in the BOM and then mapped in the bpel-parser
module.  The *State objects are expected to know what to do with their
children, so you can see what's happening in the
handleChildCompleted(State pn) method to attach an expression, a then
clause, an elseif clause, an else clause.

I wrote a blog entry about how the bpel-parser module was motivated
and constructed:

http://mult.ifario.us/articles/2006/02/05/populating-a-java-object-model-from-xml

Best,

-- Paul

Reply via email to