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(a)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(a)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@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(a)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(a)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(a)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...
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@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(a)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(a)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(a)Broker.scv 2009-02-18
18:27:22 UTC (rev 511)
@@ -0,0 +1,34 @@
+namespace org.pi4soa.esbbroker.esbbroker;
+
+stateless conversation ESBBrokerProcess@Broker conforms to
overlord.cdl.samples.LoanBroker@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;
+ }
+}