[overlord-commits] Overlord SVN: r93 - in cdl/trunk: runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation and 10 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Tue Jul 1 06:15:42 EDT 2008


Author: jeff.yuchang
Date: 2008-07-01 06:15:42 -0400 (Tue, 01 Jul 2008)
New Revision: 93

Added:
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/GetVariableAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetVariableAction.java
   cdl/trunk/runtime/jbossesb/src/test/java/org/
   cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/
   cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/
   cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/
   cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/
   cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/
   cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/XMLUtilsTest.java
Removed:
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/Test.java
Modified:
   cdl/trunk/runtime/jbossesb/pom.xml
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/PersistentTest.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java
   cdl/trunk/samples/jbossesb/broker/src/main/resources/META-INF/jboss-esb.xml
Log:
* update example.


Modified: cdl/trunk/runtime/jbossesb/pom.xml
===================================================================
--- cdl/trunk/runtime/jbossesb/pom.xml	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/pom.xml	2008-07-01 10:15:42 UTC (rev 93)
@@ -57,6 +57,12 @@
 				<artifactId>c3p0</artifactId>
 				<version>0.9.1</version>
 			</dependency>
+			<dependency>
+				<groupId>junit</groupId>
+				<artifactId>junit</artifactId>
+				<version>4.4</version>
+				<scope>test</scope>
+			</dependency>
 		</dependencies>
 	
 	<reporting>

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/PersistentTest.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/PersistentTest.java	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/PersistentTest.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -34,7 +34,7 @@
 
 	
 	public static void main(String[] args) throws Exception{
-		Session s = SessionManager.createSession("com.acme.services.broker.PurchaseGoods", null);
+		Session s = SessionManager.createSession("com.acme.services.broker.PurchaseGoods");
 		Identity id = new Identity();
 		id.setSession(s);
 		id.setServiceName(s.getServiceName());

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -25,6 +25,9 @@
 
 import org.apache.log4j.Logger;
 import org.hibernate.Transaction;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.overlord.jbossesb.actions.ConversationActionException;
+import org.jboss.soa.overlord.jbossesb.actions.MessageProperties;
 import org.jboss.soa.overlord.jbossesb.actions.Service;
 
 /**
@@ -35,13 +38,11 @@
 	
 	private static Logger logger = Logger.getLogger(SessionManager.class);
 	
-	public static Session createSession(String sessionName, String sessionKey) throws Exception {
+	public static Session createSession(String sessionName) throws Exception {
+		
 		org.hibernate.Session hibernateSession = HibernateUtil.getSessionFactory().openSession();
 		Transaction transaction = null;
 		try {
-			if (sessionKey != null && !"".equals(sessionKey)) {
-				return (Session) hibernateSession.load(Session.class, Long.valueOf(sessionKey));
-			} 
 			
 			Class<?> pojoclass= ClassLoaderUtil.loadClass(sessionName);
 			Object businessState = pojoclass.newInstance();
@@ -81,6 +82,48 @@
 		}
 	}
 	
+	
+	public static Session createSubSession(String sessionName, String sessionKey, Message message) throws Exception {
+		
+		org.hibernate.Session hibernateSession = HibernateUtil.getSessionFactory().openSession();
+		Transaction transaction = null;
+		try {
+			Session parentSession = (Session)hibernateSession.load(Session.class, Long.valueOf(sessionKey));
+			Class<?> pojoclass= ClassLoaderUtil.loadClass(sessionName);
+			Object businessState = pojoclass.newInstance();
+			
+			transaction = hibernateSession.beginTransaction();
+			//TODO: set variable here.
+			String bindExpression = (String) message.getProperties().getProperty(MessageProperties.BIND_VARIABLE);
+			Object value = message.getProperties().getProperty(MessageProperties.BIND_OBJECT);
+			
+			hibernateSession.save(businessState);
+			
+			Session conversationSession = new Session();
+			conversationSession.setPojoClass(sessionName);
+			conversationSession.setStatus(SessionStatus.Active);
+			if (businessState instanceof HibernateObject) {
+				HibernateObject ho = (HibernateObject) businessState;
+				conversationSession.setPojoID(ho.getId());
+				logger.debug("Set Business State Object ID : " + ho.getId());
+			}
+			conversationSession.setBusinessObject(businessState);
+			conversationSession.setParent(parentSession);
+			
+			hibernateSession.save(conversationSession);
+			transaction.commit();
+			
+			return conversationSession;
+		} catch (Exception e) {
+			if (transaction != null) {
+				transaction.rollback();
+			}
+			throw new Exception (e);
+		} finally {
+			hibernateSession.close();
+		}
+	}
+	
 	public static Session retrieveSession(String sessionKey, java.util.List<Identity> ids) throws Exception {
 		
 		if (sessionKey == null && ids == null) {
@@ -112,46 +155,85 @@
 	
 	public static Object saveObject(Object obj) throws Exception {
 		org.hibernate.Session hibernateSession = HibernateUtil.getSessionFactory().openSession();
-		Transaction transaction = hibernateSession.beginTransaction();
-		hibernateSession.save(obj);
-		transaction.commit();
-		hibernateSession.close();
+		Transaction transaction = null;
+		try {
+			transaction = hibernateSession.beginTransaction();
+			hibernateSession.save(obj);
+			transaction.commit();
+		} catch (Exception e) {
+			if (transaction != null) {
+				transaction.rollback();
+			}
+			throw new ConversationActionException("Error in saveObject", e);
+		} finally {
+			hibernateSession.close();
+		}
+		
 		return obj;
 	}
 	
 	@SuppressWarnings("unchecked")
 	public static Collection saveCollection(Collection col) throws Exception {
 		org.hibernate.Session hibernateSession = HibernateUtil.getSessionFactory().openSession();
-		Transaction transaction = hibernateSession.beginTransaction();
+		Transaction transaction = null;
+		try {
+			transaction = hibernateSession.beginTransaction();
 		
-		for(Iterator it = col.iterator(); it.hasNext();) {
-			Object o = it.next();
-			hibernateSession.save(o);
+			for(Iterator it = col.iterator(); it.hasNext();) {
+				Object o = it.next();
+				hibernateSession.save(o);
+			}
+			
+			transaction.commit();
+		} catch (Exception e) {
+			if (transaction != null) {
+				transaction.rollback();
+			}
+			throw new ConversationActionException("Error in saveCollection", e);
+		} finally {
+			hibernateSession.close();
 		}
 		
-		transaction.commit();
-		hibernateSession.close();
 		return col;
 	}
 	
-	public static void updateObject(Object obj) throws Exception {
+	public static void updateObject(Object obj) {
 		org.hibernate.Session hibernateSession = HibernateUtil.getSessionFactory().openSession();
-		Transaction transaction = hibernateSession.beginTransaction();
-		hibernateSession.update(obj);
-		transaction.commit();
-		hibernateSession.close();
+		Transaction transaction = null;
+		try {
+			transaction = hibernateSession.beginTransaction();
+			hibernateSession.update(obj);
+			transaction.commit();
+		} catch (Exception e) {
+			if (transaction != null) {
+				transaction.rollback();
+			}
+			throw new ConversationActionException("Error in updateObject", e);
+		} finally {
+			hibernateSession.close();
+		}
 	}
 	
-	public static void removeObject(Object obj) throws Exception {
+	public static void removeObject(Object obj) {
 		org.hibernate.Session hibernateSession = HibernateUtil.getSessionFactory().openSession();
-		Transaction transaction = hibernateSession.beginTransaction();
-		hibernateSession.delete(obj);
-		transaction.commit();
-		hibernateSession.close();
+		Transaction transaction = null;
+		try {
+			transaction = hibernateSession.beginTransaction();
+			hibernateSession.delete(obj);
+			transaction.commit();
+		} catch (Exception e) {
+			if (transaction != null) {
+				transaction.rollback();
+			}
+			throw new ConversationActionException("Error in removeObject", e);
+		} finally {
+			hibernateSession.close();
+		}
+		
 	}
 	
 	
-	public static Session getSession(Identity id) throws Exception {
+	public static Session getSession(Identity id) {
 		org.hibernate.Session hibernateSession = HibernateUtil.getSessionFactory().openSession();
 		String query = "select b from Identity b where b.type =:type and b.propertyValues =:propertyValues and b.serviceName =:serviceName";
 		List<?> results = hibernateSession.createQuery(query)

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/CreateSessionAction.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -44,10 +44,15 @@
 		String sessionName=getConfig().getAttribute(ActionProperties.SESSION_NAME);
 		
 		if (sessionName != null) {
-			String key=(String)message.getProperties().
-					getProperty(MessageProperties.SESSION_KEY);
-			Session session=SessionManager.createSession(sessionName, key);
+			String key=(String)message.getProperties().getProperty(MessageProperties.SESSION_KEY);
+			Session session= null;
 			
+			if (isSubSession(key)) {
+				session = SessionManager.createSubSession(sessionName, key, message);
+			} else {
+				session = SessionManager.createSession(sessionName);
+			}
+			
 			logger.info("Set session '"+sessionName+"' = "+session);
 			
 			message.getProperties().setProperty(MessageProperties.SESSION, session);
@@ -55,13 +60,18 @@
 			
 		} else {
 			logger.error("No session has been defined");		
-			throw new Exception("Session not defined");
+			throw new ConversationActionException("Session is not defined");
 		}
 		
 		return(message);
 	}
 	
 	
+	private boolean isSubSession(String key) {
+		return key != null && !"".equals(key);
+	}
+	
+	
 }
 
 

Added: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/GetVariableAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/GetVariableAction.java	                        (rev 0)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/GetVariableAction.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -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 org.jboss.soa.overlord.jbossesb.actions;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.overlord.conversation.Session;
+
+/**
+ * @author jeffyu
+ *
+ */
+public class GetVariableAction extends ConversationAction {
+
+	public GetVariableAction(ConfigTree config) {
+		super(config);
+	}
+
+	
+	@Override
+	public Message handle(Message message) throws Exception {
+		String expression = getConfig().getAttribute("variable");
+		Session session = getSession(message);
+		Object obj = session.getBusinessObject();
+		//TODO
+		return message;
+	}
+
+}

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -27,4 +27,7 @@
 	public static final String OPERATION="operation";
 	public static final String MESSAGE_TYPE="messageType";
 	
+	public static final String BIND_VARIABLE = "bind_variable";
+	public static final String BIND_OBJECT = "bind_object";
+	
 }

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -19,6 +19,7 @@
  */
 package org.jboss.soa.overlord.jbossesb.actions;
 
