[overlord-commits] Overlord SVN: r511 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb: META-INF and 3 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Wed Feb 18 13:27:23 EST 2009


Author: objectiser
Date: 2009-02-18 13:27:22 -0500 (Wed, 18 Feb 2009)
New Revision: 511

Added:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/GeneratorTest.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/results/
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/results/ESBBrokerProcess at Broker.jboss-esb.xml
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/testmodels/
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/testmodels/ESBBrokerProcess at Broker.scv
Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/.classpath
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/META-INF/MANIFEST.MF
Log:
Added comparison tests between a stateless conversation model, and the jboss-esb.xml that should be generated from it.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/.classpath
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/.classpath	2009-02-18 18:02:22 UTC (rev 510)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/.classpath	2009-02-18 18:27:22 UTC (rev 511)
@@ -4,6 +4,5 @@
 	<classpathentry kind="src" path="src/test"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/META-INF/MANIFEST.MF
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/META-INF/MANIFEST.MF	2009-02-18 18:02:22 UTC (rev 510)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/META-INF/MANIFEST.MF	2009-02-18 18:27:22 UTC (rev 511)
@@ -19,7 +19,8 @@
  org.eclipse.ui.workbench.texteditor,
  org.eclipse.ui.ide,
  org.eclipse.ui.editors,
