[overlord-commits] Overlord SVN: r545 - in cdl/trunk: runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions and 9 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Fri Mar 20 12:48:06 EDT 2009


Author: jeff.yuchang
Date: 2009-03-20 12:48:05 -0400 (Fri, 20 Mar 2009)
New Revision: 545

Added:
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRStorage.java
   cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/java/com/acme/services/creditAgency/MemoryEPRStorage.java
   cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/MemoryEPRStorage.java
Removed:
   cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/PurchaseGoods.java
Modified:
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions/ReceiveMessageAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions/SendMessageAction.java
   cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/META-INF/deployment.xml
   cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/META-INF/jboss-esb.xml
   cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/jbmq-queue-service.xml
   cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/META-INF/deployment.xml
   cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/META-INF/jboss-esb.xml
   cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/jbmq-queue-service.xml
   cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java
   cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/resources/META-INF/jboss-esb.xml
   cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/resources/META-INF/jboss-esb.xml
Log:
* Update the purchasing example.
* Add the EPRStorage interface for getting ERP from client Role name.


Added: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRStorage.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRStorage.java	                        (rev 0)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/EPRStorage.java	2009-03-20 16:48:05 UTC (rev 545)
@@ -0,0 +1,35 @@
+/*
+ * 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;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
+ *
+ */
+public interface EPRStorage {
+	
+	void registerRole(String roleName, Message message);
+	
+	EPR getEPRByRole(String roleName, Message message);
+
+}

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions/ReceiveMessageAction.java	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions/ReceiveMessageAction.java	2009-03-20 16:48:05 UTC (rev 545)
@@ -23,6 +23,8 @@
 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.ClassLoaderUtil;
+import org.jboss.soa.overlord.jbossesb.EPRStorage;
 import org.jboss.soa.overlord.jbossesb.MessageUtil;
 import org.jboss.soa.overlord.jbossesb.StringUtils;
 
@@ -34,6 +36,7 @@
  * {@literal
 	<action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="c2" process="process">
 	    <property name="messageType" value="CreditCheckRequest"/>
+	    <property name="clientRole" value="Buyer" />
 	</action>
  * }
  * </pre>
@@ -52,6 +55,10 @@
 	
 	public static final String MESSAGE_TYPE = "messageType";
 	
+	public static final String CLIENT_ROLE = "clientRole";
+	
+	public static final String STORAGE_CLASS = "storageClass";
+	
 	private static Logger logger = Logger.getLogger(ReceiveMessageAction.class);
 	
 	private ConfigTree config;
@@ -77,7 +84,24 @@
 			throw new Exception ("Unexpected message type= "+ receivedMessageType + ", but expecting type="+ expected);
 		}
 		
+		String roleName = config.getAttribute(CLIENT_ROLE);
+		String store = config.getAttribute(STORAGE_CLASS);
+		
+		if (StringUtils.isNotNull(roleName) && StringUtils.isNotNull(store)) {
+			registerEPRwithRoleName(roleName, store, message);
+		}
+		
 		return message;
 	}
+
+	private void registerEPRwithRoleName(String roleName, String storageClass, Message message) throws Exception {
+		Class<?> storageClz = ClassLoaderUtil.loadClass(storageClass);
+		if (!EPRStorage.class.isAssignableFrom(storageClz)){
+			throw new Exception("The storageClass of " + storageClass + " doesn't implement the EPRStorage Interface.");
+		}
+		
+		EPRStorage storage = (EPRStorage)storageClz.newInstance();
+		storage.registerRole(roleName, message);
+	}
 	
 }

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions/SendMessageAction.java	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateless/actions/SendMessageAction.java	2009-03-20 16:48:05 UTC (rev 545)
@@ -19,6 +19,8 @@
  */
 package org.jboss.soa.overlord.jbossesb.stateless.actions;
 
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.addressing.helpers.EPRHelper;
 import org.jboss.soa.esb.actions.AbstractActionLifecycle;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.eprs.LogicalEPR;
