Author: lwaterman
Date: Mon Sep 18 19:08:10 2006
New Revision: 447679

URL: http://svn.apache.org/viewvc?view=rev&rev=447679
Log:
Add TestFlowActivity

Added:
    
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MessageExchangeContextImpl.java
    
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/PartnerRoleChannelImpl.java
    incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/ProbeService/
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/ProbeService/probeService.wsdl
    incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.bpel
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.wsdl
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_1.txt
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_2.txt
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_3.txt
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_4.txt
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_5.txt
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_6.txt
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/deploy.xml
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/probeService.wsdl
    
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/test.properties
Modified:
    
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/BindingContextImpl.java
    
incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java

Modified: 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/BindingContextImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/BindingContextImpl.java?view=diff&rev=447679&r1=447678&r2=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/BindingContextImpl.java
 (original)
+++ 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/BindingContextImpl.java
 Mon Sep 18 19:08:10 2006
@@ -40,7 +40,7 @@
        public PartnerRoleChannel createPartnerRoleChannel(QName processId,
                        DeploymentUnit deploymentUnit, PortType portType,
                        Endpoint initialPartnerEndpoint) {
-               return null;
+               return new PartnerRoleChannelImpl();
        }
 
 }

Added: 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MessageExchangeContextImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MessageExchangeContextImpl.java?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MessageExchangeContextImpl.java
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MessageExchangeContextImpl.java
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,80 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License"); you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *    http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+

+package org.apache.ode.test;

+

+import javax.wsdl.PortType;

+import javax.xml.namespace.QName;

+

+import org.apache.ode.bpel.iapi.BpelEngineException;

+import org.apache.ode.bpel.iapi.ContextException;

+import org.apache.ode.bpel.iapi.Message;

+import org.apache.ode.bpel.iapi.MessageExchangeContext;

+import org.apache.ode.bpel.iapi.MyRoleMessageExchange;

+import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;

+import org.w3c.dom.Element;

+

+/**

+ * This is a simple MessageExchangeContext implementation

+ * that only supports a set of "well known" portTypes used

+ * for testing.

+ *

+ *

+ */

+public class MessageExchangeContextImpl implements MessageExchangeContext {

+

+       // Probe Service is a simple concatination service

+       private QName probePT = new 
QName("http://ode/bpel/unit-test/ProbeService.wsdl","probeMessagePT";);

+       

+       public void invokePartner(PartnerRoleMessageExchange mex)

+                       throws ContextException {

+               QName calledPT = mex.getPortType().getQName();

+               

+               if (calledPT.equals(probePT)) {

+                       invokeProbeService(mex);

+               }

+               

+

+       }

+

+       public void onAsyncReply(MyRoleMessageExchange myRoleMex)

+                       throws BpelEngineException {

+

+       }

+       

+       private void invokeProbeService(PartnerRoleMessageExchange prmx) {

+               Message msg = prmx.getRequest();

+               Element elm1 = prmx.getRequest().getPart("probeName");

+               Element elm2 = prmx.getRequest().getPart("probeData");

+               

+               if ( elm1 != null && elm2 != null ) {

+                       String cat = elm2.getTextContent()+" -> 
"+elm1.getTextContent();

+                       elm2.setTextContent(cat);

+                       msg.setMessagePart("probeData", elm2);

+            final Message response = 
prmx.createMessage(prmx.getOperation().getOutput().getMessage().getQName());

+

+            response.setMessage(msg.getMessage());

+                       prmx.reply(response);

+               }

+               

+               

+

+       }

+

+}


Added: 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/PartnerRoleChannelImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/PartnerRoleChannelImpl.java?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/PartnerRoleChannelImpl.java
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/PartnerRoleChannelImpl.java
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,31 @@
+package org.apache.ode.test;

+

+import org.apache.ode.bpel.iapi.EndpointReference;

+import org.apache.ode.bpel.iapi.PartnerRoleChannel;

+import org.apache.ode.utils.DOMUtils;

+import org.w3c.dom.Document;

+import org.w3c.dom.Element;

+