+import org.jboss.soa.esb.client.ServiceInvoker;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
 
@@ -36,8 +37,27 @@
 	
 	@Override
 	public Message handle(Message message) throws Exception {
+		String serviceCategory = getConfig().getAttribute(ActionProperties.SERVICE_CATEGORY_PROPERTY);
+		String serviceName = getConfig().getAttribute(ActionProperties.SERVICE_NAME_PROPERTY);
 		
-		return null;
+		ConfigTree[] configs = getConfig().getAllChildren();
+		
+		for(ConfigTree ct : configs) {
+			if ("bind".equals(ct.getName())) {
+				String fromExpression = ct.getAttribute("from-expression");
+				String toVariable = ct.getAttribute("to-variable");
+				
+				//TODO: Object retrieving from the "fromExpression".
+				Object o = new Object();
+				message.getProperties().setProperty(MessageProperties.BIND_VARIABLE, toVariable);
+				message.getProperties().setProperty(MessageProperties.BIND_OBJECT, o);
+				
+				ServiceInvoker serviceInvoker = new ServiceInvoker(serviceCategory, serviceName);
+				serviceInvoker.deliverAsync(message);
+			}
+		}
+		
+		return message;
 	}
 
 }

Added: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetVariableAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetVariableAction.java	                        (rev 0)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetVariableAction.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -0,0 +1,42 @@
+/*
+ * 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.actions;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * @author jeffyu
+ *
+ */
+public class SetVariableAction extends ConversationAction {
+
+	public SetVariableAction(ConfigTree config) {
+		super(config);
+	}
+
+	
+	@Override
+	public Message handle(Message message) throws Exception {
+		//TODO
+		return message;
+	}
+
+}

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -85,7 +85,8 @@
 						}
 					}
 				} catch (Exception e) {
-					logger.error("Failed invoke decision method: " + decision);
+					logger.error("Failed to invoke decision method: " + decision);
+					throw new ConversationActionException("Failed to invoke decision method of - " + decision);
 				}
 			}
 		}

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -53,6 +53,7 @@
 			}
 		}
 		
