Author: objectiser
Date: 2008-07-31 11:14:10 -0400 (Thu, 31 Jul 2008)
New Revision: 209
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/AbstractESBAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java
Log:
Added service description name, conversation type, root, properties to various actions.
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/AbstractESBAction.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/AbstractESBAction.java 2008-07-31
12:04:01 UTC (rev 208)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/AbstractESBAction.java 2008-07-31
15:14:10 UTC (rev 209)
@@ -450,6 +450,34 @@
}
/**
+ * This method sets the service description name property.
+ *
+ * @param name The service description name
+ */
+ public void setServiceDescriptionName(String name) {
+
+ org.w3c.dom.Element prop=getPropertyElement(SERVICE_DESCRIPTION_NAME);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, name);
+ }
+ }
+
+ /**
+ * This method sets the business object type property.
+ *
+ * @param name The business object type
+ */
+ public void setBusinessObjectType(String type) {
+
+ org.w3c.dom.Element prop=getPropertyElement(BUSINESS_OBJECT_TYPE_PROPERTY);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, type);
+ }
+ }
+
+ /**
* This method returns the XML configuration representation of the action.
*
* @return The XML configuration for the action
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java 2008-07-31
12:04:01 UTC (rev 208)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java 2008-07-31
15:14:10 UTC (rev 209)
@@ -139,4 +139,32 @@
public void convert(java.util.List<Activity> activities,
ConversionContext context) {
}
+
+ /**
+ * This method sets the root property.
+ *
+ * @param root The root
+ */
+ public void setRoot(boolean root) {
+
+ org.w3c.dom.Element prop=getPropertyElement(ROOT);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, ""+root);
+ }
+ }
+
+ /**
+ * This method sets the conversation type property.
+ *
+ * @param name The conversation type
+ */
+ public void setConversationType(String type) {
+
+ org.w3c.dom.Element prop=getPropertyElement(CONVERSATION_TYPE);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, type);
+ }
+ }
}
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java 2008-07-31
12:04:01 UTC (rev 208)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java 2008-07-31
15:14:10 UTC (rev 209)
@@ -17,8 +17,12 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import java.util.logging.Logger;
+
import org.jboss.tools.overlord.jbossesb.model.*;
+import org.scribble.conversation.model.*;
import org.scribble.model.*;
+import org.jboss.tools.overlord.jbossesb.model.change.*;
/**
* The model component for the 'MessageRouterAction'. Although
@@ -34,6 +38,7 @@
*/
public class MessageRouterAction extends AbstractESBAction {
+ public static final String IDENTITIES_ELEMENT = "identities";
public static final String INITIATE = "initiate";
public static final String SERVICE_NAME = "service-name";
public static final String SERVICE_CATEGORY = "service-category";
@@ -137,7 +142,7 @@
* @param messageTypes The list of message types
*/
public void addRoute(String category, String name, boolean initiate,
- java.util.List<String> messageTypes) {
+ java.util.List<MessageSignature> messageTypes) {
org.w3c.dom.Element paths=getPropertyElement(PATHS);
@@ -149,10 +154,48 @@
for (int i=0; i < messageTypes.size(); i++) {
org.w3c.dom.Element mt=
getAction().getOwnerDocument().createElement(MESSAGE_ELEMENT);
+
+ if (messageTypes.get(i).getTypes().size() == 1) {
+ TypeReference ref=messageTypes.get(i).getTypes().get(0);
+ String type="";
- mt.setAttribute(TYPE_ATTR, messageTypes.get(i));
-
- path.appendChild(mt);
+ if (ref.getNamespace() != null) {
+ type += "{"+ref.getNamespace()+"}";
+ }
+ type += ref.getLocalpart();
+
+ mt.setAttribute(TYPE_ATTR, type);
+
+ path.appendChild(mt);
+
+ if (messageTypes.get(i).getParent() instanceof ConversationInteraction &&
+ ((ConversationInteraction)messageTypes.get(i).getParent()).
+ getEnclosingDefinition() instanceof Conversation &&
+ ((ConversationInteraction)messageTypes.get(i).getParent()).
+ getEnclosingDefinition().getModel()
+ instanceof ConversationModel) {
+
+ org.w3c.dom.Element identities=
+ mt.getOwnerDocument().createElement(IDENTITIES_ELEMENT);
+
+ java.util.List<Identity> ids=((Conversation)
+ ((ConversationInteraction)messageTypes.get(i).getParent()).
+ getEnclosingDefinition()).getIdentities();
+
+ java.util.List<IdentityLocator> locators=
+ ((ConversationModel)((ConversationInteraction)messageTypes.get(i).getParent()).
+ getEnclosingDefinition().
+ getModel()).getIdentityLocators();
+
+ IdentityUtil.defineIdentities(identities, messageTypes.get(i),
+ ids, locators);
+
+ mt.appendChild(identities);
+ }
+
+ } else {
+ logger.warning("Can only handle single type message signatures");
+ }
}
paths.appendChild(path);
@@ -271,6 +314,8 @@
ConversionContext context) {
}
+ private static Logger logger =
Logger.getLogger("org.jboss.tools.overlord.jbossesb.model.actions");
+
private java.util.List<ESBService> m_initiateServices=new
java.util.Vector<ESBService>();
private java.util.List<ESBService> m_services=new
java.util.Vector<ESBService>();
}
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-31
12:04:01 UTC (rev 208)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-31
15:14:10 UTC (rev 209)
@@ -227,10 +227,9 @@
action.setOperation(interaction.getMessageSignature().getOperation());
}
- String mtype=null;
-
if (interaction.getMessageSignature().getTypes().size() == 1) {
TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
+ String mtype=null;
// TODO: Search for an implementation associated with
// the type reference, so that the type can be
@@ -265,8 +264,9 @@
MessageRouterAction mra=(MessageRouterAction)
gwAction;
- java.util.List<String> mtypes=new java.util.Vector<String>();
- mtypes.add(mtype);
+ java.util.List<MessageSignature> mtypes=
+ new java.util.Vector<MessageSignature>();
+ mtypes.add(interaction.getMessageSignature());
mra.addRoute(((ESBService)context.getParent()).getCategory(),
((ESBService)context.getParent()).getName(),
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java 2008-07-31
12:04:01 UTC (rev 208)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java 2008-07-31
15:14:10 UTC (rev 209)
@@ -76,7 +76,7 @@
ESBLanguageModel esbModel=(ESBLanguageModel)model;
Conversation conv=(Conversation)mobj;
- String category=((Model)conv.getModel()).
+ String namespace=((Model)conv.getModel()).
getNamespace().getName();
String qualifier="";
@@ -93,10 +93,13 @@
}
}
- category += qualifier;
+ String category = namespace + qualifier;
String name=conv.getModelName().getLocatedRole().getName();
+
+ String sdname="";
+
// Check if root conversation
if (conv.getParent() instanceof Model) {
@@ -106,6 +109,16 @@
MessageRouterAction mra=new MessageRouterAction(gateway);
+ // Construct service description name
+ if (namespace != null) {
+ sdname = "{"+namespace+"}";
+ }
+
+ sdname += conv.getModelName().getName()+"-"+
+ conv.getModelName().getLocatedRole().getName();
+
+ mra.setServiceDescriptionName(sdname);
+
gateway.addAction(mra, -1);
esbModel.addService(gateway);
@@ -121,6 +134,19 @@
// Create 'CreateSession' activity
CreateSessionAction csa=new CreateSessionAction(service);
+ // Check if root conversation
+ if (conv.getParent() instanceof Model) {
+ csa.setRoot(true);
+
+ // Set conversation type
+ String ctype=namespace+"."+
+ conv.getModelName().getName()+"@"+
+ conv.getModelName().getLocatedRole().getName();
+ csa.setConversationType(ctype);
+ }
+
+ csa.setServiceDescriptionName(sdname);
+
service.addAction(csa, -1);
// Process the activities within the conversation