+public class PartnerRoleChannelImpl implements PartnerRoleChannel {

+       

+       public PartnerRoleChannelImpl() {

+

+       }

+

+       public void close() {

+

+       }

+

+       public EndpointReference getInitialEndpointReference() {

+               final Document doc = DOMUtils.newDocument();

+               Element serviceref = 
doc.createElementNS(EndpointReference.SERVICE_REF_QNAME.getNamespaceURI(),

+                EndpointReference.SERVICE_REF_QNAME.getLocalPart());

+        doc.appendChild(serviceref);

+               return new EndpointReference() {

+            public Document toXML() {

+              return doc;

+            }

+        };

+       }

+}

+


Modified: 
incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java?view=diff&rev=447679&r1=447678&r2=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java 
(original)
+++ 
incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java 
Mon Sep 18 19:08:10 2006
@@ -45,6 +45,7 @@
                server.setDaoConnectionFactory(new 
BpelDAOConnectionFactoryImpl());
                server.setScheduler(new TestScheduler());
                server.setBindingContext(new BindingContextImpl());
+               server.setMessageExchangeContext(new 
MessageExchangeContextImpl());
                server.setDeploymentManager(new DeploymentManagerImpl());
                server.init();
                server.start();
@@ -76,7 +77,8 @@
                
                Message request = mex.createMessage(null);
                
-               Element elem = DOMUtils.stringToDOM(in);                        
+               Element elem = DOMUtils.stringToDOM(in);
+               String tmp = elem.toString();
                request.setMessage(elem);
                
                mex.invoke(request);
@@ -84,12 +86,15 @@
                Message response = mex.getResponse();
                
                String resp = DOMUtils.domToString(response.getMessage());
+               System.out.println(resp);
                
assertTrue(Pattern.compile(responsePattern,Pattern.DOTALL).matcher(resp).matches());
-               
        }
        
-       public void testHelloWorld2() throws Exception {
-               go("target/test-classes/bpel/2.0/HelloWorld2");
+//     public void testHelloWorld2() throws Exception {
+//             go("target/test-classes/bpel/2.0/HelloWorld2");
+//     }
+       public void testFlowActivity() throws Exception {
+               go("target/test-classes/bpel/2.0/TestFlowActivity");
        }
 
 }

Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/ProbeService/probeService.wsdl
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/ProbeService/probeService.wsdl?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/ProbeService/probeService.wsdl
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/ProbeService/probeService.wsdl
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,33 @@
+<?xml version="1.0" ?>

+

+<!-- The probe service is a simple extension that concatenates two strings -->

+<!-- The probeName part is concatenated to the end of the probeData part -->

+<!-- and the probeData part is returned as output. -->

+<!-- The service is used to facilitate chicken track debugging of BPEL -->

+

+<wsdl:definitions targetNamespace="http://ode/bpel/unit-test/ProbeService.wsdl";

+   xmlns:tns="http://ode/bpel/unit-test/ProbeService.wsdl";

+             xmlns:xsd="http://www.w3.org/2001/XMLSchema";

+   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";

+             xmlns="http://schemas.xmlsoap.org/wsdl/";>

+

+

+  <!-- message declns -->

+

+  <wsdl:message name="probeMessage">

+     <wsdl:part name="probeName" type="xsd:string"/>

+     <wsdl:part name="probeData" type="xsd:string"/>

+  </wsdl:message>

+

+

+  <!-- port type declns -->

+   <wsdl:portType name="probeMessagePT">

+      <wsdl:operation name="probe">

+         <wsdl:input name="ProbeInputMessage" message="tns:probeMessage"/>

+         <wsdl:output name="ProbeOutputMessage" message="tns:probeMessage"/>

+      </wsdl:operation>

+

+   </wsdl:portType>

+

+</wsdl:definitions>

