[savara-commits] savara SVN: r532 - in branches/experimental/2.0.x/bundles: org.savara.bpel.tests/src/test/java/org/savara/bpel/generator and 3 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jan 4 17:28:15 EST 2011


Author: objectiser
Date: 2011-01-04 17:28:15 -0500 (Tue, 04 Jan 2011)
New Revision: 532

Added:
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/results/ESBBroker at Buyer.spr
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpelOLD
Removed:
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/results/ESBBroker at Buyer.scv
Modified:
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/parser/ParserTest.java
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_BuyerArtifacts.wsdl
   branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/generator/protocol/IfGenerationRule.java
Log:
Updated BPEL 'if' parsing and fixed test.

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/generator/protocol/IfGenerationRule.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/generator/protocol/IfGenerationRule.java	2011-01-04 21:53:07 UTC (rev 531)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/generator/protocol/IfGenerationRule.java	2011-01-04 22:28:15 UTC (rev 532)
@@ -53,6 +53,26 @@
 		
 		if (act != null) {
 			context.convert(act, cb.getBlock().getContents(), journal);
+			
+			// Check if first activity is interaction
+			if (cb.getBlock().getContents().size() > 0 &&
+					cb.getBlock().getContents().get(0) instanceof Interaction) {
+				Interaction interaction=(Interaction)cb.getBlock().getContents().get(0);
+				
+				cb.getBlock().getContents().remove(0);
+				
+				cb.derivedFrom(interaction);
+				
+				cb.setMessageSignature(interaction.getMessageSignature());
+				
+				elem.setFromRole(interaction.getFromRole());
+				
+				if (interaction.getToRoles().size() > 0) {
+					elem.setToRole(interaction.getToRoles().get(0));
+				}
+			} else {
+				journal.error("Main block of if does not contain an initial interaction", null);
+			}
 		}
 		
 		elem.getWhens().add(cb);
@@ -65,6 +85,8 @@
 			
 			context.convert(elseIfElem, cb.getBlock().getContents(), journal);
 			
+			setupWhenMs(elem, cb, journal);
+
 			elem.getWhens().add(cb);
 		}
 		
@@ -74,9 +96,50 @@
 			
 			context.convert(bpelElem.getElse(), cb.getBlock().getContents(), journal);
 			
+			setupWhenMs(elem, cb, journal);
+			
 			elem.getWhens().add(cb);
 		}
 		
 		activities.add(elem);
 	}
