[overlord-commits] Overlord SVN: r646 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src: java/org/jboss/tools/overlord/cdl/bpel/model/component and 4 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Fri Jun 19 16:43:43 EDT 2009


Author: objectiser
Date: 2009-06-19 16:43:43 -0400 (Fri, 19 Jun 2009)
New Revision: 646

Added:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/results/ESBBroker at Broker.scv
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/testmodels/ESBBroker at Broker.bpel
Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/change/ConversationInteractionModelChangeRule.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/OnMessage.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Pick.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Scope.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/While.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at Broker.bpel
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at CreditAgency.bpel
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at SupplierTxnProcessor.bpel
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/ParserTest.java
Log:
Added conversion of Pick and While constructs from BPEL to Conversation Model.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/change/ConversationInteractionModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/change/ConversationInteractionModelChangeRule.java	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/change/ConversationInteractionModelChangeRule.java	2009-06-19 20:43:43 UTC (rev 646)
@@ -230,33 +230,6 @@
 				}
 			}
 			
-			// Create variable
-			if (varName != null) {
-				org.jboss.tools.overlord.cdl.bpel.model.component.Variable var=
-						bpelModel.getBPELProcess().getVariable(varName);
-	
-				if (var == null) {
-					var = new org.jboss.tools.overlord.cdl.bpel.model.component.Variable(bpelModel);
-					var.setName(varName);
-					
-					String mesgType=InteractionPatterns.getMessageTypeLocalPart(interaction);
-					String namespace=InteractionPatterns.getMessageTypeNameSpace(interaction);
-
-					// Find namespace prefix
-					if (namespace != null) {
-						String prefix=bpelModel.getBPELProcess().addNamespace(namespace);
-						
-						if (prefix != null) {
-							mesgType = prefix+":"+mesgType;
-						}
-					}
-					
-					var.setMessageType(mesgType);
-					
-					bpelModel.getBPELProcess().addVariable(var, -1);
-				}
-			}
-			
 			// Set details on interaction
 			act.setPartnerLink(pl.getName());
 			act.setPortType(portType);
@@ -266,6 +239,33 @@
 			}
 		}
 		
+		// Create variable
+		if (varName != null) {
+			org.jboss.tools.overlord.cdl.bpel.model.component.Variable var=
+					bpelModel.getBPELProcess().getVariable(varName);
+
+			if (var == null) {
+				var = new org.jboss.tools.overlord.cdl.bpel.model.component.Variable(bpelModel);
+				var.setName(varName);
+				
+				String mesgType=InteractionPatterns.getMessageTypeLocalPart(interaction);
+				String namespace=InteractionPatterns.getMessageTypeNameSpace(interaction);
+
+				// Find namespace prefix
+				if (namespace != null) {
+					String prefix=bpelModel.getBPELProcess().addNamespace(namespace);
+					
+					if (prefix != null) {
+						mesgType = prefix+":"+mesgType;
+					}
+				}
+				
+				var.setMessageType(mesgType);
+				
+				bpelModel.getBPELProcess().addVariable(var, -1);
+			}
+		}
+		
 		return(ret);
 	}
 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/OnMessage.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/OnMessage.java	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/OnMessage.java	2009-06-19 20:43:43 UTC (rev 646)
@@ -20,7 +20,11 @@
 import java.util.List;
 
 import org.jboss.tools.overlord.cdl.bpel.model.BPELLanguageModel;
+import org.scribble.conversation.model.ConversationInteraction;
 import org.scribble.model.Activity;