+


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.bpel
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.bpel?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.bpel
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.bpel
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,289 @@
+<process xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+ xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2004/03/business-process/ 
../../../../../../../bpel-schemas/src/main/resources/wsbpel_main-draft-Apr-29-2006.xsd"
+       xmlns:tns="http://ode/bpel/unit-test/testFlowActivity";
+       xmlns:wns="http://ode/bpel/unit-test/testFlowActivity.wsdl";
+       xmlns:prb="http://ode/bpel/unit-test/ProbeService.wsdl";
+ xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/";
+       xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/";
+ name="TestFlowActivityProcess"
+       targetNamespace="http://ode/bpel/unit-test/testFlowActivity";
+ suppressJoinFailure="yes"
+       queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
+       expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
+ 
+       <import location="TestActivityFlow.wsdl"
+               namespace="http://ode/bpel/unit-test/testFlowActivity.wsdl";
+               importType="http://schemas.xmlsoap.org/wsdl/"; />
+       <import location="probeService.wsdl"
+               namespace="http://ode/bpel/unit-test/ProbeService.wsdl";
+               importType="http://schemas.xmlsoap.org/wsdl/"/>
+               
+       <!-- test control flow elements -->
+       <!--    sequence                                -->
+       <!--    flow ( links )                  -->
+       <!--    swith                                   -->
+       <!--    while                                   -->
+       <partnerLinks>
+               <partnerLink name="request" 
partnerLinkType="wns:testFlowActivityRequest" myRole="testFlowActivityService"/>
+               <partnerLink name="probe" partnerLinkType="wns:probeRequest" 
partnerRole="probeService" initializePartnerRole="yes"/>
+       </partnerLinks>
+       <variables>
+               <variable name="request" messageType="wns:requestMessage"/>
+               <variable name="probeInput" messageType="prb:probeMessage"/>
+               <variable name="reply" messageType="wns:replyMessage"/>
+               <variable name="internalState" 
messageType="wns:internalProcessData"/>
+       </variables>
+       <sequence>
+               <flow>
+                       <links>
+                               <link name="receive-to-assign1"/>
+                               <link name="assign1-to-probe1"/>
+                               <link name="assign1-to-probe2"/>
+                               <link name="probe1-to-probe3"/>
+                               <link name="probe2-to-probe3"/>
+                       </links>
+                       <receive name="receive1" partnerLink="request" 
portType="wns:testFlowActivityPT"
+                               operation="request" variable="request" 
createInstance="yes">
+                               <sources>
+                                       <source linkName="receive-to-assign1"/>
+                               </sources>
+                       </receive>
+                       <!-- Copy input variables to internal accumulators -->
+                       <!-- After the copy the process splits into two 
execution paths -->
+                       <sequence>
+                               <targets>
+                                       <target linkName="receive-to-assign1"/>
+                               </targets>
+                               <sources>
+                                       <source linkName="assign1-to-probe1"/>
+                                       <source linkName="assign1-to-probe2"/>
+                               </sources>
+                               <assign name="assign1">
+                                       <copy>
+                                               
<from>$request.requestMessageData/testMessage/requestID</from>
+                                               <to variable="probeInput" 
part="probeName"/>
+                                       </copy>
+                                       <copy>
+                                               <from variable="request" 
property="wns:testProbeData"/>
+                                               <to variable="probeInput" 
part="probeData"/>
+                                       </copy>
+                               </assign>
+                               <assign>
+                                       <copy>
+                                               <from>
+                                                       <literal><![CDATA[root 
process splits into A and B]]></literal>
+                                               </from>
+                                               <to variable="probeInput" 
part="probeName"/>
+                                       </copy>
+                               </assign>
+                               <invoke name="probe2" partnerLink="probe" 
portType="prb:probeMessagePT"
+                                       operation="probe" 
inputVariable="probeInput" outputVariable="probeInput"
+                               > </invoke>
+                       </sequence>
+                       <!-- probe1 outbound status is dependent on the request 
input testFlow1 -->
+                       <sequence>
+                               <targets>
+                                       <target linkName="assign1-to-probe1"/>
+                               </targets>
+                               <sources>
+                                       <source linkName="probe1-to-probe3">
+                                               
<transitionCondition>bpws:getVariableProperty("request", "wns:testFlow1") =
+                                                       
'yes'</transitionCondition>
+                                       </source>
+                               </sources>
+                               <assign>
+                                       <copy>
+                                               <from>
+                                                       
<literal><![CDATA[process A completes]]></literal>
+                                               </from>
+                                               <to variable="probeInput" 
part="probeName"/>
+                                       </copy>
+                               </assign>
+                               <invoke name="probe3" partnerLink="probe" 
portType="prb:probeMessagePT"
+                                       operation="probe" 
inputVariable="probeInput" outputVariable="probeInput"
+                               > </invoke>
+                       </sequence>
+                       <!-- probe2 outbound status is dependent on the request 
input testFlow2 -->
+                       <sequence>
+                               <targets>
+                                       <target linkName="assign1-to-probe2"/>
+                               </targets>
+                               <sources>
+                                       <source linkName="probe2-to-probe3">
+                                               
<transitionCondition>$request.requestMessageData/testMessage/flowIndicators/indicatorTwo
 =