+		//TODO: Need to think about the expression.
 		String decisionMethod = whileConfig.getAttribute("decision-method");
 		
 		Class<?> cls= ClassLoaderUtil.loadClass(session.getPojoClass());		

Deleted: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/Test.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/Test.java	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/Test.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2008,
- */
-package org.jboss.soa.overlord.jbossesb.util;
-
-import org.w3c.dom.Element;
-
-/**
- * @author jeffyu
- *
- */
-public class Test {
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) throws Exception{
-		String attr="myId";
-		String val="<order><orderId id=\""+3+"\" /></order>";
-		String expr="/order/orderId/@id";
-		
-		String value = XMLUtils.executeXpath(val, expr);
-		System.out.println(value);
-		
-		Element element = (Element) XMLUtils.getNode(val);
-		System.out.println(XMLUtils.executeXpath(element, expr));
-	}
-
-}

Added: cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/XMLUtilsTest.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/XMLUtilsTest.java	                        (rev 0)
+++ cdl/trunk/runtime/jbossesb/src/test/java/org/jboss/soa/overlord/jbossesb/util/XMLUtilsTest.java	2008-07-01 10:15:42 UTC (rev 93)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2008,
+ */
+package org.jboss.soa.overlord.jbossesb.util;
+
+import org.w3c.dom.Element;
+import org.junit.Test;
+
+import junit.framework.Assert;
+
+/**
+ * @author jeffyu
+ * 
+ */
+public class XMLUtilsTest extends Assert{
+	
+	@Test
+	public void testExecuteXpath() throws Exception {
+		String val="<order><orderId id=\""+3+"\" /></order>";
+		String expr="/order/orderId/@id";
+		
+		String value = XMLUtils.executeXpath(val, expr);
+		assertEquals("3",value);
+		
+		Element element = (Element) XMLUtils.getNode(val);
+		assertEquals("3", XMLUtils.executeXpath(element, expr));
+	}
+	
+}

