You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by as...@apache.org on 2006/11/08 02:54:32 UTC

svn commit: r472363 [2/2] - in /incubator/ode/trunk: bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/ bpel-obj/src/main/java/org/apache/ode/bpel/o/ bpel-runtime/src/main/java/org/ap...

Modified: incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/ActivityRecoveryTest.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/ActivityRecoveryTest.java?view=diff&rev=472363&r1=472362&r2=472363
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/ActivityRecoveryTest.java (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/ActivityRecoveryTest.java Tue Nov  7 17:54:31 2006
@@ -32,7 +32,7 @@
 import org.apache.ode.bpel.iapi.MessageExchangeContext;
 import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
 import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
-import org.apache.ode.bpel.o.FailureHandling;
+import org.apache.ode.bpel.o.OFailureHandling;
 import org.apache.ode.bpel.pmapi.BpelManagementFacade;
 import org.apache.ode.bpel.pmapi.TActivityInfo;
 import org.apache.ode.bpel.pmapi.TActivityStatus;
@@ -52,6 +52,7 @@
     static final String[] ACTIONS = new String[]{ "retry", "cancel", "fault" };
     int                   _invoked;
     int                   _failFor;
+    boolean               _responseSent;
     MockBpelServer        _server;
     BpelManagementFacade  _management;
 
@@ -74,22 +75,22 @@
         assertCompleted(true, 5, null);
     }
 