+                                                       
'yes'</transitionCondition>
+                                       </source>
+                               </sources>
+                               <assign>
+                                       <copy>
+                                               <from>
+                                                       
<literal><![CDATA[process B completes]]></literal>
+                                               </from>
+                                               <to variable="probeInput" 
part="probeName"/>
+                                       </copy>
+                               </assign>
+                               <invoke name="probe4" partnerLink="probe" 
portType="prb:probeMessagePT"
+                                       operation="probe" 
inputVariable="probeInput" outputVariable="probeInput"
+                               > </invoke>
+                       </sequence>
+                       <!-- The split execution path from assign1 joins on 
probe3 -->
+                       <!-- Probe3 will only fire if the transition condition 
from probe1 and probe2 both evaluate to true -->
+                       <sequence>
+                               <targets>
+                                       <joinCondition>$probe1-to-probe3 and 
$probe2-to-probe3</joinCondition>
+                                       <target linkName="probe1-to-probe3"/>
+                                       <target linkName="probe2-to-probe3"/>
+                               </targets>
+                               <assign>
+                                       <copy>
+                                               <from>
+                                                       
<literal><![CDATA[processes A and B merge on process C]]></literal>
+                                               </from>
+                                               <to variable="probeInput" 
part="probeName"/>
+                                       </copy>
+                               </assign>
+                               <invoke name="probe5" partnerLink="probe" 
portType="prb:probeMessagePT"
+                                       operation="probe" 
inputVariable="probeInput" outputVariable="probeInput"
+                               > </invoke>
+                       </sequence>
+               </flow>
+               <assign>
+                       <copy>
+                               <from>
+                                       <literal><![CDATA[merge into root 
process]]></literal>
+                               </from>
+                               <to variable="probeInput" part="probeName"/>
+                       </copy>
+               </assign>
+               <invoke name="probe6" partnerLink="probe" 
portType="prb:probeMessagePT" operation="probe"
+                       inputVariable="probeInput" outputVariable="probeInput"> 
</invoke>
+               <!-- from the input data loopIndicator set the number of loop 
interations -->
+               <assign>
+                       <copy>
+                               <from>
+                                       <literal><![CDATA[test switch 
statement]]></literal>
+                               </from>
+                               <to variable="probeInput" part="probeName"/>
+                       </copy>
+               </assign>
+               <invoke name="probe7" partnerLink="probe" 
portType="prb:probeMessagePT" operation="probe"
+                       inputVariable="probeInput" outputVariable="probeInput"> 
</invoke>
+               <if>
+                       <condition>bpws:getVariableProperty("request", 
"wns:loopInd") = 'min'</condition>
+                       <then>
+                               <sequence>
+                                       <assign name="flow1-min-assign">
+                                               <copy>
+                                                       <from>5</from>
+                                                       <to 
variable="internalState" part="loop1"/>
+                                               </copy>
+                                               <copy>
+                                                       <from>
+                                                               
<literal><![CDATA[case min: set loop iterations = 5]]></literal>
+                                                       </from>
+                                                       <to 
variable="probeInput" part="probeName"/>
+                                               </copy>
+                                       </assign>
+                                       <invoke name="probe8" 
partnerLink="probe" portType="prb:probeMessagePT"
+                                               operation="probe" 
inputVariable="probeInput" outputVariable="probeInput"
+                                       > </invoke>
+                               </sequence>
+                       </then>
+                       <elseif>
+                               
<condition>$request.requestMessageData/testMessage/loopIndicator = 
'max'</condition>
+                               <sequence>
+                                       <assign name="flow1-max-assign">
+                                               <copy>
+                                                       <from>10</from>
+                                                       <to 
variable="internalState" part="loop1"/>
+                                               </copy>
+                                               <copy>
+                                                       <from>
+                                                               
<literal><![CDATA[case max: set loop iterations = 10]]></literal>
+                                                       </from>
+                                                       <to 
variable="probeInput" part="probeName"/>
+                                               </copy>
+                                       </assign>
+                                       <invoke name="probe9" 
partnerLink="probe" portType="prb:probeMessagePT"
+                                               operation="probe" 
inputVariable="probeInput" outputVariable="probeInput"
+                                               > </invoke>
+                               </sequence>
+                       </elseif>
+                       <else>
+                               <sequence>
+                                       <assign name="flow1-default-assign">
+                                               <copy>
+                                                       <from>0</from>
+                                                       <to 
variable="internalState" part="loop1"/>
+                                               </copy>
+                                               <copy>
+                                                       <from>
+                                                               
<literal><![CDATA[otherwise: set loop iterations = 0]]></literal>
+                                                       </from>
+                                                       <to 
variable="probeInput" part="probeName"/>
+                                               </copy>
+                                       </assign>
+                                       <invoke name="probe10" 
partnerLink="probe" portType="prb:probeMessagePT"
+                                               operation="probe" 
inputVariable="probeInput" outputVariable="probeInput"
+                                       > </invoke>
+                               </sequence>
+                       </else>
+               </if>
+               
+               <assign name="while-increment-initialize">
+                       <copy>
+                               <from>0</from>
+                               <to variable="internalState" 
part="loop1Counter"></to>
+                       </copy>
+                       <copy>
+                               <from>
+                                       <literal><![CDATA[test loop 
iterations]]></literal>
+                               </from>
+                               <to variable="probeInput" part="probeName"/>
+                       </copy>
+               </assign>
+               <invoke name="probe10" partnerLink="probe" 
portType="prb:probeMessagePT" operation="probe"
+                       inputVariable="probeInput" outputVariable="probeInput"> 
</invoke>
+               <while>
+                       <condition>$internalState.loop1Counter &lt; 
$internalState.loop1</condition>
+                       <sequence>
+                               <assign name="while-increment">
+                                       <copy>
+                                               
<from>$internalState.loop1Counter + 1</from>
+                                               <to variable="internalState" 
part="loop1Counter"/>
+                                       </copy>
+                                       <copy>
+                                               
<from>$internalState.loop1Counter + 1</from>
+                                               <to variable="probeInput" 
part="probeName"/>
+                                       </copy>
+                               </assign>
+                               <invoke name="probe11" partnerLink="probe" 
portType="prb:probeMessagePT"
+                                       operation="probe" 
inputVariable="probeInput" outputVariable="probeInput"/>
+
+                       </sequence>
+               </while>
+               <!-- copy internal accumulators to the reply message -->
+               <assign>
+                       <copy>
+                               <from>
+                                       <literal><![CDATA[test1Process 
complete]]></literal>
+                               </from>
+                               <to variable="probeInput" part="probeName"/>
+                       </copy>
+               </assign>
+               <invoke name="probe12" partnerLink="probe" 
portType="prb:probeMessagePT" operation="probe"
+                       inputVariable="probeInput" outputVariable="probeInput"> 
</invoke>
+               <assign name="assign2">
+                       <copy>
+                               <from variable="probeInput" part="probeName"/>
+                               <to variable="reply" part="replyID"/>
+                       </copy>
+                       <copy>
+                               <from variable="probeInput" part="probeData"/>
+                               <to variable="reply" part="replyText"/>
+                       </copy>
+               </assign>
+               <reply name="reply" partnerLink="request" 
portType="wns:testFlowActivityPT" operation="request"
+                       variable="reply"> </reply>
+       </sequence>
+</process>


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.wsdl
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.wsdl?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.wsdl
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/TestActivityFlow.wsdl
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,106 @@
+<!-- The public service interface for test1.bpel -->

