[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[smila-dev] BPEL wont instantiate pipelet of same class 2x in certain circumstances
|
Hi folks, I have come over a probable bug of ODE/BPEL, in that it doesn’t instantiate a 2nd instance of the same Pipelet in certain cases. Plz have a look @ org.eclipse.smila.processing.worker.test.BpelWorkerTestPipelet3 and the associated pipeline3, which very simple and in this it works, as the test chose when run. I have attached another simple bpel which test fails, even though semantically it is the same, as I just do if (1=1) { instance 1 instance 2 } For quick testing just replace the content of the pipline3 with this one and run the test -> it fails. If you put a breakpoint into the configure() of the Pipelet it will only halt once but obviously it should be 2x! Any one has a clue if I make smth. Wrong in my bpel or if this is a genuine bug? Thomas Menzel @ brox IT-Solutions GmbH |
<?xml version="1.0" encoding="utf-8" ?>
<process name="TestPipeline3" targetNamespace="http://www.eclipse.org/smila/processor"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:proc="http://www.eclipse.org/smila/processor" xmlns:rec="http://www.eclipse.org/smila/record"
>
<import location="processor.wsdl" namespace="http://www.eclipse.org/smila/processor"
importType="http://schemas.xmlsoap.org/wsdl/" />
<partnerLinks>
<partnerLink name="Pipeline" partnerLinkType="proc:ProcessorPartnerLinkType" myRole="service" />
</partnerLinks>
<extensions>
<extension namespace="http://www.eclipse.org/smila/processor" mustUnderstand="no" />
</extensions>
<variables>
<variable name="request" messageType="proc:ProcessorMessage" />
<variable name="result" messageType="proc:ProcessorMessage" />
</variables>
<sequence name="AddPipeline">
<receive name="start" partnerLink="Pipeline" portType="proc:ProcessorPortType"
operation="process" variable="request" createInstance="yes" />
<forEach counterName="index" parallel="no" name="iterateRecords">
<startCounterValue>1</startCounterValue>
<finalCounterValue>count($request.records/rec:Record)</finalCounterValue>
<scope>
<sequence>
<!-- if content is not text/html then the content is base64 encoded => decode it first! -->
<if name="test">
<condition>1=1
</condition>
<extensionActivity name='a'>
<proc:invokePipelet name="invokeTestPipelet1">
<proc:pipelet class="org.eclipse.smila.processing.worker.test.BpelWorkerTestPipelet3" />
<proc:variables input="request" output="result" index="index" />
<proc:configuration>
<rec:Val key="param">bpel pos 1</rec:Val>
</proc:configuration>
</proc:invokePipelet>
</extensionActivity>
<extensionActivity name='b'>
<proc:invokePipelet name="invokeTestPipelet2">
<proc:pipelet class="org.eclipse.smila.processing.worker.test.BpelWorkerTestPipelet3" />
<proc:variables input="request" output="result" index="index" />
<proc:configuration>
<rec:Val key="param">bpel pos 2</rec:Val>
</proc:configuration>
</proc:invokePipelet>
</extensionActivity>
</if>
</sequence>
</scope>
</forEach>
<reply name="end" partnerLink="Pipeline" portType="proc:ProcessorPortType" operation="process"
variable="result" />
<exit />
</sequence>
</process>