[overlord-commits] Overlord SVN: r476 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model: change/stateless and 1 other directory.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Wed Feb 4 14:58:10 EST 2009


Author: objectiser
Date: 2009-02-04 14:58:09 -0500 (Wed, 04 Feb 2009)
New Revision: 476

Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SendMessageAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SwitchAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/change/stateless/ConversationInteractionModelChangeRule.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/change/stateless/IfModelChangeRule.java
Log:
Generate response category/name properties, if an interaction represents the sending of a request, with an associated response.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SendMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SendMessageAction.java	2009-02-01 19:18:46 UTC (rev 475)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SendMessageAction.java	2009-02-04 19:58:09 UTC (rev 476)
@@ -34,6 +34,8 @@
 
 	public static final String SERVICE_NAME = "serviceName";
 	public static final String SERVICE_CATEGORY = "serviceCategory";
+	public static final String RESPONSE_SERVICE_NAME = "responseServiceName";
+	public static final String RESPONSE_SERVICE_CATEGORY = "responseServiceCategory";
 
 	/**
 	 * The constructor for the action.
@@ -70,6 +72,8 @@
 
 		ret.add(SERVICE_NAME);
 		ret.add(SERVICE_CATEGORY);
+		ret.add(RESPONSE_SERVICE_NAME);
+		ret.add(RESPONSE_SERVICE_CATEGORY);
 		
 		return(ret);
 	}
@@ -189,4 +193,25 @@
 			prop.setAttribute(VALUE_ATTR, name);
 		}
 	}
+	
+	/**
+	 * This method sets the response service descriptor properties.
+	 * 
+	 * @param category The category
+	 * @param name The name
+	 */
+	public void setResponseDestination(String category, String name) {
+		
+		org.w3c.dom.Element prop=getPropertyElement(RESPONSE_SERVICE_CATEGORY);
+		
+		if (prop != null) {
+			prop.setAttribute(VALUE_ATTR, category);
+		}
+		
+		prop = getPropertyElement(RESPONSE_SERVICE_NAME);
+		
+		if (prop != null) {
+			prop.setAttribute(VALUE_ATTR, name);
+		}
+	}
 }

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SwitchAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SwitchAction.java	2009-02-01 19:18:46 UTC (rev 475)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/actions/stateless/SwitchAction.java	2009-02-04 19:58:09 UTC (rev 476)
@@ -256,7 +256,7 @@
 	 */
 	public void addCase(String category, String name,
 			java.util.Set<Interaction> messageTypes, int position) {
-		
+		boolean f_associatePath=false;
 		org.w3c.dom.Element paths=getPropertyElement(PATHS);
 		
 		org.w3c.dom.Element path=
@@ -264,29 +264,56 @@
 		path.setAttribute(SERVICE_CATEGORY, category);
 		path.setAttribute(SERVICE_NAME, name);
 		
-		if (messageTypes != null) {
+		if (messageTypes != null && messageTypes.size() > 0) {
 			java.util.Iterator<Interaction> iter=messageTypes.iterator();
+			boolean f_onlySend=true;
 			
 			while (iter.hasNext()) {
 				Interaction interaction=iter.next();
 				
-				//TODO: Only deals with single type for now
-				if (InteractionUtil.isSend(interaction) == false &&
-						interaction.getMessageSignature().getTypes().size()==1) {
-					org.w3c.dom.Element mt=
-						getAction().getOwnerDocument().createElement(MESSAGE_ELEMENT);
+				if (InteractionUtil.isSend(interaction) == false) {
+					f_onlySend = false;
+				
+					//TODO: Only deals with single type for now
+					
+					// Only associate message type for requests
+					if (//interaction.getReplyToLabel() == null &&
+							interaction.getMessageSignature().getTypes().size()==1) {
+						org.w3c.dom.Element mt=
+							getAction().getOwnerDocument().createElement(MESSAGE_ELEMENT);
+							
+						mt.setAttribute(TYPE_ATTR,
+									InteractionUtil.getTypeString(
+										interaction.getMessageSignature().
+										getTypes().get(0)));
 						
-					mt.setAttribute(TYPE_ATTR,
-								InteractionUtil.getTypeString(
-									interaction.getMessageSignature().
-									getTypes().get(0)));
-					
-					path.appendChild(mt);
+						path.appendChild(mt);
+						
+						f_associatePath = true;
+					}
 				}
 			}
+			
+			if (f_onlySend) {
+				// Associate the path, even though it has no associated
+				// receive interactions, as it represents a path triggered by
+				// a different stimulus. Need this to enable the
+				// conformance checking to understand that it is a
+				// valid path, that needs to be handled.
+				f_associatePath = true;
+			}
+		} else {
+			// Associate the path, even though it has no associated
+			// interactions, as it represents a path triggered by
+			// a different stimulus. Need this to enable the
+			// conformance checking to understand that it is a
+			// valid path, that needs to be handled.
+			f_associatePath = true;
 		}
 		
-		paths.appendChild(path);
+		//if (f_associatePath) {
+			paths.appendChild(path);
+		//}
 	}
 	
 	/**

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/change/stateless/ConversationInteractionModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/change/stateless/ConversationInteractionModelChangeRule.java	2009-02-01 19:18:46 UTC (rev 475)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/change/stateless/ConversationInteractionModelChangeRule.java	2009-02-04 19:58:09 UTC (rev 476)
@@ -156,6 +156,13 @@
 			action.setDestination("", "");			
 		}
 
+		if (interaction.getRequestLabel() != null) {
+			ESBService gw=esbModel.getGatewayService();
+
+			action.setResponseDestination(gw.getCategory(),
+					gw.getName());
+		}
+		
 		/* IS REQUIRED??
 		if (interaction.getRequestLabel() != null) {
 			

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/change/stateless/IfModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/change/stateless/IfModelChangeRule.java	2009-02-01 19:18:46 UTC (rev 475)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/java/org/jboss/tools/overlord/cdl/runtime/jbossesb/model/change/stateless/IfModelChangeRule.java	2009-02-04 19:58:09 UTC (rev 476)
@@ -338,10 +338,16 @@
 		for (int i=0; i < ifElem.getConditionalBlocks().size(); i++) {
 			ConditionalBlock cb=ifElem.getConditionalBlocks().get(i);
 			
+			java.util.Set<Interaction> interactions=null;
+			
+			if (la != null) {
+				interactions = la.getInteractions(cb);
+			}
+			
 			ESBService subService=
 				esbModel.createService(service.getCategory(),
-					esbModel.getUniqueServiceName(service.getCategory(),
-							service.getName()));
+						esbModel.getUniqueServiceName(service.getCategory(),
+								service.getName()));
 
 			esbModel.addService(subService);
 
@@ -351,12 +357,6 @@
 				context.insert(model, cb.getContents().get(j), null);
 			}
 
-			java.util.Set<Interaction> interactions=null;
-			
-			if (la != null) {
-				interactions = la.getInteractions(cb);
-			}
-			
 			switchAction.addCase(subService.getCategory(),
 					subService.getName(), interactions, i);
 			




More information about the overlord-commits mailing list