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
