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

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Sun Jul 13 11:11:15 EDT 2008


Author: jeff.yuchang
Date: 2008-07-13 11:11:13 -0400 (Sun, 13 Jul 2008)
New Revision: 150

Modified:
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/Session.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/ConversationAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java
   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/SwitchAction.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/README.txt
   cdl/trunk/samples/jbossesb/broker/pom.xml
   cdl/trunk/samples/jbossesb/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/BrokerMain.java
   cdl/trunk/samples/jbossesb/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/Request4QuoteMain.java
   cdl/trunk/samples/jbossesb/broker/src/main/resources/META-INF/jboss-esb.xml
   cdl/trunk/samples/jbossesb/broker/src/main/resources/hibernate.cfg.xml
   cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java
   cdl/trunk/samples/jbossesb/purchasing/src/main/java/com/acme/services/creditAgency/SetCreditCheckResponseMessageAction.java
Log:
* Update actions to make the quote request work.
* Invoke the schedule item of parent session, if sub-session finishes its all items.
* Update the session status to complete when it finishes all schedule items.


Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/Session.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/Session.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/Session.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -160,7 +160,9 @@
 				if (joinState.getSpawnPath() <= 0) {
 					joinStates.remove(joinState);
 					SessionManager.removeObject(joinState);
-			
+					
+					logger.info("Deliver the Join State of: " + joinState);
+					
 					ServiceInvoker invoker= new ServiceInvoker(category, name);
 					invoker.deliverAsync(message);
 				} else {
@@ -179,7 +181,7 @@
 			scheduleItems.add(si);
 			SessionManager.saveObject(si);
 			
-			logger.info("Finished scheduling "+si);
+			logger.info("Finished scheduling "+si +"' by thread of " + Thread.currentThread().getName());
 		}
 		
 	}
@@ -202,7 +204,7 @@
 			
 			scheduleItems.remove(si);
 			SessionManager.removeObject(si);
-			logger.info("Finished unscheduling: " + si);
+			logger.info("Finished unscheduling: " + si +"' by thread of " + Thread.currentThread().getName());
 		}
 	}
 	
@@ -369,5 +371,12 @@
 		this.joinStates = joinStates;
 	}
 	
+	public String toString() {
+		StringBuffer sbuffer = new StringBuffer();
+		sbuffer.append("[ Session id: " + id);
+		sbuffer.append(" serviceName: " + serviceName);
+		sbuffer.append("]");
+		return sbuffer.toString();
+	}
 	
 }

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-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/conversation/SessionManager.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -172,12 +172,26 @@
 			return null;
 		}
 		
-		Identity theID = (Identity)results.get(0);
+		Identity theID = null;
+		for (int i=0; i< results.size(); i++) {
+			Identity identity = (Identity)results.get(i);
+			if (SessionStatus.Active.equals(identity.getSession().getStatus())) {
+				theID = identity;
+				break;
+			}
+		}
+		
+		if (theID == null) {
+			return null;
+		}
+		
 		Session session = (Session)hibernateSession.load(Session.class, theID.getSession().getId());
 		Class<?> pojoClass = ClassLoaderUtil.loadClass(session.getPojoClass());
 		Object pojo = hibernateSession.load(pojoClass, Long.valueOf(session.getPojoID()));
 		session.setBusinessObject(pojo);
-			
+		
+		logger.debug("Get Session of " + session + " by using identity of " + id);
+		
 		return session;
 	}
 	

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -38,6 +38,7 @@
 import org.jboss.soa.overlord.conversation.ScheduleItem;
 import org.jboss.soa.overlord.conversation.Session;
 import org.jboss.soa.overlord.conversation.SessionManager;
+import org.jboss.soa.overlord.conversation.SessionStatus;
 import org.jboss.soa.overlord.jbossesb.util.MessageUtil;
 import org.jboss.soa.overlord.jbossesb.util.XMLUtils;
 