-    public void testCancelRecoveryAction() throws Exception {
+    public void testFaultRecoveryAction() throws Exception {
         execute("FailureToRecovery", 4);
         assertRecovery(3, ACTIONS);
         recover("retry");
         assertRecovery(4, ACTIONS);
-        recover("cancel");
-        assertCompleted(true, 4, null);
+        recover("fault");
+        assertCompleted(false, 4, OFailureHandling.FAILURE_FAULT_NAME);
     }
 
-    public void testFaultRecoveryAction() throws Exception {
-        execute("FailureToRecovery", 4);
+    public void testCancelRecoveryAction() throws Exception {
+        execute("FailureToCancel", 4);
         assertRecovery(3, ACTIONS);
         recover("retry");
         assertRecovery(4, ACTIONS);
-        recover("fault");
-        assertCompleted(false, 4, FailureHandling.FAILURE_FAULT_NAME);
+        recover("cancel");
+        assertCompleted(true, 4, null);
     }
 
     public void testImmediateFailure() throws Exception {
@@ -99,7 +100,7 @@
 
     public void testImmediateFault() throws Exception {
         execute("FailureToFault", 2);
-        assertCompleted(false, 1, FailureHandling.FAILURE_FAULT_NAME);
+        assertCompleted(false, 1, OFailureHandling.FAILURE_FAULT_NAME);
     }
 
     public void testInheritence() throws Exception {
@@ -113,14 +114,20 @@
                 return new MessageExchangeContext() {
 
                     public void invokePartner(final PartnerRoleMessageExchange mex) throws ContextException {
-                        ++_invoked;
-                        if (_invoked > _failFor) {
-                            Message response = mex.createMessage(mex.getOperation().getOutput().getMessage().getQName());
-                            response.setMessage(DOMUtils.newDocument().createElementNS(NAMESPACE, "tns:ResponseElement"));
-                            mex.reply(response);
-                        } else
-                            mex.replyWithFailure(MessageExchange.FailureType.COMMUNICATION_ERROR, "BangGoesInvoke", null);
-                            //mex.replyWithFailure(FailureType, String, Element);
+System.out.println("-- Invoke: " + mex.getOperation().getName());
+                        if (mex.getOperation().getName().equals("invoke")) {
+                            // Failing invocation.
+                            ++_invoked;
+                            if (_invoked > _failFor) {
+                                Message response = mex.createMessage(mex.getOperation().getOutput().getMessage().getQName());
+                                response.setMessage(DOMUtils.newDocument().createElementNS(NAMESPACE, "tns:ResponseElement"));
+                                mex.reply(response);
+                            } else {
+System.out.println("-- Failed: " + _invoked);
+                                mex.replyWithFailure(MessageExchange.FailureType.COMMUNICATION_ERROR, "BangGoesInvoke", null);
+                            }
+                        } else if (mex.getOperation().getName().equals("respond"))
+                            _responseSent = true;
                     }
 
                     public void onAsyncReply(MyRoleMessageExchange myRoleMex) { }
@@ -129,6 +136,7 @@
         };
         _server.deploy(new File(new URI(this.getClass().getResource("/recovery").toString())));
         _management = _server.getBpelManagementFacade();
+System.out.println("-- Start test");
     }
 
     protected void tearDown() throws Exception {
@@ -158,11 +166,16 @@
         TInstanceInfo instance = _management.listAllInstances().getInstanceInfoList().getInstanceInfoArray(0);
         TInstanceInfo.Failures failures = instance.getFailures();
         assertTrue(failures == null || failures.getCount() == 0);
+System.out.println("-- Status: " + instance.getStatus());
+System.out.println("-- Fault: " + instance.getFaultInfo());
         if (successful) {
             assertTrue(instance.getStatus() == TInstanceStatus.COMPLETED);
+            assertTrue(_responseSent);
         } else if (faultName == null) {
             assertTrue(instance.getStatus() == TInstanceStatus.TERMINATED);
+            assertFalse(_responseSent);
         } else {
+            assertFalse(_responseSent);
             assertTrue(instance.getStatus() == TInstanceStatus.FAILED);
             TFaultInfo faultInfo = instance.getFaultInfo();
             assertTrue(faultInfo != null && faultInfo.getName().equals(faultName));
@@ -175,8 +188,11 @@
     protected void assertRecovery(int invoked, String[] actions) {
         // Test in aggregate to see how many activities we have in this state.
         TInstanceInfo instance = _management.listAllInstances().getInstanceInfoList().getInstanceInfoArray(0);
+        assertTrue(instance.getStatus() == TInstanceStatus.ACTIVE);
+        assertFalse(_responseSent);
         TInstanceInfo.Failures failures = instance.getFailures();
         assertTrue(failures != null && failures.getCount() == 1);
+System.out.println("-- Failures count: " + failures.getCount());
         // Look for individual activities inside the process instance.
         @SuppressWarnings("unused")
         TScopeInfo rootScope = _management.getScopeInfoWithActivity(instance.getRootScope().getSiid(), true).getScopeInfo();

Modified: incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java?view=diff&rev=472363&r1=472362&r2=472363
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java Tue Nov  7 17:54:31 2006
@@ -76,17 +76,18 @@
             createDataSource();
             createDAOConnection();
             createScheduler();
-            _store = new ProcessStoreImpl(new File("."), null, null);
-
             if (_daoCF == null)
                 throw new RuntimeException("No DAO");
             _server.setDaoConnectionFactory(_daoCF);
             if (_scheduler == null)
                 throw new RuntimeException("No scheduler");
+            //_store = new ProcessStoreImpl(new File("."), _dataSource, _txManager);
+            _store = new ProcessStoreImpl(new File("."), null, null);
             _server.setScheduler(_scheduler);
             _server.setEndpointReferenceContext(createEndpointReferenceContext());
             _server.setMessageExchangeContext(createMessageExchangeContext());
             _server.setBindingContext(createBindingContext());
+            _server.setProcessStore(_store);
             _server.init();
             _server.start();
         } catch (Exception except) {

Modified: incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/deploy.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/deploy.xml?view=diff&rev=472363&r1=472362&r2=472363
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/deploy.xml (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/deploy.xml Tue Nov  7 17:54:31 2006
@@ -11,6 +11,9 @@
     <invoke partnerLink="failingPartnerLink">
       <service name="wns:FailingService" port="soap"/>
     </invoke>
+    <invoke partnerLink="instantiatingPartnerLink">
+      <service name="wns:ResponseService" port="soap"/>
+    </invoke>
   </process>
 
   <process name="pns:FailureToFault">
@@ -21,6 +24,9 @@
     <invoke partnerLink="failingPartnerLink">
       <service name="wns:FailingService" port="soap"/>
     </invoke>
+    <invoke partnerLink="instantiatingPartnerLink">
+      <service name="wns:ResponseService" port="soap"/>
+    </invoke>
   </process>
 
   <process name="pns:FailureNoRetry">
@@ -31,6 +37,22 @@
     <invoke partnerLink="failingPartnerLink">
       <service name="wns:FailingService" port="soap"/>
     </invoke>
+    <invoke partnerLink="instantiatingPartnerLink">
+      <service name="wns:ResponseService" port="soap"/>
+    </invoke>
+  </process>
+
+  <process name="pns:FailureToCancel">
+    <active>true</active>
+    <provide partnerLink="instantiatingPartnerLink">
+      <service name="wns:FailureToCancel" port="soap"/>
+    </provide>
+    <invoke partnerLink="failingPartnerLink">
+      <service name="wns:FailingService" port="soap"/>
+    </invoke>
+    <invoke partnerLink="instantiatingPartnerLink">
+      <service name="wns:ResponseService" port="soap"/>
+    </invoke>
   </process>
 
   <process name="pns:FailureInheritence">
@@ -40,6 +62,9 @@
     </provide>
     <invoke partnerLink="failingPartnerLink">
       <service name="wns:FailingService" port="soap"/>
+    </invoke>
+    <invoke partnerLink="instantiatingPartnerLink">
+      <service name="wns:ResponseService" port="soap"/>
     </invoke>
   </process>
 </deploy>

Modified: incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-inheritence.bpel
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-inheritence.bpel?view=diff&rev=472363&r1=472362&r2=472363
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-inheritence.bpel (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-inheritence.bpel Tue Nov  7 17:54:31 2006
@@ -6,10 +6,11 @@
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:ext="http://ode.apache.org/activityRecovery">
 
-    <ext:failureHandling>
-      <ext:retryFor>2</ext:retryFor>
-      <ext:retryDelay>0</ext:retryDelay>
-    </ext:failureHandling>
+  <ext:failureHandling>
+    <ext:retryFor>2</ext:retryFor>
+    <ext:retryDelay>0</ext:retryDelay>
+  </ext:failureHandling>
+
   <import location="services.wsdl"
           namespace="http://ode.apache.org/bpel/unit-test"
           importType="http://schemas.xmlsoap.org/wsdl/"/>
@@ -17,7 +18,7 @@
   <partnerLinks>
     <partnerLink name="instantiatingPartnerLink" 
                  partnerLinkType="tns:InstantiatingPartnerLinkType" 
-                 myRole="me"/>
+                 myRole="me" partnerRole="partner" initializePartnerRole="yes"/>
     <partnerLink name="failingPartnerLink" 
                  partnerLinkType="tns:FailingPartnerLinkType" 
                  partnerRole="partner" initializePartnerRole="yes"/>
@@ -35,12 +36,30 @@
              operation="instantiate"
              variable="request"
              createInstance="yes"/>
-    <invoke  name="invoke"
-             partnerLink="failingPartnerLink"
-             portType="tns:FailingPortType"
-             operation="invoke"
-             inputVariable="request"
-             outputVariable="response"/>
+    <flow>
+      <links>
+        <link name="successfulInvoke"/>
+      </links>
+      <invoke name="invoke"
+              partnerLink="failingPartnerLink"
+              portType="tns:FailingPortType"
+              operation="invoke"
+              inputVariable="request"
+              outputVariable="response">
+        <sources>
+          <source linkName="successfulInvoke"/>
+        </sources>
+      </invoke>
+      <invoke name="response"
+              partnerLink="instantiatingPartnerLink"
+              portType="tns:ResponsePortType"
+              operation="respond"
+              inputVariable="response">
+        <targets>
+          <target linkName="successfulInvoke"/>
+        </targets>
+      </invoke>
+    </flow>
   </sequence>
 
 </process>

Modified: incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-no-retry.bpel
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-no-retry.bpel?view=diff&rev=472363&r1=472362&r2=472363
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-no-retry.bpel (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-no-retry.bpel Tue Nov  7 17:54:31 2006
@@ -13,7 +13,7 @@
   <partnerLinks>
     <partnerLink name="instantiatingPartnerLink" 
                  partnerLinkType="tns:InstantiatingPartnerLinkType" 
-                 myRole="me"/>
+                 myRole="me" partnerRole="partner" initializePartnerRole="yes"/>
     <partnerLink name="failingPartnerLink" 
                  partnerLinkType="tns:FailingPartnerLinkType" 
                  partnerRole="partner" initializePartnerRole="yes"/>
@@ -31,12 +31,30 @@
              operation="instantiate"
              variable="request"
              createInstance="yes"/>
-    <invoke  name="invoke"
-             partnerLink="failingPartnerLink"
-             portType="tns:FailingPortType"
-             operation="invoke"
-             inputVariable="request"
-             outputVariable="response"/>
+    <flow>
+      <links>
+        <link name="successfulInvoke"/>
+      </links>
+      <invoke name="invoke"
+              partnerLink="failingPartnerLink"
+              portType="tns:FailingPortType"
+              operation="invoke"
+              inputVariable="request"
+              outputVariable="response">
+        <sources>
+          <source linkName="successfulInvoke"/>
+        </sources>
+      </invoke>
+      <invoke name="response"
+              partnerLink="instantiatingPartnerLink"
+              portType="tns:ResponsePortType"
+              operation="respond"
+              inputVariable="response">
+        <targets>
+          <target linkName="successfulInvoke"/>
+        </targets>
+      </invoke>
+    </flow>
   </sequence>
 
 </process>

Modified: incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-fault.bpel
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-fault.bpel?view=diff&rev=472363&r1=472362&r2=472363
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-fault.bpel (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-fault.bpel Tue Nov  7 17:54:31 2006
@@ -13,7 +13,7 @@
   <partnerLinks>
     <partnerLink name="instantiatingPartnerLink" 
                  partnerLinkType="tns:InstantiatingPartnerLinkType" 
-                 myRole="me"/>
+                 myRole="me" partnerRole="partner" initializePartnerRole="yes"/>
     <partnerLink name="failingPartnerLink" 
                  partnerLinkType="tns:FailingPartnerLinkType" 
                  partnerRole="partner" initializePartnerRole="yes"/>
@@ -31,16 +31,33 @@
              operation="instantiate"
              variable="request"
              createInstance="yes"/>
-    <invoke  name="invoke"
-             partnerLink="failingPartnerLink"
-             portType="tns:FailingPortType"
-             operation="invoke"
-             inputVariable="request"
-             outputVariable="response">
-      <ext:failureHandling>
-        <ext:faultOnFailure>true</ext:faultOnFailure>
-      </ext:failureHandling>
-    </invoke>
+    <flow>
+      <links>
+        <link name="successfulInvoke"/>
+      </links>
+      <invoke name="invoke"
+              partnerLink="failingPartnerLink"
+              portType="tns:FailingPortType"
+              operation="invoke"
+              inputVariable="request"
+              outputVariable="response">
+        <sources>
+          <source linkName="successfulInvoke"/>
+        </sources>
+        <ext:failureHandling>
+          <ext:faultOnFailure>true</ext:faultOnFailure>
+        </ext:failureHandling>
+      </invoke>
+      <invoke name="response"
+              partnerLink="instantiatingPartnerLink"
+              portType="tns:ResponsePortType"
+              operation="respond"
+              inputVariable="response">
+        <targets>
+          <target linkName="successfulInvoke"/>
+        </targets>
+      </invoke>
+    </flow>
   </sequence>
 
 </process>

Modified: incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-recovery.bpel
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-recovery.bpel?view=diff&rev=472363&r1=472362&r2=472363
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-recovery.bpel (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-recovery.bpel Tue Nov  7 17:54:31 2006
@@ -13,7 +13,7 @@
   <partnerLinks>
     <partnerLink name="instantiatingPartnerLink" 
                  partnerLinkType="tns:InstantiatingPartnerLinkType" 
-                 myRole="me"/>
+                 myRole="me" partnerRole="partner" initializePartnerRole="yes"/>
     <partnerLink name="failingPartnerLink" 
                  partnerLinkType="tns:FailingPartnerLinkType" 
                  partnerRole="partner" initializePartnerRole="yes"/>
@@ -31,17 +31,34 @@
              operation="instantiate"
              variable="request"
              createInstance="yes"/>
-    <invoke  name="invoke"
-             partnerLink="failingPartnerLink"
-             portType="tns:FailingPortType"
-             operation="invoke"
-             inputVariable="request"
-             outputVariable="response">
-      <ext:failureHandling>
-        <ext:retryFor>2</ext:retryFor>
-        <ext:retryDelay>0</ext:retryDelay>
-      </ext:failureHandling>
-    </invoke>
+    <flow>
+      <links>
+        <link name="successfulInvoke"/>
+      </links>
+      <invoke name="invoke"
+              partnerLink="failingPartnerLink"
+              portType="tns:FailingPortType"
+              operation="invoke"
+              inputVariable="request"
+              outputVariable="response">
+        <sources>
+          <source linkName="successfulInvoke"/>
+        </sources>
+        <ext:failureHandling>
+          <ext:retryFor>2</ext:retryFor>
+          <ext:retryDelay>0</ext:retryDelay>
+        </ext:failureHandling>
+      </invoke>
+      <invoke name="response"
+              partnerLink="instantiatingPartnerLink"
+              portType="tns:ResponsePortType"
+              operation="respond"
+              inputVariable="response">
+        <targets>
+          <target linkName="successfulInvoke"/>
+        </targets>
+      </invoke>
+    </flow>
   </sequence>
 
 </process>

Modified: incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/services.wsdl
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/services.wsdl?view=diff&rev=472363&r1=472362&r2=472363
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/services.wsdl (original)
+++ incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/services.wsdl Tue Nov  7 17:54:31 2006
@@ -31,6 +31,11 @@
       <output message="tns:Response"/>
     </operation>
   </portType>
+  <portType name="ResponsePortType">
+    <operation name="respond">
+      <input message="tns:Response"/>
+    </operation>
+  </portType>
 
   <binding name="InstantiatingBinding" type="tns:InstantiatingPortType">
     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
@@ -55,6 +60,16 @@
     </operation>
   </binding>
 
+  <binding name="ResponseBinding" type="tns:ResponsePortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <operation name="respond">
+      <soap:operation/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+    </operation>
+  </binding>
+
   <service name="FailingService">
     <port name="soap" binding="tns:FailingBinding">
       <soap:address location="http://localhost/FailingEndpoint"/>
@@ -67,6 +82,12 @@
     </port>
   </service>
 
+  <service name="FailureToCancel">
+    <port name="soap" binding="tns:InstantiatingBinding">
+      <soap:address location="http://localhost/pxe/soap/FailureToCancel"/>
+    </port>
+  </service>
+
   <service name="FailureToFault">
     <port name="soap" binding="tns:InstantiatingBinding">
       <soap:address location="http://localhost/pxe/soap/FailureToFault"/>
@@ -79,12 +100,19 @@
     </port>
   </service>
 
+  <service name="ResponseService">
+    <port name="soap" binding="tns:ResponseBinding">
+      <soap:address location="http://localhost/ResponseEndpoint"/>
+    </port>
+  </service>
+
   <plnk:partnerLinkType name="FailingPartnerLinkType">
     <plnk:role name="partner" portType="tns:FailingPortType"/>
   </plnk:partnerLinkType>
 
   <plnk:partnerLinkType name="InstantiatingPartnerLinkType">
     <plnk:role name="me" portType="tns:InstantiatingPortType"/>
+    <plnk:role name="partner" portType="tns:ResponsePortType"/>
   </plnk:partnerLinkType>
 
 </definitions>