+	
+	protected void setupWhenMs(Choice elem, When cb, Journal journal) {
+		
+		// Check if first activity is interaction
+		if (cb.getBlock().getContents().size() > 0 &&
+				cb.getBlock().getContents().get(0) instanceof Interaction) {
+			Interaction interaction=(Interaction)cb.getBlock().getContents().get(0);
+			
+			cb.getBlock().getContents().remove(0);
+			
+			cb.derivedFrom(interaction);
+			
+			cb.setMessageSignature(interaction.getMessageSignature());
+			
+			// Verify from/to roles
+			if (elem.getFromRole() != null) {
+				if (interaction.getFromRole() != null) {
+					if (elem.getFromRole().equals(interaction.getFromRole()) == false) {
+						journal.error("ElseIf path has interaction with incompatible 'from' role", null);
+					}
+				} else {
+					journal.error("ElseIf path does not contain a required 'from' role", null);
+				}
+			}
+			elem.setFromRole(interaction.getFromRole());
+			
+			if (elem.getToRole() != null) {
+				if (interaction.getToRoles().size() > 0) {
+					if (elem.getToRole().equals(interaction.getToRoles().get(0)) == false) {
+						journal.error("ElseIf path has interaction with incompatible 'to' role", null);
+					}
+				} else {
+					journal.error("ElseIf path does not contain a required 'to' role", null);
+				}
+			}
+		} else {
+			journal.error("Main block of if does not contain an initial interaction", null);
+		}
+	}
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java	2011-01-04 21:53:07 UTC (rev 531)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java	2011-01-04 22:28:15 UTC (rev 532)
@@ -33,7 +33,7 @@
 
     public static Test suite() {
         TestSuite suite = new TestSuite("Choreography->BPEL Generator Tests");
-        
+
         suite.addTest(new ChoreographyToBPELTester("ESBBroker", "Buyer"));        
         suite.addTest(new ChoreographyToBPELTester("ESBBroker", "SupplierTxnProcessor"));
         suite.addTest(new ChoreographyToBPELTester("ESBBroker", "CreditAgency"));

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/parser/ParserTest.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/parser/ParserTest.java	2011-01-04 21:53:07 UTC (rev 531)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/parser/ParserTest.java	2011-01-04 22:28:15 UTC (rev 532)
@@ -34,9 +34,9 @@
         TestSuite suite = new TestSuite("BPEL->Protocol Parser Tests");
         
         suite.addTest(new BPELToProtocolTest("ESBBrokerProcess_Broker", "ESBBroker at Broker"));
+        suite.addTest(new BPELToProtocolTest("ESBBrokerProcess_Buyer", "ESBBroker at Buyer"));
         
         /*
-        suite.addTest(new BPELToProtocolTest("ESBBrokerProcess_Buyer", "ESBBroker at Buyer"));
         suite.addTest(new BPELToProtocolTest("ESBBrokerProcess_CreditAgency", "ESBBroker at CreditAgency"));
         suite.addTest(new BPELToProtocolTest("RequestForQuote_SupplierQuoteEngine", "ESBBroker at SupplierQuoteEngine"));
         suite.addTest(new BPELToProtocolTest("CompleteTransaction_SupplierTxnProcessor", "ESBBroker at SupplierTxnProcessor"));

Deleted: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/results/ESBBroker at Buyer.scv
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/results/ESBBroker at Buyer.scv	2011-01-04 21:53:07 UTC (rev 531)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/results/ESBBroker at Buyer.scv	2011-01-04 22:28:15 UTC (rev 532)
@@ -1,16 +0,0 @@
-namespace null;
-
-conversation ESBBrokerProcess_Buyer at Buyer implements LoanBroker at Buyer {
-	makeEnquiry(enquiry) from Buyer to Broker;
-	makeEnquiry(quoteList) from Broker to Buyer;
-	if {
-		buy(buy) from Buyer to Broker;
-		if {
-			buy(bookingReference) from Broker to Buyer;
-		} else if {
-			buy(orderRejected) from Broker to Buyer;
-		}
-	} else if {
-		cancel(cancel) from Buyer to Broker;
-	}
-}
\ No newline at end of file

Added: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/results/ESBBroker at Buyer.spr
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/results/ESBBroker at Buyer.spr	                        (rev 0)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/results/ESBBroker at Buyer.spr	2011-01-04 22:28:15 UTC (rev 532)
@@ -0,0 +1,16 @@
+protocol ESBBrokerProcess_Buyer {
+	makeEnquiry(enquiry) to Broker;
+	makeEnquiry(quoteList) from Broker;
+	choice to Broker {
+		buy():
+			choice from Broker {
+				buy(bookingReference):
+
+				buy(orderRejected):
+
+			}
+
+		cancel():
+
+	}
+}

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpel	2011-01-04 21:53:07 UTC (rev 531)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpel	2011-01-04 22:28:15 UTC (rev 532)
@@ -1,43 +1,39 @@
-<process xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:brk="http://www.pi4soa.org/ESBBroker/Broker" xmlns:byr="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:cay="http://www.pi4soa.org/ESBBroker/CreditAgency" xmlns:spr="http://www.pi4soa.org/ESBBroker/Supplier" xmlns:tns="http://www.pi4soa.org/ESBBroker" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://www.scribble.org/conversation" ns0:conversationType="overlord.cdl.samples.LoanBroker at Buyer" name="ESBBrokerProcess_Buyer" targetNamespace="http://www.pi4soa.org/ESBBroker/Buyer" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Broker.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Broker"/>
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_CreditAgency.wsdl" namespace="http://www.pi4soa.org/ESBBroker/CreditAgency"/>
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Supplier.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_BuyerArtifacts.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Buyer"/>
-    <partnerLinks>
-        <partnerLink myRole="BrokerBehavior" name="BuyerToBroker" partnerLinkType="byr:BuyerToBrokerLT" partnerRole="BrokerRequester"/>
-    </partnerLinks>
-    <variables>
-        <variable messageType="brk:makeEnquiryRequest" name="makeEnquiryRequestVar"/>
-        <variable messageType="brk:makeEnquiryResponse" name="makeEnquiryResponseVar"/>
-        <variable messageType="brk:buyRequest" name="buyRequestVar"/>
-        <variable messageType="brk:buyResponse" name="buyResponseVar"/>
-        <variable messageType="brk:cancelRequest" name="cancelRequestVar"/>
-    </variables>
-    <sequence>
-        <invoke inputVariable="makeEnquiryRequestVar" name="Send_enquiry" operation="makeEnquiry" partnerLink="BuyerToBroker" portType="brk:BrokerBehavior"/>
-        <receive name="Receive_quoteList" operation="makeEnquiry" partnerLink="BuyerToBroker" portType="brk:BrokerBehavior" variable="makeEnquiryResponseVar"/>
-        <if>
-            <sequence>
-                <scope>
-                    <sequence>
-                        <scope>
-                            <faultHandlers>
-                                <catch faultMessageType="brk:rejectedFault" faultName="brk:rejected" faultVariable="rejectedFaultVar">
-                                    <sequence/>
-                                </catch>
-                            </faultHandlers>
-                            <sequence>
-                                <invoke inputVariable="buyRequestVar" name="Send_buy" operation="buy" outputVariable="buyResponseVar" partnerLink="BuyerToBroker" portType="brk:BrokerBehavior"/>
-                            </sequence>
-                        </scope>
-                    </sequence>
-                </scope>
-            </sequence>
-            <else>
-                <sequence>
-                    <invoke inputVariable="cancelRequestVar" name="Send_cancel" operation="cancel" partnerLink="BuyerToBroker" portType="brk:BrokerBehavior"/>
-                </sequence>
-            </else>
-        </if>
-    </sequence>
-</process>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:spr="http://www.pi4soa.org/ESBBroker/Supplier" xmlns:tns="http://www.pi4soa.org/ESBBroker" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cay="http://www.pi4soa.org/ESBBroker/CreditAgency" xmlns:byr="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:brk="http://www.pi4soa.org/ESBBroker/Broker" name="ESBBrokerProcess_Buyer" targetNamespace="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
+    <import namespace="http://www.pi4soa.org/ESBBroker/Broker" location="ESBBrokerProcess_Broker.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
+    <import namespace="http://www.pi4soa.org/ESBBroker/CreditAgency" location="ESBBrokerProcess_CreditAgency.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
+    <import namespace="http://www.pi4soa.org/ESBBroker/Supplier" location="ESBBrokerProcess_Supplier.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
+    <import namespace="http://www.pi4soa.org/ESBBroker/Buyer" location="ESBBrokerProcess_BuyerArtifacts.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
+    <partnerLinks>
+        <partnerLink name="BuyerToBroker" partnerLinkType="byr:BuyerToBrokerLT" partnerRole="BrokerRequester"/>
+    </partnerLinks>
+    <variables>
+        <variable name="makeEnquiryRequestVar" messageType="brk:makeEnquiryRequest"/>
+        <variable name="makeEnquiryResponseVar" messageType="brk:makeEnquiryResponse"/>
+        <variable name="buyRequestVar" messageType="byr:buyRequest"/>
+        <variable name="buyResponseVar" messageType="brk:buyResponse"/>
+        <variable name="cancelRequestVar" messageType="byr:cancelRequest"/>
+    </variables>
+    <sequence>
+        <invoke partnerLink="BuyerToBroker" portType="brk:BrokerBehavior" operation="makeEnquiry" inputVariable="makeEnquiryRequestVar" outputVariable="makeEnquiryResponseVar" name="Send_enquiry"/>
+        <if>
+            <sequence>
+                <scope>
+                    <faultHandlers>
+                        <catch faultName="brk:rejected" faultVariable="rejectedFaultVar" faultMessageType="brk:rejectedFault">
+                            <sequence/>
+                        </catch>
+                    </faultHandlers>
+                    <sequence>
+                        <invoke partnerLink="BuyerToBroker" portType="byr:BuyerBehavior" operation="buy" inputVariable="buyRequestVar" outputVariable="buyResponseVar" name="Send_buy"/>
+                    </sequence>
+                </scope>
+            </sequence>
+            <else>
+                <sequence>
+                    <invoke partnerLink="BuyerToBroker" portType="byr:BuyerBehavior" operation="cancel" inputVariable="cancelRequestVar" name="Send_cancel"/>
+                </sequence>
+            </else>
+        </if>
+    </sequence>
+</process>

Copied: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpelOLD (from rev 531, branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpel)
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpelOLD	                        (rev 0)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_Buyer.bpelOLD	2011-01-04 22:28:15 UTC (rev 532)
@@ -0,0 +1,43 @@
+<process xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:brk="http://www.pi4soa.org/ESBBroker/Broker" xmlns:byr="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:cay="http://www.pi4soa.org/ESBBroker/CreditAgency" xmlns:spr="http://www.pi4soa.org/ESBBroker/Supplier" xmlns:tns="http://www.pi4soa.org/ESBBroker" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://www.scribble.org/conversation" ns0:conversationType="overlord.cdl.samples.LoanBroker at Buyer" name="ESBBrokerProcess_Buyer" targetNamespace="http://www.pi4soa.org/ESBBroker/Buyer" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Broker.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Broker"/>
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_CreditAgency.wsdl" namespace="http://www.pi4soa.org/ESBBroker/CreditAgency"/>
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Supplier.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_BuyerArtifacts.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Buyer"/>
+    <partnerLinks>
+        <partnerLink myRole="BrokerBehavior" name="BuyerToBroker" partnerLinkType="byr:BuyerToBrokerLT" partnerRole="BrokerRequester"/>
+    </partnerLinks>
+    <variables>
+        <variable messageType="brk:makeEnquiryRequest" name="makeEnquiryRequestVar"/>
+        <variable messageType="brk:makeEnquiryResponse" name="makeEnquiryResponseVar"/>
+        <variable messageType="brk:buyRequest" name="buyRequestVar"/>
+        <variable messageType="brk:buyResponse" name="buyResponseVar"/>
+        <variable messageType="brk:cancelRequest" name="cancelRequestVar"/>
+    </variables>
+    <sequence>
+        <invoke inputVariable="makeEnquiryRequestVar" name="Send_enquiry" operation="makeEnquiry" partnerLink="BuyerToBroker" portType="brk:BrokerBehavior"/>
+        <receive name="Receive_quoteList" operation="makeEnquiry" partnerLink="BuyerToBroker" portType="brk:BrokerBehavior" variable="makeEnquiryResponseVar"/>
+        <if>
+            <sequence>
+                <scope>
+                    <sequence>
+                        <scope>
+                            <faultHandlers>
+                                <catch faultMessageType="brk:rejectedFault" faultName="brk:rejected" faultVariable="rejectedFaultVar">
+                                    <sequence/>
+                                </catch>
+                            </faultHandlers>
+                            <sequence>
+                                <invoke inputVariable="buyRequestVar" name="Send_buy" operation="buy" outputVariable="buyResponseVar" partnerLink="BuyerToBroker" portType="brk:BrokerBehavior"/>
+                            </sequence>
+                        </scope>
+                    </sequence>
+                </scope>
+            </sequence>
+            <else>
+                <sequence>
+                    <invoke inputVariable="cancelRequestVar" name="Send_cancel" operation="cancel" partnerLink="BuyerToBroker" portType="brk:BrokerBehavior"/>
+                </sequence>
+            </else>
+        </if>
+    </sequence>
+</process>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_BuyerArtifacts.wsdl
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_BuyerArtifacts.wsdl	2011-01-04 21:53:07 UTC (rev 531)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/parser/testmodels/ESBBrokerProcess_BuyerArtifacts.wsdl	2011-01-04 22:28:15 UTC (rev 532)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://www.pi4soa.org/ESBBroker/Broker" xmlns:ns2="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" targetNamespace="http://www.pi4soa.org/ESBBroker/Buyer">
-    <wsdl:import location="ESBBrokerProcess_Buyer.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Buyer"/>
+    <!-- >wsdl:import location="ESBBrokerProcess_Buyer.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Buyer"/ -->
     <wsdl:import location="ESBBrokerProcess_Broker.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Broker"/>
     <wsdl:import location="ESBBrokerProcess_CreditAgency.wsdl" namespace="http://www.pi4soa.org/ESBBroker/CreditAgency"/>
     <wsdl:import location="ESBBrokerProcess_Supplier.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>



More information about the savara-commits mailing list