+

+<wsdl:definitions 

+  targetNamespace="http://ode/bpel/unit-test/testFlowActivity.wsdl";

+  xmlns:tns="http://ode/bpel/unit-test/testFlowActivity.wsdl";

+  xmlns="http://ode/bpel/unit-test/testFlowActivity.wsdl";

+  xmlns:typens="http://ode/bpel/unit-test/testFlowActivity.wsdl.types";

+  xmlns:prb="http://ode/bpel/unit-test/ProbeService.wsdl";

+  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";

+  xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/";      

+      xmlns:xsd="http://www.w3.org/2001/XMLSchema";

+  xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/";>

+    

+  <!-- type defs -->

+  <wsdl:types>

+    <xsd:schema

+      targetNamespace="http://ode/bpel/unit-test/testFlowActivity.wsdl.types";

+                xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

+      <xsd:complexType name="flowIndicator">

+         <xsd:sequence>

+           <xsd:element name="indicatorOne" type="xsd:boolean"/>

+           <xsd:element name="indicatorTwo" type="xsd:boolean"/>

+        </xsd:sequence>

+       </xsd:complexType>

+

+      <xsd:complexType name="testMessage">

+        <xsd:sequence>

+          <xsd:element name="requestID" type="xsd:string"/>

+          <xsd:element name="requestText" type="xsd:string"/>