Modified: cdl/trunk/samples/jbossesb/broker/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/broker/src/main/resources/META-INF/jboss-esb.xml	2008-07-01 03:15:50 UTC (rev 92)
+++ cdl/trunk/samples/jbossesb/broker/src/main/resources/META-INF/jboss-esb.xml	2008-07-01 10:15:42 UTC (rev 93)
@@ -30,6 +30,33 @@
 			<jms-bus busid="BrokerService7">
 				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker7"/>
 			</jms-bus>
+			<jms-bus busid="BrokerService8">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker8"/>
+			</jms-bus>
+			<jms-bus busid="BrokerService9">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker9"/>
+			</jms-bus>
+			<jms-bus busid="BrokerService10">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker10"/>
+			</jms-bus>
+			<jms-bus busid="BrokerService11">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker11"/>
+			</jms-bus>
+			<jms-bus busid="BrokerService12">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker12"/>
+			</jms-bus>
+			<jms-bus busid="BrokerService13">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker13"/>
+			</jms-bus>
+			<jms-bus busid="BrokerService14">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker14"/>
+			</jms-bus>
+			<jms-bus busid="BrokerService15">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker15"/>
+			</jms-bus>
+			<jms-bus busid="BrokerService16">
+				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-broker16"/>
+			</jms-bus>
 			<jms-bus busid="CreditAgencyService">
 				<jms-message-filter dest-type="QUEUE" dest-name="queue/esb-loan-creditAgency" />
 			</jms-bus>
@@ -100,7 +127,9 @@
 
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener1"
+							  busidref="BrokerService1"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
 				<action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction"
@@ -138,10 +167,12 @@
 		
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.1" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener2"
+							  busidref="BrokerService2"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.WhileAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.WhileAction"
 							process="process" name="s2-1">
 					<property name="paths">
 						<while decision-method="sendAllRequests"
@@ -162,12 +193,13 @@
 		
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.2" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener3"
+							  busidref="BrokerService3"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.PerformAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.PerformAction"
 							process="process" name="s3-1">