+import org.scribble.model.MessageSignature;
+import org.scribble.model.Role;
+import org.scribble.model.TypeReference;
 
 /**
  * This class represents the 'onMessage' construct contained
@@ -167,10 +171,49 @@
 		return(m_activity);
 	}
 	
+	/**
+	 * This method attempts to identify the server's partner role name.
+	 * 
+	 * @return The partner role
+	 */
+	protected String getServerPartnerRole() {
+		String ret=getPartnerLink();
+		int index=-1;
+		
+		if (ret != null && (index=ret.indexOf("To")) != -1) {
+			ret = ret.substring(0, index);
+		}
+		
+		return(ret);
+	}
+
 	@Override
 	public void convert(List<Activity> activities, ConversionContext context) {
-		// TODO Auto-generated method stub
 		
+		ConversationInteraction interaction=new ConversationInteraction();
+		
+		TypeReference tref=new TypeReference();
+		
+		Variable var=context.getVariable(getVariable());
+		
+		if (var != null) {
+			tref.setAlias(var.getMessageType());			
+		}
+		
+		MessageSignature ms=new MessageSignature();
+		ms.setOperation(getOperation());
+		ms.getTypes().add(tref);
+		
+		interaction.setFromRole(new Role(getServerPartnerRole()));
+		interaction.setToRole(new Role(context.getRole()));
+		
+		interaction.setMessageSignature(ms);
+		
+		activities.add(interaction);
+
+		if (getActivity() != null) {
+			getActivity().convert(activities, context);
+		}
 	}
 	
 	private BPELElement m_activity;

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Pick.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Pick.java	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Pick.java	2009-06-19 20:43:43 UTC (rev 646)
@@ -17,6 +17,7 @@
  */
 package org.jboss.tools.overlord.cdl.bpel.model.component;
 
+import org.scribble.conversation.model.ConditionalBlock;
 import org.scribble.model.*;
 import org.scribble.model.admin.ModelListener;
 import org.jboss.tools.overlord.cdl.bpel.model.*;
@@ -208,6 +209,25 @@
 	 */
 	public void convert(java.util.List<Activity> activities,
 			ConversionContext context) {
+		
+		org.scribble.conversation.model.If elem=
+					new org.scribble.conversation.model.If();
+		
+		// Convert 'onMessage' paths
+		for (int i=0; i < getOnMessages().size(); i++) {
+			OnMessage onMessageElem=getOnMessages().get(i);
+			
+			ConditionalBlock cb = new ConditionalBlock();
+			
+			onMessageElem.convert(cb.getContents(), context);
+			
+			elem.getConditionalBlocks().add(cb);
+		}
+		
+		// TODO: If alarms defined, then model these using a
+		// try/catch with interrupt?
+		
+		activities.add(elem);
 	}
 
 	private java.util.List<OnMessage> m_onMessages=

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Scope.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Scope.java	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/Scope.java	2009-06-19 20:43:43 UTC (rev 646)
@@ -576,6 +576,18 @@
 			}
 			
 			activities.add(choice);