@@ -29,6 +31,8 @@
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.overlord.jbossesb.ClassLoaderUtil;
+import org.jboss.soa.overlord.jbossesb.EPRStorage;
 import org.jboss.soa.overlord.jbossesb.LogicalCourier;
 import org.jboss.soa.overlord.jbossesb.MessageUtil;
 import org.jboss.soa.overlord.jbossesb.StringUtils;
@@ -62,6 +66,7 @@
 				process="process" name="s4-3">
 		<property name="messageType" value="quoteList" />
 		<property name="clientRole" value="buyer" />
+		<property name="storageClass" value="orgization.your.impl.EPRStorageImpl" />
 	 </action>
  * }
  * </pre>
@@ -87,6 +92,7 @@
  *  <li><i>serviceCategory</i> - Mapped to JBossESB service-category.</li>
  *  <li><i>responseServiceName</i> - The service-name of the responded message.</li>
  *  <li><i>responseServiceCategory</i> - The service-category of the responded message.</li>
+ *  <li><i>storageClass</i> - The class that is responsible for registering, getting EPR from roleName. </li>
  * </ul>
  * 
  * 
@@ -109,8 +115,12 @@
 	
 	public static final String CLIENT_ROLE = "clientRole";
 	
+	public static final String STORAGE_CLASS = "storageClass";
+	
 	private ConfigTree config;
 	
+	private Logger logger = Logger.getLogger(SendMessageAction.class);
+	
 	public SendMessageAction(ConfigTree config) {
 		this.config = config;
 	}
@@ -136,6 +146,7 @@
 		String category = config.getAttribute(SERVICE_CATEGORY);
 		String serviceName = config.getAttribute(SERVICE_NAME);
 		String clientRole = config.getAttribute(CLIENT_ROLE);