+          <xsd:element name="flowIndicators" type="typens:flowIndicator"/>

+           <xsd:element name="loopIndicator" type="xsd:string"/>

+        </xsd:sequence>

+      </xsd:complexType>

+

+    </xsd:schema>

+  </wsdl:types>

+

+   <wsdl:message name="requestMessage">

+     <wsdl:part name="requestMessageData" type="typens:testMessage"/>

+   </wsdl:message>

+   

+  <wsdl:message name="replyMessage">

+    <wsdl:part name="replyID" type="xsd:string"/>

+    <wsdl:part name="replyText" type="xsd:string"/>

+  </wsdl:message>

+  

+  <wsdl:message name="internalProcessData">

+    <wsdl:part name="loop1Counter" type="xsd:int"/>

+    <wsdl:part name="loop1" type="xsd:int"/>

+  </wsdl:message>

+

+   <!-- portType supported by the test process -->

+

+  <wsdl:portType name="testFlowActivityPT">

+    <wsdl:operation name="request">

+      <wsdl:input message="requestMessage"/>

+      <wsdl:output message="replyMessage"/>

+    </wsdl:operation>

+  </wsdl:portType>

+  

+  <wsdl:binding name="TestFlowActivityBinding" type="tns:testFlowActivityPT">

+    <wsdl:operation name="request">

+    </wsdl:operation>

+  </wsdl:binding>

+  <wsdl:service name="TestFlowActivityService">

+    <wsdl:port name="TestFlowActivityPort" 
binding="tns:TestFlowActivityBinding">

+    </wsdl:port>

+  </wsdl:service>

+

+   <plnk:partnerLinkType name="testFlowActivityRequest">

+       <plnk:role name="testFlowActivityService" 
portType="tns:testFlowActivityPT"/>

+   </plnk:partnerLinkType>

+

+   <plnk:partnerLinkType name="probeRequest">

+       <plnk:role name="probeService" portType="prb:probeMessagePT"/>

+   </plnk:partnerLinkType>

+   

+  <bpws:property name="testProbeData" type="xsd:string"/>

+  <bpws:propertyAlias propertyName="tns:testProbeData" 
messageType="tns:requestMessage" part="requestMessageData">

+    <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">

+      testMessage/requestText

+    </bpws:query>

+  </bpws:propertyAlias>/>

+  

+  <bpws:property name="testFlow1" type="xsd:boolean"/>

+  <bpws:propertyAlias propertyName="tns:testFlow1" 
messageType="tns:requestMessage" part="requestMessageData">
+ 

+    <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">

+      testMessage/flowIndicators/indicatorOne

+    </bpws:query> 

+  
+  </bpws:propertyAlias>

+

+  

+  <bpws:property name="loopInd" type="xsd:string"/>

+  <bpws:propertyAlias propertyName="tns:loopInd" 
messageType="tns:requestMessage" part="requestMessageData">
+

+    <bpws:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">

+      testMessage/loopIndicator

+    </bpws:query>  

+   
+  </bpws:propertyAlias>

+  

+   

+

+</wsdl:definitions>


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_1.txt
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_1.txt?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_1.txt
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_1.txt
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,14 @@
+# Test BPEL control flow objects

+# Both control flows are set to positive the loop indcator is set to minimum.

+# Expected result = Event Start Test1.1 -> root process splits into A and B -> 
process B completes -> process A completes -> processes A and B merge on 
process C -> merge into root process -> test switch statement -> case min: set 
loop iterations = 5 -> test loop iterations -> 2 -> 3 -> 4 -> 5 -> 6 -> 
test1Process complete

+

+# Note the prefix on the part name identifies the message type ( xml = xml 
data; str = string data )

+

+target.name.space=urn:sybase:bpel:test1Processing

+port.type=test1PT

+operation=request

+

+part1=xml.requestMessageData

+

+xml.requestMessageData=<testMessage><requestID>Start 
Test1.1</requestID><requestText>Event Start 
Test1.1</requestText><flowIndicators><indicatorOne>yes</indicatorOne><indicatorTwo>yes</indicatorTwo></flowIndicators><loopIndicator>min</loopIndicator></testMessage>