@@ -171,18 +172,32 @@
 	 */
 	public Message process(Message message) throws Exception {
 		String sessionKey=(String)message.getProperties().getProperty(MessageProperties.SESSION_KEY);
-		logger.info("Session Key is [" + sessionKey + "] Body is: [" + message.getBody() + "]");
+		logger.info("Session Key is [" + sessionKey + "] Body is: [" + message.getBody().get() + "]");
 		
 		org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
 		Transaction transaction = hibernateSession.beginTransaction();
 		try {
 			Session session = getSession(message);
-			if (session != null && isFirstConversationAction(message)) {
-				logger.info("This is first conversation action to unschedule the item!");
+			if (session != null && isFirstOrLastConversationAction(message, true)) {
+				logger.debug("This is first conversation action to unschedule the item.");
 				unschedule(message);
 			}
 			
 			handle(message);
+			
+			session = getSession(message);
+			if (session != null && isFirstOrLastConversationAction(message, false)) {
+				logger.debug("This is the last conversation action.");
+				if (session.getScheduleItems().size() <= 0) {
+					session.setStatus(SessionStatus.Completed);
+					SessionManager.updateObject(session);
+					logger.info("Completed the session of " + session);
+					if (session.getParent() != null) {
+						invokeSubsessionExitService(message, session);
+					}
+				}
+			}
+			
 			transaction.commit();
 		} catch (Exception e) {
 			transaction.rollback();
@@ -196,6 +211,23 @@
 		return message;
 	}
 	
+	
+	private void invokeSubsessionExitService(Message message, Session session)
+			throws Exception {
+		List<ScheduleItem> items = session.getParent().getScheduleItems();
+		if (items.size() <= 0) {
+			throw new Exception("Completed sub-session, but haven't found any schedule items to run.");
+		}
+		if (items.size() > 1) {
+			throw new Exception("Should be only one schedule item waiting for sub-session.");
+		}
+		//set parent session in current message.
+		message.getProperties().setProperty(MessageProperties.SESSION_KEY, String.valueOf(session.getParent().getId()));
+		ScheduleItem si = items.get(0);
+		addScheduleItemToDeliver(si.getCategory(), si.getName());
+		logger.info("Invoke scheduleItem of " + si + "in session " + session.getParent());
+	}
+	
 	protected void sendAsyncMessage(Message message) throws Exception {
 		for(ScheduleItem si : scheduleItems) {
 			ServiceInvoker invoker = new ServiceInvoker(si.getCategory(), si.getName());
@@ -203,10 +235,17 @@
 		}
 	}
 	
-	private boolean isFirstConversationAction(Message message) throws ClassNotFoundException{
+	/**
+	 * 
+	 * @param message
+	 * @param isFirst : when isFirst is false, it will get the last conversation action.
+	 * @return
+	 * @throws ClassNotFoundException
+	 */
+	protected boolean isFirstOrLastConversationAction(Message message, boolean isFirst) throws ClassNotFoundException{
 		String sessionKey=(String)message.getProperties().getProperty(MessageProperties.SESSION_KEY);
 		if (sessionKey != null) {
-			ConfigTree theCT = getFirstConversationAction();
+			ConfigTree theCT = getFirstOrLastConversationAction(isFirst);
 			if (theCT != null) {
 				String actionName = config.getAttribute(ActionProperties.ACTION_NAME);
 				if (actionName.equals(theCT.getAttribute(ActionProperties.ACTION_NAME))) {
@@ -216,21 +255,25 @@
 		}
 		return false;
 	}
-
-	private ConfigTree getFirstConversationAction() throws ClassNotFoundException {
+	
+	private ConfigTree getFirstOrLastConversationAction(boolean isFirst) throws ClassNotFoundException {
 		ConfigTree[] cts = config.getParent().getChildren(ActionProperties.ACTION_NODE);
+		ConfigTree config = null;
 		for (ConfigTree ct : cts) {
 			String className = ct.getAttribute(ActionProperties.CLASS_NAME);
 			Class<?> action = ClassLoaderUtil.loadClass(className);
 			if (ConversationAction.class.isAssignableFrom(action)) {
-				return ct;
+				config = ct;
+				if (isFirst) {
+					break;
+				}
 			}
 		}
-		return null;
+		return config;
 	}
 	
 	
-	private void unschedule(Message message) throws Exception {
+	protected void unschedule(Message message) throws Exception {
 		String serviceCategory=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
 		String serviceName=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
 		Session session = getSession(message);

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -41,46 +41,46 @@
 	public Message handle(Message message) throws Exception{
 		Session session=getSession(message);
 		
+		ConfigTree ifConfig = null;
+		ConfigTree elseConfig = null;
+		
 		ConfigTree[] children=getConfig().getAllChildren();
-		boolean f_register=false;
-		
-		for (int i=0; f_register == false && i < children.length; i++) {
-			String category=children[i].getAttribute("service-category");
-			String name=children[i].getAttribute("service-name");
-			String immediate=children[i].getAttribute("immediate", "false");
 			
-			if (children[i].getName().equals("else")) {
-				f_register = true;
+		for (ConfigTree ct : children) {
+			if ("if".equals(ct.getName())) {
+				ifConfig = ct;
+			} else if ("else".equals(ct.getName())){
+				elseConfig = ct;
 			} else {
-				String method=children[i].getAttribute("decision-method");
-				
-				if (method != null) {
-					try {
-						Object res = MVEL.eval(getMvelMethodName(method), session.getBusinessObject());
-						if (res instanceof Boolean) {
-							
-							f_register = ((Boolean)res).booleanValue();
-							
-						} else {
-							logger.error("Result of method '"+method+
-									"' on session '"+session+"' should be boolean," +
-											" but got: "+res);
-						}
-											
-					} catch(Exception e) {
-						logger.error("Failed to invoke decision method '"+
-								method+"' on session '"+session+"'", e);
-					}
-				}
+				throw new Exception("Unrecognized configuration Node in IfAction.");
 			}
-			
-			if (f_register) {
-				session.schedule(category, name, message);
-				
-				if ("true".equals(immediate)) {
+		}
+		
+		String decisionMethod = ifConfig.getAttribute("decision-method");
+		logger.debug("decision method is : " + decisionMethod);
+		if (decisionMethod != null) {
+			Object response = MVEL.eval(getMvelMethodName(decisionMethod), session.getBusinessObject());
+			if (response instanceof Boolean) {
+				Boolean flag = (Boolean) response;
+				logger.info("The result of decision method is: " + flag);
+				if (flag) {
+					String category = ifConfig.getAttribute(ActionProperties.SERVICE_CATEGORY);
+					String name = ifConfig.getAttribute(ActionProperties.SERVICE_NAME);
+					session.schedule(category, name, message);
 					addScheduleItemToDeliver(category, name);
+					logger.info("Scheduled items of " + category + "/" + name + ".");
+				} else if (elseConfig != null){
+					String category = elseConfig.getAttribute(ActionProperties.SERVICE_CATEGORY);
+					String name = elseConfig.getAttribute(ActionProperties.SERVICE_NAME);
+					session.schedule(category, name, message);
+					addScheduleItemToDeliver(category, name);
+					logger.info("Scheduled items of " + category + "/" + name + ".");
 				}
+			} else {
+				throw new Exception("method return value is not Boolean.");
 			}
+		} else {
+			throw new Exception("Haven't found the decision method in the configuration.");
 		}
 		
 		return(message);

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -49,7 +49,7 @@
 		ConfigTree[] children = getConfig().getAllChildren();
 		String messageType = getMessageType(message);
 		
-		logger.debug("The sent message type is [" + messageType + "]");
+		logger.info("The received message type is [" + messageType + "]");
 		
 		for (ConfigTree ct : children) {
 			ConfigTree[] msgNodes = ct.getChildren("message");
@@ -75,7 +75,7 @@
 		if (routerFlag == false) {
 			throw new Exception ("Could not find any appropriate services to proceed!");
 		}
-		return null;
+		return message;
 	}
 	
 	

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -55,9 +55,14 @@
 			Session session=getSession(message, ids);
 			session.assimulateIdentities(ids);
 			
-			// TODO: May need to store state
+			logger.info("MESSAGE TYPE ["+mesgMType+"] RECEIVED.");
 			
-			logger.info("MESSAGE TYPE '"+mesgMType+"' RECEIVED");
+			if (isFirstOrLastConversationAction(message, true)) {
+				String category=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
+				String name=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
+				session.unschedule(category, name);
+				logger.info("Finished unscheduling of " + category + "/" + name);
+			}
 			
 			EPR replyTo = message.getHeader().getCall().getReplyTo();
 			// Store any response EPR

Modified: 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	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetVariableAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -57,8 +57,8 @@
 			session = session.getParent();
 			if (session.getPojoID() != 0) {
 				Class<?> pojoClass = ClassLoaderUtil.loadClass(session.getPojoClass());
-				//Object pojo = SessionManager.getObject(session.getPojoID(), pojoClass);
-				//session.setBusinessObject(pojo);
+				Object pojo = SessionManager.getObject(session.getPojoID(), pojoClass);
+				session.setBusinessObject(pojo);
 			}
 		}
 		

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -38,16 +38,17 @@
 	
 	public Message handle(Message message) throws Exception{
 		Session session=getSession(message);
-		boolean selected=false;
 		
 		// Get the message type
 		String mesgMType=getMessageType(message);
-
+		
+		boolean selected = false;
+		
 		if (mesgMType != null) {
 			ConfigTree[] children=getConfig().getAllChildren();
 			
-			for (int i=0; selected == false && i < children.length; i++) {
-								
+			for (int i=0; i < children.length; i++) {
+				
 				if (children[i].getName().equals("case")) {
 					String category=children[i].getAttribute("service-category");
 					String name=children[i].getAttribute("service-name");
@@ -57,8 +58,7 @@
 					for (int j=0; j < mesgs.length; j++) {
 						if (mesgs[j].getName().equals("message")) {
 							String type=mesgs[j].getAttribute("type");
-							
-							if (type != null && type.equals(mesgMType)) {
+							if (mesgMType.equals(type)) {
 								selected = true;
 							}
 						}
@@ -68,6 +68,7 @@
 						session.schedule(category, name, message);
 						addScheduleItemToDeliver(category, name);
 						logger.info("Scheduled service of [" + category + "/" + name + "] immediately");
+						break;
 					}
 				}
 			}

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-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -49,8 +49,10 @@
 				String decision = ct.getAttribute("expression");
 				String category = ct.getAttribute(ActionProperties.SERVICE_CATEGORY);
 				String name = ct.getAttribute(ActionProperties.SERVICE_NAME);
+
 				if (decision != null) {
 					Object res = MVEL.eval(getMvelMethodName(decision), session.getBusinessObject());
+					logger.debug("The result of expression of " + decision + " is " + res);
 					if (res instanceof Boolean) {
 						Boolean ret = (Boolean)res;
 						if (ret.booleanValue()) {

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-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -20,7 +20,6 @@
 package org.jboss.soa.overlord.jbossesb.actions;
 
 import org.apache.log4j.Logger;
-import org.jboss.soa.esb.client.ServiceInvoker;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.overlord.conversation.Session;
@@ -57,7 +56,7 @@
 		
 		//TODO: Need to think about the expression.
 		String decisionMethod = whileConfig.getAttribute("decision-method");
-		logger.info("decision method is : " + decisionMethod);
+		logger.debug("decision method is : " + decisionMethod);
 		if (decisionMethod != null) {
 			Object response = MVEL.eval(getMvelMethodName(decisionMethod), session.getBusinessObject());
 			if (response instanceof Boolean) {
@@ -67,15 +66,14 @@
 					String category = whileConfig.getAttribute(ActionProperties.SERVICE_CATEGORY);
 					String name = whileConfig.getAttribute(ActionProperties.SERVICE_NAME);
 					session.schedule(category, name, message);
-					ServiceInvoker serviceInvoker = new ServiceInvoker(category, name);
-					serviceInvoker.deliverSync(message, 2000);
-					logger.info("Schedule items of " + category + "/" + name + "in WhileAction");
+					addScheduleItemToDeliver(category, name);
+					logger.info("Scheduled items of " + category + "/" + name + ".");
 				} else {
 					String category = exitConfig.getAttribute(ActionProperties.SERVICE_CATEGORY);
 					String name = exitConfig.getAttribute(ActionProperties.SERVICE_NAME);
 					session.schedule(category, name, message);
 					addScheduleItemToDeliver(category, name);
-					logger.info("Scheduled items of " + category + "/" + name + "in WhileAction of exit branch");
+					logger.info("Scheduled items of " + category + "/" + name + ".");
 				}
 			} else {
 				throw new Exception("method return value is not Boolean.");

Modified: cdl/trunk/samples/jbossesb/README.txt
===================================================================
--- cdl/trunk/samples/jbossesb/README.txt	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/samples/jbossesb/README.txt	2008-07-13 15:11:13 UTC (rev 150)
@@ -3,7 +3,7 @@
 Required to run the Purchasing example:
 - ANT
 - Maven
-- JBoss AS 4.2.1 or higher with the JBoss ESB SAR deployment (jbossesb.sar). 
+- JBoss AS 4.2.2 or higher with the JBoss ESB SAR deployment (jbossesb.sar). 
 
 Settings required to edit before running:
 

Modified: cdl/trunk/samples/jbossesb/broker/pom.xml
===================================================================
--- cdl/trunk/samples/jbossesb/broker/pom.xml	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/samples/jbossesb/broker/pom.xml	2008-07-13 15:11:13 UTC (rev 150)
@@ -95,7 +95,7 @@
 			    <phase>install</phase>
 			    <configuration>
 			      <tasks>
-                   		   <property name="deploy.dir" value="/var/local/jboss-4.2.2.GA/server/default/deploy" />
+                   		   <property name="deploy.dir" value="/var/local/jboss/server/default/deploy" />
 				   <copy file="target/broker.esb" todir="${deploy.dir}" overwrite="true" />
 			      </tasks>
 			    </configuration>

Modified: cdl/trunk/samples/jbossesb/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/BrokerMain.java
===================================================================
--- cdl/trunk/samples/jbossesb/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/BrokerMain.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/samples/jbossesb/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/BrokerMain.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -31,6 +31,7 @@
 import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
+import org.apache.log4j.Logger;
 import org.jboss.soa.overlord.conversation.HibernateObject;
 import org.jboss.soa.overlord.jbossesb.actions.Service;
 
@@ -41,6 +42,8 @@
 	
 	private static final long serialVersionUID = 11114L;
 	
+	private static Logger logger = Logger.getLogger(BrokerMain.class);
+	
 	@Id @GeneratedValue
 	@Column(name="ID")
 	private long id;
@@ -93,7 +96,9 @@
 	}
 	
 	public boolean receivedAllQuotes() {
-		return (this.quotes.size() == this.suppliers.size());
+		boolean result = (getQuotes().size() == this.getSuppliers().size());
+		logger.info("The quote size is: " + quotes.size() + ": the suppliers size is: " + suppliers.size());
+		return result;
 	}
 	
 	public Supplier getCurrentSupplier() {
@@ -106,6 +111,7 @@
 			supplier.setServiceCategory("ESBBroker.Suppliers");
 			supplier.setServiceName("supplier" + i + ".main");
 			supplier.setServiceDescription("{http://www.jboss.org/overlord/loanBroker}Supplier" + i);
+			supplier.setBroker(this);
 			suppliers.add(supplier);
 		}
 	}
@@ -144,6 +150,7 @@
 	
 	public void setQuote(Quote quote) {
 		this.quotes.add(quote);
+		logger.info("add the quote value : " + quote);
 	}
 	
 }

Modified: cdl/trunk/samples/jbossesb/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/Request4QuoteMain.java
===================================================================
--- cdl/trunk/samples/jbossesb/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/Request4QuoteMain.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/samples/jbossesb/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/Request4QuoteMain.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -29,8 +29,6 @@
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
 
-import org.hibernate.annotations.Fetch;
-import org.hibernate.annotations.FetchMode;
 import org.jboss.soa.overlord.conversation.HibernateObject;
 
 /**

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-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/samples/jbossesb/broker/src/main/resources/META-INF/jboss-esb.xml	2008-07-13 15:11:13 UTC (rev 150)
@@ -162,6 +162,8 @@
 							process="process" name="s3-1">
 					<property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
 					<property name="serviceName" value="RequestForQuote.main" />
+					<property name="responseServiceCategory" value="ESBBroker.BrokerParticipant" />
+					<property name="responseServiceName" value="ESBBrokerProcess.main.3" />
 					<property name="bindDetails" >
 						<bind from-expression="getCurrentSupplier()"
 									to-variable="supplier" />
@@ -171,12 +173,12 @@
 					<property name="variable" value="supplierIndex" />
 					<property name="stateExpression" value="nextSupplier()" />
 				</action>
-				<action class="org.jboss.soa.overlord.jbossesb.actions.ScheduleStateAction"
+				<!--action class="org.jboss.soa.overlord.jbossesb.actions.ScheduleStateAction"
 							process="process" name="s3-3">
 					<property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
 					<property name="serviceName" value="ESBBrokerProcess.main.1" />
 					<property name="immediate" value="true" />
-				</action>
+				</action-->
 			</actions>
 		</service>
 		
@@ -392,11 +394,6 @@
 				
 				<action class="org.jboss.soa.overlord.jbossesb.actions.SetVariableAction" 
 							process="process" name="s9-3">
-					<property name="variable" value="quote.serviceDescription" />
-					<property name="messageExpression" value="//@supplierDesc" />
-				</action>
-				<action class="org.jboss.soa.overlord.jbossesb.actions.SetVariableAction" 
-							process="process" name="s9-4">
 					<property name="variable" value="quote.value" />
 					<property name="messageExpression" value="/quote" />
 				</action>

Modified: cdl/trunk/samples/jbossesb/broker/src/main/resources/hibernate.cfg.xml
===================================================================
--- cdl/trunk/samples/jbossesb/broker/src/main/resources/hibernate.cfg.xml	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/samples/jbossesb/broker/src/main/resources/hibernate.cfg.xml	2008-07-13 15:11:13 UTC (rev 150)
@@ -42,6 +42,9 @@
 		<property name="hibernate.c3p0.max_statements">50</property>
 		<property name="hibernate.c3p0.idle_test_period">3000</property>
 		
+		<property name="current_session_context_class">thread</property>
+		<property name="hibernate.connection.isolation">4</property>
+		
 		<!-- Show and print nice SQL on stdout -->
 		<property name="show_sql">false</property>
 		<property name="format_sql">true</property>

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	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -50,20 +50,22 @@
 
     public void run() {
 
-       	String buyReq="<enquiry id=\"20\" ></enquiry>";
+       	String quoteReq="<enquiry id=\"20\" ></enquiry>";
         	
         Message mesg = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
-        mesg.getBody().add(buyReq);
+        mesg.getBody().add(quoteReq);
         mesg.getProperties().setProperty("org.jboss.soa.esb.exceptionOnDeliverFailure", "true");
         
         try {
-        	Message reply=brokerInvoker.deliverSync(mesg, 500000);
+        	Message reply=brokerInvoker.deliverSync(mesg, 50000);
+
+        	System.out.println("Reply: "+reply.getBody().get());
         	
-        	if (reply != null) {
-        		System.out.println("Reply: "+reply.getBody().get());
-        	} else {
-        		System.err.println("NO REPLY");
-        	}
+	        //String buyReq = "<buy id=\"20\"> </buy>";	
+	        //mesg.getBody().add(buyReq);
+	        
+	        //reply = brokerInvoker.deliverSync(mesg, 50000);
+	        //System.out.println("Reply: " + reply.getBody().get());
         	
         } catch (Exception e) {
             logger.error(e);

Modified: cdl/trunk/samples/jbossesb/purchasing/src/main/java/com/acme/services/creditAgency/SetCreditCheckResponseMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/src/main/java/com/acme/services/creditAgency/SetCreditCheckResponseMessageAction.java	2008-07-13 15:05:16 UTC (rev 149)
+++ cdl/trunk/samples/jbossesb/purchasing/src/main/java/com/acme/services/creditAgency/SetCreditCheckResponseMessageAction.java	2008-07-13 15:11:13 UTC (rev 150)
@@ -42,7 +42,7 @@
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
 		message.getBody().add("<CreditCheckResponse id=\"" + idValue +"\"></CreditCheckResponse>");
 		
-		logger.info("Updated credit message: "+message);
+		logger.info("Updated credit message: "+message.getBody().get() +"' by thread of " + Thread.currentThread().getName());
 
 		return(message);
 	}




More information about the overlord-commits mailing list