+		} else {
+			// Store in local var, in case try/catch block needs to be
+			// added
+			java.util.List<Activity> acts=activities;
+			
+			// TODO: Check if try/catch block is required
+			
+			
+			// Convert normal activities in scope
+			if (getActivity() != null) {
+				getActivity().convert(acts, context);
+			}
 		}
 	}
 	

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/While.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/While.java	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/java/org/jboss/tools/overlord/cdl/bpel/model/component/While.java	2009-06-19 20:43:43 UTC (rev 646)
@@ -83,6 +83,17 @@
 	 */
 	public void convert(java.util.List<Activity> activities,
 			ConversionContext context) {
+		
+		org.scribble.conversation.model.While elem=
+					new org.scribble.conversation.model.While();
+		
+		// TODO: Convert while expression
+		
+		if (getActivity() != null) {
+			getActivity().convert(elem.getBlock().getContents(), context);
+		}
+		
+		activities.add(elem);
 	}
 
 	/**

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at Broker.bpel
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at Broker.bpel	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at Broker.bpel	2009-06-19 20:43:43 UTC (rev 646)
@@ -8,14 +8,15 @@
     <variables>
         <variable messageType="enquiry" name="enquiryVar"/>
         <variable messageType="requestForQuote" name="requestForQuoteVar"/>
+        <variable messageType="quote" name="quoteVar"/>
         <variable messageType="quoteList" name="quoteListVar"/>
+        <variable messageType="buy" name="buyVar"/>
         <variable messageType="CreditCheckRequest" name="creditCheckRequestVar"/>
         <variable messageType="CreditCheckOk" name="creditCheckOkVar"/>
         <variable messageType="orderConfirmed" name="orderConfirmedVar"/>
         <variable messageType="bookingReference" name="bookingReferenceVar"/>
         <variable messageType="CreditCheckInvalid" name="creditCheckInvalidVar"/>
         <variable messageType="orderRejected" name="orderRejectedVar"/>
-        <variable messageType="buy" name="buyVar"/>
         <variable messageType="cancel" name="cancelVar"/>
     </variables>
     <sequence>

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at CreditAgency.bpel
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at CreditAgency.bpel	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at CreditAgency.bpel	2009-06-19 20:43:43 UTC (rev 646)
@@ -3,9 +3,9 @@
         <partnerLink myRole="CreditAgencyService" name="BrokerToCreditAgency" partnerLinkType="BrokerToCreditAgencyServiceLT"/>
     </partnerLinks>
     <variables>
+        <variable messageType="CreditCheckRequest" name="creditCheckRequestVar"/>
         <variable messageType="CreditCheckOk" name="creditCheckOkVar"/>
         <variable messageType="CreditCheckInvalid" name="creditCheckInvalidVar"/>
-        <variable messageType="CreditCheckRequest" name="creditCheckRequestVar"/>
     </variables>
     <sequence>
         <pick>

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at SupplierTxnProcessor.bpel
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at SupplierTxnProcessor.bpel	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/generator/results/ESBBroker at SupplierTxnProcessor.bpel	2009-06-19 20:43:43 UTC (rev 646)
@@ -3,8 +3,8 @@
         <partnerLink myRole="SupplierTxnProcessorService" name="BrokerToSupplierTxnProcessor" partnerLinkType="BrokerToSupplierTxnProcessorServiceLT"/>
     </partnerLinks>
     <variables>
+        <variable messageType="orderConfirmed" name="orderConfirmedVar"/>
         <variable messageType="bookingReference" name="bookingReferenceVar"/>
-        <variable messageType="orderConfirmed" name="orderConfirmedVar"/>
     </variables>
     <sequence>
         <pick>

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/ParserTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/ParserTest.java	2009-06-18 21:37:10 UTC (rev 645)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/ParserTest.java	2009-06-19 20:43:43 UTC (rev 646)
@@ -33,6 +33,7 @@
     public static TestSuite suite() {
         TestSuite suite = new TestSuite("BPEL->Conversation Parser Tests");
         
+        suite.addTest(new BPELToConversationTest("ESBBroker at Broker"));
         suite.addTest(new BPELToConversationTest("PurchaseGoods at Buyer"));
         suite.addTest(new BPELToConversationTest("PurchaseGoods at CreditAgency"));
         suite.addTest(new BPELToConversationTest("PurchaseGoods at Store"));

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/results/ESBBroker at Broker.scv
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/results/ESBBroker at Broker.scv	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/results/ESBBroker at Broker.scv	2009-06-19 20:43:43 UTC (rev 646)
@@ -0,0 +1,25 @@
+namespace null;
+
+conversation ESBBrokerProcess_Broker at Broker implements ESBBroker at Broker {
+	makeEnquiry(enquiry) from Buyer to Broker;
+	while {
+		getQuote(requestForQuote) from Broker to SupplierQuoteEngine;
+		getQuote(quote) from SupplierQuoteEngine to Broker;
+	}
+	makeEnquiry(quoteList) from Broker to Buyer;
+	if {
+		buy(buy) from Buyer to Broker;
+		checkCredit(CreditCheckRequest) from Broker to CreditAgency;
+		if {
+			checkCredit(CreditCheckOk) from CreditAgency to Broker;
+			confirm(orderConfirmed) from Broker to SupplierTxnProcessor;
+			confirm(bookingReference) from SupplierTxnProcessor to Broker;
+			buy(bookingReference) from Broker to Buyer;
+		} else if {
+			checkCredit(CreditCheckInvalid) from CreditAgency to Broker;
+			buy(orderRejected) from Broker to Buyer;
+		}
+	} else if {
+		cancel(cancel) from Buyer to Broker;
+	}
+}
\ No newline at end of file

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/testmodels/ESBBroker at Broker.bpel
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/testmodels/ESBBroker at Broker.bpel	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.bpel/src/plugintest/org/jboss/tools/overlord/cdl/bpel/parser/testmodels/ESBBroker at Broker.bpel	2009-06-19 20:43:43 UTC (rev 646)
@@ -0,0 +1,62 @@
+<process xmlns:ns0="http://www.scribble.org/conversation" ns0:conversationType="ESBBroker at Broker" name="ESBBrokerProcess_Broker" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
+    <partnerLinks>
+        <partnerLink myRole="BrokerService" name="BuyerToBroker" partnerLinkType="BuyerToBrokerServiceLT"/>
+        <partnerLink name="BrokerToSupplierQuoteEngine" partnerLinkType="BrokerToSupplierQuoteEngineLT" partnerRole="SupplierQuoteEngineRequester"/>
+        <partnerLink name="BrokerToCreditAgency" partnerLinkType="BrokerToCreditAgencyLT" partnerRole="CreditAgencyRequester"/>
+        <partnerLink name="BrokerToSupplierTxnProcessor" partnerLinkType="BrokerToSupplierTxnProcessorLT" partnerRole="SupplierTxnProcessorRequester"/>
+    </partnerLinks>
+    <variables>
+        <variable messageType="enquiry" name="enquiryVar"/>
+        <variable messageType="requestForQuote" name="requestForQuoteVar"/>
+        <variable messageType="quote" name="quoteVar"/>
+        <variable messageType="quoteList" name="quoteListVar"/>
+        <variable messageType="buy" name="buyVar"/>
+        <variable messageType="CreditCheckRequest" name="creditCheckRequestVar"/>
+        <variable messageType="CreditCheckOk" name="creditCheckOkVar"/>
+        <variable messageType="orderConfirmed" name="orderConfirmedVar"/>
+        <variable messageType="bookingReference" name="bookingReferenceVar"/>
+        <variable messageType="CreditCheckInvalid" name="creditCheckInvalidVar"/>
+        <variable messageType="orderRejected" name="orderRejectedVar"/>
+        <variable messageType="cancel" name="cancelVar"/>
+    </variables>
+    <sequence>
+        <receive operation="makeEnquiry" partnerLink="BuyerToBroker" portType="BrokerPT" variable="enquiryVar"/>
+        <while>
+            <sequence>
+                <scope>
+                    <sequence>
+                        <invoke inputVariable="requestForQuoteVar" operation="getQuote" outputVariable="quoteVar" partnerLink="BrokerToSupplierQuoteEngine" portType="SupplierQuoteEnginePT"/>
+                    </sequence>
+                </scope>
+            </sequence>
+        </while>
+        <reply operation="makeEnquiry" partnerLink="BuyerToBroker" portType="BrokerPT" variable="quoteListVar"/>
+        <pick>
+            <onMessage operation="buy" partnerLink="BuyerToBroker" portType="BrokerPT" variable="buyVar">
+                <sequence>
+                    <scope>
+                        <sequence>
+                            <scope>
+                                <faultHandlers>
+                                    <catch faultName="invalidCredit" faultVariable="creditCheckInvalidVar">
+                                        <sequence>
+                                            <reply faultName="rejected" operation="buy" partnerLink="BuyerToBroker" portType="BrokerPT" variable="orderRejectedVar"/>
+                                        </sequence>
+                                    </catch>
+                                </faultHandlers>
+                                <sequence>
+                                    <invoke inputVariable="creditCheckRequestVar" operation="checkCredit" outputVariable="creditCheckOkVar" partnerLink="BrokerToCreditAgency" portType="CreditAgencyPT"/>
+                                    <invoke inputVariable="orderConfirmedVar" operation="confirm" outputVariable="bookingReferenceVar" partnerLink="BrokerToSupplierTxnProcessor" portType="SupplierTxnProcessorPT"/>
+                                    <reply operation="buy" partnerLink="BuyerToBroker" portType="BrokerPT" variable="bookingReferenceVar"/>
+                                </sequence>
+                            </scope>
+                        </sequence>
+                    </scope>
+                </sequence>
+            </onMessage>
+            <onMessage operation="cancel" partnerLink="BuyerToBroker" portType="BrokerPT" variable="cancelVar">
+                <sequence/>
+            </onMessage>
+        </pick>
+    </sequence>
+</process>




More information about the overlord-commits mailing list