+


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_2.txt
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_2.txt?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_2.txt
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_2.txt
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,14 @@
+# Test BPEL control flow objects

+# Control flow one is positive and control flow two is negative the loop 
indcator is set to minimum.

+# Expected result = Event Start Test1.2 -> root process splits into A and B -> 
process B completes -> process A completes -> merge into root process -> test 
switch statement -> case min: set loop iterations = 5 -> test loop iterations 
-> 2 -> 3 -> 4 -> 5 -> 6 -> test1Process complete

+

+# Note the prefix on the part name identifies the message type ( xml = xml 
data; str = string data )

+

+target.name.space=urn:sybase:bpel:test1Processing

+port.type=test1PT

+operation=request

+

+part1=xml.requestMessageData

+

+xml.requestMessageData=<testMessage><requestID>Start 
Test1.2</requestID><requestText>Event Start 
Test1.2</requestText><flowIndicators><indicatorOne>yes</indicatorOne><indicatorTwo>no</indicatorTwo></flowIndicators><loopIndicator>min</loopIndicator></testMessage>

+


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_3.txt
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_3.txt?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_3.txt
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_3.txt
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,14 @@
+# Test BPEL control flow objects

+# Control flow one is negative and control flow two is positive the loop 
indcator is set to minimum.

+# Expected result = Event Start Test1.3 -> root process splits into A and B -> 
process B completes -> process A completes -> merge into root process -> test 
switch statement -> case min: set loop iterations = 5 -> test loop iterations 
-> 2 -> 3 -> 4 -> 5 -> 6 -> test1Process complete

+

+# Note the prefix on the part name identifies the message type ( xml = xml 
data; str = string data )

+

+target.name.space=urn:sybase:bpel:test1Processing

+port.type=test1PT

+operation=request

+

+part1=xml.requestMessageData

+

+xml.requestMessageData=<testMessage><requestID>Start 
Test1.3</requestID><requestText>Event Start 
Test1.3</requestText><flowIndicators><indicatorOne>no</indicatorOne><indicatorTwo>yes</indicatorTwo></flowIndicators><loopIndicator>min</loopIndicator></testMessage>

+


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_4.txt
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_4.txt?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_4.txt
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_4.txt
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,14 @@
+# Test BPEL control flow objects

+# Both control flows are set to negative the loop indcator is set to minimum.

+# Expected result = Event Start Test1.4 -> root process splits into A and B -> 
process B completes -> process A completes -> merge into root process -> test 
switch statement -> case min: set loop iterations = 5 -> test loop iterations 
-> 2 -> 3 -> 4 -> 5 -> 6 -> test1Process complete

+

+# Note the prefix on the part name identifies the message type ( xml = xml 
data; str = string data )

+

+target.name.space=urn:sybase:bpel:test1Processing

+port.type=test1PT

+operation=request

+

+part1=xml.requestMessageData

+

+xml.requestMessageData=<testMessage><requestID>Start 
Test1.4</requestID><requestText>Event Start 
Test1.4</requestText><flowIndicators><indicatorOne>no</indicatorOne><indicatorTwo>no</indicatorTwo></flowIndicators><loopIndicator>min</loopIndicator></testMessage>

+


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_5.txt
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_5.txt?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_5.txt
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_5.txt
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,12 @@
+# Test BPEL control flow objects

+# Both control flows are set to positive the loop indcator is set to maximum.

+# Expected result = Event Start Test1.5 -> root process splits into A and B -> 
process B completes -> process A completes -> processes A and B merge on 
process C -> merge into root process -> test switch statement -> case max: set 
loop iterations = 10 -> test loop iterations -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 
-> 9 -> 10 -> 11 -> test1Process complete

+

+target.name.space=urn:sybase:bpel:test1Processing

+port.type=test1PT

+operation=request

+

+part1=xml.requestMessageData

+

+xml.requestMessageData=<testMessage><requestID>Start 
Test1.5</requestID><requestText>Event Start 
Test1.5</requestText><flowIndicators><indicatorOne>yes</indicatorOne><indicatorTwo>yes</indicatorTwo></flowIndicators><loopIndicator>max</loopIndicator></testMessage>