-					<property name="session" value="org.jboss.soa.esb.samples.broker.BrokerMain" />
 					<property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
 					<property name="serviceName" value="RequestForQuote.main" />
 					<property name="bindDetails" >
@@ -196,10 +228,12 @@
 		
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.3" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener4"
+							  busidref="BrokerService4"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.WhenAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.WhenAction"
 							process="process" name="s4-1">
 					<property name="paths">
 						<when expression="allQuotesReceived"
@@ -212,15 +246,17 @@
 
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.4" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener5"
+							  busidref="BrokerService5"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.GetStateAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.GetStateAction"
 							process="process" name="s4-1">
 					<property name="session" value="org.jboss.soa.esb.samples.broker.BrokerMain" />
 					<property name="variable" value="quotes" />
 				</action>
-				<action class="org.jboss.soa.esb.actions.conversation.SendMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
 							process="process" name="s4-2">
 					<property name="operation" value="makeEnquiry" />
 					<property name="messageType" value="quoteList" />
@@ -231,7 +267,7 @@
 						</identity>
 					</property>
 				</action>
-				<action class="org.jboss.soa.esb.actions.conversation.ScheduleStateAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.ScheduleStateAction"
 							process="process" name="s4-3">
 					<property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
 					<property name="serviceName" value="ESBBrokerProcess.main.5" />
@@ -251,10 +287,12 @@
 		
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.5" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener6"
+							  busidref="BrokerService6"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.RetrieveSessionAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.RetrieveSessionAction"
 							process="process" name="s5-1">
 					<property name="session" value="org.jboss.soa.esb.samples.broker.BrokerMain" />
 					<property name="serviceName" value="ESBBrokerProcess.main.5" />
@@ -265,7 +303,7 @@
 						</identity>
 					</property>
 				</action>
-				<action class="org.jboss.soa.esb.actions.conversation.SwitchAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.SwitchAction"
 							process="process" name="s5-2">
 					<property name="paths">
 						<case service-category="ESBBroker.BrokerParticipant"
@@ -289,10 +327,12 @@
 		
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.6" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener7"
+							  busidref="BrokerService7"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.ReceiveMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
 							process="process" name="s6-1">
 					<property name="operation" value="cancel" />
 					<property name="messageType" value="cancel" />
@@ -312,10 +352,12 @@
 		
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.7" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener8"
+							  busidref="BrokerService8"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.PerformAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.PerformAction"
 							process="process" name="s7-1">
 					<property name="session" value="org.jboss.soa.esb.samples.broker.BrokerMain" />
 					<property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
@@ -335,7 +377,9 @@
 
 		<service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.8" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener9"
+							  busidref="BrokerService9"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
 				<!-- No actions - required to act as a join point for the performed sub-choreo
@@ -354,10 +398,12 @@
 		
 		<service category="ESBBroker.BrokerParticipant" name="RequestForQuote.main" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener10"
+							  busidref="BrokerService10"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.CreateSessionAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction"
 							process="process" name="s8-1">
 					<property name="session" value="org.jboss.soa.overlord.samples.jbossesb.loan.broker.Request4QuoteMain" />
 				</action>
@@ -365,7 +411,7 @@
 				<!-- NOTE: the service being sent the message is obtained by
 				xpath expression on the session's state. -->
 				
-				<action class="org.jboss.soa.esb.actions.conversation.SendMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
 							process="process" name="s8-2">
 					<property name="operation" value="getQuote" />
 					<property name="messageType" value="requestForQuote" />
@@ -387,10 +433,12 @@
 		
 		<service category="ESBBroker.BrokerParticipant" name="RequestForQuote.main" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener11"
+							  busidref="BrokerService11"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.ReceiveMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
 							process="process" name="s9-1">
 					<property name="operation" value="getQuote" />
 					<property name="messageType" value="quote" />
@@ -409,14 +457,16 @@
 
 		<service category="ESBBroker.BrokerParticipant" name="CompleteTransaction.main" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener12"
+							  busidref="BrokerService12"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.CreateSessionAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction"
 							process="process" name="s10-1">
 					<property name="session" value="org.jboss.soa.esb.samples.broker.CompleteTransactionMain" />
 				</action>