- org.scribble.conversation.parser
+ org.scribble.conversation.parser,
+ org.junit
 Scribble-Extensions: org.jboss.tools.overlord.cdl.runtime.jbossesb.parser.JBossESBParser,
   org.jboss.tools.overlord.cdl.runtime.jbossesb.model.JBossESBNotation,
   org.jboss.tools.overlord.cdl.runtime.jbossesb.editor.JBossESBConfigEditorManager,

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/GeneratorTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/GeneratorTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/GeneratorTest.java	2009-02-18 18:27:22 UTC (rev 511)
@@ -0,0 +1,348 @@
+/*
+ * 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.cdl.runtime.jbossesb.generator;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.scribble.conversation.model.*;
+import org.scribble.extensions.RegistryFactory;
+import org.scribble.model.ModelReference;
+import org.scribble.model.change.ModelGenerator;
+import org.w3c.dom.Node;
+import org.jboss.tools.overlord.cdl.runtime.jbossesb.model.*;
+
+import junit.framework.*;
+
+public class GeneratorTest extends TestCase {
+
+    public static TestSuite suite() {
+        TestSuite suite = new TestSuite("Conversation->jboss-esb.xml Generator Tests");       
+        suite.addTest(new ConversationToJBossESBTest("ESBBrokerProcess at Broker"));
+        return suite;
+    }
+    
+    /**
+     * The test case for running the conversation to jboss-esb.xml test.
+     */
+	protected static class ConversationToJBossESBTest extends TestCase {
+
+		/**
+		 * This constructor is initialized with the test
+		 * name.
+		 * 
+		 * @param name The test name
+		 */
+		public ConversationToJBossESBTest(String name) {
+			super(name);
+			m_name = name;
+		}
+		
+		/**
+		 * This method runs the test.
+		 * 
+		 * @param result The test result
+		 */
+		public void run(TestResult result) {
+			result.startTest(this);
+			
+			String filename="testmodels/"+m_name+".scv";
+			
+			java.io.InputStream is=
+				GeneratorTest.class.getResourceAsStream(filename);
+			
+			if (is == null) {
+				result.addError(this,
+						new Throwable("Unable to locate resource: "+filename));
+			} else {			
+				org.scribble.parser.Parser p=new org.scribble.conversation.parser.ConversationParser();
+				org.scribble.model.ModelReference ref=
+						new org.scribble.model.ModelReference(ConversationNotation.NOTATION_CODE);
+				org.scribble.model.admin.DefaultModelListener l=
+						new org.scribble.model.admin.DefaultModelListener();
+				
+				org.scribble.model.Model model=p.parse(ref, is, l);
+				
+				if (model == null) {
+					result.addError(this, new Throwable("Model is null"));
+					
+				} else if ((model instanceof ConversationModel) == false) {
+					result.addError(this, new Throwable("Model is null"));
+					
+				} else if (l.getErrors().size() != 0) {
+					result.addError(this, new Throwable("Failed to parse Conversation Model"));
+					
+					for (int i=0; i < l.getErrors().size(); i++) {
+						System.err.println("ModelIssue: "+
+								l.getErrors().get(i).getMessage());
+					}
+				} else {
+					ConversationModel cm=(ConversationModel)model;
+					
+					ModelGenerator generator=(ModelGenerator)
+							RegistryFactory.getRegistry().getExtension(
+									ModelGenerator.class, null);
+				
+					if (generator != null) {
+						ModelReference targetRef=
+							new ModelReference(JBossESBNotation.NOTATION_CODE);
+						
+						DefaultESBLanguageModel target=
+							new DefaultESBLanguageModel(targetRef,
+									cm.getConversation().isStateless());
+
+						generator.generate(targetRef,
+								model.getModelName().getLocatedRole(),
+									target, model);
+						
+						if (target.getESBConfiguration() != null) {
+							try {
+								String text=getText(target.getESBConfiguration(), true);
+							
+								checkResults(result, text);
+							} catch(Exception e) {
+								result.addError(this, e);
+							}
+						} else {
+							result.addError(this,
+									new Throwable("No jboss-esb.xml generated"));						
+						}
+						
+					} else {
+						result.addError(this,
+								new Throwable("Unable to find Model Generator"));						
+					}
+				}
+			}
+			
+			result.endTest(this);
+		}
+		
+		/**
+		 * This method checks the generated jboss-esb.xml against a
+		 * previously stored correct version.
+		 * 
+		 * @param result The test result
+		 * @param esbconfig The ESB configuration
+		 */
+		protected void checkResults(TestResult result, String esbconfig) {
+
+			String filename="results/"+m_name+".jboss-esb.xml";
+			
+			java.io.InputStream is=
+				GeneratorTest.class.getResourceAsStream(filename);
+			
+			if (is != null) {
+				
+				try {
+					byte[] b=new byte[is.available()];
+				
+					is.read(b);
+					
+					is.close();
+					
+					String orig=new String(b);
+					
+					if (orig.equals(esbconfig) == false) {
+						result.addError(this,
+							new Throwable("Generated ESB configuration does not match stored version"));
+						
+						System.out.println("COMPARED GENERATED:");
+						System.out.println(esbconfig);
+						System.out.println("WITH ORIGINAL:");
+						System.out.println(orig);
+					}
+				} catch(Exception e) {
+					result.addError(this, e);
+				}
+			} else {
+				result.addError(this,
+						new Throwable("Resulting ESB configuration '"+filename+
+								"' not found for comparison"));
+			}
+		}
+		
+		/**
+		 * This class converts a DOM representation node to
+		 * text with appropriate presentation formatting.
+		 * 
+		 * @param node The DOM node
+		 * @param pretty Whether to format the text for presentation
+		 * @return The text
+		 * @throws Exception Failed to convert
+		 */
+		public static String getText(Node node, boolean pretty) throws Exception {
+			String ret=getText(node);
+			
+			if (pretty) {
+				ret = reformat(ret);
+			}
+			
+			return(ret);
+		}
+
+		/**
+		 * This method reformats the XML text for presentation.
+		 * 
+		 * @param xmltext The original XML text
+		 * @return The reformatted text
+		 */
+		protected static String reformat(String xmltext) {
+			String ret=xmltext;
+			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 class converts a DOM representation node to
+		 * text.
+		 * 
+		 * @param node The DOM node
+		 * @return The text
+		 * @throws Exception Failed to convert
+		 */
+		public static 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);
+			}
+			
+			return(ret);
+		}
+
+		private String m_name=null;
+	}
+}

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/results/ESBBrokerProcess at Broker.jboss-esb.xml
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/results/ESBBrokerProcess at Broker.jboss-esb.xml	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/results/ESBBrokerProcess at Broker.jboss-esb.xml	2009-02-18 18:27:22 UTC (rev 511)
@@ -0,0 +1,261 @@
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5000">
+    <providers>
+        <jms-provider connection-factory="ConnectionFactory" jndi-URL="localhost" jndi-context-factory="org.jnp.interfaces.NamingContextFactory" name="JBossMQ">
+            <jms-bus busid="busId1">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId2">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__1" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId3">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__2" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId4">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__3" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId5">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__4" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId6">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__5" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId7">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__6" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId8">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__7" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId9">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__8" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId10">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__9" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId11">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__10" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId12">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__11" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId13">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__12" dest-type="QUEUE"/>
+            </jms-bus>
+            <jms-bus busid="busId14">
+                <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_checkCredit" dest-type="QUEUE"/>
+            </jms-bus>
+        </jms-provider>
+    </providers>
+    <services>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker">
+            <listeners>
+                <jms-listener busidref="busId1" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SwitchAction">
+                    <property name="serviceDescriptionName" value="{org.pi4soa.esbbroker.esbbroker}ESBBrokerProcess-Broker"/>
+                    <property name="conversationType" value="overlord.cdl.samples.LoanBroker at Broker"/>
+                    <property name="paths">
+                        <case service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__1">
+                            <message type="enquiry"/>
+                        </case>
+                        <case service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__7">
+                            <event description="Event trigger to send quoteList message type(s)"/>
+                        </case>
+                        <case service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__8">
+                            <message type="buy"/>
+                        </case>
+                        <case service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__12">
+                            <message type="cancel"/>
+                        </case>
+                    </property>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__1">
+            <listeners>
+                <jms-listener busidref="busId2" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__1"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.ReceiveMessageAction">
+                    <property name="operation" value="makeEnquiry"/>
+                    <property name="messageType" value="enquiry"/>
+                </action>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.IfAction">
+                    <property name="paths">
+                        <if service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__2"/>
+                        <else service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__3"/>
+                    </property>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__2">
+            <listeners>
+                <jms-listener busidref="busId3" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__2"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SendMessageAction">
+                    <property name="operation" value="getQuote"/>
+                    <property name="messageType" value="requestForQuote"/>
+                    <property name="serviceCategory" value=""/>
+                    <property name="serviceName" value=""/>
+                    <property name="responseServiceCategory" value="org.pi4soa.esbbroker.esbbroker"/>
+                    <property name="responseServiceName" value="getQuote"/>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__3">
+            <listeners>
+                <jms-listener busidref="busId4" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__3"/>
+            </listeners>
+            <actions/>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="getQuote">
+            <listeners>
+                <jms-listener busidref="busId5" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__4"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.ReceiveMessageAction">
+                    <property name="operation" value="getQuote"/>
+                    <property name="messageType" value="quote"/>
+                </action>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.IfAction">
+                    <property name="paths">
+                        <if service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__5"/>
+                        <else service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__6"/>
+                    </property>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__5">
+            <listeners>
+                <jms-listener busidref="busId6" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__5"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SendMessageAction">
+                    <property name="operation" value="getQuote"/>
+                    <property name="messageType" value="requestForQuote"/>
+                    <property name="serviceCategory" value=""/>
+                    <property name="serviceName" value=""/>
+                    <property name="responseServiceCategory" value="org.pi4soa.esbbroker.esbbroker"/>
+                    <property name="responseServiceName" value="getQuote"/>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__6">
+            <listeners>
+                <jms-listener busidref="busId7" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__6"/>
+            </listeners>
+            <actions/>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__7">
+            <listeners>
+                <jms-listener busidref="busId8" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__7"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SendMessageAction">
+                    <property name="operation" value="makeEnquiry"/>
+                    <property name="messageType" value="quoteList"/>
+                    <property name="clientRole" value="Buyer"/>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__8">
+            <listeners>
+                <jms-listener busidref="busId9" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__8"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.ReceiveMessageAction">
+                    <property name="operation" value="buy"/>
+                    <property name="messageType" value="buy"/>
+                </action>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SendMessageAction">
+                    <property name="operation" value="checkCredit"/>
+                    <property name="messageType" value="CreditCheckRequest"/>
+                    <property name="serviceCategory" value=""/>
+                    <property name="serviceName" value=""/>
+                    <property name="responseServiceCategory" value="org.pi4soa.esbbroker.esbbroker"/>
+                    <property name="responseServiceName" value="checkCredit"/>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__9">
+            <listeners>
+                <jms-listener busidref="busId10" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__9"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.ReceiveMessageAction">
+                    <property name="operation" value="checkCredit"/>
+                    <property name="messageType" value="CreditCheckOk"/>
+                </action>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SendMessageAction">
+                    <property name="operation" value="confirm"/>
+                    <property name="messageType" value="orderConfirmed"/>
+                    <property name="serviceCategory" value=""/>
+                    <property name="serviceName" value=""/>
+                    <property name="responseServiceCategory" value="org.pi4soa.esbbroker.esbbroker"/>
+                    <property name="responseServiceName" value="confirm"/>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="confirm">
+            <listeners>
+                <jms-listener busidref="busId11" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__10"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.ReceiveMessageAction">
+                    <property name="operation" value="confirm"/>
+                    <property name="messageType" value="bookingReference"/>
+                </action>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SendMessageAction">
+                    <property name="operation" value="buy"/>
+                    <property name="messageType" value="bookingReference"/>
+                    <property name="clientRole" value="Buyer"/>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__11">
+            <listeners>
+                <jms-listener busidref="busId12" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__11"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.ReceiveMessageAction">
+                    <property name="operation" value="checkCredit"/>
+                    <property name="messageType" value="CreditCheckInvalid"/>
+                </action>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SendMessageAction">
+                    <property name="operation" value="buy"/>
+                    <property name="messageType" value="orderRejected"/>
+                    <property name="clientRole" value="Buyer"/>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="ESBBrokerProcess_Broker__12">
+            <listeners>
+                <jms-listener busidref="busId13" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__12"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.ReceiveMessageAction">
+                    <property name="operation" value="cancel"/>
+                    <property name="messageType" value="cancel"/>
+                </action>
+            </actions>
+        </service>
+        <service category="org.pi4soa.esbbroker.esbbroker" name="checkCredit">
+            <listeners>
+                <jms-listener busidref="busId14" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-checkCredit"/>
+            </listeners>
+            <actions>
+                <action class="org.jboss.soa.overlord.jbossesb.actions.stateless.SwitchAction">
+                    <property name="paths">
+                        <case service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__9">
+                            <message type="CreditCheckOk"/>
+                        </case>
+                        <case service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__11">
+                            <message type="CreditCheckInvalid"/>
+                        </case>
+                    </property>
+                </action>
+            </actions>
+        </service>
+    </services>
+</jbossesb>

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/testmodels/ESBBrokerProcess at Broker.scv
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/testmodels/ESBBrokerProcess at Broker.scv	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.runtime.jbossesb/src/test/org/jboss/tools/overlord/cdl/runtime/jbossesb/generator/testmodels/ESBBrokerProcess at Broker.scv	2009-02-18 18:27:22 UTC (rev 511)
@@ -0,0 +1,34 @@
+namespace org.pi4soa.esbbroker.esbbroker;
+
+stateless conversation ESBBrokerProcess at Broker conforms to overlord.cdl.samples.LoanBroker at Broker {
+	role	Buyer, SupplierQuoteEngine, CreditAgency, SupplierTxnProcessor;
+	if {
+		makeEnquiry(enquiry) from Buyer request "makeEnquiry";
+		if @ Broker {
+			getQuote(requestForQuote) to SupplierQuoteEngine request "getQuote";
+		} else {
+		}
+	} else if {
+		getQuote(quote) from SupplierQuoteEngine replyTo "getQuote";
+		if @ Broker {
+			getQuote(requestForQuote) to SupplierQuoteEngine request "getQuote";
+		} else {
+		}
+	} else if {
+		makeEnquiry(quoteList) to Buyer replyTo "makeEnquiry";
+	} else if {
+		buy(buy) from Buyer request "buy";
+		checkCredit(CreditCheckRequest) to CreditAgency request "checkCredit";
+	} else if {
+		checkCredit(CreditCheckOk) from CreditAgency replyTo "checkCredit";
+		confirm(orderConfirmed) to SupplierTxnProcessor request "confirm";
+	} else if {
+		confirm(bookingReference) from SupplierTxnProcessor replyTo "confirm";
+		buy(bookingReference) to Buyer replyTo "buy";
+	} else if {
+		checkCredit(CreditCheckInvalid) from CreditAgency replyTo "checkCredit";
+		buy(orderRejected) to Buyer replyTo "buy";
+	} else if {
+		cancel(cancel) from Buyer;
+	}
+}




More information about the overlord-commits mailing list