+		String storageClass = config.getAttribute(STORAGE_CLASS);
 		
 		if (StringUtils.isNotNull(category) && StringUtils.isNotNull(serviceName) 
 				&& StringUtils.isNotNull(clientRole)) {
@@ -145,8 +156,11 @@
 		if (StringUtils.isNotNull(category) && StringUtils.isNotNull(serviceName)){
 			ServiceInvoker invoker = new ServiceInvoker(category, serviceName);
 			invoker.deliverAsync(deliverMessage);
-		} else if (StringUtils.isNotNull(clientRole)) {
-			deliverMessageFromEPR(message, deliverMessage);
+			logger.info("Send Message to [" + category + "/" + serviceName + "]" );
+		} else if (StringUtils.isNotNull(clientRole) && StringUtils.isNotNull(storageClass)) {
+					
+			deliverMessageToRole(clientRole, storageClass, deliverMessage, message);
+			logger.info("Send Message to [" + clientRole + "]" );
 		} else {
 			throw new Exception ("Failed to send message, because can't find [serivceCategory/serviceName]," +
 					"nor clientRole.");
@@ -171,8 +185,17 @@
 		return deliverMessage;
 	}
 
-	private void deliverMessageFromEPR(Message message, Message deliverMessage) throws  Exception {
-		EPR epr = message.getHeader().getCall().getReplyTo();
+	private void deliverMessageToRole(String roleName, String storageClass, 
+									Message deliverMessage, Message message) throws  Exception {
+		Class<?> storageClz = ClassLoaderUtil.loadClass(storageClass);
+		if (!EPRStorage.class.isAssignableFrom(storageClz)){
+			throw new Exception("The storageClass of " + storageClass + " doesn't implement the EPRStorage Interface.");
+		}
+		
+		EPRStorage storage = (EPRStorage)storageClz.newInstance();
+		EPR epr = storage.getEPRByRole(roleName, message);		
+		logger.debug("The reply EPR is: " + EPRHelper.toXMLString(epr));
+		
 		Courier courier = null;
 		// Workaround, as CourierFactory currently does not support logical EPRs.
 		if (epr instanceof LogicalEPR) {

Modified: cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/META-INF/deployment.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/META-INF/deployment.xml	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/META-INF/deployment.xml	2009-03-20 16:48:05 UTC (rev 545)
@@ -1,4 +1,5 @@
 <jbossesb-deployment>
+	<depends>jboss.esb:deployment=overlord-cdl-runtime.esb</depends>
 	<depends>org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__2</depends>
 	<depends>org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__1</depends>
 	<depends>org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__12</depends>

Modified: cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/META-INF/jboss-esb.xml	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/META-INF/jboss-esb.xml	2009-03-20 16:48:05 UTC (rev 545)
@@ -50,7 +50,7 @@
             <listeners>
                 <jms-listener busidref="busId1" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.SwitchAction" name="ESBBrokerProcess_Broker_action_1" process="process">
                     <property name="serviceDescriptionName" value="{org.pi4soa.esbbroker.esbbroker}ESBBrokerProcess-Broker"/>
                     <property name="conversationType" value="overlord.cdl.samples.LoanBroker at Broker"/>
@@ -75,14 +75,14 @@
             <listeners>
                 <jms-listener busidref="busId2" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__1"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_Broker__1_action_1" process="process">
                     <property name="operation" value="makeEnquiry"/>
                     <property name="messageType" value="enquiry"/>
                 </action>
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.IfAction" name="ESBBrokerProcess_Broker__1_action_2" process="process">
                     <property name="paths">
-                        <if service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__2"/>
+                        <if service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__2" decision-class="org.jboss.soa.overlord.samples.jbossesb.loan.broker.SendReqForQuoteDecision"/>
                         <else service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__3"/>
                     </property>
                 </action>
@@ -92,7 +92,9 @@
             <listeners>
                 <jms-listener busidref="busId3" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__2"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
+                <action class="org.jboss.soa.overlord.samples.jbossesb.loan.broker.SetRequestQuoteMessageAction" name="b-1" process="process">
+                </action>
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction" name="ESBBrokerProcess_Broker__2_action_1" process="process">
                     <property name="operation" value="getQuote"/>
                     <property name="messageType" value="requestForQuote"/>
@@ -107,21 +109,26 @@
             <listeners>
                 <jms-listener busidref="busId4" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__3"/>
             </listeners>
-            <actions/>
+            <actions mep="OneWay">
+                <action class="org.jboss.soa.overlord.samples.jbossesb.loan.broker.SetRequestQuoteMessageAction" name="b-13" process="process">
+                </action>
+            </actions>
         </service>
         <service category="org.pi4soa.esbbroker.esbbroker" description="" name="getQuote">
             <listeners>
                 <jms-listener busidref="busId5" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__4"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_Broker__4_action_1" process="process">
                     <property name="operation" value="getQuote"/>
                     <property name="messageType" value="quote"/>
                 </action>
+                <action class="org.jboss.soa.overlord.samples.jbossesb.loan.broker.SetQuoteAction" name="b-2" process="process">
+                </action>
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.IfAction" name="ESBBrokerProcess_Broker__4_action_2" process="process">
                     <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"/>
+                        <if service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__5" decision-class="org.jboss.soa.overlord.samples.jbossesb.loan.broker.SendReqForQuoteDecision"/>
+                        <else service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__7"/>
                     </property>
                 </action>
             </actions>
@@ -130,7 +137,7 @@
             <listeners>
                 <jms-listener busidref="busId6" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__5"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction" name="ESBBrokerProcess_Broker__5_action_1" process="process">
                     <property name="operation" value="getQuote"/>
                     <property name="messageType" value="requestForQuote"/>
@@ -145,13 +152,18 @@
             <listeners>
                 <jms-listener busidref="busId7" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__6"/>
             </listeners>
-            <actions/>
+            <actions mep="OneWay">
+                <action class="org.jboss.soa.overlord.samples.jbossesb.loan.broker.SetRequestQuoteMessageAction" name="b-1" process="process">
+                </action>
+            </actions>
         </service>
         <service category="org.pi4soa.esbbroker.esbbroker" description="" name="ESBBrokerProcess_Broker__7">
             <listeners>
                 <jms-listener busidref="busId8" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__7"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
+                <action class="org.jboss.soa.overlord.samples.jbossesb.loan.broker.SetQuotesListAction" name="b-3" process="process">
+                </action>
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction" name="ESBBrokerProcess_Broker__7_action_1" process="process">
                     <property name="operation" value="makeEnquiry"/>
                     <property name="messageType" value="quoteList"/>
@@ -163,7 +175,7 @@
             <listeners>
                 <jms-listener busidref="busId9" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__8"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_Broker__8_action_1" process="process">
                     <property name="operation" value="buy"/>
                     <property name="messageType" value="buy"/>
@@ -182,7 +194,7 @@
             <listeners>
                 <jms-listener busidref="busId10" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__9"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_Broker__9_action_1" process="process">
                     <property name="operation" value="checkCredit"/>
                     <property name="messageType" value="CreditCheckOk"/>
@@ -201,7 +213,7 @@
             <listeners>
                 <jms-listener busidref="busId11" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__10"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_Broker__10_action_1" process="process">
                     <property name="operation" value="confirm"/>
                     <property name="messageType" value="bookingReference"/>
@@ -217,7 +229,7 @@
             <listeners>
                 <jms-listener busidref="busId12" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__11"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_Broker__11_action_1" process="process">
                     <property name="operation" value="checkCredit"/>
                     <property name="messageType" value="CreditCheckInvalid"/>
@@ -233,7 +245,7 @@
             <listeners>
                 <jms-listener busidref="busId13" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_Broker__12"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_Broker__12_action_1" process="process">
                     <property name="operation" value="cancel"/>
                     <property name="messageType" value="cancel"/>
@@ -244,7 +256,7 @@
             <listeners>
                 <jms-listener busidref="busId14" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-checkCredit"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.SwitchAction" name="checkCredit_action_1" process="process">
                     <property name="paths">
                         <case service-category="org.pi4soa.esbbroker.esbbroker" service-name="ESBBrokerProcess_Broker__9">

Modified: cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/jbmq-queue-service.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/jbmq-queue-service.xml	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/stateless/src/main/resources/jbmq-queue-service.xml	2009-03-20 16:48:05 UTC (rev 545)
@@ -54,6 +54,12 @@
 		</depends>
 	</mbean>
 	<mbean code="org.jboss.mq.server.jmx.Queue"
+			name="org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker_reply">
+		<depends optional-attribute-name="DestinationManager">
+			jboss.mq:service=DestinationManager
+	</depends>
+	</mbean>
+	<mbean code="org.jboss.mq.server.jmx.Queue"
 			name="org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_Broker__7">
 		<depends optional-attribute-name="DestinationManager">
 			jboss.mq:service=DestinationManager

Modified: cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/META-INF/deployment.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/META-INF/deployment.xml	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/META-INF/deployment.xml	2009-03-20 16:48:05 UTC (rev 545)
@@ -1,4 +1,5 @@
 <jbossesb-deployment>
+	<depends>jboss.esb:deployment=overlord-cdl-runtime.esb</depends>
 	<depends>org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_SupplierTxnProcessor</depends>
 	<depends>org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_SupplierTxnProcessor__1</depends>
 	<depends>org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_SupplierQuoteEngine</depends>

Modified: cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/META-INF/jboss-esb.xml	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/META-INF/jboss-esb.xml	2009-03-20 16:48:05 UTC (rev 545)
@@ -14,14 +14,13 @@
                 <jms-message-filter dest-name="queue/org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_SupplierQuoteEngine__1" dest-type="QUEUE"/>
             </jms-bus>
         </jms-provider>
-        </jms-provider>
     </providers>
     <services>
         <service category="org.pi4soa.esbbroker.esbbroker" description="" name="ESBBrokerProcess_SupplierTxnProcessor">
             <listeners>
                 <jms-listener busidref="busId1" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_SupplierTxnProcessor"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.SwitchAction" name="ESBBrokerProcess_SupplierTxnProcessor_action_1" process="process">
                     <property name="serviceDescriptionName" value="{org.pi4soa.esbbroker.esbbroker}ESBBrokerProcess-SupplierTxnProcessor"/>
                     <property name="conversationType" value="overlord.cdl.samples.LoanBroker at SupplierTxnProcessor"/>
@@ -37,7 +36,7 @@
             <listeners>
                 <jms-listener busidref="busId2" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_SupplierTxnProcessor__1"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_SupplierTxnProcessor__1_action_1" process="process">
                     <property name="operation" value="confirm"/>
                     <property name="messageType" value="orderConfirmed"/>
@@ -55,7 +54,7 @@
             <listeners>
                 <jms-listener busidref="busId3" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_SupplierQuoteEngine"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.SwitchAction" name="ESBBrokerProcess_SupplierQuoteEngine_action_1" process="process">
                     <property name="serviceDescriptionName" value="{org.pi4soa.esbbroker.esbbroker}ESBBrokerProcess-SupplierQuoteEngine"/>
                     <property name="conversationType" value="overlord.cdl.samples.LoanBroker at SupplierQuoteEngine"/>
@@ -71,7 +70,7 @@
             <listeners>
                 <jms-listener busidref="busId4" maxThreads="1" name="org.pi4soa.esbbroker.esbbroker-ESBBrokerProcess_SupplierQuoteEngine__1"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction" name="ESBBrokerProcess_SupplierQuoteEngine__1_action_1" process="process">
                     <property name="operation" value="getQuote"/>
                     <property name="messageType" value="requestForQuote"/>

Modified: cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/jbmq-queue-service.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/jbmq-queue-service.xml	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/brokerage/supplier/stateless/src/main/resources/jbmq-queue-service.xml	2009-03-20 16:48:05 UTC (rev 545)
@@ -5,6 +5,12 @@
 			jboss.mq:service=DestinationManager
 		</depends>
 	</mbean>
+    <mbean code="org.jboss.mq.server.jmx.Queue"
+			name="org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_SupplierTxnProcessor_reply">
+		<depends optional-attribute-name="DestinationManager">
+			jboss.mq:service=DestinationManager
+		</depends>
+	</mbean>
 	<mbean code="org.jboss.mq.server.jmx.Queue"
 			name="org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_SupplierTxnProcessor__1">
 		<depends optional-attribute-name="DestinationManager">
@@ -18,6 +24,12 @@
 		</depends>
 	</mbean>
 	<mbean code="org.jboss.mq.server.jmx.Queue"
+			name="org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_SupplierQuoteEngine_reply">
+		<depends optional-attribute-name="DestinationManager">
+			jboss.mq:service=DestinationManager
+		</depends>
+	</mbean>
+	<mbean code="org.jboss.mq.server.jmx.Queue"
 			name="org.pi4soa.esbbroker.esbbroker.destination:service=Queue,name=org_pi4soa_esbbroker_esbbroker_ESBBrokerProcess_SupplierQuoteEngine__1">
 		<depends optional-attribute-name="DestinationManager">
 			jboss.mq:service=DestinationManager

Modified: cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java
===================================================================
--- cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java	2009-03-20 16:48:05 UTC (rev 545)
@@ -42,7 +42,7 @@
 		System.setProperty("javax.xml.registry.ConnectionFactoryClass",regClass);
 		
         try {
-        	brokerInvoker = new ServiceInvoker("ESBBroker.BrokerParticipant", "ESBBrokerProcess");
+        	brokerInvoker = new ServiceInvoker("org.pi4soa.esbbroker.esbbroker", "ESBBrokerProcess_Broker");
         } catch (Exception e) {
             throw new RuntimeException("Failed to create ServiceInvoker", e);
         }

Added: cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/java/com/acme/services/creditAgency/MemoryEPRStorage.java
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/java/com/acme/services/creditAgency/MemoryEPRStorage.java	                        (rev 0)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/java/com/acme/services/creditAgency/MemoryEPRStorage.java	2009-03-20 16:48:05 UTC (rev 545)
@@ -0,0 +1,46 @@
+/*
+ * 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 java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.overlord.jbossesb.EPRStorage;
+
+/**
+ * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
+ *
+ */
+public class MemoryEPRStorage implements EPRStorage {
+	
+	private static final Map<String, EPR> storage = new HashMap<String, EPR>();
+	
+	public EPR getEPRByRole(String roleName, Message message) {
+		return storage.get(roleName);
+	}
+
+	public void registerRole(String roleName, Message message) {
+		EPR epr = message.getHeader().getCall().getReplyTo();
+		storage.put(roleName, epr);
+	}
+
+}

Modified: cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/resources/META-INF/jboss-esb.xml	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/resources/META-INF/jboss-esb.xml	2009-03-20 16:48:05 UTC (rev 545)
@@ -20,7 +20,7 @@
             <listeners>
                 <jms-listener busidref="busId1" maxThreads="1" name="esb-stateless-creditAgency"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action name="c1" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SwitchAction">
                     <property name="serviceDescriptionName" value="{org.pi4soa.purchase.purchasegoods}PurchaseGoodsProcess-CreditAgency"/>
                     <property name="conversationType" value="overlord.cdl.samples.Common at CreditAgency"/>
@@ -36,10 +36,12 @@
             <listeners>
                 <jms-listener busidref="busId2" maxThreads="1" name="esb-stateless-creditAgency1"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action name="c2" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction">
                     <property name="operation" value="checkCredit"/>
                     <property name="messageType" value="CreditCheckRequest"/>
+                    <property name="clientRole" value="Store" />
+                    <property name="storageClass" value="com.acme.services.creditAgency.MemoryEPRStorage" />
                 </action>
                 <action name="c3" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.IfAction">
                     <property name="paths">
@@ -53,11 +55,14 @@
             <listeners>
                 <jms-listener busidref="busId3" maxThreads="1" name="esb-stateless-creditAgency2"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
+                <action name="custom-1" process="process" class="com.acme.services.creditAgency.SetCreditCheckResponseMessageAction">
+                </action>
                 <action name="c4" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction">
                     <property name="operation" value="checkCredit"/>
                     <property name="messageType" value="CreditCheckOk"/>
                     <property name="clientRole" value="Store"/>
+                    <property name="storageClass" value="com.acme.services.creditAgency.MemoryEPRStorage" />
                 </action>
             </actions>
         </service>
@@ -65,11 +70,14 @@
             <listeners>
                 <jms-listener busidref="busId4" maxThreads="1" name="esb-stateless-creditAgency3"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
+                <action name="custom-2" process="process" class="com.acme.services.creditAgency.SetCreditCheckInvalidMessageAction">
+                </action>
                 <action name="c5" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction">
                     <property name="operation" value="checkCredit"/>
                     <property name="messageType" value="CreditCheckInvalid"/>
                     <property name="clientRole" value="Store"/>
+                    <property name="storageClass" value="com.acme.services.creditAgency.MemoryEPRStorage" />
                 </action>
             </actions>
         </service>

Added: cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/MemoryEPRStorage.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/MemoryEPRStorage.java	                        (rev 0)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/MemoryEPRStorage.java	2009-03-20 16:48:05 UTC (rev 545)
@@ -0,0 +1,46 @@
+/*
+ * 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.broker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.overlord.jbossesb.EPRStorage;
+
+/**
+ * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
+ *
+ */
+public class MemoryEPRStorage implements EPRStorage {
+	
+	private static final Map<String, EPR> storage = new HashMap<String, EPR>();
+	
+	public EPR getEPRByRole(String roleName, Message message) {
+		return storage.get(roleName);
+	}
+
+	public void registerRole(String roleName, Message message) {
+		EPR epr = message.getHeader().getCall().getReplyTo();
+		storage.put(roleName, epr);
+	}
+
+}

Deleted: cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/PurchaseGoods.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/PurchaseGoods.java	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/PurchaseGoods.java	2009-03-20 16:48:05 UTC (rev 545)
@@ -1,42 +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 com.acme.services.broker;
-
-import java.io.Serializable;
-
-import org.jboss.soa.overlord.jbossesb.stateful.actions.Service;
-
-
- at Service(name="{http://www.jboss.org/overlord/purchase}Store", conversationType="overlord.cdl.samples.Purchasing at Store", root=true)
-public class PurchaseGoods implements Serializable{
-	
-	private long id;
-
-	public long getId() {
-		return id;
-	}
-
-	public void setId(long id) {
-		this.id = id;
-	}
-	
-	
-	
-}

Modified: cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/resources/META-INF/jboss-esb.xml	2009-03-18 16:43:08 UTC (rev 544)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/resources/META-INF/jboss-esb.xml	2009-03-20 16:48:05 UTC (rev 545)
@@ -23,7 +23,7 @@
             <listeners>
                 <jms-listener busidref="busId1" maxThreads="1" name="org.pi4soa.purchase.purchasegoods-PurchaseGoodsProcess_Store"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action name="s1" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SwitchAction">
                     <property name="serviceDescriptionName" value="{org.pi4soa.purchase.purchasegoods}PurchaseGoodsProcess-Store"/>
                     <property name="conversationType" value="overlord.cdl.samples.Purchasing at Store"/>
@@ -39,12 +39,16 @@
             <listeners>
                 <jms-listener busidref="busId2" maxThreads="1" name="org.pi4soa.purchase.purchasegoods-PurchaseGoodsProcess_Store__1"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action name="s2" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction">
                     <property name="operation" value="buy"/>
                     <property name="messageType" value="BuyRequest"/>
+                    <property name="clientRole" value="Buyer" />
+                    <property name="storageClass" value="com.acme.services.broker.MemoryEPRStorage" />
                 </action>
-                <action name="s3" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction">
+                <action name="s3" process="process" class="com.acme.services.broker.SetCreditCheckRequestMessageAction">
+                </action>
+                <action name="s4" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction">
                     <property name="operation" value="checkCredit"/>
                     <property name="messageType" value="CreditCheckRequest"/>
                     <property name="serviceCategory" value="org.pi4soa.purchase.purchasegoods"/>
@@ -58,15 +62,18 @@
             <listeners>
                 <jms-listener busidref="busId3" maxThreads="1" name="org.pi4soa.purchase.purchasegoods-PurchaseGoodsProcess_Store__2"/>
             </listeners>
-            <actions>
-                <action name="s4" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction">
+            <actions mep="OneWay">
+                <action name="s5" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction">
                     <property name="operation" value="checkCredit"/>
                     <property name="messageType" value="CreditCheckOk"/>
                 </action>
-                <action name="s5" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction">
+                <action name="purchasing-success" class="com.acme.services.broker.SetBuyResponseMessageAction">
+                </action>
+                <action name="s6" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction">
                     <property name="operation" value="buy"/>
                     <property name="messageType" value="BuyConfirmed"/>
                     <property name="clientRole" value="Buyer"/>
+                    <property name="storageClass" value="com.acme.services.broker.MemoryEPRStorage" />
                 </action>
             </actions>
         </service>
@@ -74,15 +81,17 @@
             <listeners>
                 <jms-listener busidref="busId4" maxThreads="1" name="org.pi4soa.purchase.purchasegoods-PurchaseGoodsProcess_Store__3"/>
             </listeners>
-            <actions>
-                <action name="s6" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction">
+            <actions mep="OneWay">
+                <action name="s7" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.ReceiveMessageAction">
                     <property name="operation" value="checkCredit"/>
                     <property name="messageType" value="CreditCheckInvalid"/>
                 </action>
-                <action name="s7" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction">
+                <action name="purchasing-failed" class="com.acme.services.broker.SetBuyFailedMessageAction"></action>
+                <action name="s8" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SendMessageAction">
                     <property name="operation" value="buy"/>
                     <property name="messageType" value="BuyFailed"/>
                     <property name="clientRole" value="Buyer"/>
+                    <property name="storageClass" value="com.acme.services.broker.MemoryEPRStorage" />
                 </action>
             </actions>
         </service>
@@ -90,8 +99,8 @@
             <listeners>
                 <jms-listener busidref="busId5" maxThreads="1" name="org.pi4soa.purchase.purchasegoods-checkCredit"/>
             </listeners>
-            <actions>
-                <action name="s8" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SwitchAction">
+            <actions mep="OneWay">
+                <action name="s9" process="process" class="org.jboss.soa.overlord.jbossesb.stateless.actions.SwitchAction">
                     <property name="paths">
                         <case service-category="org.pi4soa.purchase.purchasegoods" service-name="PurchaseGoodsProcess_Store__2">
                             <message type="CreditCheckOk"/>




More information about the overlord-commits mailing list