+


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_6.txt
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_6.txt?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_6.txt
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/data1_6.txt
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,14 @@
+# Test BPEL control flow objects

+# Both control flows are set to positive the loop indcator is set to default.

+# Expected result = Event Start Test1.6 -> root process splits into A and B -> 
process B completes -> process A completes -> processes A and B merge on 
process C -> merge into root process -> test switch statement -> otherwise: set 
loop iterations = 0 -> test loop iterations -> test1Process complete

+

+# Note the prefix on the part name identifies the message type ( xml = xml 
data; str = string data )

+

+target.name.space=urn:sybase:bpel:test1Processing

+port.type=test1PT

+operation=request

+

+part1=xml.requestMessageData

+

+xml.requestMessageData=<testMessage><requestID>Start 
Test1.6</requestID><requestText>Event Start 
Test1.6</requestText><flowIndicators><indicatorOne>yes</indicatorOne><indicatorTwo>yes</indicatorTwo></flowIndicators><loopIndicator>default</loopIndicator></testMessage>

+


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/deploy.xml
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/deploy.xml?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/deploy.xml
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/deploy.xml
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,12 @@
+<deploy xmlns="http://ode.fivesight.com/schemas/2006/06/27/dd"; 
+       xmlns:pns="http://ode/bpel/unit-test/testFlowActivity"; 
+       xmlns:wns="http://ode/bpel/unit-test/testFlowActivity.wsdl";>
+
+
+       <process name="pns:TestFlowActivityProcess">
+               <active>true</active>
+               <provide partnerLink="request">
+                       <service name="wns:TestFlowActivityService" 
port="wns:TestFlowActivityPort"/>
+               </provide>
+       </process>
+</deploy>

Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/probeService.wsdl
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/probeService.wsdl?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/probeService.wsdl
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/probeService.wsdl
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,33 @@
+<?xml version="1.0" ?>

+

+<!-- The probe service is a simple extension that concatenates two strings -->

+<!-- The probeName part is concatenated to the end of the probeData part -->

+<!-- and the probeData part is returned as output. -->

+<!-- The service is used to facilitate chicken track debugging of BPEL -->

+

+<wsdl:definitions targetNamespace="http://ode/bpel/unit-test/ProbeService.wsdl";

+   xmlns:tns="http://ode/bpel/unit-test/ProbeService.wsdl";

+             xmlns:xsd="http://www.w3.org/2001/XMLSchema";

+   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";

+   xmlns="http://ode/bpel/unit-test/ProbeService.wsdl";>

+

+

+  <!-- message declns -->

+

+  <wsdl:message name="probeMessage">

+     <wsdl:part name="probeName" type="xsd:string"/>

+     <wsdl:part name="probeData" type="xsd:string"/>

+  </wsdl:message>

+

+

+  <!-- port type declns -->

+   <wsdl:portType name="probeMessagePT">

+      <wsdl:operation name="probe">

+         <wsdl:input name="ProbeInputMessage" message="tns:probeMessage"/>

+         <wsdl:output name="ProbeOutputMessage" message="tns:probeMessage"/>

+      </wsdl:operation>

+

+   </wsdl:portType>

+

+</wsdl:definitions>

+


Added: 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/test.properties
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/test.properties?view=auto&rev=447679
==============================================================================
--- 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/test.properties
 (added)
+++ 
incubator/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestFlowActivity/test.properties
 Mon Sep 18 19:08:10 2006
@@ -0,0 +1,6 @@
+namespace=http://ode/bpel/unit-test/testFlowActivity.wsdl
+service=TestFlowActivityService
+operation=request
+request=<message><requestMessageData><testMessage><requestID>Start 
Test1.1</requestID><requestText>Event Start 
Test1.1</requestText><flowIndicators><indicatorOne>yes</indicatorOne><indicatorTwo>yes</indicatorTwo></flowIndicators><loopIndicator>min</loopIndicator></testMessage></requestMessageData></message>
+response=.*Event Start Test1.1 -&gt; root process splits into A and B -&gt; 
process B completes -&gt; process A completes -&gt; processes A and B merge on 
process C -&gt; merge into root process -&gt; test switch statement -&gt; case 
min: set loop iterations = 5 -&gt; test loop iterations -&gt; 2 -&gt; 3 -&gt; 4 
-&gt; 5 -&gt; 6 -&gt; test1Process complete.*
+


Reply via email to