Overlord SVN: r211 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src: java/org/jboss/tools/overlord/jbossesb/model/change and 1 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-07-31 12:34:40 -0400 (Thu, 31 Jul 2008)
New Revision: 211
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java
Log:
Added check to make sure Switch only added to message router if it is the first session based action in the service descriptor.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java 2008-07-31 16:26:56 UTC (rev 210)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java 2008-07-31 16:34:40 UTC (rev 211)
@@ -456,7 +456,7 @@
*
* @return The first session based action, or null if none exist
*/
- protected ESBAction getFirstSessionBasedAction() {
+ public ESBAction getFirstSessionBasedAction() {
ESBAction ret=null;
for (int i=0; ret == null && i < m_actions.size(); i++) {
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java 2008-07-31 16:26:56 UTC (rev 210)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java 2008-07-31 16:34:40 UTC (rev 211)
@@ -174,6 +174,14 @@
public boolean isSessionBased();
/**
+ * This method returns the first session based action in the
+ * service descriptor.
+ *
+ * @return The first session based action, or null if none exist
+ */
+ public ESBAction getFirstSessionBasedAction();
+
+ /**
* This method converts the actions associated with the ESB service into
* activities that can be checked for conformance against a conversation
* type.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-31 16:26:56 UTC (rev 210)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-31 16:34:40 UTC (rev 211)
@@ -236,7 +236,11 @@
}
}
- if (messageTypes.size() > 0) {
+ // Only record message router 'routes' if the switch
+ // receives request interactions, and it is the first
+ // session based action in the service
+ if (messageTypes.size() > 0 &&
+ service.getFirstSessionBasedAction() == switchAction) {
ESBService gwService=
esbModel.getGatewayService();
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java 2008-07-31 16:26:56 UTC (rev 210)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java 2008-07-31 16:34:40 UTC (rev 211)
@@ -155,6 +155,11 @@
return(m_sessionBased);
}
+ public ESBAction getFirstSessionBasedAction() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
public boolean isGateway() {
// TODO Auto-generated method stub
return false;
15 years, 8 months
Overlord SVN: r210 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model: change and 1 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-07-31 12:26:56 -0400 (Thu, 31 Jul 2008)
New Revision: 210
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/IdentityUtil.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/InteractionUtil.java
Removed:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java
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/SwitchAction.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/IfModelChangeRule.java
Log:
Added lookahead analysis to determine message types for SwitchAction, and used the same information to then link relevant SwitchAction's to the MessageRouter.
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 15:14:10 UTC (rev 209)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java 2008-07-31 16:26:56 UTC (rev 210)
@@ -23,6 +23,7 @@
import org.scribble.conversation.model.*;
import org.scribble.model.*;
import org.jboss.tools.overlord.jbossesb.model.change.*;
+import org.jboss.tools.overlord.jbossesb.model.util.IdentityUtil;
/**
* The model component for the 'MessageRouterAction'. Although
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java 2008-07-31 15:14:10 UTC (rev 209)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java 2008-07-31 16:26:56 UTC (rev 210)
@@ -18,6 +18,7 @@
package org.jboss.tools.overlord.jbossesb.model.actions;
import org.jboss.tools.overlord.jbossesb.model.*;
+import org.jboss.tools.overlord.jbossesb.model.util.InteractionUtil;
import org.scribble.model.*;
import org.scribble.conversation.model.*;
@@ -197,48 +198,39 @@
*
* @param category The service category
* @param name The service name
- * @param messageTypes The list of message types
+ * @param messageTypes The set of interactions
* @param position The position
*/
public void addCase(String category, String name,
- java.util.List<String> messageTypes, int position) {
+ java.util.Set<Interaction> messageTypes, int position) {
org.w3c.dom.Element paths=getPropertyElement(PATHS);
- /*
- org.w3c.dom.NodeList nl=
- getAction().getElementsByTagName(PROPERTY_ELEMENT);
-
- for (int i=0; paths == null && i < nl.getLength(); i++) {
- if (nl.item(i) instanceof org.w3c.dom.Element) {
- String propName=((org.w3c.dom.Element)nl.item(i)).getAttribute(NAME_ATTR);
-
- if (propName != null && propName.equals(PATHS)) {
- paths = (org.w3c.dom.Element)nl.item(i);
- }
- }
- }
-
- if (paths == null) {
- paths = getAction().getOwnerDocument().createElement(PROPERTY_ELEMENT);
- paths.setAttribute(NAME_ATTR, PATHS);
-
- getAction().appendChild(paths);
- }
- */
-
org.w3c.dom.Element path=
getAction().getOwnerDocument().createElement(CASE);
path.setAttribute(SERVICE_CATEGORY, category);
path.setAttribute(SERVICE_NAME, name);
- for (int i=0; i < messageTypes.size(); i++) {
- org.w3c.dom.Element mt=
- getAction().getOwnerDocument().createElement(MESSAGE_ELEMENT);
-
- mt.setAttribute(TYPE_ATTR, messageTypes.get(i));
+ if (messageTypes != null) {
+ java.util.Iterator<Interaction> iter=messageTypes.iterator();
- path.appendChild(mt);
+ 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);
+
+ mt.setAttribute(TYPE_ATTR,
+ InteractionUtil.getTypeString(
+ interaction.getMessageSignature().
+ getTypes().get(0)));
+
+ path.appendChild(mt);
+ }
+ }
}
paths.appendChild(path);
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 15:14:10 UTC (rev 209)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-31 16:26:56 UTC (rev 210)
@@ -19,6 +19,8 @@
import org.jboss.tools.overlord.jbossesb.model.*;
import org.jboss.tools.overlord.jbossesb.model.actions.*;
+import org.jboss.tools.overlord.jbossesb.model.util.IdentityUtil;
+import org.jboss.tools.overlord.jbossesb.model.util.InteractionUtil;
import org.scribble.model.*;
import org.scribble.model.change.*;
import org.scribble.conversation.model.*;
@@ -79,12 +81,7 @@
ConversationInteraction interaction=(ConversationInteraction)mobj;
// Check if send or receive
- if ((interaction.getFromRole() != null &&
- interaction.getFromRole().equals(
- context.getRole())) ||
- (interaction.getToRole() != null &&
- interaction.getToRole().equals(
- context.getRole()) == false)) {
+ if (InteractionUtil.isSend(interaction)) {
// Send
insertSend(context, esbModel, interaction, position);
Deleted: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java 2008-07-31 15:14:10 UTC (rev 209)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java 2008-07-31 16:26:56 UTC (rev 210)
@@ -1,84 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-package org.jboss.tools.overlord.jbossesb.model.change;
-
-import org.scribble.model.*;
-import org.scribble.conversation.model.*;
-
-public class IdentityUtil {
-
- private static final String LOCATOR_ATTR = "locator";
- private static final String NAME_ATTR = "name";
- private static final String TOKEN_ELEMENT = "token";
- private static final String TYPE_ATTR = "type";
- private static final String IDENTITY_ELEMENT = "identity";
-
- public static void defineIdentities(org.w3c.dom.Element identities,
- MessageSignature message, java.util.List<Identity> ids,
- java.util.List<IdentityLocator> locators) {
-
- // Clear root child nodes
- while (identities.getFirstChild() != null) {
- identities.removeChild(identities.getFirstChild());
- }
-
- for (int i=0; i < ids.size(); i++) {
- org.w3c.dom.Element identity=
- identities.getOwnerDocument().createElement(IDENTITY_ELEMENT);
- identity.setAttribute(TYPE_ATTR,
- ids.get(i).getIdentityType().name().toLowerCase());
-
- boolean f_valid=true;
-
- for (int j=0; f_valid && j < ids.get(i).getNames().size(); j++) {
- String token=ids.get(i).getNames().get(j);
- String locator=null;
-
- for (int k=0; locator == null &&
- k < message.getTypes().size(); k++) {
-
- // Find locator for type
- for (int l=0; locator == null &&
- l < locators.size(); l++) {
- IdentityLocator il=locators.get(l);
-
- if (il.getType().equals(message.getTypes().get(k))) {
- locator = il.getLocator(token);
- }
- }
- }
-
- if (locator == null) {
- f_valid = false;
- } else {
- org.w3c.dom.Element tokenElem=
- identities.getOwnerDocument().createElement(TOKEN_ELEMENT);
-
- identity.appendChild(tokenElem);
-
- tokenElem.setAttribute(NAME_ATTR, token);
- tokenElem.setAttribute(LOCATOR_ATTR, locator);
- }
- }
-
- if (f_valid) {
- identities.appendChild(identity);
- }
- }
- }
-}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-31 15:14:10 UTC (rev 209)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-31 16:26:56 UTC (rev 210)
@@ -17,12 +17,16 @@
*/
package org.jboss.tools.overlord.jbossesb.model.change;
+import java.util.logging.Logger;
+
import org.jboss.tools.overlord.jbossesb.model.*;
import org.jboss.tools.overlord.jbossesb.model.actions.*;
+import org.jboss.tools.overlord.jbossesb.model.util.InteractionUtil;
import org.scribble.model.*;
import org.scribble.model.change.*;
+import org.scribble.model.analysis.*;
import org.scribble.conversation.model.*;
-import org.scribble.extensions.RegistryInfo;
+import org.scribble.extensions.*;
/**
* This is the model change rule for the If grouping construct.
@@ -134,7 +138,19 @@
// Switch action, as role is a decision observer
SwitchAction switchAction=new SwitchAction(service);
+ // Get lookahead analyser
+ LookaheadAnalyser la=(LookaheadAnalyser)
+ RegistryFactory.getRegistry().getExtension(
+ LookaheadAnalyser.class, null);
+
+ if (la == null) {
+ logger.severe("Failed to find lookahead analyser");
+ }
+
service.addAction(switchAction, position);
+
+ java.util.List<MessageSignature> messageTypes=
+ new java.util.Vector<MessageSignature>();
for (int i=0; i < ifElem.getConditionalBlocks().size(); i++) {
ConditionalBlock cb=ifElem.getConditionalBlocks().get(i);
@@ -152,11 +168,30 @@
context.insert(model, cb.getContents().get(j), j);
}
- java.util.List<String> messageTypes=new java.util.Vector<String>();
- messageTypes.add("testType");
+ java.util.Set<Interaction> interactions=null;
+ if (la != null) {
+ interactions = la.getInteractions(cb);
+ }
+
switchAction.addCase(subService.getCategory(),
- subService.getName(), messageTypes, i);
+ subService.getName(), interactions, i);
+
+ java.util.Iterator<Interaction> iter=interactions.iterator();
+
+ while (iter.hasNext()) {
+ Interaction interaction=iter.next();
+
+ //TODO: Only deals with single type for now
+ // If a receive and not a response, then
+ // add to the gateway
+ if (InteractionUtil.isSend(interaction) == false &&
+ interaction.getReplyToLabel() == null &&
+ interaction.getMessageSignature().getTypes().size()==1) {
+
+ messageTypes.add(interaction.getMessageSignature());
+ }
+ }
}
if (ifElem.getElseBlock() != null) {
@@ -174,16 +209,54 @@
context.insert(model,
ifElem.getElseBlock().getContents().get(j), j);
}
+
+ java.util.Set<Interaction> interactions=null;
+
+ if (la != null) {
+ interactions = la.getInteractions(ifElem.getElseBlock());
+ }
+
+ switchAction.addCase(subService.getCategory(),
+ subService.getName(), interactions, -1);
- java.util.List<String> messageTypes=new java.util.Vector<String>();
- messageTypes.add("testType");
+ java.util.Iterator<Interaction> iter=interactions.iterator();
- switchAction.addCase(subService.getCategory(),
- subService.getName(), messageTypes, -1);
+ while (iter.hasNext()) {
+ Interaction interaction=iter.next();
+
+ //TODO: Only deals with single type for now
+ // If a receive and not a response, then
+ // add to the gateway
+ if (InteractionUtil.isSend(interaction) == false &&
+ interaction.getReplyToLabel() == null &&
+ interaction.getMessageSignature().getTypes().size()==1) {
+
+ messageTypes.add(interaction.getMessageSignature());
+ }
+ }
}
+
+ if (messageTypes.size() > 0) {
+ ESBService gwService=
+ esbModel.getGatewayService();
+
+ if (gwService != null) {
+ ESBAction gwAction=gwService.getGatewayAction();
+
+ if (gwAction instanceof MessageRouterAction) {
+ MessageRouterAction mra=(MessageRouterAction)
+ gwAction;
+
+ mra.addRoute(service.getCategory(),
+ service.getName(),
+ false, messageTypes);
+ }
+ }
+ }
}
return(true);
}
+ private static Logger logger = Logger.getLogger("org.jboss.tools.overlord.jbossesb.model.change");
}
Copied: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/IdentityUtil.java (from rev 208, cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java)
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/IdentityUtil.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/IdentityUtil.java 2008-07-31 16:26:56 UTC (rev 210)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.util;
+
+import org.scribble.model.*;
+import org.scribble.conversation.model.*;
+
+public class IdentityUtil {
+
+ private static final String LOCATOR_ATTR = "locator";
+ private static final String NAME_ATTR = "name";
+ private static final String TOKEN_ELEMENT = "token";
+ private static final String TYPE_ATTR = "type";
+ private static final String IDENTITY_ELEMENT = "identity";
+
+ public static void defineIdentities(org.w3c.dom.Element identities,
+ MessageSignature message, java.util.List<Identity> ids,
+ java.util.List<IdentityLocator> locators) {
+
+ // Clear root child nodes
+ while (identities.getFirstChild() != null) {
+ identities.removeChild(identities.getFirstChild());
+ }
+
+ for (int i=0; i < ids.size(); i++) {
+ org.w3c.dom.Element identity=
+ identities.getOwnerDocument().createElement(IDENTITY_ELEMENT);
+ identity.setAttribute(TYPE_ATTR,
+ ids.get(i).getIdentityType().name().toLowerCase());
+
+ boolean f_valid=true;
+
+ for (int j=0; f_valid && j < ids.get(i).getNames().size(); j++) {
+ String token=ids.get(i).getNames().get(j);
+ String locator=null;
+
+ for (int k=0; locator == null &&
+ k < message.getTypes().size(); k++) {
+
+ // Find locator for type
+ for (int l=0; locator == null &&
+ l < locators.size(); l++) {
+ IdentityLocator il=locators.get(l);
+
+ if (il.getType().equals(message.getTypes().get(k))) {
+ locator = il.getLocator(token);
+ }
+ }
+ }
+
+ if (locator == null) {
+ f_valid = false;
+ } else {
+ org.w3c.dom.Element tokenElem=
+ identities.getOwnerDocument().createElement(TOKEN_ELEMENT);
+
+ identity.appendChild(tokenElem);
+
+ tokenElem.setAttribute(NAME_ATTR, token);
+ tokenElem.setAttribute(LOCATOR_ATTR, locator);
+ }
+ }
+
+ if (f_valid) {
+ identities.appendChild(identity);
+ }
+ }
+ }
+}
Property changes on: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/IdentityUtil.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/InteractionUtil.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/InteractionUtil.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/util/InteractionUtil.java 2008-07-31 16:26:56 UTC (rev 210)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.util;
+
+import org.scribble.model.*;
+
+/**
+ * This class contains utility functions for dealing with Interactions.
+ */
+public class InteractionUtil {
+
+ /**
+ * This method returns the text representation of the
+ * supplied type reference.
+ *
+ * @param ref The type reference
+ * @return The text for the type
+ */
+ public static String getTypeString(TypeReference ref) {
+ String ret="";
+
+ if (ref.getNamespace() != null) {
+ ret = "{"+ref.getNamespace()+"}";
+ }
+
+ ret += ref.getLocalpart();
+
+ return(ret);
+ }
+
+ /**
+ * This method determines whether the supplied interaction
+ * is a send.
+ *
+ * @param interaction The interaction
+ * @return Whether the interaction is a send
+ */
+ public static boolean isSend(Interaction interaction) {
+ boolean ret=false;
+ Role role=null;
+
+ if (interaction.getEnclosingDefinition() != null) {
+ role = interaction.getEnclosingDefinition().
+ getModelName().getLocatedRole();
+ }
+
+ if (role != null && ((interaction.getFromRole() != null &&
+ interaction.getFromRole().equals(
+ role)) ||
+ (interaction.getToRole() != null &&
+ interaction.getToRole().equals(
+ role) == false))) {
+ ret = true;
+ }
+
+ return(ret);
+ }
+}
15 years, 8 months
Overlord SVN: r209 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model: change and 1 other directory.
by overlord-commits@lists.jboss.org
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
15 years, 8 months
Overlord SVN: r208 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model: change and 1 other directory.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-07-31 08:04:01 -0400 (Thu, 31 Jul 2008)
New Revision: 208
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java
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/SendMessageAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java
Log:
Added send message properties for destination category/name using expressions. Also added identity information for send/receive 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-30 15:47:21 UTC (rev 207)
+++ 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)
@@ -364,7 +364,7 @@
* @param property The property
* @return The element
*/
- protected org.w3c.dom.Element getPropertyElement(String property) {
+ public org.w3c.dom.Element getPropertyElement(String property) {
org.w3c.dom.Element ret=null;
if (m_action != null) {
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java 2008-07-30 15:47:21 UTC (rev 207)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java 2008-07-31 12:04:01 UTC (rev 208)
@@ -28,7 +28,6 @@
*/
public class SendMessageAction extends AbstractESBAction {
- private static final String IDENTITIES = "identities";
private static final String CLIENT_EPR = "clientEPR";
private static final String RESPONSE_SERVICE_NAME = "responseServiceName";
private static final String RESPONSE_SERVICE_CATEGORY = "responseServiceCategory";
@@ -279,6 +278,50 @@
}
/**
+ * This method sets the destination service descriptor properties.
+ *
+ * @param category The category
+ * @param name The name
+ */
+ public void setDestination(String category, String name) {
+
+ org.w3c.dom.Element prop=getPropertyElement(SERVICE_CATEGORY);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, category);
+ }
+
+ prop = getPropertyElement(SERVICE_NAME);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, name);
+ }
+ }
+
+ /**
+ * This method sets the destination expressions for the
+ * service descriptor properties.
+ *
+ * @param categoryExpr The category expression
+ * @param nameExpr The name expression
+ */
+ public void setDestinationExpression(String categoryExpr,
+ String nameExpr) {
+
+ org.w3c.dom.Element prop=getPropertyElement(SERVICE_CATEGORY_EXPRESSION);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, categoryExpr);
+ }
+
+ prop = getPropertyElement(SERVICE_NAME_EXPRESSION);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, nameExpr);
+ }
+ }
+
+ /**
* This method sets the response service descriptor properties.
*
* @param category The category
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-30 15:47:21 UTC (rev 207)
+++ 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)
@@ -30,6 +30,9 @@
@RegistryInfo(extension=ModelChangeRule.class,notation=ESBLanguageModel.JBOSSESB_NOTATION)
public class ConversationInteractionModelChangeRule extends AbstractModelChangeRule {
+ private static final String SERVICE_NAME_ACCESSOR_SUFFIX = "ServiceName";
+ private static final String SERVICE_CATEGORY_ACCESSOR_SUFFIX = "ServiceCategory";
+
/**
* This method determines whether the rule is appropriate
* for the supplied type of model, parent (in the context) and
@@ -73,7 +76,6 @@
public boolean insert(ModelChangeContext context,
Model model, ModelObject mobj, int position) {
ESBLanguageModel esbModel=(ESBLanguageModel)model;
- ESBService service=(ESBService)context.getParent();
ConversationInteraction interaction=(ConversationInteraction)mobj;
// Check if send or receive
@@ -85,147 +87,215 @@
context.getRole()) == false)) {
// Send
- SendMessageAction action=
- new SendMessageAction(service);
+ insertSend(context, esbModel, interaction, position);
- if (interaction.getMessageSignature().getOperation() != null) {
- action.setOperation(interaction.getMessageSignature().getOperation());
+ } else {
+ // Receive
+ insertReceive(context, esbModel, interaction, position);
+ }
+
+ return(true);
+ }
+
+ protected void insertSend(ModelChangeContext context,
+ ESBLanguageModel esbModel, ConversationInteraction interaction,
+ int position) {
+ ESBService service=(ESBService)context.getParent();
+
+ SendMessageAction action=
+ new SendMessageAction(service);
+
+ if (interaction.getMessageSignature().getOperation() != null) {
+ action.setOperation(interaction.getMessageSignature().getOperation());
+ }
+
+ if (interaction.getMessageSignature().getTypes().size() == 1) {
+ TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
+
+ // TODO: Search for an implementation associated with
+ // the type reference, so that the type can be
+ // abstract - possibly have the required message type
+ // notation as part of the context, so that if multiple
+ // implementations found, then can select e.g. XML or
+ // Java as message type representation.
+
+ String mtype=null;
+
+ if (ref.getNamespace() != null) {
+ mtype = "{"+ref.getNamespace()+"}";
+ } else {
+ mtype = "";
}
- if (interaction.getMessageSignature().getTypes().size() == 1) {
- TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
-
- // TODO: Search for an implementation associated with
- // the type reference, so that the type can be
- // abstract - possibly have the required message type
- // notation as part of the context, so that if multiple
- // implementations found, then can select e.g. XML or
- // Java as message type representation.
-
- String mtype=null;
-
- if (ref.getNamespace() != null) {
- mtype = "{"+ref.getNamespace()+"}";
- } else {
- mtype = "";
- }
-
- if (ref.getLocalpart() != null) {
- mtype += ref.getLocalpart();
- }
-
- action.setMessageType(mtype);
+ if (ref.getLocalpart() != null) {
+ mtype += ref.getLocalpart();
}
- service.addAction(action, position);
+ action.setMessageType(mtype);
+ }
+
+ service.addAction(action, position);
+
+ if (interaction.getRequestLabel() != null) {
- if (interaction.getRequestLabel() != null) {
-
- // Create new ESB service
- ESBService respService=esbModel.createService(
- service.getCategory(),
- esbModel.getUniqueServiceName(service.getCategory(),
- service.getName()));
+ // Create new ESB service
+ ESBService respService=esbModel.createService(
+ service.getCategory(),
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
- esbModel.addService(respService);
-
- action.setResponseDestination(respService.getCategory(),
- respService.getName());
+ esbModel.addService(respService);
+
+ action.setResponseDestination(respService.getCategory(),
+ respService.getName());
- context.setParent(respService);
-
- } else if (interaction.getReplyToLabel() != null) {
-
+ context.setParent(respService);
+
+ } else if (interaction.getReplyToLabel() != null) {
+
+ if (interaction.getToRole() != null) {
+ action.setClientEPR(interaction.getToRole().getName());
+ } else {
action.setClientEPR("client");
}
+ }
+
+ // If not reply, then include the target service
+ // details
+ if (interaction.getReplyToLabel() == null &&
+ interaction.getToRole() != null &&
+ interaction.getToRole().getName() != null &&
+ interaction.getToRole().getName().length() > 0) {
+ String roleName=Character.toLowerCase(
+ interaction.getToRole().getName().charAt(0))+
+ interaction.getToRole().getName().substring(1);
- } else {
- // Receive
+ action.setDestinationExpression(roleName+SERVICE_CATEGORY_ACCESSOR_SUFFIX,
+ roleName+SERVICE_NAME_ACCESSOR_SUFFIX);
+ }
+
+ if (interaction.getEnclosingDefinition() instanceof Conversation &&
+ interaction.getEnclosingDefinition().getModel()
+ instanceof ConversationModel) {
- // TODO: Create a new service to receive the
- // message and add a schedule service to link
- // to this new service - issue, how do we
- // deal with request/response
- if (service.isCreateSession() == false &&
- service.isSessionBased()) {
- // Already has activities, so need to separate
- // into another service descriptor
- ESBService recvService=esbModel.createService(
- service.getCategory(),
- esbModel.getUniqueServiceName(service.getCategory(),
- service.getName()));
+ java.util.List<Identity> ids=((Conversation)
+ interaction.getEnclosingDefinition()).getIdentities();
- esbModel.addService(recvService);
-
- // Add schedule action
- ScheduleStateAction schedule=
- new ScheduleStateAction(service);
-
- service.addAction(schedule, position);
+ java.util.List<IdentityLocator> locators=
+ ((ConversationModel)interaction.getEnclosingDefinition().
+ getModel()).getIdentityLocators();
+
+ IdentityUtil.defineIdentities(action.getPropertyElement(
+ SendMessageAction.IDENTITIES),
+ interaction.getMessageSignature(), ids, locators);
+ }
+ }
+
+ protected void insertReceive(ModelChangeContext context,
+ ESBLanguageModel esbModel, ConversationInteraction interaction,
+ int position) {
+ ESBService service=(ESBService)context.getParent();
+
+ // TODO: Create a new service to receive the
+ // message and add a schedule service to link
+ // to this new service - issue, how do we
+ // deal with request/response
+ if (service.isCreateSession() == false &&
+ service.isSessionBased()) {
+ // Already has activities, so need to separate
+ // into another service descriptor
+ ESBService recvService=esbModel.createService(
+ service.getCategory(),
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
- context.setParent(recvService);
- }
+ esbModel.addService(recvService);
- ReceiveMessageAction action=
- new ReceiveMessageAction((ESBService)context.getParent());
+ // Add schedule action
+ ScheduleStateAction schedule=
+ new ScheduleStateAction(service);
- if (interaction.getMessageSignature().getOperation() != null) {
- action.setOperation(interaction.getMessageSignature().getOperation());
- }
+ service.addAction(schedule, position);
+
+ context.setParent(recvService);
+ }
+
+ ReceiveMessageAction action=
+ new ReceiveMessageAction((ESBService)context.getParent());
+
+ if (interaction.getMessageSignature().getOperation() != null) {
+ action.setOperation(interaction.getMessageSignature().getOperation());
+ }
+
+ String mtype=null;
+
+ if (interaction.getMessageSignature().getTypes().size() == 1) {
+ TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
- String mtype=null;
-
- if (interaction.getMessageSignature().getTypes().size() == 1) {
- TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
-
- // TODO: Search for an implementation associated with
- // the type reference, so that the type can be
- // abstract - possibly have the required message type
- // notation as part of the context, so that if multiple
- // implementations found, then can select e.g. XML or
- // Java as message type representation.
+ // TODO: Search for an implementation associated with
+ // the type reference, so that the type can be
+ // abstract - possibly have the required message type
+ // notation as part of the context, so that if multiple
+ // implementations found, then can select e.g. XML or
+ // Java as message type representation.
- if (ref.getNamespace() != null) {
- mtype = "{"+ref.getNamespace()+"}";
- } else {
- mtype = "";
- }
-
- if (ref.getLocalpart() != null) {
- mtype += ref.getLocalpart();
- }
-
- action.setMessageType(mtype);
+ if (ref.getNamespace() != null) {
+ mtype = "{"+ref.getNamespace()+"}";
+ } else {
+ mtype = "";
}
- ((ESBService)context.getParent()).addAction(action, -1);
+ if (ref.getLocalpart() != null) {
+ mtype += ref.getLocalpart();
+ }
- // If not a response, then add to the gateway
- if (interaction.getReplyToLabel() == null) {
- ESBService gwService=esbModel.getGatewayService();
+ action.setMessageType(mtype);
+ }
+
+ ((ESBService)context.getParent()).addAction(action, -1);
+
+ // If not a response, then add to the gateway
+ if (interaction.getReplyToLabel() == null) {
+ ESBService gwService=esbModel.getGatewayService();
+
+ if (gwService != null) {
+ ESBAction gwAction=gwService.getGatewayAction();
- if (gwService != null) {
- ESBAction gwAction=gwService.getGatewayAction();
+ if (gwAction instanceof MessageRouterAction) {
+ MessageRouterAction mra=(MessageRouterAction)
+ gwAction;
- if (gwAction instanceof MessageRouterAction) {
- MessageRouterAction mra=(MessageRouterAction)
- gwAction;
-
- java.util.List<String> mtypes=new java.util.Vector<String>();
- mtypes.add(mtype);
-
- mra.addRoute(((ESBService)context.getParent()).getCategory(),
- ((ESBService)context.getParent()).getName(),
- false, mtypes);
- }
+ java.util.List<String> mtypes=new java.util.Vector<String>();
+ mtypes.add(mtype);
+
+ mra.addRoute(((ESBService)context.getParent()).getCategory(),
+ ((ESBService)context.getParent()).getName(),
+ false, mtypes);
}
-
- // Set client EPR
+ }
+
+ // Set client EPR
+ if (interaction.getFromRole() != null) {
+ action.setClientEPR(interaction.getFromRole().getName());
+ } else {
action.setClientEPR("client");
}
+ }
+
+ if (interaction.getEnclosingDefinition() instanceof Conversation &&
+ interaction.getEnclosingDefinition().getModel()
+ instanceof ConversationModel) {
+
+ java.util.List<Identity> ids=((Conversation)
+ interaction.getEnclosingDefinition()).getIdentities();
+
+ java.util.List<IdentityLocator> locators=
+ ((ConversationModel)interaction.getEnclosingDefinition().
+ getModel()).getIdentityLocators();
+
+ IdentityUtil.defineIdentities(action.getPropertyElement(
+ SendMessageAction.IDENTITIES),
+ interaction.getMessageSignature(), ids, locators);
}
-
- return(true);
}
-
}
Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IdentityUtil.java 2008-07-31 12:04:01 UTC (rev 208)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.change;
+
+import org.scribble.model.*;
+import org.scribble.conversation.model.*;
+
+public class IdentityUtil {
+
+ private static final String LOCATOR_ATTR = "locator";
+ private static final String NAME_ATTR = "name";
+ private static final String TOKEN_ELEMENT = "token";
+ private static final String TYPE_ATTR = "type";
+ private static final String IDENTITY_ELEMENT = "identity";
+
+ public static void defineIdentities(org.w3c.dom.Element identities,
+ MessageSignature message, java.util.List<Identity> ids,
+ java.util.List<IdentityLocator> locators) {
+
+ // Clear root child nodes
+ while (identities.getFirstChild() != null) {
+ identities.removeChild(identities.getFirstChild());
+ }
+
+ for (int i=0; i < ids.size(); i++) {
+ org.w3c.dom.Element identity=
+ identities.getOwnerDocument().createElement(IDENTITY_ELEMENT);
+ identity.setAttribute(TYPE_ATTR,
+ ids.get(i).getIdentityType().name().toLowerCase());
+
+ boolean f_valid=true;
+
+ for (int j=0; f_valid && j < ids.get(i).getNames().size(); j++) {
+ String token=ids.get(i).getNames().get(j);
+ String locator=null;
+
+ for (int k=0; locator == null &&
+ k < message.getTypes().size(); k++) {
+
+ // Find locator for type
+ for (int l=0; locator == null &&
+ l < locators.size(); l++) {
+ IdentityLocator il=locators.get(l);
+
+ if (il.getType().equals(message.getTypes().get(k))) {
+ locator = il.getLocator(token);
+ }
+ }
+ }
+
+ if (locator == null) {
+ f_valid = false;
+ } else {
+ org.w3c.dom.Element tokenElem=
+ identities.getOwnerDocument().createElement(TOKEN_ELEMENT);
+
+ identity.appendChild(tokenElem);
+
+ tokenElem.setAttribute(NAME_ATTR, token);
+ tokenElem.setAttribute(LOCATOR_ATTR, locator);
+ }
+ }
+
+ if (f_valid) {
+ identities.appendChild(identity);
+ }
+ }
+ }
+}
15 years, 8 months
Overlord SVN: r207 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model: change and 1 other directory.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-07-30 11:47:21 -0400 (Wed, 30 Jul 2008)
New Revision: 207
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java
Log:
Fixed generation of client EPR properties.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java 2008-07-30 14:29:46 UTC (rev 206)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java 2008-07-30 15:47:21 UTC (rev 207)
@@ -161,4 +161,18 @@
prop.setAttribute(VALUE_ATTR, type);
}
}
+
+ /**
+ * This method sets the client's EPR label property.
+ *
+ * @param epr The client EPR label
+ */
+ public void setClientEPR(String epr) {
+
+ org.w3c.dom.Element prop=getPropertyElement(CLIENT_EPR);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, epr);
+ }
+ }
}
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-30 14:29:46 UTC (rev 206)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-30 15:47:21 UTC (rev 207)
@@ -120,8 +120,6 @@
service.addAction(action, position);
if (interaction.getRequestLabel() != null) {
-
- action.setClientEPR("client");
// Create new ESB service
ESBService respService=esbModel.createService(
@@ -221,6 +219,9 @@
false, mtypes);
}
}
+
+ // Set client EPR
+ action.setClientEPR("client");
}
}
15 years, 8 months
Overlord SVN: r206 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src: java/org/jboss/tools/overlord/jbossesb/model/change and 3 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-07-30 10:29:46 -0400 (Wed, 30 Jul 2008)
New Revision: 206
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRuleTest.java
Removed:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.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
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModelTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetMessageActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetStateActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SwitchActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhenActionTest.java
Log:
Some refactoring to support unit tests, and initial unit test for If model change rule.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -378,6 +378,17 @@
}
/**
+ * This method creates a new ESB service.
+ *
+ * @param category The category
+ * @param name The name
+ * @return The new ESB service
+ */
+ public ESBService createService(String category, String name) {
+ return(new DefaultESBService(this, category, name));
+ }
+
+ /**
* This method adds a new service to the model.
*
* @param service The service
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -76,6 +76,15 @@
public ESBService getGatewayService();
/**
+ * This method creates a new ESB service.
+ *
+ * @param category The category
+ * @param name The name
+ * @return The new ESB service
+ */
+ public ESBService createService(String category, String name);
+
+ /**
* This method adds a new service to the model.
*
* @param service The service
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-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -124,10 +124,8 @@
action.setClientEPR("client");
// Create new ESB service
-
- // TODO: Create unique service name
- DefaultESBService respService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService respService=esbModel.createService(
+ service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
@@ -154,8 +152,8 @@
service.isSessionBased()) {
// Already has activities, so need to separate
// into another service descriptor
- DefaultESBService recvService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService recvService=esbModel.createService(
+ service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.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-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -114,8 +114,7 @@
}
// Create new ESB service
- DefaultESBService service=new DefaultESBService(
- esbModel, category, name);
+ ESBService service=esbModel.createService(category, name);
esbModel.addService(service);
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -87,8 +87,8 @@
for (int i=0; i < ifElem.getConditionalBlocks().size(); i++) {
ConditionalBlock cb=ifElem.getConditionalBlocks().get(i);
- DefaultESBService subService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService subService=
+ esbModel.createService(service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
@@ -109,8 +109,8 @@
if (ifElem.getElseBlock() != null) {
- DefaultESBService subService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService subService=
+ esbModel.createService(service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
@@ -139,8 +139,8 @@
for (int i=0; i < ifElem.getConditionalBlocks().size(); i++) {
ConditionalBlock cb=ifElem.getConditionalBlocks().get(i);
- DefaultESBService subService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService subService=
+ esbModel.createService(service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
@@ -158,6 +158,29 @@
switchAction.addCase(subService.getCategory(),
subService.getName(), messageTypes, i);
}
+
+ if (ifElem.getElseBlock() != null) {
+
+ ESBService subService=
+ esbModel.createService(service.getCategory(),
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
+
+ esbModel.addService(subService);
+
+ context.setParent(subService);
+
+ for (int j=0; j < ifElem.getElseBlock().getContents().size(); j++) {
+ context.insert(model,
+ ifElem.getElseBlock().getContents().get(j), j);
+ }
+
+ java.util.List<String> messageTypes=new java.util.Vector<String>();
+ messageTypes.add("testType");
+
+ switchAction.addCase(subService.getCategory(),
+ subService.getName(), messageTypes, -1);
+ }
}
return(true);
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModelTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModelTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModelTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -19,7 +19,6 @@
import junit.framework.TestCase;
-import org.jboss.tools.overlord.jbossesb.model.actions.TestESBService;
import org.scribble.model.*;
public class DefaultESBLanguageModelTest extends TestCase {
Copied: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java (from rev 205, cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java)
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model;
+
+import java.util.Collection;
+
+import org.scribble.model.ModelListener;
+import org.scribble.model.ModelReference;
+import org.w3c.dom.Element;
+
+public class TestESBLanguageModel extends org.scribble.lang.model.LanguageModel
+ implements org.jboss.tools.overlord.jbossesb.model.ESBLanguageModel {
+
+ public TestESBLanguageModel() {
+ org.w3c.dom.Document doc=null;
+
+ // Create an empty document
+ try {
+ doc = javax.xml.parsers.DocumentBuilderFactory.
+ newInstance().newDocumentBuilder().newDocument();
+
+ m_esbConfig = doc.createElement(DefaultESBLanguageModel.TOP_LEVEL_ELEMENT);
+
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+ public String getOriginalContents() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ModelReference getModelReference() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ESBService createService(String category, String name) {
+ TestESBService ret=new TestESBService(category, name);
+
+ org.w3c.dom.Element service=m_esbConfig.getOwnerDocument().
+ createElement(DefaultESBService.SERVICE_ELEMENT);
+ m_esbConfig.appendChild(service);
+
+ ret.setService(service);
+
+ return(ret);
+ }
+
+ public void addService(ESBService service) {
+ m_services.put(service.getCategory()+":"+service.getName(), service);
+ }
+
+ public void removeService(ESBService service) {
+ m_services.remove(service.getCategory()+":"+service.getName());
+ }
+
+ public ESBService getService(String category, String name) {
+ return(m_services.get(category+":"+name));
+ }
+
+ public Collection<ESBService> getServices() {
+ return(m_services.values());
+ }
+
+ public ESBService getGatewayService() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void validate(ModelListener l) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public String getUniqueServiceName(String category, String name) {
+ return("serviceName__"+m_count++);
+ }
+
+ public Element getESBConfiguration() {
+ return(m_esbConfig);
+ }
+
+ @Override
+ public String getNotation() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ private java.util.Map<String,ESBService> m_services=new java.util.Hashtable<String,ESBService>();
+ private org.w3c.dom.Element m_esbConfig=null;
+ private int m_count=0;
+}
Property changes on: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java (from rev 205, cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java)
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -0,0 +1,202 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model;
+
+import java.util.List;
+
+import org.scribble.conversation.model.*;
+import org.scribble.model.*;
+import org.w3c.dom.Element;
+
+public class TestESBService extends ModelObject
+ implements org.jboss.tools.overlord.jbossesb.model.ESBService {
+
+ public TestESBService() {
+ }
+
+ public TestESBService(String category, String name) {
+ m_category = category;
+ m_name = name;
+ }
+
+ public void convert(List<Activity> activities, ConversionContext context) {
+ activities.addAll(m_contents);
+ }
+
+ public Conversation convert(ConversionContext context) {
+ return(null);
+ }
+
+ public List<Activity> getContents() {
+ return(m_contents);
+ }
+
+ public List<ESBAction> getActions() {
+ return(m_actions);
+ }
+
+ public void setCategory(String cat) {
+ m_category = cat;
+ }
+
+ public String getCategory() {
+ return(m_category);
+ }
+
+ public void setConversationType(String type) {
+ m_conversationType = type;
+ }
+
+ public String getConversationType() {
+ return(m_conversationType);
+ }
+
+ public void setName(String name) {
+ m_name = name;
+ }
+
+ public String getName() {
+ return(m_name);
+ }
+
+ public void setModel(ESBLanguageModel model) {
+ m_model = model;
+ }
+
+ public ESBLanguageModel getModel() {
+ return(m_model);
+ }
+
+ public Element getService() {
+ return(m_service);
+ }
+
+ public void setService(Element service) {
+ m_service = service;
+ }
+
+ public ClassLoader getServiceClassLoader() throws Exception {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getServiceName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int getServicePosition() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public void setSessionClass(Class<?> cls) {
+ m_sessionClass = cls;
+ }
+
+ public Class<?> getSessionClass() {
+ return(m_sessionClass);
+ }
+
+ public String getSessionName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void initializeLinks() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void setLoop(boolean bool) {
+ m_loop = bool;
+ }
+
+ public boolean isLoop() {
+ return(m_loop);
+ }
+
+ public void setRoot(boolean bool) {
+ m_root = bool;
+ }
+
+ public boolean isRoot() {
+ return(m_root);
+ }
+
+ public void setCreateSession(boolean bool) {
+ m_createSession = bool;
+ }
+
+ public boolean isCreateSession() {
+ return(m_createSession);
+ }
+
+ public void setSessionBased(boolean bool) {
+ m_sessionBased = bool;
+ }
+
+ public boolean isSessionBased() {
+ return(m_sessionBased);
+ }
+
+ public boolean isGateway() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public ESBAction getGatewayAction() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void validate(ModelListener l) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public String getJMSBusIdRef() {
+ return(m_jmsBusIdRef);
+ }
+
+ public void setJMSBusIdRef(String busId) {
+ m_jmsBusIdRef = busId;
+ }
+
+ public void addAction(ESBAction action, int pos) {
+ m_actions.add(action);
+ }
+
+ public boolean removeAction(ESBAction action) {
+ return(m_actions.remove(action));
+ }
+
+ private String m_category=null;
+ private String m_name=null;
+ private ESBLanguageModel m_model=null;
+ private Element m_service;
+ private List<ESBAction> m_actions=new java.util.Vector<ESBAction>();
+ private boolean m_root=false;
+ private boolean m_loop=false;
+ private boolean m_sessionBased=false;
+ private boolean m_createSession=false;
+ private Class<?> m_sessionClass=null;
+ private String m_conversationType=null;
+ private List<Activity> m_contents=new java.util.Vector<Activity>();
+ private String m_jmsBusIdRef=null;
+}
Property changes on: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -19,6 +19,8 @@
import junit.framework.TestCase;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.model.*;
import org.scribble.conversation.model.*;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.conversation.model.*;
import org.scribble.model.Activity;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -17,6 +17,7 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -18,6 +18,8 @@
package org.jboss.tools.overlord.jbossesb.model.actions;
import org.jboss.tools.overlord.jbossesb.model.DefaultConversionContext;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.model.Activity;
import org.scribble.model.Interaction;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetMessageActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetMessageActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetMessageActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -17,6 +17,7 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetStateActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetStateActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetStateActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -17,6 +17,7 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SwitchActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SwitchActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SwitchActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.conversation.model.If;
import org.scribble.model.Activity;
Deleted: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -1,90 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-package org.jboss.tools.overlord.jbossesb.model.actions;
-
-import java.util.Collection;
-
-import org.jboss.tools.overlord.jbossesb.model.*;
-import org.scribble.model.ModelListener;
-import org.scribble.model.ModelReference;
-import org.w3c.dom.Element;
-
-public class TestESBLanguageModel implements org.jboss.tools.overlord.jbossesb.model.ESBLanguageModel {
-
- public TestESBLanguageModel() {
- org.w3c.dom.Document doc=null;
-
- // Create an empty document
- try {
- doc = javax.xml.parsers.DocumentBuilderFactory.
- newInstance().newDocumentBuilder().newDocument();
-
- m_esbConfig = doc.createElement(DefaultESBLanguageModel.TOP_LEVEL_ELEMENT);
-
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- public String getOriginalContents() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public ModelReference getModelReference() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void addService(ESBService service) {
- m_services.put(service.getCategory()+":"+service.getName(), service);
- }
-
- public void removeService(ESBService service) {
- m_services.remove(service.getCategory()+":"+service.getName());
- }
-
- public ESBService getService(String category, String name) {
- return(m_services.get(category+":"+name));
- }
-
- public Collection<ESBService> getServices() {
- return(m_services.values());
- }
-
- public ESBService getGatewayService() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void validate(ModelListener l) {
- // TODO Auto-generated method stub
-
- }
-
- public String getUniqueServiceName(String category, String name) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Element getESBConfiguration() {
- return(m_esbConfig);
- }
-
- private java.util.Map<String,ESBService> m_services=new java.util.Hashtable<String,ESBService>();
- private org.w3c.dom.Element m_esbConfig=null;
-}
Deleted: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -1,195 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-package org.jboss.tools.overlord.jbossesb.model.actions;
-
-import java.util.List;
-
-import org.jboss.tools.overlord.jbossesb.model.ConversionContext;
-import org.jboss.tools.overlord.jbossesb.model.ESBAction;
-import org.jboss.tools.overlord.jbossesb.model.ESBLanguageModel;
-import org.scribble.conversation.model.Conversation;
-import org.scribble.model.Activity;
-import org.scribble.model.ModelListener;
-import org.w3c.dom.Element;
-
-public class TestESBService implements org.jboss.tools.overlord.jbossesb.model.ESBService {
-
- public void convert(List<Activity> activities, ConversionContext context) {
- activities.addAll(m_contents);
- }
-
- public Conversation convert(ConversionContext context) {
- return(null);
- }
-
- public List<Activity> getContents() {
- return(m_contents);
- }
-
- public List<ESBAction> getActions() {
- return(m_actions);
- }
-
- public void setCategory(String cat) {
- m_category = cat;
- }
-
- public String getCategory() {
- return(m_category);
- }
-
- public void setConversationType(String type) {
- m_conversationType = type;
- }
-
- public String getConversationType() {
- return(m_conversationType);
- }
-
- public void setName(String name) {
- m_name = name;
- }
-
- public String getName() {
- return(m_name);
- }
-
- public void setModel(ESBLanguageModel model) {
- m_model = model;
- }
-
- public ESBLanguageModel getModel() {
- return(m_model);
- }
-
- public Element getService() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public ClassLoader getServiceClassLoader() throws Exception {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String getServiceName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public int getServicePosition() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- public void setSessionClass(Class<?> cls) {
- m_sessionClass = cls;
- }
-
- public Class<?> getSessionClass() {
- return(m_sessionClass);
- }
-
- public String getSessionName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void initializeLinks() {
- // TODO Auto-generated method stub
-
- }
-
- public void setLoop(boolean bool) {
- m_loop = bool;
- }
-
- public boolean isLoop() {
- return(m_loop);
- }
-
- public void setRoot(boolean bool) {
- m_root = bool;
- }
-
- public boolean isRoot() {
- return(m_root);
- }
-
- public void setCreateSession(boolean bool) {
- m_createSession = bool;
- }
-
- public boolean isCreateSession() {
- return(m_createSession);
- }
-
- public void setSessionBased(boolean bool) {
- m_sessionBased = bool;
- }
-
- public boolean isSessionBased() {
- return(m_sessionBased);
- }
-
- public boolean isGateway() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public ESBAction getGatewayAction() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void validate(ModelListener l) {
- // TODO Auto-generated method stub
-
- }
-
- public String getJMSBusIdRef() {
- return(m_jmsBusIdRef);
- }
-
- public void setJMSBusIdRef(String busId) {
- m_jmsBusIdRef = busId;
- }
-
- public void addAction(ESBAction action, int pos) {
- // TODO Auto-generated method stub
-
- }
-
- public boolean removeAction(ESBAction action) {
- // TODO Auto-generated method stub
- return false;
- }
-
- private String m_category=null;
- private String m_name=null;
- private ESBLanguageModel m_model=null;
- private List<ESBAction> m_actions=new java.util.Vector<ESBAction>();
- private boolean m_root=false;
- private boolean m_loop=false;
- private boolean m_sessionBased=false;
- private boolean m_createSession=false;
- private Class<?> m_sessionClass=null;
- private String m_conversationType=null;
- private List<Activity> m_contents=new java.util.Vector<Activity>();
- private String m_jmsBusIdRef=null;
-}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhenActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhenActionTest.java 2008-07-30 11:09:22 UTC (rev 205)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhenActionTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.conversation.model.*;
import org.scribble.model.*;
Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRuleTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRuleTest.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRuleTest.java 2008-07-30 14:29:46 UTC (rev 206)
@@ -0,0 +1,538 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.change;
+
+import junit.framework.TestCase;
+
+import org.jboss.tools.overlord.jbossesb.model.*;
+import org.jboss.tools.overlord.jbossesb.model.actions.*;
+import org.scribble.model.*;
+import org.scribble.model.change.*;
+import org.scribble.conversation.model.*;
+
+public class IfModelChangeRuleTest extends TestCase {
+
+ public void testInsertIfAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ If mobj=new If();
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ mobj.getRoles().add(role);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof IfAction) == false) {
+ fail("Action was not IfAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 2) {
+ fail("Two services expected: "+model.getServices().size());
+ }
+
+ ESBService ifService=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while (ifService == null && iter.hasNext()) {
+ ifService = iter.next();
+ if (ifService == service) {
+ ifService = null;
+ }
+ }
+
+ IfAction action=(IfAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 1) {
+ fail("Only one path child expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("if") == false) {
+ fail("If expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(ifService.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+ifService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(ifService.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+ifService.getName());
+ }
+ }
+
+ public void testInsertIfElseIfAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ If mobj=new If();
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ ConditionalBlock cb2=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb2);
+
+ ConditionalBlock cb3=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb3);
+
+ mobj.getRoles().add(role);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof IfAction) == false) {
+ fail("Action was not IfAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 4) {
+ fail("Four services expected: "+model.getServices().size());
+ }
+
+ ESBService ifService=null;
+ ESBService elseIfService1=null;
+ ESBService elseIfService2=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while ((ifService == null || elseIfService1 == null ||
+ elseIfService2 == null) && iter.hasNext()) {
+ ESBService serv = iter.next();
+ if (serv.getName().endsWith("__0")) {
+ ifService = serv;
+ }
+ if (serv.getName().endsWith("__1")) {
+ elseIfService1 = serv;
+ }
+ if (serv.getName().endsWith("__2")) {
+ elseIfService2 = serv;
+ }
+ }
+
+ IfAction action=(IfAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 3) {
+ fail("Three path children expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("if") == false) {
+ fail("If expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(ifService.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+ifService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(ifService.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+ifService.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(1);
+
+ if (elem.getNodeName().equals("elseif") == false) {
+ fail("ElseIf expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(elseIfService1.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+elseIfService1.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(elseIfService1.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+elseIfService1.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(2);
+
+ if (elem.getNodeName().equals("elseif") == false) {
+ fail("ElseIf(2) expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(elseIfService2.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+elseIfService2.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(elseIfService2.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+elseIfService2.getName());
+ }
+ }
+
+ public void testInsertIfElseAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ If mobj=new If();
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ Block b1=new Block();
+ mobj.setElseBlock(b1);
+
+ mobj.getRoles().add(role);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof IfAction) == false) {
+ fail("Action was not IfAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 3) {
+ fail("Three services expected: "+model.getServices().size());
+ }
+
+ ESBService ifService=null;
+ ESBService elseService=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while ((ifService == null || elseService == null) &&
+ iter.hasNext()) {
+ ESBService serv = iter.next();
+ if (serv.getName().endsWith("__0")) {
+ ifService = serv;
+ }
+ if (serv.getName().endsWith("__1")) {
+ elseService = serv;
+ }
+ }
+
+ IfAction action=(IfAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 2) {
+ fail("Three path children expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("if") == false) {
+ fail("If expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(ifService.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+ifService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(ifService.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+ifService.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(1);
+
+ if (elem.getNodeName().equals("else") == false) {
+ fail("Else expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(elseService.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+elseService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(elseService.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+elseService.getName());
+ }
+ }
+
+ public void testInsertSwitchAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role1=new Role();
+ role1.setName("role1");
+
+ Role role2=new Role();
+ role2.setName("role2");
+
+ context.setRole(role1);
+
+ If mobj=new If();
+
+ mobj.getRoles().add(role2);
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof SwitchAction) == false) {
+ fail("Action was not SwitchAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 2) {
+ fail("Two services expected: "+model.getServices().size());
+ }
+
+ ESBService switchService=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while (switchService == null && iter.hasNext()) {
+ switchService = iter.next();
+ if (switchService == service) {
+ switchService = null;
+ }
+ }
+
+ SwitchAction action=(SwitchAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 1) {
+ fail("Only one path child expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("case") == false) {
+ fail("Switch expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(switchService.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+switchService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(switchService.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+switchService.getName());
+ }
+ }
+
+ public void testInsertSwitchMultipleCaseAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role1=new Role();
+ role1.setName("role1");
+
+ Role role2=new Role();
+ role2.setName("role2");
+
+ context.setRole(role1);
+
+ If mobj=new If();
+
+ mobj.getRoles().add(role2);
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ ConditionalBlock cb2=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb2);
+
+ Block b1=new Block();
+ mobj.setElseBlock(b1);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof SwitchAction) == false) {
+ fail("Action was not SwitchAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 4) {
+ fail("Four services expected: "+model.getServices().size());
+ }
+
+ ESBService caseService1=null;
+ ESBService caseService2=null;
+ ESBService caseService3=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while ((caseService1 == null || caseService2 == null ||
+ caseService3 == null) && iter.hasNext()) {
+ ESBService serv = iter.next();
+ if (serv.getName().endsWith("__0")) {
+ caseService1 = serv;
+ }
+ if (serv.getName().endsWith("__1")) {
+ caseService2 = serv;
+ }
+ if (serv.getName().endsWith("__2")) {
+ caseService3 = serv;
+ }
+ }
+
+ SwitchAction action=(SwitchAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 3) {
+ fail("Three path children expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("case") == false) {
+ fail("If expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(caseService1.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+caseService1.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(caseService1.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+caseService1.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(1);
+
+ if (elem.getNodeName().equals("case") == false) {
+ fail("Else expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(caseService2.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+caseService2.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(caseService2.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+caseService2.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(2);
+
+ if (elem.getNodeName().equals("case") == false) {
+ fail("Else expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(caseService3.getCategory()) == false) {
+ fail("Service category '"+elem.getAttribute("service-category")+
+ "' not expected: "+caseService3.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(caseService3.getName()) == false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+caseService3.getName());
+ }
+ }
+}
15 years, 8 months
Overlord SVN: r205 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src: java/org/jboss/tools/overlord/jbossesb/model/actions and 3 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-07-30 07:09:22 -0400 (Wed, 30 Jul 2008)
New Revision: 205
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
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/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
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
Log:
Creation of gateway service with message router action, and updating routes based on received requests. Changed naming schema for services to be auto generated using unique names.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -40,6 +40,7 @@
public class DefaultESBLanguageModel extends org.scribble.lang.model.LanguageModel
implements ESBLanguageModel {
+ private static final String SERVICE_NAME_SEPARATOR = "__";
public static final String DEST_NAME_PREFIX = "queue/";
public static final String DEST_NAME_ATTR = "dest-name";
public static final String DEST_TYPE_VALUE = "QUEUE";
@@ -501,6 +502,52 @@
}
/**
+ * This method returns a unique service name within
+ * the supplied category.
+ *
+ * @param category The category
+ * @param currentServiceName The name of the service creating
+ * the new service
+ * @return The unique service name
+ */
+ public String getUniqueServiceName(String category, String currentServiceName) {
+ String ret=null;
+
+ int index=currentServiceName.indexOf(SERVICE_NAME_SEPARATOR);
+ if (index != -1) {
+ currentServiceName = currentServiceName.substring(0, index);
+ }
+
+ index = 0;
+ do {
+ index++;
+ ret = currentServiceName+SERVICE_NAME_SEPARATOR+index;
+ } while(getService(category, ret) != null);
+
+ return(ret);
+ }
+
+ /**
+ * This method returns the gateway service.
+ *
+ * @return The gateway service, or null if not found
+ */
+ public ESBService getGatewayService() {
+ ESBService ret=null;
+
+ java.util.Iterator<ESBService> iter=getServices().iterator();
+ while (ret == null && iter.hasNext()) {
+ ret = iter.next();
+
+ if (ret.isGateway() == false) {
+ ret = null;
+ }
+ }
+
+ return(ret);
+ }
+
+ /**
* This method returns the reference to the DOM
* representation of the ESB configuration.
*
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -261,7 +261,34 @@
// element
if (action.getAction() != null) {
- m_actionsElem.appendChild(action.getAction());
+
+ if (pos == -1 || pos >= m_actions.size()) {
+ m_actionsElem.appendChild(action.getAction());
+ m_actions.add(action);
+ } else {
+ org.w3c.dom.NodeList nl=m_actionsElem.getChildNodes();
+ org.w3c.dom.Element elem=null;
+ int cur=-1;
+
+ for (int i=0; i < nl.getLength(); i++) {
+ if (nl.item(i) instanceof org.w3c.dom.Element &&
+ nl.item(i).getNodeName().equals(ACTION_ELEMENT)) {
+ cur++;
+
+ if (cur == pos) {
+ elem = (org.w3c.dom.Element)nl.item(i);
+ }
+ }
+ }
+
+ if (elem != null) {
+ m_actionsElem.insertBefore(action.getAction(), elem);
+ } else {
+ m_actionsElem.appendChild(action.getAction());
+ }
+
+ m_actions.add(pos, action);
+ }
}
}
@@ -390,6 +417,40 @@
}
/**
+ * This method determines whether the service is a gateway
+ * for inbound requests.
+ *
+ * @return Whether the service is a gateway
+ */
+ public boolean isGateway() {
+ boolean ret=false;
+
+ for (int i=0; ret == false && i < m_actions.size(); i++) {
+ ret = m_actions.get(i).isGateway();
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method returns the gateway action if this is a
+ * gateway service.
+ *
+ * @return The gateway action
+ */
+ public ESBAction getGatewayAction() {
+ ESBAction ret=null;
+
+ for (int i=0; ret == null && i < m_actions.size(); i++) {
+ if (m_actions.get(i).isGateway()) {
+ ret = m_actions.get(i);
+ }
+ }
+
+ return(ret);
+ }
+
+ /**
* This method returns the first session based action in the
* service descriptor.
*
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBAction.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBAction.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -64,6 +64,14 @@
public boolean isCreateSession();
/**
+ * This method determines whether the action is a gateway
+ * for inbound requests.
+ *
+ * @return Whether the action is a gateway
+ */
+ public boolean isGateway();
+
+ /**
* This method indicates whether this action performs another
* sub-conversation.
*
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -69,6 +69,13 @@
public String getOriginalContents();
/**
+ * This method returns the gateway service.
+ *
+ * @return The gateway service, or null if not found
+ */
+ public ESBService getGatewayService();
+
+ /**
* This method adds a new service to the model.
*
* @param service The service
@@ -83,6 +90,18 @@
public void removeService(ESBService service);
/**
+ * This method returns a unique service name within
+ * the supplied category.
+ *
+ * @param category The category
+ * @param currentServiceName The name of the service creating
+ * the new service
+ * @return The unique service name
+ */
+ public String getUniqueServiceName(String category,
+ String currentServiceName);
+
+ /**
* This method returns the reference to the DOM
* representation of the ESB configuration.
*
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -118,6 +118,22 @@
public boolean isCreateSession();
/**
+ * This method determines whether the service is a gateway
+ * for inbound requests.
+ *
+ * @return Whether the service is a gateway
+ */
+ public boolean isGateway();
+
+ /**
+ * This method returns the gateway action if this is a
+ * gateway service.
+ *
+ * @return The gateway action
+ */
+ public ESBAction getGatewayAction();
+
+ /**
* This method returns the service description name associated with the
* ESB service.
*
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-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/AbstractESBAction.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -273,6 +273,16 @@
}
/**
+ * This method determines whether the action is a gateway
+ * for inbound requests.
+ *
+ * @return Whether the action is a gateway
+ */
+ public boolean isGateway() {
+ return(false);
+ }
+
+ /**
* This method indicates whether this action performs another
* sub-conversation.
*
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-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -34,11 +34,13 @@
*/
public class MessageRouterAction extends AbstractESBAction {
- private static final String INITIATE = "initiate";
- private static final String SERVICE_NAME = "service-name";
- private static final String SERVICE_CATEGORY = "service-category";
- private static final String ROUTE = "route";
- private static final String PATHS = "paths";
+ public static final String INITIATE = "initiate";
+ public static final String SERVICE_NAME = "service-name";
+ public static final String SERVICE_CATEGORY = "service-category";
+ public static final String ROUTE = "route";
+ public static final String PATHS = "paths";
+ public static final String MESSAGE_ELEMENT="message";
+ public static final String TYPE_ATTR="type";
/**
* The constructor for the action.
@@ -117,6 +119,46 @@
}
/**
+ * This method determines whether the action is a gateway
+ * for inbound requests.
+ *
+ * @return Whether the action is a gateway
+ */
+ public boolean isGateway() {
+ return(true);
+ }
+
+ /**
+ * This method adds a route to the message router action.
+ *
+ * @param category The service category
+ * @param name The service name
+ * @param initiate Whether the route initiates the service
+ * @param messageTypes The list of message types
+ */
+ public void addRoute(String category, String name, boolean initiate,
+ java.util.List<String> messageTypes) {
+
+ org.w3c.dom.Element paths=getPropertyElement(PATHS);
+
+ org.w3c.dom.Element path=
+ getAction().getOwnerDocument().createElement(ROUTE);
+ path.setAttribute(SERVICE_CATEGORY, category);
+ path.setAttribute(SERVICE_NAME, name);
+
+ for (int i=0; i < messageTypes.size(); i++) {
+ org.w3c.dom.Element mt=
+ getAction().getOwnerDocument().createElement(MESSAGE_ELEMENT);
+
+ mt.setAttribute(TYPE_ATTR, messageTypes.get(i));
+
+ path.appendChild(mt);
+ }
+
+ paths.appendChild(path);
+ }
+
+ /**
* This method returns the mandatory property names.
*
* @return The mandatory property names
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-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -128,7 +128,8 @@
// TODO: Create unique service name
DefaultESBService respService=new DefaultESBService(
esbModel, service.getCategory(),
- service.getName()+"_2");
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
esbModel.addService(respService);
@@ -143,6 +144,7 @@
}
} else {
+ // Receive
// TODO: Create a new service to receive the
// message and add a schedule service to link
@@ -154,21 +156,29 @@
// into another service descriptor
DefaultESBService recvService=new DefaultESBService(
esbModel, service.getCategory(),
- service.getName()+"_3");
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
esbModel.addService(recvService);
+
+ // Add schedule action
+ ScheduleStateAction schedule=
+ new ScheduleStateAction(service);
+
+ service.addAction(schedule, position);
context.setParent(recvService);
}
- // Receive
ReceiveMessageAction action=
- new ReceiveMessageAction(service);
+ new ReceiveMessageAction((ESBService)context.getParent());
if (interaction.getMessageSignature().getOperation() != null) {
action.setOperation(interaction.getMessageSignature().getOperation());
}
+ String mtype=null;
+
if (interaction.getMessageSignature().getTypes().size() == 1) {
TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
@@ -179,8 +189,6 @@
// implementations found, then can select e.g. XML or
// Java as message type representation.
- String mtype=null;
-
if (ref.getNamespace() != null) {
mtype = "{"+ref.getNamespace()+"}";
} else {
@@ -194,7 +202,28 @@
action.setMessageType(mtype);
}
- ((ESBService)context.getParent()).addAction(action, position);
+ ((ESBService)context.getParent()).addAction(action, -1);
+
+ // If not a response, then add to the gateway
+ if (interaction.getReplyToLabel() == null) {
+ ESBService gwService=esbModel.getGatewayService();
+
+ if (gwService != null) {
+ ESBAction gwAction=gwService.getGatewayAction();
+
+ if (gwAction instanceof MessageRouterAction) {
+ MessageRouterAction mra=(MessageRouterAction)
+ gwAction;
+
+ java.util.List<String> mtypes=new java.util.Vector<String>();
+ mtypes.add(mtype);
+
+ mra.addRoute(((ESBService)context.getParent()).getCategory(),
+ ((ESBService)context.getParent()).getName(),
+ false, mtypes);
+ }
+ }
+ }
}
return(true);
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-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -30,6 +30,8 @@
@RegistryInfo(extension=ModelChangeRule.class,notation=ESBLanguageModel.JBOSSESB_NOTATION)
public class ConversationModelChangeRule extends AbstractModelChangeRule {
+ private static final String NAME_SUFFIX = "_main";
+
/**
* This method determines whether the rule is appropriate
* for the supplied type of model, parent (in the context) and
@@ -76,9 +78,41 @@
String category=((Model)conv.getModel()).
getNamespace().getName();
- String name=conv.getModelName().getName()+"-"+
- conv.getModelName().getLocatedRole().getName();
+ String qualifier="";
+ Definition defn=conv;
+
+ // Create a hierarchical name related to the conversation
+ while (defn != null) {
+ qualifier = "."+defn.getModelName().getName();
+
+ if (defn.getParent() instanceof Definition) {
+ defn = (Definition)defn.getParent();
+ } else {
+ defn = null;
+ }
+ }
+
+ category += qualifier;
+
+ String name=conv.getModelName().getLocatedRole().getName();
+
+ // Check if root conversation
+ if (conv.getParent() instanceof Model) {
+
+ // Register gateway service
+ DefaultESBService gateway=new DefaultESBService(esbModel,
+ category, name);
+
+ MessageRouterAction mra=new MessageRouterAction(gateway);
+
+ gateway.addAction(mra, -1);
+
+ esbModel.addService(gateway);
+
+ name += NAME_SUFFIX;
+ }
+
// Create new ESB service
DefaultESBService service=new DefaultESBService(
esbModel, category, name);
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -89,7 +89,8 @@
DefaultESBService subService=new DefaultESBService(
esbModel, service.getCategory(),
- service.getName()+"_"+i);
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
esbModel.addService(subService);
@@ -110,7 +111,8 @@
DefaultESBService subService=new DefaultESBService(
esbModel, service.getCategory(),
- service.getName()+"_else");
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
esbModel.addService(subService);
@@ -139,7 +141,8 @@
DefaultESBService subService=new DefaultESBService(
esbModel, service.getCategory(),
- service.getName()+"_"+i);
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
esbModel.addService(subService);
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBAction.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBAction.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -82,6 +82,11 @@
m_createSession = bool;
}
+ public boolean isGateway() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
public void validate(ModelListener l) {
// TODO Auto-generated method stub
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -66,11 +66,21 @@
return(m_services.values());
}
+ public ESBService getGatewayService() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
public void validate(ModelListener l) {
// TODO Auto-generated method stub
}
+ public String getUniqueServiceName(String category, String name) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
public Element getESBConfiguration() {
return(m_esbConfig);
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-29 19:26:43 UTC (rev 204)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-30 11:09:22 UTC (rev 205)
@@ -147,6 +147,16 @@
return(m_sessionBased);
}
+ public boolean isGateway() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public ESBAction getGatewayAction() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
public void validate(ModelListener l) {
// TODO Auto-generated method stub
15 years, 8 months
Overlord SVN: r204 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb: src/java/org/jboss/tools/overlord/jbossesb/actions and 2 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-07-29 15:26:43 -0400 (Tue, 29 Jul 2008)
New Revision: 204
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/LanguageToConversationModelChangeRule.java
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/META-INF/MANIFEST.MF
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java
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/IfAction.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/actions/ParallelAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhenAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.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:
Further work on generating actions.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/META-INF/MANIFEST.MF
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/META-INF/MANIFEST.MF 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/META-INF/MANIFEST.MF 2008-07-29 19:26:43 UTC (rev 204)
@@ -17,6 +17,8 @@
Scribble-Extensions: org.jboss.tools.overlord.jbossesb.parser.JBossESBParser,
org.jboss.tools.overlord.jbossesb.parser.JBossESBNotation,
org.jboss.tools.overlord.jbossesb.validation.ESBLanguageModelValidationRule,
+ org.jboss.tools.overlord.jbossesb.model.change.LanguageToConversationModelChangeRule,
org.jboss.tools.overlord.jbossesb.model.change.ConversationModelChangeRule,
- org.jboss.tools.overlord.jbossesb.model.change.ConversationInteractionModelChangeRule
+ org.jboss.tools.overlord.jbossesb.model.change.ConversationInteractionModelChangeRule,
+ org.jboss.tools.overlord.jbossesb.model.change.IfModelChangeRule
Bundle-ActivationPolicy: lazy
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -122,12 +122,17 @@
DefaultESBLanguageModel target=
new DefaultESBLanguageModel(targetRef);
- ModelChangeContext context=
- new DefaultModelChangeContext(targetRef);
+ ModelGenerator generator=(ModelGenerator)
+ RegistryFactory.getRegistry().getExtension(
+ ModelGenerator.class, null);
- context.insert(target, target,
- lcm.getConversation(), -1);
-
+ if (generator != null) {
+ generator.generate(targetRef, role, target,
+ lcm);
+ } else {
+ logger.severe("Unable to find model generator");
+ }
+
try {
System.out.println("------------------------------");
System.out.println("ROLE="+role.getName());
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-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/AbstractESBAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -33,11 +33,11 @@
public static final String SERVICE_DESCRIPTION_NAME = "serviceDescriptionName";
public static final String IDENTITIES = "identities";
public static final String SESSION = "session";
- private static final String ACTION_ELEMENT = "action";
- private static final String VALUE_ATTR = "value";
- private static final String NAME_ATTR = "name";
- private static final String PROPERTY_ELEMENT = "property";
- private static final String CLASS_PROPERTY = "class";
+ public static final String ACTION_ELEMENT = "action";
+ public static final String VALUE_ATTR = "value";
+ public static final String NAME_ATTR = "name";
+ public static final String PROPERTY_ELEMENT = "property";
+ public static final String CLASS_PROPERTY = "class";
protected static final String BUSINESS_OBJECT_TYPE_PROPERTY = SESSION;
@@ -347,6 +347,42 @@
}
/**
+ * This method returns the element associated with the
+ * requested property. If the property does not exist, then
+ * it will be created.
+ *
+ * @param property The property
+ * @return The element
+ */
+ protected org.w3c.dom.Element getPropertyElement(String property) {
+ org.w3c.dom.Element ret=null;
+
+ if (m_action != null) {
+ org.w3c.dom.NodeList nl=
+ getAction().getElementsByTagName(PROPERTY_ELEMENT);
+
+ for (int i=0; ret == null && i < nl.getLength(); i++) {
+ if (nl.item(i) instanceof org.w3c.dom.Element) {
+ String propName=((org.w3c.dom.Element)nl.item(i)).getAttribute(NAME_ATTR);
+
+ if (propName != null && propName.equals(property)) {
+ ret = (org.w3c.dom.Element)nl.item(i);
+ }
+ }
+ }
+
+ if (ret == null) {
+ ret = getAction().getOwnerDocument().createElement(PROPERTY_ELEMENT);
+ ret.setAttribute(NAME_ATTR, property);
+
+ m_action.appendChild(ret);
+ }
+ }
+
+ return(ret);
+ }
+
+ /**
* This method returns the list of property names defined for
* this 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-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -19,6 +19,7 @@
import org.jboss.tools.overlord.jbossesb.model.ConversionContext;
import org.jboss.tools.overlord.jbossesb.model.ESBAction;
+import org.jboss.tools.overlord.jbossesb.model.ESBActionFactory;
import org.jboss.tools.overlord.jbossesb.model.ESBService;
import org.scribble.model.*;
@@ -45,6 +46,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public CreateSessionAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ CreateSessionAction.class));
+ }
+
+ /**
* This method determines whether the ESB action represents
* a CreateSessionAction.
*
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -31,10 +31,11 @@
public static final String SERVICE_NAME = "service-name";
public static final String SERVICE_CATEGORY = "service-category";
public static final String IMMEDIATE = "immediate";
- private static final String ELSE = "else";
- private static final String ELSEIF = "elseif";
- private static final String IF = "if";
- private static final String PATHS = "paths";
+ public static final String EXPRESSION = "expression";
+ public static final String ELSE = "else";
+ public static final String ELSEIF = "elseif";
+ public static final String IF = "if";
+ public static final String PATHS = "paths";
/**
* The constructor for the action.
@@ -49,6 +50,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public IfAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ IfAction.class));
+ }
+
+ /**
* This method initializes the links with the ESB service descriptors
* identified in each path of the action.
*/
@@ -260,4 +273,50 @@
}
}
+ /**
+ * This method adds a path to the if action.
+ *
+ * @param type The type of path (IF, ELSEIF or ELSE)
+ * @param category The service category
+ * @param name The service name
+ * @param immediate Whether invocation should be immediate
+ * @param expr The expression, if type is IF or ELSEIF
+ * @param position The position, if type is ELSEIF
+ */
+ public void addPath(String type, String category, String name,
+ boolean immediate, String expr, int position) {
+
+ org.w3c.dom.NodeList nl=
+ getAction().getElementsByTagName(PROPERTY_ELEMENT);
+
+ org.w3c.dom.Element paths=null;
+
+ for (int i=0; paths == null && i < nl.getLength(); i++) {
+ if (nl.item(i) instanceof org.w3c.dom.Element) {
+ String propName=((org.w3c.dom.Element)nl.item(i)).getAttribute(NAME_ATTR);
+
+ if (propName != null && propName.equals(PATHS)) {
+ paths = (org.w3c.dom.Element)nl.item(i);
+ }
+ }
+ }
+
+ if (paths == null) {
+ paths = getAction().getOwnerDocument().createElement(PROPERTY_ELEMENT);
+ paths.setAttribute(NAME_ATTR, PATHS);
+
+ getAction().appendChild(paths);
+ }
+
+ org.w3c.dom.Element path=getAction().getOwnerDocument().createElement(type);
+ path.setAttribute(SERVICE_CATEGORY, category);
+ path.setAttribute(SERVICE_NAME, name);
+ path.setAttribute(IMMEDIATE, ""+immediate);
+
+ if (expr != null && (type == IF || type == ELSEIF)) {
+ path.setAttribute(EXPRESSION, expr);
+ }
+
+ paths.appendChild(path);
+ }
}
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-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -53,6 +53,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public MessageRouterAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ MessageRouterAction.class));
+ }
+
+ /**
* This method initializes the links with the ESB service descriptors
* identified in each path of the action.
*/
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -48,6 +48,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public ParallelAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ ParallelAction.class));
+ }
+
+ /**
* This method initializes the links with the ESB service descriptors
* identified in each path of the action.
*/
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -133,4 +133,32 @@
recv.setToRole(new Role(context.getRole()));
}
}
+
+ /**
+ * This method sets the operation property.
+ *
+ * @param operation The operation
+ */
+ public void setOperation(String operation) {
+
+ org.w3c.dom.Element prop=getPropertyElement(OPERATION);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, operation);
+ }
+ }
+
+ /**
+ * This method sets the message type.
+ *
+ * @param type The message type
+ */
+ public void setMessageType(String type) {
+
+ org.w3c.dom.Element prop=getPropertyElement(MESSAGE_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/ScheduleStateAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -45,6 +45,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public ScheduleStateAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ ScheduleStateAction.class));
+ }
+
+ /**
* This method initializes the links with the ESB service descriptors
* identified in each path of the action.
*/
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -52,6 +52,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public SendMessageAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ SendMessageAction.class));
+ }
+
+ /**
* This method initializes the links with the ESB service descriptors
* identified in each path of the action.
*/
@@ -223,4 +235,67 @@
}
}
}
+
+ /**
+ * This method sets the operation property.
+ *
+ * @param operation The operation
+ */
+ public void setOperation(String operation) {
+
+ org.w3c.dom.Element prop=getPropertyElement(OPERATION);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, operation);
+ }
+ }
+
+ /**
+ * This method sets the client's EPR label property.
+ *
+ * @param epr The client EPR label
+ */
+ public void setClientEPR(String epr) {
+
+ org.w3c.dom.Element prop=getPropertyElement(CLIENT_EPR);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, epr);
+ }
+ }
+
+ /**
+ * This method sets the message type.
+ *
+ * @param type The message type
+ */
+ public void setMessageType(String type) {
+
+ org.w3c.dom.Element prop=getPropertyElement(MESSAGE_TYPE);
+
+ if (prop != null) {
+ prop.setAttribute(VALUE_ATTR, type);
+ }
+ }
+
+ /**
+ * 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.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SwitchAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -28,6 +28,8 @@
*/
public class SwitchAction extends AbstractESBAction {
+ public static final String TYPE_ATTR = "type";
+ public static final String MESSAGE_ELEMENT = "message";
private static final String SERVICE_NAME = "service-name";
private static final String SERVICE_CATEGORY = "service-category";
private static final String CASE = "case";
@@ -46,6 +48,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public SwitchAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ SwitchAction.class));
+ }
+
+ /**
* This method initializes the links with the ESB service descriptors
* identified in each path of the action.
*/
@@ -178,4 +192,55 @@
}
}
+ /**
+ * This method adds a path to the switch action.
+ *
+ * @param category The service category
+ * @param name The service name
+ * @param messageTypes The list of message types
+ * @param position The position
+ */
+ public void addCase(String category, String name,
+ java.util.List<String> messageTypes, int position) {
+
+ org.w3c.dom.Element paths=getPropertyElement(PATHS);
+
+ /*
+ org.w3c.dom.NodeList nl=
+ getAction().getElementsByTagName(PROPERTY_ELEMENT);
+
+ for (int i=0; paths == null && i < nl.getLength(); i++) {
+ if (nl.item(i) instanceof org.w3c.dom.Element) {
+ String propName=((org.w3c.dom.Element)nl.item(i)).getAttribute(NAME_ATTR);
+
+ if (propName != null && propName.equals(PATHS)) {
+ paths = (org.w3c.dom.Element)nl.item(i);
+ }
+ }
+ }
+
+ if (paths == null) {
+ paths = getAction().getOwnerDocument().createElement(PROPERTY_ELEMENT);
+ paths.setAttribute(NAME_ATTR, PATHS);
+
+ getAction().appendChild(paths);
+ }
+ */
+
+ org.w3c.dom.Element path=
+ getAction().getOwnerDocument().createElement(CASE);
+ path.setAttribute(SERVICE_CATEGORY, category);
+ path.setAttribute(SERVICE_NAME, name);
+
+ for (int i=0; i < messageTypes.size(); i++) {
+ org.w3c.dom.Element mt=
+ getAction().getOwnerDocument().createElement(MESSAGE_ELEMENT);
+
+ mt.setAttribute(TYPE_ATTR, messageTypes.get(i));
+
+ path.appendChild(mt);
+ }
+
+ paths.appendChild(path);
+ }
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhenAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhenAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhenAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -47,6 +47,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public WhenAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ WhenAction.class));
+ }
+
+ /**
* This method initializes the links with the ESB service descriptors
* identified in each path of the action.
*/
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java 2008-07-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -48,6 +48,18 @@
}
/**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public WhileAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ WhileAction.class));
+ }
+
+ /**
* This method initializes the links with the ESB service descriptors
* identified in each path of the action.
*/
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-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -32,21 +32,21 @@
/**
* This method determines whether the rule is appropriate
- * for the supplied type of model, parent and
+ * for the supplied type of model, parent (in the context) and
* model object.
*
+ * @param context The context
* @param model The model
- * @param parent The parent model object
* @param mobj The model object causing the change
* @return Whether the rule supports the supplied information
*/
@Override
- protected boolean isChangeSupported(Model model, ModelObject parent,
- ModelObject mobj) {
+ protected boolean isChangeSupported(ModelChangeContext context,
+ Model model, ModelObject mobj) {
boolean ret=false;
if (mobj instanceof ConversationInteraction &&
- parent instanceof ESBService &&
+ context.getParent() instanceof ESBService &&
model instanceof ESBLanguageModel) {
ret = true;
}
@@ -65,41 +65,136 @@
*
* @param context The context
* @param model The model being changed
- * @param parent The parent model object
* @param mobj The model object details to be inserted
* @param position The position, where relevant
* @return Whether the change has been applied
*/
@Override
public boolean insert(ModelChangeContext context,
- Model model, ModelObject parent,
- ModelObject mobj, int position) {
+ Model model, ModelObject mobj, int position) {
ESBLanguageModel esbModel=(ESBLanguageModel)model;
- ESBService service=(ESBService)parent;
+ ESBService service=(ESBService)context.getParent();
ConversationInteraction interaction=(ConversationInteraction)mobj;
// Check if send or receive
if ((interaction.getFromRole() != null &&
- interaction.getFromRole().getName().equals(
- context.getRoleName())) ||
+ interaction.getFromRole().equals(
+ context.getRole())) ||
(interaction.getToRole() != null &&
- interaction.getToRole().getName().equals(
- context.getRoleName()) == false)) {
+ interaction.getToRole().equals(
+ context.getRole()) == false)) {
// Send
+ SendMessageAction action=
+ new SendMessageAction(service);
+ if (interaction.getMessageSignature().getOperation() != null) {
+ action.setOperation(interaction.getMessageSignature().getOperation());
+ }
+
+ if (interaction.getMessageSignature().getTypes().size() == 1) {
+ TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
+
+ // TODO: Search for an implementation associated with
+ // the type reference, so that the type can be
+ // abstract - possibly have the required message type
+ // notation as part of the context, so that if multiple
+ // implementations found, then can select e.g. XML or
+ // Java as message type representation.
+
+ String mtype=null;
+
+ if (ref.getNamespace() != null) {
+ mtype = "{"+ref.getNamespace()+"}";
+ } else {
+ mtype = "";
+ }
+
+ if (ref.getLocalpart() != null) {
+ mtype += ref.getLocalpart();
+ }
+
+ action.setMessageType(mtype);
+ }
+
+ service.addAction(action, position);
+
+ if (interaction.getRequestLabel() != null) {
+
+ action.setClientEPR("client");
+
+ // Create new ESB service
+
+ // TODO: Create unique service name
+ DefaultESBService respService=new DefaultESBService(
+ esbModel, service.getCategory(),
+ service.getName()+"_2");
+
+ esbModel.addService(respService);
+
+ action.setResponseDestination(respService.getCategory(),
+ respService.getName());
+
+ context.setParent(respService);
+
+ } else if (interaction.getReplyToLabel() != null) {
+
+ action.setClientEPR("client");
+ }
+
} else {
// TODO: Create a new service to receive the
// message and add a schedule service to link
// to this new service - issue, how do we
// deal with request/response
+ if (service.isCreateSession() == false &&
+ service.isSessionBased()) {
+ // Already has activities, so need to separate
+ // into another service descriptor
+ DefaultESBService recvService=new DefaultESBService(
+ esbModel, service.getCategory(),
+ service.getName()+"_3");
+
+ esbModel.addService(recvService);
+
+ context.setParent(recvService);
+ }
// Receive
ReceiveMessageAction action=
new ReceiveMessageAction(service);
- service.addAction(action, position);
+ if (interaction.getMessageSignature().getOperation() != null) {
+ action.setOperation(interaction.getMessageSignature().getOperation());
+ }
+
+ if (interaction.getMessageSignature().getTypes().size() == 1) {
+ TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
+
+ // TODO: Search for an implementation associated with
+ // the type reference, so that the type can be
+ // abstract - possibly have the required message type
+ // notation as part of the context, so that if multiple
+ // implementations found, then can select e.g. XML or
+ // Java as message type representation.
+
+ String mtype=null;
+
+ if (ref.getNamespace() != null) {
+ mtype = "{"+ref.getNamespace()+"}";
+ } else {
+ mtype = "";
+ }
+
+ if (ref.getLocalpart() != null) {
+ mtype += ref.getLocalpart();
+ }
+
+ action.setMessageType(mtype);
+ }
+
+ ((ESBService)context.getParent()).addAction(action, position);
}
return(true);
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-29 12:27:41 UTC (rev 203)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -18,6 +18,7 @@
package org.jboss.tools.overlord.jbossesb.model.change;
import org.jboss.tools.overlord.jbossesb.model.*;
+import org.jboss.tools.overlord.jbossesb.model.actions.*;
import org.scribble.model.*;
import org.scribble.model.change.*;
import org.scribble.conversation.model.*;
@@ -31,17 +32,17 @@
/**
* This method determines whether the rule is appropriate
- * for the supplied type of model, parent and
+ * for the supplied type of model, parent (in the context) and
* model object.
- *
+ *
+ * @param context The context
* @param model The model
- * @param parent The parent model object
* @param mobj The model object causing the change
* @return Whether the rule supports the supplied information
*/
@Override
- protected boolean isChangeSupported(Model model, ModelObject parent,
- ModelObject mobj) {
+ protected boolean isChangeSupported(ModelChangeContext context,
+ Model model, ModelObject mobj) {
boolean ret=false;
if (mobj instanceof Conversation &&
@@ -63,15 +64,13 @@
*
* @param context The context
* @param model The model being changed
- * @param parent The parent model object
* @param mobj The model object details to be inserted
* @param position The position, where relevant
* @return Whether the change has been applied
*/
@Override
public boolean insert(ModelChangeContext context,
- Model model, ModelObject parent,
- ModelObject mobj, int position) {
+ Model model, ModelObject mobj, int position) {
ESBLanguageModel esbModel=(ESBLanguageModel)model;
Conversation conv=(Conversation)mobj;
@@ -86,11 +85,18 @@
esbModel.addService(service);
+ // Create 'CreateSession' activity
+ CreateSessionAction csa=new CreateSessionAction(service);
+
+ service.addAction(csa, -1);
+
// Process the activities within the conversation
java.util.List<Activity> acts=conv.getBlock().getContents();
+ context.setParent(service);
+
for (int i=0; i < acts.size(); i++) {
- context.insert(model, service, acts.get(i), i);
+ context.insert(model, acts.get(i), i);
}
return(true);
Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -0,0 +1,163 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.change;
+
+import org.jboss.tools.overlord.jbossesb.model.*;
+import org.jboss.tools.overlord.jbossesb.model.actions.*;
+import org.scribble.model.*;
+import org.scribble.model.change.*;
+import org.scribble.conversation.model.*;
+import org.scribble.extensions.RegistryInfo;
+
+/**
+ * This is the model change rule for the If grouping construct.
+ */
+(a)RegistryInfo(extension=ModelChangeRule.class,notation=ESBLanguageModel.JBOSSESB_NOTATION)
+public class IfModelChangeRule extends AbstractModelChangeRule {
+
+ /**
+ * This method determines whether the rule is appropriate
+ * for the supplied type of model, parent (in the context) and
+ * model object.
+ *
+ * @param context The context
+ * @param model The model
+ * @param mobj The model object causing the change
+ * @return Whether the rule supports the supplied information
+ */
+ @Override
+ protected boolean isChangeSupported(ModelChangeContext context,
+ Model model, ModelObject mobj) {
+ boolean ret=false;
+
+ if (mobj instanceof If &&
+ context.getParent() instanceof ESBService &&
+ model instanceof ESBLanguageModel) {
+ ret = true;
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method adds a new model object, within a
+ * parent model object, with the details supplied in
+ * another model object. The supplied model object
+ * will usually be from a different model representation
+ * (e.g. due to a merge), so the details will be
+ * copied and placed in the representation associated
+ * with the supplied model and parent model object.
+ *
+ * @param context The context
+ * @param model The model being changed
+ * @param mobj The model object details to be inserted
+ * @param position The position, where relevant
+ * @return Whether the change has been applied
+ */
+ @Override
+ public boolean insert(ModelChangeContext context,
+ Model model, ModelObject mobj, int position) {
+ ESBLanguageModel esbModel=(ESBLanguageModel)model;
+ ESBService service=(ESBService)context.getParent();
+ If ifElem=(If)mobj;
+
+ // Check if should be an 'if' or a 'switch' action
+ if (ifElem.getRoles().contains(context.getRole())) {
+
+ // If action, because the role is a decision maker
+ IfAction ifAction=new IfAction(service);
+
+ service.addAction(ifAction, position);
+
+ for (int i=0; i < ifElem.getConditionalBlocks().size(); i++) {
+ ConditionalBlock cb=ifElem.getConditionalBlocks().get(i);
+
+ DefaultESBService subService=new DefaultESBService(
+ esbModel, service.getCategory(),
+ service.getName()+"_"+i);
+
+ esbModel.addService(subService);
+
+ context.setParent(subService);
+
+ for (int j=0; j < cb.getContents().size(); j++) {
+ context.insert(model, cb.getContents().get(j), j);
+ }
+
+ boolean immediate=false;
+
+ ifAction.addPath((i==0 ? IfAction.IF : IfAction.ELSEIF),
+ subService.getCategory(), subService.getName(),
+ immediate, null, i);
+ }
+
+ if (ifElem.getElseBlock() != null) {
+
+ DefaultESBService subService=new DefaultESBService(
+ esbModel, service.getCategory(),
+ service.getName()+"_else");
+
+ esbModel.addService(subService);
+
+ context.setParent(subService);
+
+ for (int j=0; j < ifElem.getElseBlock().getContents().size(); j++) {
+ context.insert(model,
+ ifElem.getElseBlock().getContents().get(j), j);
+ }
+
+ boolean immediate=false;
+
+ ifAction.addPath(IfAction.ELSE,
+ subService.getCategory(), subService.getName(),
+ immediate, null, -1);
+ }
+ } else {
+
+ // Switch action, as role is a decision observer
+ SwitchAction switchAction=new SwitchAction(service);
+
+ service.addAction(switchAction, position);
+
+ for (int i=0; i < ifElem.getConditionalBlocks().size(); i++) {
+ ConditionalBlock cb=ifElem.getConditionalBlocks().get(i);
+
+ DefaultESBService subService=new DefaultESBService(
+ esbModel, service.getCategory(),
+ service.getName()+"_"+i);
+
+ esbModel.addService(subService);
+
+ context.setParent(subService);
+
+ for (int j=0; j < cb.getContents().size(); j++) {
+ context.insert(model, cb.getContents().get(j), j);
+ }
+
+ java.util.List<String> messageTypes=new java.util.Vector<String>();
+ messageTypes.add("testType");
+
+ switchAction.addCase(subService.getCategory(),
+ subService.getName(), messageTypes, i);
+ }
+ }
+
+ return(true);
+ }
+
+}
Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/LanguageToConversationModelChangeRule.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/LanguageToConversationModelChangeRule.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/LanguageToConversationModelChangeRule.java 2008-07-29 19:26:43 UTC (rev 204)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.change;
+
+import org.jboss.tools.overlord.jbossesb.model.*;
+import org.jboss.tools.overlord.jbossesb.model.actions.*;
+import org.scribble.model.*;
+import org.scribble.model.change.*;
+import org.scribble.conversation.model.*;
+import org.scribble.extensions.RegistryInfo;
+
+/**
+ * This is the model change rule for the Language Model to
+ * Conversation Model.
+ */
+(a)RegistryInfo(extension=ModelChangeRule.class,notation=ESBLanguageModel.JBOSSESB_NOTATION)
+public class LanguageToConversationModelChangeRule extends AbstractModelChangeRule {
+
+ /**
+ * This method determines whether the rule is appropriate
+ * for the supplied type of model, parent (in the context) and
+ * model object.
+ *
+ * @param context The context
+ * @param model The model
+ * @param mobj The model object causing the change
+ * @return Whether the rule supports the supplied information
+ */
+ @Override
+ protected boolean isChangeSupported(ModelChangeContext context,
+ Model model, ModelObject mobj) {
+ boolean ret=false;
+
+ if (mobj instanceof ConversationModel &&
+ model instanceof ESBLanguageModel) {
+ ret = true;
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method adds a new model object, within a
+ * parent model object, with the details supplied in
+ * another model object. The supplied model object
+ * will usually be from a different model representation
+ * (e.g. due to a merge), so the details will be
+ * copied and placed in the representation associated
+ * with the supplied model and parent model object.
+ *
+ * @param context The context
+ * @param model The model being changed
+ * @param mobj The model object details to be inserted
+ * @param position The position, where relevant
+ * @return Whether the change has been applied
+ */
+ @Override
+ public boolean insert(ModelChangeContext context,
+ Model model, ModelObject mobj, int position) {
+ ConversationModel cm=(ConversationModel)mobj;
+
+ if (cm.getConversation() != null) {
+ context.insert(model, cm.getConversation(), -1);
+ }
+
+ return(true);
+ }
+
+}
15 years, 8 months
Overlord SVN: r203 - in cdl/trunk: runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation and 18 other directories.
by overlord-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2008-07-29 08:27:41 -0400 (Tue, 29 Jul 2008)
New Revision: 203
Added:
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/ClassLoaderUtil.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java
cdl/trunk/samples/jbossesb/creditAgency/
cdl/trunk/samples/jbossesb/creditAgency/build.xml
cdl/trunk/samples/jbossesb/creditAgency/pom.xml
cdl/trunk/samples/jbossesb/creditAgency/src/
cdl/trunk/samples/jbossesb/creditAgency/src/main/
cdl/trunk/samples/jbossesb/creditAgency/src/main/java/
cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/
cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/
cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/
cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/
cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/CreditAgencyPurchase.java
cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java
cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/SetCreditCheckResponseMessageAction.java
cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/
cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/
cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/deployment.xml
cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/jboss-esb.xml
cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/hibernate.cfg.xml
cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/jbmq-queue-service.xml
cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/log4j.xml
Removed:
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/ClassLoaderUtil.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/HibernateUtil.java
cdl/trunk/samples/jbossesb/purchasing/src/main/java/com/acme/services/creditAgency/
Modified:
cdl/trunk/pom.xml
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
cdl/trunk/samples/jbossesb/purchasing/pom.xml
cdl/trunk/samples/jbossesb/purchasing/src/main/resources/META-INF/deployment.xml
cdl/trunk/samples/jbossesb/purchasing/src/main/resources/META-INF/jboss-esb.xml
cdl/trunk/samples/jbossesb/purchasing/src/main/resources/hibernate.cfg.xml
cdl/trunk/samples/jbossesb/purchasing/src/main/resources/jbmq-queue-service.xml
cdl/trunk/samples/pom.xml
Log:
[SOAG-29] First initial to break the creditAgency and purchase, not work yet.
Modified: cdl/trunk/pom.xml
===================================================================
--- cdl/trunk/pom.xml 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/pom.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -28,7 +28,7 @@
</developers>
<modules>
<module>runtime</module>
- <!--module>samples</module-->
+ <module>samples</module>
</modules>
<properties>
Deleted: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/ClassLoaderUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/ClassLoaderUtil.java 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/ClassLoaderUtil.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -1,32 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2008,
- */
-package org.jboss.soa.overlord.conversation;
-
-/**
- * @author jeffyu
- *
- */
-public class ClassLoaderUtil {
-
- public static Class<?> loadClass(String className) throws ClassNotFoundException {
- return Thread.currentThread().getContextClassLoader().loadClass(className);
- }
-
-}
Deleted: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/HibernateUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/HibernateUtil.java 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/HibernateUtil.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -1,69 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2008,
- */
-package org.jboss.soa.overlord.conversation;
-
-import org.hibernate.HibernateException;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
-import org.hibernate.cfg.AnnotationConfiguration;
-
-
-public class HibernateUtil {
-
- private static SessionFactory sessionFactory;
-
- private static final ThreadLocal<Session> session = new ThreadLocal<Session>();
-
- static {
- try {
- sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
- } catch (Throwable t) {
- throw new ExceptionInInitializerError(t);
- }
- }
-
- public static SessionFactory getSessionFactory() {
- return sessionFactory;
- }
-
- public static void shutdown() {
- if (getSessionFactory() != null) {
- getSessionFactory().close();
- }
- }
-
- public static synchronized Session currentSession() throws HibernateException {
- Session s = session.get();
- if (s == null) {
- s = sessionFactory.openSession();
- session.set(s);
- }
- return s;
- }
-
- public static void closeSession() throws HibernateException {
- Session s = session.get();
- if (s!= null) {
- s.close();
- }
- session.set(null);
- }
-
-}
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -28,6 +28,8 @@
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.overlord.jbossesb.actions.MessageProperties;
import org.jboss.soa.overlord.jbossesb.actions.Service;
+import org.jboss.soa.overlord.jbossesb.util.ClassLoaderUtil;
+import org.jboss.soa.overlord.jbossesb.util.HibernateUtil;
import org.mvel.MVEL;
/**
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -31,14 +31,14 @@
import org.jboss.soa.esb.client.ServiceInvoker;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.conversation.ClassLoaderUtil;
-import org.jboss.soa.overlord.conversation.HibernateUtil;
import org.jboss.soa.overlord.conversation.Identity;
import org.jboss.soa.overlord.conversation.IdentityType;
import org.jboss.soa.overlord.conversation.ScheduleItem;
import org.jboss.soa.overlord.conversation.Session;
import org.jboss.soa.overlord.conversation.SessionManager;
import org.jboss.soa.overlord.conversation.SessionStatus;
+import org.jboss.soa.overlord.jbossesb.util.ClassLoaderUtil;
+import org.jboss.soa.overlord.jbossesb.util.HibernateUtil;
import org.jboss.soa.overlord.jbossesb.util.MessageUtil;
import org.jboss.soa.overlord.jbossesb.util.XMLUtils;
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -37,7 +37,6 @@
super(config);
}
- @SuppressWarnings(value="unchecked")
public Message handle(Message message) throws Exception{
Session session=getSession(message);
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -22,9 +22,9 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.conversation.ClassLoaderUtil;
import org.jboss.soa.overlord.conversation.Session;
import org.jboss.soa.overlord.conversation.SessionManager;
+import org.jboss.soa.overlord.jbossesb.util.ClassLoaderUtil;
import org.jboss.soa.overlord.jbossesb.util.XMLUtils;
import org.mvel.MVEL;
import org.w3c.dom.Element;
Added: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/ClassLoaderUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/ClassLoaderUtil.java (rev 0)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/ClassLoaderUtil.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2008,
+ */
+package org.jboss.soa.overlord.jbossesb.util;
+
+/**
+ * @author jeffyu
+ *
+ */
+public class ClassLoaderUtil {
+
+ public static Class<?> loadClass(String className) throws ClassNotFoundException {
+ return Thread.currentThread().getContextClassLoader().loadClass(className);
+ }
+
+}
Added: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java (rev 0)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2008,
+ */
+package org.jboss.soa.overlord.jbossesb.util;
+
+import org.hibernate.HibernateException;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.cfg.AnnotationConfiguration;
+import org.hibernate.cfg.Configuration;
+
+/**
+ * @author jeffyu
+ *
+ */
+public class HibernateUtil {
+
+ private static SessionFactory sessionFactory;
+
+ private static final ThreadLocal<Session> session = new ThreadLocal<Session>();
+
+ static {
+ try {
+ Configuration configuration = new AnnotationConfiguration().configure();
+ sessionFactory = configuration.buildSessionFactory();
+ } catch (Throwable t) {
+ throw new ExceptionInInitializerError(t);
+ }
+ }
+
+ public static SessionFactory getSessionFactory() {
+ return sessionFactory;
+ }
+
+ public static void shutdown() {
+ if (getSessionFactory() != null) {
+ getSessionFactory().close();
+ }
+ }
+
+ public static synchronized Session currentSession() throws HibernateException {
+ Session s = session.get();
+ if (s == null) {
+ s = sessionFactory.openSession();
+ session.set(s);
+ }
+ return s;
+ }
+
+ public static void closeSession() throws HibernateException {
+ Session s = session.get();
+ if (s!= null) {
+ s.close();
+ }
+ session.set(null);
+ }
+
+}
Added: cdl/trunk/samples/jbossesb/creditAgency/build.xml
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/build.xml (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/build.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,38 @@
+<project name="purchasing" default="startdb" basedir=".">
+ <property name="M2_REPO" value="/opt/m2/repo" />
+ <property name="database.dir" value="${basedir}/database" />
+
+ <path id="database.classpath">
+ <fileset dir="${M2_REPO}" >
+ <include name="hsqldb/hsqldb/1.8.0.7/hsqldb-1.8.0.7.jar" />
+ </fileset>
+ </path>
+
+ <!-- Start the HSQL DB server -->
+ <target name="startdb" description="Run HSQL database server with clean DB">
+ <!-- Delete database files -->
+ <delete dir="${database.dir}"/>
+ <java classname="org.hsqldb.Server"
+ fork="yes"
+ classpathref="database.classpath"
+ failonerror="true">
+ <arg value="-database.0"/>
+ <arg value="file:${database.dir}/db"/>
+ </java>
+ </target>
+
+ <!-- Start the HSQL DB browser tool -->
+ <target name="dbmanager" description="Start HSQL DB manager">
+ <java
+ classname="org.hsqldb.util.DatabaseManagerSwing"
+ fork="yes"
+ classpathref="database.classpath"
+ failonerror="true">
+ <arg value="-url"/>
+ <arg value="jdbc:hsqldb:hsql://localhost/"/>
+ <arg value="-driver"/>
+ <arg value="org.hsqldb.jdbcDriver"/>
+ </java>
+ </target>
+
+</project>
Added: cdl/trunk/samples/jbossesb/creditAgency/pom.xml
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/pom.xml (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/pom.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,121 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.soa.overlord.cdl.samples</groupId>
+ <artifactId>jbossesb-creditAgency</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>jboss-esb</packaging>
+ <name>Overlord::CDL::Samples::CreditAgency</name>
+ <url>http://www.jboss.org/overlord</url>
+
+ <parent>
+ <groupId>org.jboss.soa.overlord.cdl</groupId>
+ <artifactId>samples</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.soa.overlord.cdl</groupId>
+ <artifactId>runtime-jbossesb</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-commons-annotations</artifactId>
+ <version>${hibernate-commons-annotations}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-tools</artifactId>
+ <version>${hibernate-tools-version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>${hsqldb-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>5.0.5</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>creditAgency</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <!--export schemas to database -->
+ <execution>
+ <id>schemaexport</id>
+ <phase>compile</phase>
+ <configuration>
+ <tasks>
+ <taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask"
+ classpathref="maven.compile.classpath"/>
+ <hibernatetool destdir=".">
+ <classpath>
+ <pathelement path="maven.compile.classpath" />
+ </classpath>
+ <annotationconfiguration configurationfile="target/classes/hibernate.cfg.xml" />
+ <hbm2ddl
+ create="true"
+ drop="true"
+ export="true"
+ outputfilename="purchasing-ddl.sql"
+ delimiter=";"
+ format="true"/>
+ </hibernatetool>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <!--Deploy esb artifact to JBoss AS/ESB -->
+ <execution>
+ <id>deploy</id>
+ <phase>install</phase>
+ <configuration>
+ <tasks>
+ <copy file="target/creditAgency.esb" todir="${deploy.dir}" overwrite="true" />
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+
+</project>
+
Added: cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/CreditAgencyPurchase.java
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/CreditAgencyPurchase.java (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/CreditAgencyPurchase.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2008,
+ */
+package com.acme.services.creditAgency;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.jboss.soa.overlord.conversation.HibernateObject;
+import org.jboss.soa.overlord.jbossesb.actions.Service;
+
+@Service(name="{http://www.jboss.org/overlord/purchase}CreditAgency", conversationType="overlord.cdl.samples.purchasing@CreditAgency",root=true)
+@Entity
+@Table(name="T_CA_PURCHASE")
+public class CreditAgencyPurchase implements HibernateObject {
+
+ @Id @GeneratedValue
+ @Column(name="ID")
+ private long id;
+
+ public boolean isCreditValid() {
+ boolean ret=false;
+
+ ret = true;
+
+ System.out.println("IS CREDIT VALID? "+ret);
+
+ return(ret);
+ }
+
+ public long getId() {
+ return this.id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+}
Added: cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2008,
+ */
+package com.acme.services.creditAgency;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.overlord.jbossesb.util.XMLUtils;
+import org.w3c.dom.Node;
+
+public class SetCreditCheckInvalidMessageAction extends AbstractActionLifecycle {
+
+ private static Logger logger = Logger.getLogger(SetCreditCheckInvalidMessageAction.class);
+
+ private ConfigTree config;
+
+ public SetCreditCheckInvalidMessageAction(ConfigTree config) {
+ this.config = config;
+ }
+
+ public Message process(Message message) throws Exception{
+
+ Node node = XMLUtils.getNode((String)message.getBody().get());
+ String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
+ message.getBody().add("<CreditCheckInvalid id=\"" + idValue +"\"></CreditCheckInvalid>");
+
+ logger.info("Updated credit message: "+message);
+
+ return(message);
+ }
+
+}
+
+
Added: cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/SetCreditCheckResponseMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/SetCreditCheckResponseMessageAction.java (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/src/main/java/com/acme/services/creditAgency/SetCreditCheckResponseMessageAction.java 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2008,
+ */
+package com.acme.services.creditAgency;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.overlord.jbossesb.util.XMLUtils;
+import org.w3c.dom.Node;
+
+public class SetCreditCheckResponseMessageAction extends AbstractActionLifecycle {
+
+ private static Logger logger = Logger.getLogger(SetCreditCheckResponseMessageAction.class);
+
+ private ConfigTree config;
+
+ public SetCreditCheckResponseMessageAction(ConfigTree config) {
+ this.config = config;
+ }
+
+ public Message process(Message message) throws Exception{
+
+ Node node = XMLUtils.getNode((String)message.getBody().get());
+ String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
+ message.getBody().add("<CreditCheckResponse id=\"" + idValue +"\"></CreditCheckResponse>");
+
+ logger.info("Updated credit message: "+message.getBody().get() +"' by thread of " + Thread.currentThread().getName());
+
+ return(message);
+ }
+
+
+}
+
+
Added: cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/deployment.xml
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/deployment.xml (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/deployment.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,11 @@
+<jbossesb-deployment>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-creditAgency</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-creditAgency1</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-creditAgency2</depends>
+ <loader-repository>
+ org.jboss.soa.overlord.creditAgency:loader=creditAgency
+ <loader-repository-config>
+ java2ParentDelegaton=false
+ </loader-repository-config>
+ </loader-repository>
+</jbossesb-deployment>
Added: cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/jboss-esb.xml (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/META-INF/jboss-esb.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,129 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2008, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2008,
+-->
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml..."
+ parameterReloadSecs="5000">
+
+ <providers>
+ <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
+ jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+ jndi-URL="localhost">
+ <jms-bus busid="CreditAgencyService">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/esb-creditAgency" />
+ </jms-bus>
+ <jms-bus busid="CreditAgencyService1">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/esb-creditAgency1" />
+ </jms-bus>
+ <jms-bus busid="CreditAgencyService2">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/esb-creditAgency2" />
+ </jms-bus>
+ </jms-provider>
+
+ </providers>
+ <services>
+ <service category="PurchaseGoods.CreditAgency" name="CreditAgency.main" description="">
+ <listeners>
+ <jms-listener name="CreditAgencyServiceListener"
+ busidref="CreditAgencyService"
+ maxThreads="1"/>
+ </listeners>
+ <actions mep="OneWay">
+ <action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction"
+ process="process" name="c1">
+ <property name="session" value="com.acme.services.creditAgency.CreditAgencyPurchase" />
+ </action>
+ <action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
+ process="process" name="c2">
+ <property name="operation" value="checkCredit" />
+ <property name="messageType" value="CreditCheckRequest" />
+ <property name="clientEPR" value="broker" />
+ <property name="identities" >
+ <identity type="primary" >
+ <token name="id" locator="//@id" />
+ </identity>
+ </property>
+ </action>
+ <action class="org.jboss.soa.overlord.jbossesb.actions.IfAction"
+ process="process" name="c3">
+ <property name="paths">
+ <if decision-method="isCreditValid"
+ service-category="PurchaseGoods.CreditAgency"
+ service-name="CreditAgency.decision1"
+ immediate="true" />
+ <else service-category="PurchaseGoods.CreditAgency"
+ service-name="CreditAgency.decision2"
+ immediate="true" />
+ </property>
+ </action>
+ </actions>
+ </service>
+
+ <service category="PurchaseGoods.CreditAgency" name="CreditAgency.decision1" description="">
+ <listeners>
+ <jms-listener name="CreditAgencyServiceListener1"
+ busidref="CreditAgencyService1"
+ maxThreads="1"/>
+ </listeners>
+ <actions mep="OneWay">
+ <action class="com.acme.services.creditAgency.SetCreditCheckResponseMessageAction"
+ process="process" name="d2">
+ </action>
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+ process="process" name="d3">
+ <property name="session" value="com.acme.services.creditAgency.CreditAgencyPurchase" />
+ <property name="operation" value="checkCredit" />
+ <property name="messageType" value="CreditCheckResponse" />
+ <property name="clientEPR" value="broker" />
+ <property name="identities" >
+ <identity type="primary" >
+ <token name="id" locator="//@id" />
+ </identity>
+ </property>
+ </action>
+ </actions>
+ </service>
+
+ <service category="PurchaseGoods.CreditAgency" name="CreditAgency.decision2" description="">
+ <listeners>
+ <jms-listener name="CreditAgencyServiceListener"
+ busidref="CreditAgencyService2"
+ maxThreads="1"/>
+ </listeners>
+ <actions mep="OneWay">
+ <action class="com.acme.services.creditAgency.SetCreditCheckInvalidMessageAction"
+ process="process" name="e2">
+ </action>
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+ process="process" name="e3">
+ <property name="session" value="com.acme.services.creditAgency.CreditAgencyPurchase" />
+ <property name="operation" value="checkCredit" />
+ <property name="messageType" value="CreditCheckInvalid" />
+ <property name="clientEPR" value="broker" />
+ <property name="identities" >
+ <identity type="primary" >
+ <token name="id" locator="//@id" />
+ </identity>
+ </property>
+ </action>
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
Added: cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/hibernate.cfg.xml
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/hibernate.cfg.xml (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/hibernate.cfg.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,79 @@
+<!DOCTYPE hibernate-configuration SYSTEM
+"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2008, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2008,
+ @author JBoss Inc.
+-->
+<hibernate-configuration>
+ <session-factory>
+ <!--property name="hibernate.connection.driver_class">
+ org.gjt.mm.mysql.Driver
+ </property>
+ <property name="hibernate.connection.url">
+ jdbc:mysql://localhost:3306/cdl
+ </property>
+ <property name="hibernate.connection.username">
+ root
+ </property>
+ <property name="hibernate.connection.password">
+ jeff
+ </property>
+ <property name="hibernate.dialect">
+ org.hibernate.dialect.MySQL5Dialect
+ </property-->
+
+ <property name="hibernate.connection.driver_class">
+ org.hsqldb.jdbcDriver
+ </property>
+ <property name="hibernate.connection.url">
+ jdbc:hsqldb:hsql://localhost
+ </property>
+ <property name="hibernate.connection.username">
+ sa
+ </property>
+ <property name="hibernate.dialect">
+ org.hibernate.dialect.HSQLDialect
+ </property>
+
+ <!-- Use the C3P0 connection pool provider -->
+ <property name="hibernate.c3p0.min_size">5</property>
+ <property name="hibernate.c3p0.max_size">20</property>
+ <property name="hibernate.c3p0.timeout">300</property>
+ <property name="hibernate.c3p0.max_statements">50</property>
+ <property name="hibernate.c3p0.idle_test_period">3000</property>
+
+ <property name="current_session_context_class">thread</property>
+ <property name="hibernate.connection.isolation">4</property>
+
+ <!-- Show and print nice SQL on stdout -->
+ <property name="show_sql">false</property>
+ <property name="format_sql">true</property>
+
+ <!-- List of annotationed classes (Internal conversation class)-->
+ <mapping class="org.jboss.soa.overlord.conversation.Session" />
+ <mapping class="org.jboss.soa.overlord.conversation.ScheduleItem"/>
+ <mapping class="org.jboss.soa.overlord.conversation.JoinState"/>
+ <mapping class="org.jboss.soa.overlord.conversation.Identity"/>
+ <mapping class="org.jboss.soa.overlord.conversation.EPRWrapper"/>
+
+ <!-- List of Business State class -->
+ <mapping class="com.acme.services.creditAgency.CreditAgencyPurchase" />
+
+ </session-factory>
+</hibernate-configuration>
Added: cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/jbmq-queue-service.xml
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/jbmq-queue-service.xml (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/jbmq-queue-service.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-creditAgency">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-creditAgency1">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-creditAgency2">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+
+</server>
Added: cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/log4j.xml
===================================================================
--- cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/log4j.xml (rev 0)
+++ cdl/trunk/samples/jbossesb/creditAgency/src/main/resources/log4j.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling appender -->
+ <appender name="FILE" class="org.apache.log4j.FileAppender">
+ <!--errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/-->
+ <param name="File" value="./creditAgency.log"/>
+ <param name="Append" value="false"/>
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+ <!-- Rollover at the top of each hour
+ <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+ -->
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+ <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+ <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <!--errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/-->
+ <param name="Target" value="System.out"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <category name="org.apache">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
+ <category name="org.jboss.serial">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <category name="org.jgroups">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit the jacorb category to WARN as its INFO is verbose -->
+ <category name="jacorb">
+ <priority value="WARN"/>
+ </category>
+
+
+ <!-- Limit the JSR77 categories -->
+ <category name="org.jboss.management">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit Axis based webservice category -->
+ <category name="org.jboss.webservice">
+ <priority value="DEBUG"/>
+ </category>
+ <category name="org.jboss.axis">
+ <priority value="INFO"/>
+ </category>
+
+ <category name="org.milyn">
+ <priority value="INFO"/>
+ </category>
+ <category name="org.milyn.delivery.SmooksXML">
+ <priority value="INFO"/>
+ </category>
+ <category name="org.milyn.delivery.serialize.Serializer">
+ <priority value="INFO"/>
+ </category>
+ <category name="org.milyn.cdr.XMLConfigDigester">
+ <priority value="INFO"/>
+ </category>
+
+ <category name="org.jboss.soa.overlord">
+ <priority value="DEBUG" />
+ </category>
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <priority value="INFO" />
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+
+</log4j:configuration>
Modified: cdl/trunk/samples/jbossesb/purchasing/pom.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/pom.xml 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/samples/jbossesb/purchasing/pom.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -61,7 +61,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
- <!--export schemas to database -->
+ <!--export schemas to database -->
<execution>
<id>schemaexport</id>
<phase>compile</phase>
Modified: cdl/trunk/samples/jbossesb/purchasing/src/main/resources/META-INF/deployment.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/src/main/resources/META-INF/deployment.xml 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/samples/jbossesb/purchasing/src/main/resources/META-INF/deployment.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -8,7 +8,10 @@
<depends>jboss.esb.gen.destination:service=Queue,name=esb-broker5</depends>
<depends>jboss.esb.gen.destination:service=Queue,name=esb-broker6</depends>
<depends>jboss.esb.gen.destination:service=Queue,name=esb-broker7</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-creditAgency</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-creditAgency1</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-creditAgency2</depends>
+ <loader-repository>
+ org.jboss.soa.overlord.purchasing:loader=purchasing
+ <loader-repository-config>
+ java2ParentDelegaton=true
+ </loader-repository-config>
+ </loader-repository>
</jbossesb-deployment>
Modified: cdl/trunk/samples/jbossesb/purchasing/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/src/main/resources/META-INF/jboss-esb.xml 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/samples/jbossesb/purchasing/src/main/resources/META-INF/jboss-esb.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -49,15 +49,6 @@
<jms-bus busid="BrokerService7">
<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-broker7"/>
</jms-bus>
- <jms-bus busid="CreditAgencyService">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/esb-creditAgency" />
- </jms-bus>
- <jms-bus busid="CreditAgencyService1">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/esb-creditAgency1" />
- </jms-bus>
- <jms-bus busid="CreditAgencyService2">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/esb-creditAgency2" />
- </jms-bus>
</jms-provider>
</providers>
@@ -267,93 +258,6 @@
</action>
</actions>
</service>
-
- <service category="PurchaseGoods.CreditAgency" name="CreditAgency.main" description="">
- <listeners>
- <jms-listener name="BrokerServiceListener"
- busidref="CreditAgencyService"
- maxThreads="1"/>
- </listeners>
- <actions mep="OneWay">
- <action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction"
- process="process" name="c1">
- <property name="session" value="com.acme.services.creditAgency.CreditAgencyPurchase" />
- </action>
- <action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
- process="process" name="c2">
- <property name="operation" value="checkCredit" />
- <property name="messageType" value="CreditCheckRequest" />
- <property name="clientEPR" value="broker" />
- <property name="identities" >
- <identity type="primary" >
- <token name="id" locator="//@id" />
- </identity>
- </property>
- </action>
- <action class="org.jboss.soa.overlord.jbossesb.actions.IfAction"
- process="process" name="c3">
- <property name="paths">
- <if decision-method="isCreditValid"
- service-category="PurchaseGoods.CreditAgency"
- service-name="CreditAgency.decision1"
- immediate="true" />
- <else service-category="PurchaseGoods.CreditAgency"
- service-name="CreditAgency.decision2"
- immediate="true" />
- </property>
- </action>
- </actions>
- </service>
-
- <service category="PurchaseGoods.CreditAgency" name="CreditAgency.decision1" description="">
- <listeners>
- <jms-listener name="BrokerServiceListener"
- busidref="CreditAgencyService1"
- maxThreads="1"/>
- </listeners>
- <actions mep="OneWay">
- <action class="com.acme.services.creditAgency.SetCreditCheckResponseMessageAction"
- process="process" name="d2">
- </action>
- <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
- process="process" name="d3">
- <property name="session" value="com.acme.services.creditAgency.CreditAgencyPurchase" />
- <property name="operation" value="checkCredit" />
- <property name="messageType" value="CreditCheckResponse" />
- <property name="clientEPR" value="broker" />
- <property name="identities" >
- <identity type="primary" >
- <token name="id" locator="//@id" />
- </identity>
- </property>
- </action>
- </actions>
- </service>
-
- <service category="PurchaseGoods.CreditAgency" name="CreditAgency.decision2" description="">
- <listeners>
- <jms-listener name="BrokerServiceListener"
- busidref="CreditAgencyService2"
- maxThreads="1"/>
- </listeners>
- <actions mep="OneWay">
- <action class="com.acme.services.creditAgency.SetCreditCheckInvalidMessageAction"
- process="process" name="e2">
- </action>
- <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
- process="process" name="e3">
- <property name="session" value="com.acme.services.creditAgency.CreditAgencyPurchase" />
- <property name="operation" value="checkCredit" />
- <property name="messageType" value="CreditCheckInvalid" />
- <property name="clientEPR" value="broker" />
- <property name="identities" >
- <identity type="primary" >
- <token name="id" locator="//@id" />
- </identity>
- </property>
- </action>
- </actions>
- </service>
</services>
</jbossesb>
Modified: cdl/trunk/samples/jbossesb/purchasing/src/main/resources/hibernate.cfg.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/src/main/resources/hibernate.cfg.xml 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/samples/jbossesb/purchasing/src/main/resources/hibernate.cfg.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -74,7 +74,6 @@
<!-- List of Business State class -->
<mapping class="com.acme.services.broker.PurchaseGoods" />
- <mapping class="com.acme.services.creditAgency.CreditAgencyPurchase" />
</session-factory>
</hibernate-configuration>
Modified: cdl/trunk/samples/jbossesb/purchasing/src/main/resources/jbmq-queue-service.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/src/main/resources/jbmq-queue-service.xml 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/samples/jbossesb/purchasing/src/main/resources/jbmq-queue-service.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -55,23 +55,5 @@
jboss.mq:service=DestinationManager
</depends>
</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-creditAgency">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-creditAgency1">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-creditAgency2">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
</server>
Modified: cdl/trunk/samples/pom.xml
===================================================================
--- cdl/trunk/samples/pom.xml 2008-07-28 17:31:19 UTC (rev 202)
+++ cdl/trunk/samples/pom.xml 2008-07-29 12:27:41 UTC (rev 203)
@@ -24,8 +24,8 @@
<modules>
- <module>jbossesb/purchasing</module>
- <module>jbossesb/broker</module>
+ <!--module>jbossesb/purchasing</module>
+ <module>jbossesb/broker</module-->
</modules>
<build>
15 years, 8 months
Overlord SVN: r202 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb: META-INF and 6 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-07-28 13:31:19 -0400 (Mon, 28 Jul 2008)
New Revision: 202
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/
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
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/META-INF/MANIFEST.MF
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/plugin.xml
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBActionFactory.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
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/ReceiveMessageAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
Log:
Initial generation of services and start of actions.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/META-INF/MANIFEST.MF
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/META-INF/MANIFEST.MF 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/META-INF/MANIFEST.MF 2008-07-28 17:31:19 UTC (rev 202)
@@ -16,5 +16,7 @@
org.scribble.core
Scribble-Extensions: org.jboss.tools.overlord.jbossesb.parser.JBossESBParser,
org.jboss.tools.overlord.jbossesb.parser.JBossESBNotation,
- org.jboss.tools.overlord.jbossesb.validation.ESBLanguageModelValidationRule
+ org.jboss.tools.overlord.jbossesb.validation.ESBLanguageModelValidationRule,
+ org.jboss.tools.overlord.jbossesb.model.change.ConversationModelChangeRule,
+ org.jboss.tools.overlord.jbossesb.model.change.ConversationInteractionModelChangeRule
Bundle-ActivationPolicy: lazy
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/plugin.xml
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/plugin.xml 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/plugin.xml 2008-07-28 17:31:19 UTC (rev 202)
@@ -7,4 +7,31 @@
point="org.scribble.extension">
</extension>
+ <extension point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ id="org.jboss.tools.overlord.jbossesb.object.contribution"
+ objectClass="org.eclipse.core.resources.IFile"
+ nameFilter="*.cdm">
+ <menu
+ id="org.jboss.tools.overlord.menu"
+ label="Overlord"
+ path="additions">
+ <separator name="group1"/>
+ </menu>
+ <menu
+ id="jbossesb.menu"
+ label="JBossESB"
+ path="org.jboss.tools.overlord.menu/additions">
+ <separator name="group2"/>
+ </menu>
+ <action
+ label="Generate"
+ class="org.jboss.tools.overlord.jbossesb.actions.GenerateAction"
+ menubarPath="org.jboss.tools.overlord.menu/jbossesb.menu/group2"
+ enablesFor="1"
+ id="org.jboss.tools.overlord.jbossesb.actions.GenerateAction">
+ </action>
+ </objectContribution>
+ </extension>
+
</plugin>
Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -0,0 +1,316 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.actions;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+import org.scribble.conversation.model.ConversationModel;
+import org.scribble.extensions.RegistryFactory;
+import org.scribble.model.*;
+import org.scribble.model.change.*;
+import org.w3c.dom.Node;
+
+import org.jboss.tools.overlord.jbossesb.model.*;
+
+/**
+ * This class implements the action to generate the choreography
+ * as a JBossESB ESB configuration.
+ */
+public class GenerateAction implements IObjectActionDelegate {
+
+ public GenerateAction() {
+ }
+
+ /**
+ * This method implements the action's run method.
+ *
+ * @param action The action
+ */
+ public void run(IAction action) {
+ if (m_selection instanceof StructuredSelection) {
+ StructuredSelection sel=(StructuredSelection)m_selection;
+
+ IResource res=(IResource)sel.getFirstElement();
+
+ if (res instanceof IFile) {
+ generate((IFile)res);
+ }
+ }
+ }
+
+ protected void generate(IFile res) {
+ ModelReference ref=
+ org.scribble.osgi.model.OSGIModelRepository.createReference(res);
+
+ if (ref != null) {
+ ModelRepository mrep=(ModelRepository)
+ RegistryFactory.getRegistry().getExtension(
+ ModelRepository.class, null);
+
+ if (mrep != null) {
+ Model model=mrep.getModel(ref,
+ new DefaultModelListener());
+
+ if (model instanceof ConversationModel) {
+ ConversationModel cm=(ConversationModel)model;
+
+ java.util.List<Role> roles=cm.getRoles();
+
+ for (int i=0; i < roles.size(); i++) {
+
+ generateRole(cm, roles.get(i));
+ }
+ }
+ }
+ }
+ }
+
+ protected void generateRole(ConversationModel cm, Role role) {
+
+ if (logger.isLoggable(Level.FINEST)) {
+ logger.finest("Generate role '"+role+"' for: "+cm);
+ }
+
+ // Project to role
+ org.scribble.projector.Projector projector=
+ (org.scribble.projector.Projector)
+ RegistryFactory.getRegistry().getExtension(
+ org.scribble.projector.Projector.class, null);
+
+ if (projector != null) {
+ Model localModel=projector.project(cm,
+ role, new DefaultModelListener());
+
+ if (localModel instanceof ConversationModel &&
+ ((ConversationModel)localModel).getConversation() != null) {
+ ConversationModel lcm=(ConversationModel)localModel;
+
+ ModelReference targetRef=
+ new ModelReference(ESBLanguageModel.JBOSSESB_NOTATION);
+
+ DefaultESBLanguageModel target=
+ new DefaultESBLanguageModel(targetRef);
+
+ ModelChangeContext context=
+ new DefaultModelChangeContext(targetRef);
+
+ context.insert(target, target,
+ lcm.getConversation(), -1);
+
+ try {
+ System.out.println("------------------------------");
+ System.out.println("ROLE="+role.getName());
+ System.out.println("ESB Configuration:\r\n"+
+ getText(target.getESBConfiguration()));
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /**
+ * This class converts a DOM representation node to
+ * text.
+ *
+ * @param node The DOM node
+ * @return The text
+ * @throws Exception Failed to convert
+ */
+ protected String getText(Node node) throws Exception {
+ String ret=null;
+
+ try {
+ // Transform the DOM represent to text
+ java.io.ByteArrayOutputStream xmlstr=
+ new java.io.ByteArrayOutputStream();
+
+ DOMSource source=new DOMSource();
+ source.setNode(node);
+
+ StreamResult result=new StreamResult(xmlstr);
+
+ Transformer trans=
+ TransformerFactory.newInstance().newTransformer();
+ trans.transform(source, result);
+
+ xmlstr.close();
+
+ ret = new String(xmlstr.toByteArray());
+
+ if ((node instanceof org.w3c.dom.Document) == false) {
+
+ // Strip off any <?xml> header
+ int index=ret.indexOf("<?xml");
+ if (index != -1) {
+ index = ret.indexOf("<", 1);
+
+ if (index != -1) {
+ ret = ret.substring(index);
+ } else {
+ index = ret.indexOf("?>");
+
+ if (index != -1) {
+ index += 2;
+
+ // Remove any trailing whitespaces
+ // after XML header
+ while (index < ret.length() &&
+ Character.isWhitespace(ret.charAt(index))) {
+ index++;
+ }
+
+ ret = ret.substring(index);
+ }
+ }
+ }
+ }
+
+ } catch(Exception e) {
+ throw new Exception("Failed to transform " +
+ "DOM representation into text", e);
+ }
+
+ int pos=0;
+ int prevpos=0;
+ StringBuffer buf=new StringBuffer();
+ int level=0;
+
+ while ((pos=ret.indexOf('<', prevpos)) != -1) {
+
+ if (prevpos < pos &&
+ ret.substring(prevpos, pos).trim().length() > 0 &&
+ ret.charAt(prevpos-1) != '?') {
+
+ if (ret.charAt(prevpos) == '\r' &&
+ ret.charAt(prevpos+1) == '\n') {
+ prevpos += 2;
+ }
+ for (int i=0; i < level; i++) {
+ buf.append(" ");
+ }
+
+ buf.append(ret.substring(prevpos, pos).trim());
+ buf.append("\r\n");
+ }
+
+ int endpos=ret.indexOf('>', pos);
+
+ if (endpos > 0) {
+ boolean noreturn=false;
+
+ if (pos > 0 && ret.charAt(pos+1) == '/') {
+ level--;
+ }
+
+ for (int i=0; i < level; i++) {
+ buf.append(" ");
+ }
+ buf.append(ret.substring(pos, endpos+1));
+
+ if (ret.charAt(endpos-1)== '?') {
+ //noreturn = true;
+
+ } else if (ret.charAt(endpos-1) == '/') {
+ // Ignore
+ } else if (pos > 0 && ret.charAt(pos+1) == '/') {
+ // Ignore
+
+ } else if (pos > 0 && ret.charAt(pos+1) == '!') {
+ // Ignore
+
+ } else {
+ level++;
+ }
+
+ if (noreturn == false) {
+ buf.append("\r\n");
+ }
+
+ pos = endpos+1;
+ }
+
+ prevpos = pos;
+ }
+
+ if (prevpos != -1 &&
+ ret.substring(prevpos).trim().length() > 0) {
+ buf.append(ret.substring(prevpos));
+ }
+
+ ret = buf.toString();
+
+ return(ret);
+ }
+
+ /**
+ * This method indicates that the selection has changed.
+ *
+ * @param action The action
+ * @param selection The selection
+ */
+ public void selectionChanged(IAction action,
+ ISelection selection) {
+ m_selection = selection;
+ }
+
+ /**
+ * This method sets the currently active workbench part.
+ *
+ * @param action The action
+ * @param targetPart The active workbench part
+ */
+ public void setActivePart(IAction action,
+ IWorkbenchPart targetPart) {
+ m_targetPart = targetPart;
+ }
+
+ /**
+ * This method is used to report a warning.
+ *
+ * @param mesg The warning message
+ */
+ public void warn(String mesg) {
+
+ MessageBox mbox=new MessageBox(m_targetPart.getSite().getShell(),
+ SWT.ICON_WARNING|SWT.OK);
+ mbox.setMessage(mesg);
+ mbox.open();
+ }
+
+ private static Logger logger = Logger.getLogger("org.jboss.tools.overlord.jbossesb.actions");
+
+ private ISelection m_selection=null;
+ private IWorkbenchPart m_targetPart=null;
+}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -184,13 +184,8 @@
ESBService service=serviter.next();
if (service.isRoot()) {
- Conversation conv=new Conversation();
- ModelName modelName=new ModelName();
- modelName.setName(service.getServiceName());
-
- conv.setModelName(modelName);
-
+ /*
String convType=service.getConversationType();
String role=null;
@@ -239,22 +234,19 @@
} else {
logger.warning("No conversation type specified");
}
-
- // TODO: Associate a conformance reference for the
- // conversation type - when using Scribble dependency
- // management, this will ensure appropriate validation
- // when either the dependent conversation is changed, or
- // the ESB config file changed.
- //ConformanceReference confRef=new ConformanceReference();
-
- //conv.getConformsTo().add(confRef);
-
+
conv.setBlock(new Block());
service.convert(conv.getBlock().getContents(),
new DefaultConversionContext(role));
- getConversations().add(conv);
+ */
+
+ Conversation conv=service.convert(null);
+
+ if (conv != null) {
+ getConversations().add(conv);
+ }
}
//Add session class to list
@@ -393,6 +385,11 @@
m_services.put(getKey(service.getCategory(), service.getName()),
service);
+ // Add service
+ if (service.getService() != null) {
+ m_servicesElem.appendChild(service.getService());
+ }
+
// Add provider information
String busId=service.getJMSBusIdRef();
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -26,6 +26,7 @@
import org.eclipse.jdt.internal.core.*;
import org.scribble.model.*;
+import org.scribble.conversation.model.*;
import org.scribble.osgi.model.*;
/**
@@ -93,27 +94,11 @@
m_service.setAttribute(CATEGORY_ATTR, category);
m_service.setAttribute(NAME_ATTR, name);
- /* Create jms listener and bus id when added to model
- org.w3c.dom.Element listeners=m_service.getOwnerDocument().createElement(LISTENERS_ELEMENT);
- m_service.appendChild(listeners);
-
- m_jmsListenerElem = m_service.getOwnerDocument().createElement(JMS_LISTENER_ELEMENT);
- listeners.appendChild(m_jmsListenerElem);
-
- m_jmsListenerElem.setAttribute(BUSIDREF_ATTR, getBusId(category,name));
- */
+ m_actionsElem = m_model.getESBConfiguration().
+ getOwnerDocument().createElement(ACTIONS_ELEMENT);
+ m_service.appendChild(m_actionsElem);
}
- /*
- protected String getBusId(String category, String name) {
- String ret=category.replace('.', '_');
-
- ret += "_"+name;
-
- return(ret);
- }
- */
-
/**
* This method initializes the service.
*/
@@ -123,6 +108,9 @@
if (actions != null && actions.getLength() == 1 &&
actions.item(0) instanceof org.w3c.dom.Element) {
+
+ m_actionsElem = (org.w3c.dom.Element)actions.item(0);
+
org.w3c.dom.NodeList nl=((org.w3c.dom.Element)
actions.item(0)).getChildNodes();
@@ -261,6 +249,32 @@
return(m_actions);
}
+ /**
+ * This method adds an action to the service.
+ *
+ * @param action The action to be added
+ * @param pos The position to add, or -1 if at the end
+ */
+ public void addAction(ESBAction action, int pos) {
+ // If position specified, then find element at
+ // the position and insert after the previous
+ // element
+
+ if (action.getAction() != null) {
+ m_actionsElem.appendChild(action.getAction());
+ }
+ }
+
+ /**
+ * This method removes an action from the service.
+ *
+ * @param action The action to be removed
+ * @return Whether the action was removed
+ */
+ public boolean removeAction(ESBAction action) {
+ return(false);
+ }
+
protected java.lang.annotation.Annotation getServiceAnnotation(String session) {
java.lang.annotation.Annotation ret=null;
@@ -541,6 +555,98 @@
}
/**
+ * This method converts the ESB service into a Conversation, if
+ * the service represents a conversation.
+ *
+ * @param context The conversion context, or null if this is the
+ * root conversation
+ * @return The conversation
+ */
+ public Conversation convert(ConversionContext context) {
+ Conversation ret=null;
+
+ if (isCreateSession()) {
+ ret = new Conversation();
+
+ ret.derivedFrom(this);
+
+ ModelName modelName=new ModelName();
+ modelName.setName(getServiceName());
+
+ ret.setModelName(modelName);
+
+ String convType=getConversationType();
+ String role=null;
+
+ if (convType != null) {
+ int index=convType.indexOf('@');
+
+ if (index != -1) {
+ // TODO: Need to think whether this should be
+ // 'implements' reference. If so, then need to change
+ // Java Lang Model parser and also Lang Model conformance
+ // rule.
+ ImplementsReference iref=
+ new ImplementsReference(ConversationModel.CONVERSATION);
+
+ role = convType.substring(index+1);
+
+ iref.setLocatedRole(role);
+
+ // Need to locate the model name
+ modelName.setLocatedRole(new Role(iref.getLocatedRole()));
+
+ String mainpart=convType.substring(0, index);
+
+ index = mainpart.lastIndexOf(".");
+
+ if (index == -1) {
+ iref.setNamespace("");
+ iref.setLocalpart(mainpart);
+ } else {
+ iref.setNamespace(mainpart.substring(0, index));
+ iref.setLocalpart(mainpart.substring(index+1));
+ }
+
+ ret.getImplements().add(iref);
+ //ret.getConformsTo().add(iref);
+
+ org.scribble.model.DependencyManager dm=
+ (org.scribble.model.DependencyManager)
+ org.scribble.extensions.RegistryFactory.getRegistry().getExtension(
+ org.scribble.model.DependencyManager.class, null);
+
+ if (dm != null) {
+ dm.recordDependency(getModel().getModelReference(),
+ iref, DependencyType.Implements);
+ }
+
+ } else {
+ logger.warning("Conversation type does not " +
+ "contain '@' located role separator");
+ }
+ } else {
+ logger.warning("No conversation type specified");
+ }
+
+ ret.setBlock(new Block());
+
+ context = new DefaultConversionContext(role);
+
+ context.processing(this);
+
+ for (int i=0; i < m_actions.size(); i++) {
+ ((ESBAction)m_actions.get(i)).convert(
+ ret.getBlock().getContents(), context);
+ }
+
+ context.processed(this);
+ }
+
+ return(ret);
+ }
+
+ /**
* This method converts the actions associated with the ESB service into
* activities that can be checked for conformance against a conversation
* type.
@@ -550,12 +656,12 @@
* @param context The conversion context
*/
public void convert(java.util.List<Activity> activities,
- ConversionContext context) {
-
+ ConversionContext context) {
context.processing(this);
for (int i=0; i < m_actions.size(); i++) {
- ((ESBAction)m_actions.get(i)).convert(activities, context);
+ ((ESBAction)m_actions.get(i)).convert(
+ activities, context);
}
context.processed(this);
@@ -620,9 +726,10 @@
listeners = (org.w3c.dom.Element)nl.item(0);
} else {
listeners = m_service.getOwnerDocument().createElement(LISTENERS_ELEMENT);
+
if (m_service.getFirstChild() != null) {
- m_service.insertBefore(m_service.getFirstChild(),
- listeners);
+ m_service.insertBefore(listeners,
+ m_service.getFirstChild());
} else {
m_service.appendChild(listeners);
}
@@ -675,5 +782,6 @@
private ESBLanguageModel m_model=null;
private org.w3c.dom.Element m_service=null;
private org.w3c.dom.Element m_jmsListenerElem=null;
+ private org.w3c.dom.Element m_actionsElem=null;
private java.util.List<ESBAction> m_actions=new java.util.Vector<ESBAction>();
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBActionFactory.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBActionFactory.java 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBActionFactory.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -28,10 +28,10 @@
*/
public class ESBActionFactory {
- private static final String MODEL_ACTION_PACKAGE =
+ public static final String MODEL_ACTION_PACKAGE =
"org.jboss.tools.overlord.jbossesb.model.actions";
- private static final String CLASS_ATTR = "class";
- private static final String CONVERSATION_ACTION_PACKAGE =
+ public static final String CLASS_ATTR = "class";
+ public static final String CONVERSATION_ACTION_PACKAGE =
"org.jboss.soa.overlord.jbossesb.actions";
/**
@@ -79,6 +79,30 @@
return(ret);
}
+
+ /**
+ * This method determines the runtime action class based on
+ * the ESB model action class.
+ *
+ * @param cls The ESB model action class
+ * @return The conversation action class
+ */
+ public static String getConversationAction(Class<?> cls) {
+ String actionType=cls.getName();
+ String ret=null;
+
+ // Check that it is a conversation based ESB action
+ if (actionType.startsWith(MODEL_ACTION_PACKAGE)) {
+ int index=actionType.lastIndexOf('.');
+ if (index != -1) {
+ String actionName=actionType.substring(index+1);
+
+ ret = CONVERSATION_ACTION_PACKAGE+"."+actionName;
+ }
+ }
+
+ return(ret);
+ }
private static Logger logger = Logger.getLogger("org.jboss.tools.overlord.jbossesb.model");
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -69,6 +69,20 @@
public String getOriginalContents();
/**
+ * This method adds a new service to the model.
+ *
+ * @param service The service
+ */
+ public void addService(ESBService service);
+
+ /**
+ * This method removes a service from the model.
+ *
+ * @param service The service
+ */
+ public void removeService(ESBService service);
+
+ /**
* This method returns the reference to the DOM
* representation of the ESB configuration.
*
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -17,6 +17,7 @@
*/
package org.jboss.tools.overlord.jbossesb.model;
+import org.scribble.conversation.model.Conversation;
import org.scribble.model.*;
/**
@@ -77,6 +78,22 @@
public java.util.List<ESBAction> getActions();
/**
+ * This method adds an action to the service.
+ *
+ * @param action The action to be added
+ * @param pos The position to add, or -1 if at the end
+ */
+ public void addAction(ESBAction action, int pos);
+
+ /**
+ * This method removes an action from the service.
+ *
+ * @param action The action to be removed
+ * @return Whether the action was removed
+ */
+ public boolean removeAction(ESBAction action);
+
+ /**
* This method determines whether the ESB service represents a
* loop construct.
*
@@ -150,9 +167,19 @@
* @param context The conversion context
*/
public void convert(java.util.List<Activity> activities,
- ConversionContext context);
+ ConversionContext context);
/**
+ * This method converts the ESB service into a Conversation, if
+ * the service represents a conversation.
+ *
+ * @param context The conversion context, or null if this is the
+ * root conversation
+ * @return The conversation
+ */
+ public Conversation convert(ConversionContext context);
+
+ /**
* This method returns the position of the service node within the
* ESB configuration.
*
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-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/AbstractESBAction.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -42,21 +42,47 @@
protected static final String BUSINESS_OBJECT_TYPE_PROPERTY = SESSION;
/**
- * The default constructor.
+ * The constructor for initializing the action based on
+ * an existing DOM element.
*/
protected AbstractESBAction(ESBService service,
org.w3c.dom.Element action) {
- init(service, action);
+ initExistingAction(service, action);
}
/**
+ * The contructor for initializing a new action.
+ */
+ protected AbstractESBAction(ESBService service,
+ String actionClass) {
+ initNewAction(service, actionClass);
+ }
+
+ /**
* This method initializes the action.
*
* @param service The reference to the service in which
* the action is contained
+ * @param actionClass The action class
+ */
+ protected void initNewAction(ESBService service,
+ String actionClass) {
+ m_service = service;
+
+ m_action = service.getService().
+ getOwnerDocument().createElement(ACTION_ELEMENT);
+
+ m_action.setAttribute(CLASS_PROPERTY, actionClass);
+ }
+
+ /**
+ * This method initializes the action.
+ *
+ * @param service The reference to the service in which
+ * the action is contained
* @param action The XML configuration details for the action
*/
- protected void init(ESBService service,
+ protected void initExistingAction(ESBService service,
org.w3c.dom.Element action) {
m_service = service;
m_action = action;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -44,6 +44,18 @@
org.w3c.dom.Element action) {
super(service, action);
}
+
+ /**
+ * This constructor initializes the DOM element for
+ * the action.
+ *
+ * @param service The reference to the service in which
+ * the action will be contained
+ */
+ public ReceiveMessageAction(ESBService service) {
+ super(service, ESBActionFactory.getConversationAction(
+ ReceiveMessageAction.class));
+ }
/**
* This method returns the mandatory property names.
Added: 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 (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.change;
+
+import org.jboss.tools.overlord.jbossesb.model.*;
+import org.jboss.tools.overlord.jbossesb.model.actions.*;
+import org.scribble.model.*;
+import org.scribble.model.change.*;
+import org.scribble.conversation.model.*;
+import org.scribble.extensions.RegistryInfo;
+
+/**
+ * This is the model change rule for the Conversation Interaction.
+ */
+(a)RegistryInfo(extension=ModelChangeRule.class,notation=ESBLanguageModel.JBOSSESB_NOTATION)
+public class ConversationInteractionModelChangeRule extends AbstractModelChangeRule {
+
+ /**
+ * This method determines whether the rule is appropriate
+ * for the supplied type of model, parent and
+ * model object.
+ *
+ * @param model The model
+ * @param parent The parent model object
+ * @param mobj The model object causing the change
+ * @return Whether the rule supports the supplied information
+ */
+ @Override
+ protected boolean isChangeSupported(Model model, ModelObject parent,
+ ModelObject mobj) {
+ boolean ret=false;
+
+ if (mobj instanceof ConversationInteraction &&
+ parent instanceof ESBService &&
+ model instanceof ESBLanguageModel) {
+ ret = true;
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method adds a new model object, within a
+ * parent model object, with the details supplied in
+ * another model object. The supplied model object
+ * will usually be from a different model representation
+ * (e.g. due to a merge), so the details will be
+ * copied and placed in the representation associated
+ * with the supplied model and parent model object.
+ *
+ * @param context The context
+ * @param model The model being changed
+ * @param parent The parent model object
+ * @param mobj The model object details to be inserted
+ * @param position The position, where relevant
+ * @return Whether the change has been applied
+ */
+ @Override
+ public boolean insert(ModelChangeContext context,
+ Model model, ModelObject parent,
+ ModelObject mobj, int position) {
+ ESBLanguageModel esbModel=(ESBLanguageModel)model;
+ ESBService service=(ESBService)parent;
+ ConversationInteraction interaction=(ConversationInteraction)mobj;
+
+ // Check if send or receive
+ if ((interaction.getFromRole() != null &&
+ interaction.getFromRole().getName().equals(
+ context.getRoleName())) ||
+ (interaction.getToRole() != null &&
+ interaction.getToRole().getName().equals(
+ context.getRoleName()) == false)) {
+
+ // Send
+
+ } else {
+
+ // TODO: Create a new service to receive the
+ // message and add a schedule service to link
+ // to this new service - issue, how do we
+ // deal with request/response
+
+ // Receive
+ ReceiveMessageAction action=
+ new ReceiveMessageAction(service);
+
+ service.addAction(action, position);
+ }
+
+ return(true);
+ }
+
+}
Added: 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 (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.change;
+
+import org.jboss.tools.overlord.jbossesb.model.*;
+import org.scribble.model.*;
+import org.scribble.model.change.*;
+import org.scribble.conversation.model.*;
+import org.scribble.extensions.RegistryInfo;
+
+/**
+ * This is the model change rule for the Conversation.
+ */
+(a)RegistryInfo(extension=ModelChangeRule.class,notation=ESBLanguageModel.JBOSSESB_NOTATION)
+public class ConversationModelChangeRule extends AbstractModelChangeRule {
+
+ /**
+ * This method determines whether the rule is appropriate
+ * for the supplied type of model, parent and
+ * model object.
+ *
+ * @param model The model
+ * @param parent The parent model object
+ * @param mobj The model object causing the change
+ * @return Whether the rule supports the supplied information
+ */
+ @Override
+ protected boolean isChangeSupported(Model model, ModelObject parent,
+ ModelObject mobj) {
+ boolean ret=false;
+
+ if (mobj instanceof Conversation &&
+ model instanceof ESBLanguageModel) {
+ ret = true;
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method adds a new model object, within a
+ * parent model object, with the details supplied in
+ * another model object. The supplied model object
+ * will usually be from a different model representation
+ * (e.g. due to a merge), so the details will be
+ * copied and placed in the representation associated
+ * with the supplied model and parent model object.
+ *
+ * @param context The context
+ * @param model The model being changed
+ * @param parent The parent model object
+ * @param mobj The model object details to be inserted
+ * @param position The position, where relevant
+ * @return Whether the change has been applied
+ */
+ @Override
+ public boolean insert(ModelChangeContext context,
+ Model model, ModelObject parent,
+ ModelObject mobj, int position) {
+ ESBLanguageModel esbModel=(ESBLanguageModel)model;
+ Conversation conv=(Conversation)mobj;
+
+ String category=((Model)conv.getModel()).
+ getNamespace().getName();
+ String name=conv.getModelName().getName()+"-"+
+ conv.getModelName().getLocatedRole().getName();
+
+ // Create new ESB service
+ DefaultESBService service=new DefaultESBService(
+ esbModel, category, name);
+
+ esbModel.addService(service);
+
+ // Process the activities within the conversation
+ java.util.List<Activity> acts=conv.getBlock().getContents();
+
+ for (int i=0; i < acts.size(); i++) {
+ context.insert(model, service, acts.get(i), i);
+ }
+
+ return(true);
+ }
+
+}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -54,6 +54,10 @@
m_services.put(service.getCategory()+":"+service.getName(), service);
}
+ public void removeService(ESBService service) {
+ m_services.remove(service.getCategory()+":"+service.getName());
+ }
+
public ESBService getService(String category, String name) {
return(m_services.get(category+":"+name));
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-28 11:44:17 UTC (rev 201)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-28 17:31:19 UTC (rev 202)
@@ -22,6 +22,7 @@
import org.jboss.tools.overlord.jbossesb.model.ConversionContext;
import org.jboss.tools.overlord.jbossesb.model.ESBAction;
import org.jboss.tools.overlord.jbossesb.model.ESBLanguageModel;
+import org.scribble.conversation.model.Conversation;
import org.scribble.model.Activity;
import org.scribble.model.ModelListener;
import org.w3c.dom.Element;
@@ -32,6 +33,10 @@
activities.addAll(m_contents);
}
+ public Conversation convert(ConversionContext context) {
+ return(null);
+ }
+
public List<Activity> getContents() {
return(m_contents);
}
@@ -155,6 +160,16 @@
m_jmsBusIdRef = busId;
}
+ public void addAction(ESBAction action, int pos) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public boolean removeAction(ESBAction action) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
private String m_category=null;
private String m_name=null;
private ESBLanguageModel m_model=null;
15 years, 8 months