-				<action class="org.jboss.soa.esb.actions.conversation.ReceiveMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
 							process="process" name="s10-2">
 					<property name="operation" value="buy" />
 					<property name="messageType" value="purchaseDetails" />
@@ -427,7 +477,7 @@
 						</identity>
 					</property>
 				</action>
-				<action class="org.jboss.soa.esb.actions.conversation.SendMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
 							process="process" name="s10-3">
 					<property name="operation" value="checkCredit" />
 					<property name="messageType" value="creditInformation" />
@@ -446,10 +496,12 @@
 
 		<service category="ESBBroker.BrokerParticipant" name="CompleteTransaction.main.1" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener13"
+							  busidref="BrokerService13"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.RetrieveSessionAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.RetrieveSessionAction"
 							process="process" name="s11-1">
 					<property name="session" value="org.jboss.soa.esb.samples.broker.CompleteTransactionMain" />
 					<property name="serviceName" value="CompleteTransaction.main.1" />
@@ -460,7 +512,7 @@
 						</identity>
 					</property>
 				</action>
-				<action class="org.jboss.soa.esb.actions.conversation.SwitchAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.SwitchAction"
 							process="process" name="s11-2">
 					<property name="paths">
 						<case service-category="ESBBroker.BrokerParticipant"
@@ -478,10 +530,12 @@
 
 		<service category="ESBBroker.BrokerParticipant" name="CompleteTransaction.main.2" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener14"
+							  busidref="BrokerService14"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.ReceiveMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
 							process="process" name="s12-1">
 					<property name="operation" value="checkCredit" />
 					<property name="messageType" value="creditValid" />
@@ -494,11 +548,11 @@
 				
 				<!-- Intermediate actions to construct confirmation -->
 				
-				<action class="org.jboss.soa.esb.actions.conversation.GetVariableAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.GetVariableAction"
 							process="process" name="s12-2">
 					<property name="variable" value="confirmation" />
 				</action>
-				<action class="org.jboss.soa.esb.actions.conversation.SendMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
 							process="process" name="s12-3">
 					<property name="operation" value="confirm" />
 					<property name="messageType" value="orderConfirmed" />
@@ -517,10 +571,12 @@
 
 		<service category="ESBBroker.BrokerParticipant" name="CompleteTransaction.main.3" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener15"
+							  busidref="BrokerService15"
+							  maxThreads="1"/>
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.ReceiveMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
 							process="process" name="s13-1">
 					<property name="operation" value="confirm" />
 					<property name="messageType" value="bookingReference" />
@@ -534,12 +590,12 @@
 				<!-- Intermediate actions to store booking reference and then
 				retrieve confirmation to be returned to the customer e.g. -->
 
-				<action class="org.jboss.soa.esb.actions.conversation.GetVariableAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.GetVariableAction"
 							process="process" name="s13-2">
 					<property name="variable" value="confirmation" />
 				</action>
 				
-				<action class="org.jboss.soa.esb.actions.conversation.SendMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
 							process="process" name="s13-3">
 					<property name="operation" value="buy" />
 					<property name="messageType" value="orderConfirmed" />
@@ -555,10 +611,12 @@
 
 		<service category="ESBBroker.BrokerParticipant" name="CompleteTransaction.main.4" description="">
 			<listeners>
-				<!-- To be done -->
+				<jms-listener name="BrokerServiceListener16"
+							  busidref="BrokerService16"
+							  maxThreads="1"/>	
 			</listeners>
 			<actions mep="OneWay">
-				<action class="org.jboss.soa.esb.actions.conversation.ReceiveMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
 							process="process" name="s14-1">
 					<property name="operation" value="checkCredit" />
 					<property name="messageType" value="creditInvalid" />
@@ -572,7 +630,7 @@
 				<!-- Intermediate actions to build and return OrderRejected
 				message and return it to the customer -->
 				
-				<action class="org.jboss.soa.esb.actions.conversation.SendMessageAction"
+				<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
 							process="process" name="s13-3">
 					<property name="operation" value="buy" />
 					<property name="messageType" value="orderRejected" />
@@ -586,5 +644,7 @@
 			</actions>
 		</service>
 		
+		<!-- CreditAgency participant -->
+		
 	</services>		
 </jbossesb>




More information about the overlord-commits mailing list