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

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Mon May 4 12:07:35 EDT 2009


Author: jeff.yuchang
Date: 2009-05-04 12:07:35 -0400 (Mon, 04 May 2009)
New Revision: 635

Added:
   cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb.mysql.cfg.xml
Modified:
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/Session.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/SessionManager.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ConversationAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/IfAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ParallelAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/PerformAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ReceiveMessageAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/RetrieveSessionAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ScheduleStateAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SendMessageAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SwitchAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/WhenAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/WhileAction.java
   cdl/trunk/samples/jbossesb/brokerage/broker/stateful/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetRequestQuoteMessageAction.java
   cdl/trunk/samples/jbossesb/common/creditAgency/stateful/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java
   cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java
   cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetBuyFailedMessageAction.java
   cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetBuyResponseMessageAction.java
   cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetCreditCheckRequestMessageAction.java
   cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetBuyFailedMessageAction.java
   cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetBuyResponseMessageAction.java
   cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetCreditCheckRequestMessageAction.java
   cdl/trunk/samples/pom.xml
Log:
[SOAG-73] fix race condition.
* Just render out the Message Body instead of its object.
* Add the mysql conf file for testing against mysql.


Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/Session.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/Session.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/Session.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -48,8 +48,6 @@
 import org.hibernate.annotations.MapKey;
 import org.jboss.internal.soa.esb.addressing.helpers.EPRHelper;
 import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.message.Message;
 
 /**
  * A Session represents the encapsulation of the current status of execution of an associated choreography instance, 
@@ -197,104 +195,7 @@
 
         return null;
 	}
-	
-	public void schedule(String category, String name, Message message) throws Exception {
-		
-		ScheduleItem si=new ScheduleItem(category, name);
-		si.setSession(this);
-		
-		logger.debug("Scheduling: " + si + " by thread of " + Thread.currentThread().getName());
-		
-		synchronized(joinStates) {
-			JoinState joinState = getJoinStateByScheduleItem(si);
-			if (joinState != null) {
-				joinState.join();
-				SessionManager.updateObject(joinState);
-				logger.debug("Join State is: " + joinState);
-				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 {
-					logger.info("Don't join yet: "+ joinState);				
-					return;
-				}
-			}
-		}
-			
-		synchronized(scheduleItems) {
-			// Check if already exists
-			if (scheduleItems.contains(si)) {
-				throw new Exception("Schedule already contains item for " + si);
-			}
-			
-			scheduleItems.add(si);
-			SessionManager.saveObject(si);
-			
-			logger.debug("Finished scheduling "+si +"' by thread of " + Thread.currentThread().getName());
-		}
-		
-	}
 
-	public void unschedule(String category, String name) throws Exception {
-		
-		logger.debug("Unscheduling: '"+category+"/"+name+"' by thread of " + Thread.currentThread().getName() );
-		
-		synchronized(joinStates) {
-			if (isScheduleItemInJoinState(category, name)) {
-				//FIXME, it should throw exception, but need to use the pemissitic lock in database. 
-				logger.error("Unable to enact join state, coverging paths have still not completed");
-				//throw new Exception("Unable to enact join state, converging paths have still not completed");
-			}
-		}
-			
-		synchronized(scheduleItems) {
-			ScheduleItem si = getScheduleItem(category, name);
-			if (si.getId() == 0) {
-				throw new Exception("The scheduleItem of " + si + " is not existed !");
-			}
-			
-			scheduleItems.remove(si);
-			SessionManager.removeObject(si);
-			logger.debug("Finished unscheduling: " + si +"' by thread of " + Thread.currentThread().getName());
-		}
-	}
-	
-	protected boolean isScheduleItemInJoinState(String category, String name) {
-		for(JoinState joinState : joinStates) {
-			if (name.equals(joinState.getName()) && category.equals(joinState.getCategory())) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	
-	protected synchronized JoinState getJoinStateByScheduleItem(ScheduleItem si) {
-		for(JoinState joinState : joinStates) {
-			if (si.getName().equals(joinState.getName()) && si.getCategory().equals(joinState.getCategory())) {
-				return joinState;
-			}
-		}
-		return null;
-	}
-	
-	protected ScheduleItem getScheduleItem(String category, String name) {
-		for(ScheduleItem si : scheduleItems) {
-			if (category.equals(si.getCategory()) && name.equals(si.getName())) {
-				si.setSession(this);
-				return si;
-			}
-		}
-		ScheduleItem item = new ScheduleItem(category, name);
-		item.setSession(this);
-		return item;
-	}
-
 	public void join(String category, String name, int count) throws Exception {
 		JoinState joinState=new JoinState(category, name, count);
 		joinState.setSession(this);

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/SessionManager.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/SessionManager.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/SessionManager.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -25,6 +25,8 @@
 import java.util.Map;
 
 import org.apache.log4j.Logger;
+import org.hibernate.LockMode;
+import org.hibernate.Query;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.overlord.jbossesb.ClassLoaderUtil;
 import org.jboss.soa.overlord.jbossesb.stateful.actions.MessageProperties;
@@ -114,10 +116,7 @@
 		}
 		
 		if (sessionKey != null) {
-			org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
-			Session session = (Session) hibernateSession.load(Session.class, Long.valueOf(sessionKey));
-			injectParentReference(session);
-			return session;
+			return getSessionByKey(sessionKey);
 		}
 		
 		for (Identity id : ids) {
@@ -128,6 +127,15 @@
 		
 		return null;
 	}
+
+	private static Session getSessionByKey(String sessionKey) {
+		org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
+		Query query = hibernateSession.createQuery("from Session s where s.id=" + sessionKey);
+		query.setLockMode("s", LockMode.UPGRADE);
+		Session session = (Session) query.uniqueResult();
+		injectParentReference(session);
+		return session;
+	}
 	
 	public static Object saveObject(Object obj) throws Exception {
 		org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
@@ -189,14 +197,13 @@
 			return null;
 		}
 		
-		Session session = theID.getSession();
-		injectParentReference(session);
+		Session session = getSessionByKey(String.valueOf(theID.getSession().getId()));
 		
 		logger.debug("Get Session of " + session + " by using identity of " + id);
 		
 		return session;
 	}
-	
+		
 	private static void injectParentReference(Session session) {
 		String parentProperty = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
 		if (parentProperty!= null && session.getParent() != null) {

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ConversationAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ConversationAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ConversationAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -36,6 +36,7 @@
 import org.jboss.soa.overlord.jbossesb.XMLUtils;
 import org.jboss.soa.overlord.jbossesb.stateful.Identity;
 import org.jboss.soa.overlord.jbossesb.stateful.IdentityType;
+import org.jboss.soa.overlord.jbossesb.stateful.JoinState;
 import org.jboss.soa.overlord.jbossesb.stateful.ScheduleItem;
 import org.jboss.soa.overlord.jbossesb.stateful.Session;
 import org.jboss.soa.overlord.jbossesb.stateful.SessionManager;
@@ -64,6 +65,8 @@
 	
 	protected Session session;
 	
+	protected org.hibernate.Session hibernateSession;
+	
 	public ConversationAction(ConfigTree config) {
 		this.config = config;
 	}
@@ -103,13 +106,13 @@
 	 */
 	public final Message process(Message message) throws Exception {
 		
-		org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
+		hibernateSession = HibernateUtil.currentSession();
 		Transaction transaction = hibernateSession.beginTransaction();
 		try {
 			session = getSession(message);
 			if (session != null && isFirstOrLastConversationAction(message, true)) {
 				logger.debug("This is first conversation action of message: [" + message.getBody().get() + "].");
-				unschedule(message);
+				unschedule(session, message);
 				unscheduledServiceItem = true;
 			}
 			
@@ -250,6 +253,7 @@
 	}
 		
 	protected void sendAsyncMessage(Message message) throws Exception {
+		logger.debug("Has [" + scheduleItems.size() + "] message to deliver");
 		for(ScheduleItem si : scheduleItems) {
 			ServiceInvoker invoker = new ServiceInvoker(si.getCategory(), si.getName());
 			logger.debug("Deliver message [" + message.getBody() + "] to [" + si.getCategory() + "/" + si.getName() + "]");
@@ -301,10 +305,10 @@
 		return(ret);
 	}
 	
-	private void unschedule(Message message) throws Exception {
+	private void unschedule(Session session, Message message) throws Exception {
 		String serviceCategory=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
 		String serviceName=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
-		session.unschedule(serviceCategory, serviceName);
+		unscheduleService(session,serviceCategory, serviceName);
 	}
 	
 	private ConfigTree getFirstOrLastConversationAction(boolean isFirst) throws ClassNotFoundException {
@@ -350,4 +354,110 @@
 	private Session getSession(Message message) throws Exception {
 		return getSession(message, null);
 	}
+	
+	
+	/**
+	 * Schedule an item.
+	 * @param session
+	 * @param category
+	 * @param name
+	 * @param message
+	 * @throws Exception
+	 */
+	protected void scheduleService(Session session, String category, String name, Message message) 
+	    	throws Exception{
+		ScheduleItem si=new ScheduleItem(category, name);
+		si.setSession(session);
+		
+		logger.debug("Scheduling: " + si + " by thread of " + Thread.currentThread().getName());
+		List<JoinState> joinStates = session.getJoinStates();
+		
+		synchronized(joinStates) {
+			JoinState joinState = getJoinStateByScheduleItem(si, joinStates);
+			if (joinState != null) {
+				joinState.join();
+				SessionManager.updateObject(joinState);
+				logger.debug("Join State is: " + joinState);
+				if (joinState.getSpawnPath() <= 0) {
+					joinStates.remove(joinState);
+					SessionManager.removeObject(joinState);
+					
+					logger.info("Deliver the Join State of: " + joinState);
+					
+					addScheduleItemToDeliver(category, name);
+				} else {
+					logger.info("Don't join yet: "+ joinState);
+					return;
+				}
+			}
+		}
+		
+		List<ScheduleItem> scheduleItems = session.getScheduleItems();
+		synchronized(scheduleItems) {
+			// Check if already exists
+			if (scheduleItems.contains(si)) {
+				throw new Exception("Schedule already contains item for " + si);
+			}
+			
+			scheduleItems.add(si);
+			SessionManager.saveObject(si);
+			
+			logger.debug("Finished scheduling "+si +"' by thread of " + Thread.currentThread().getName());
+		}
+	}
+	
+	protected void unscheduleService(Session session, String category, String name) 
+		throws Exception{
+		logger.debug("Unscheduling: '"+category+"/"+name+"' by thread of " + Thread.currentThread().getName() );
+		
+		List<JoinState> joinStates = session.getJoinStates();
+		synchronized(joinStates) {
+			if (isScheduleItemInJoinState(category, name, joinStates)) { 
+				logger.error("Unable to enact join state, coverging paths have still not completed");
+				throw new Exception("Unable to enact join state, converging paths have still not completed");
+			}
+		}
+		
+		List<ScheduleItem> scheduleItems = session.getScheduleItems();
+		synchronized(scheduleItems) {
+			ScheduleItem si = getScheduleItem(category, name, scheduleItems);
+			si.setSession(session);
+			if (si.getId() == 0) {
+				throw new Exception("The scheduleItem of " + si + " is not existed !");
+			}
+			
+			scheduleItems.remove(si);
+			SessionManager.removeObject(si);
+			logger.debug("Finished unscheduling: " + si +"' by thread of " + Thread.currentThread().getName());
+		}
+	}
+	
+	
+	private JoinState getJoinStateByScheduleItem(ScheduleItem si, List<JoinState> joinStates) {
+		for(JoinState joinState : joinStates) {
+			if (si.getName().equals(joinState.getName()) && si.getCategory().equals(joinState.getCategory())) {
+				return joinState;
+			}
+		}
+		return null;
+	}
+	
+	private boolean isScheduleItemInJoinState(String category, String name, List<JoinState> joinStates) {
+		for(JoinState joinState : joinStates) {
+			if (name.equals(joinState.getName()) && category.equals(joinState.getCategory())) {
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	private ScheduleItem getScheduleItem(String category, String name, List<ScheduleItem> scheduleItems) {
+		for(ScheduleItem si : scheduleItems) {
+			if (category.equals(si.getCategory()) && name.equals(si.getName())) {
+				return si;
+			}
+		}
+		ScheduleItem item = new ScheduleItem(category, name);
+		return item;
+	}
 }

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/IfAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/IfAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/IfAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -90,13 +90,13 @@
 				if (flag) {
 					String category = ifConfig.getAttribute(ActionProperties.SERVICE_CATEGORY);
 					String name = ifConfig.getAttribute(ActionProperties.SERVICE_NAME);
-					session.schedule(category, name, message);
+					scheduleService(session, 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);
+					scheduleService(session, category, name, message);
 					addScheduleItemToDeliver(category, name);
 					logger.info("Scheduled items of [" + category + "/" + name + "].");
 				}

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ParallelAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ParallelAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ParallelAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -104,7 +104,7 @@
 				String immediate=children[i].getAttribute("immediate","false");
 				
 				// Schedule service
-				session.schedule(category, name, message);
+				scheduleService(session, category, name, message);
 				if ("true".equalsIgnoreCase(immediate)){
 					addScheduleItemToDeliver(category, name);
 				}

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/PerformAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/PerformAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/PerformAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -108,14 +108,14 @@
 			message.getProperties().setProperty(MessageProperties.SESSION_PROPERTIES, properties);
 		}
 		
-		session.schedule(serviceCategory, serviceName, message);
+		scheduleService(session, serviceCategory, serviceName, message);
 		addScheduleItemToDeliver(serviceCategory, serviceName);
 		
 		String returnServiceCategory = getConfig().getAttribute(RETURN_SERVICE_CATEGORY);
 		String returnServiceName = getConfig().getAttribute(RETURN_SERVICE_NAME);
 		
 		if (returnServiceCategory != null && returnServiceName != null) {
-			session.schedule(returnServiceCategory, returnServiceName, message);
+			scheduleService(session, returnServiceCategory, returnServiceName, message);
 		}
 		
 		return message;

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ReceiveMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ReceiveMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -85,7 +85,7 @@
 			if (unscheduledServiceItem == false && isFirstOrLastConversationAction(message, true)) {
 				String category=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
 				String name=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
-				session.unschedule(category, name);
+				unscheduleService(session, category, name);
 				logger.debug("Finished unscheduling of [" + category + "/" + name + "]");
 			}
 			

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/RetrieveSessionAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/RetrieveSessionAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/RetrieveSessionAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -70,7 +70,7 @@
 		
 		String serviceName=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
 		String serviceCategory=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
-		session.unschedule(serviceCategory, serviceName);
+		unscheduleService(session, serviceCategory, serviceName);
 		
 		logger.debug("Finished retrieving session action.");
 		

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ScheduleStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ScheduleStateAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ScheduleStateAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -63,7 +63,7 @@
 		String serviceCategory=getConfig().getAttribute(ActionProperties.SERVICE_CATEGORY_PROPERTY);
 		String immediate=getConfig().getAttribute(IMMEDIATE);
 			        	
-		session.schedule(serviceCategory, serviceName, message);
+		scheduleService(session, serviceCategory, serviceName, message);
 		
 		if ("true".equalsIgnoreCase(immediate)) {
 			addScheduleItemToDeliver(serviceCategory, serviceName);

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SendMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SendMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -150,6 +150,7 @@
 			// Send message
 	        sendMessage = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
 	        sendMessage.getBody().add(message.getBody().get());
+	        sendMessage.getProperties().setProperty("org.jboss.soa.esb.exceptionOnDeliverFailure", "true");
 	        
 	        if ((serviceCategory != null && serviceName != null)
 	        		|| (categoryExpression != null && nameExpression != null)) {
@@ -160,7 +161,7 @@
 		        	sendMessage.getHeader().getCall().setReplyTo(lepr);
 		        	
 		        	// Schedule response action pipeline
-		        	session.schedule(respServiceCategory, respServiceName, message);
+		        	scheduleService(session, respServiceCategory, respServiceName, message);
 		        }
 		        		        
 		        if (serviceCategory == null && serviceName == null) {
@@ -206,7 +207,7 @@
 		} else {
 			throw new Exception ("Neither ServiceInvoker nor Courier can be found to deliver message");
 		}
-		logger.info("Message of  '"+ sendMessage+"' has been sent.");
+		logger.info("Message of  '"+ sendMessage.getBody().get()+"' has been sent.");
 	}
 	
 }

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SwitchAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SwitchAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SwitchAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -93,7 +93,7 @@
 					}
 					
 					if (selected) {
-						session.schedule(category, name, message);
+						scheduleService(session, 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/stateful/actions/WhenAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/WhenAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/WhenAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -77,7 +77,7 @@
 					if (res instanceof Boolean) {
 						Boolean ret = (Boolean)res;
 						if (ret.booleanValue()) {
-							session.schedule(category, name, message);
+							scheduleService(session, category, name, message);
 							addScheduleItemToDeliver(category, name);
 							logger.info("Scheduled item of [" + category + '/' + name + "]");
 							break;

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/WhileAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/WhileAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/WhileAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -94,13 +94,13 @@
 				if (flag.booleanValue()) {
 					String category = whileConfig.getAttribute(ActionProperties.SERVICE_CATEGORY);
 					String name = whileConfig.getAttribute(ActionProperties.SERVICE_NAME);
-					session.schedule(category, name, message);
+					scheduleService(session, category, name, message);
 					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);
+					scheduleService(session, category, name, message);
 					addScheduleItemToDeliver(category, name);
 					logger.info("Scheduled items of [" + category + "/" + name + "].");
 				}

Added: cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb.mysql.cfg.xml
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb.mysql.cfg.xml	                        (rev 0)
+++ cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb.mysql.cfg.xml	2009-05-04 16:07:35 UTC (rev 635)
@@ -0,0 +1,66 @@
+<!DOCTYPE hibernate-configuration SYSTEM
+"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+<!--
+  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,
+  @author JBoss Inc.
+-->
+<hibernate-configuration>
+	<session-factory>
+		<property name="hibernate.connection.driver_class">
+			com.mysql.jdbc.Driver
+		</property>
+		<property name="hibernate.connection.url">
+			jdbc:mysql://localhost:3306/cdlDB
+		</property>
+		<property name="hibernate.connection.username">
+			root
+		</property>
+		<property name="hibernate.connection.password">
+		</property>
+		
+		<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
+		
+		<!-- DataSource properties (begin) === -->
+		<!-- property name="hibernate.connection.datasource">java:/cdlDS</property-->
+	    <!--  ==== DataSource properties (end) -->
+
+
+		<!-- Use the C3P0 connection pool provider -->
+		<property name="hibernate.c3p0.min_size">5</property>
+		<property name="hibernate.c3p0.max_size">20</property>
+		<property name="hibernate.c3p0.timeout">300</property>
+		<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>
+		
+		<!-- List of annotationed classes (Internal conversation class)-->
+		<mapping class="org.jboss.soa.overlord.jbossesb.stateful.Session" />
+		<mapping class="org.jboss.soa.overlord.jbossesb.stateful.ScheduleItem"/>
+		<mapping class="org.jboss.soa.overlord.jbossesb.stateful.JoinState"/>
+		<mapping class="org.jboss.soa.overlord.jbossesb.stateful.Identity"/>
+		<mapping class="org.jboss.soa.overlord.jbossesb.stateful.EPRWrapper"/>
+		
+	</session-factory>
+</hibernate-configuration>

Modified: cdl/trunk/samples/jbossesb/brokerage/broker/stateful/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetRequestQuoteMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/stateful/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetRequestQuoteMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/stateful/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetRequestQuoteMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -48,7 +48,7 @@
 		
 		message.getBody().add("<requestForQuote id=\"" + idValue +"\" supplierDesc=\"" + serviceDescription+ "\" ></requestForQuote>");
 		
-		logger.info("Set 'requestForQuote' : "+message);
+		logger.info("Set 'requestForQuote' : "+message.getBody().get());
 		
 		return message;
 	}

Modified: cdl/trunk/samples/jbossesb/common/creditAgency/stateful/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/stateful/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/stateful/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -42,7 +42,7 @@
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
 		message.getBody().add("<CreditCheckInvalid id=\"" + idValue +"\"></CreditCheckInvalid>");
 
-		logger.info("Updated credit message: "+message);
+		logger.info("Updated credit message: " + message.getBody().get());
 
 		return(message);
 	}

Modified: cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/stateless/src/main/java/com/acme/services/creditAgency/SetCreditCheckInvalidMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -42,7 +42,7 @@
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
 		message.getBody().add("<CreditCheckInvalid id=\"" + idValue +"\"></CreditCheckInvalid>");
 
-		logger.info("Updated credit message: "+message);
+		logger.info("Updated credit message: " + message.getBody().get());
 
 		return(message);
 	}

Modified: cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetBuyFailedMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetBuyFailedMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetBuyFailedMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -46,7 +46,7 @@
 
 		message.getBody().add("<BuyFailed id=\"" + idValue +"\"></BuyFailed>");
 		
-		logger.info("Updated buy message: "+message);
+		logger.info("Updated buy message: "+message.getBody().get());
 		
 		return(message);
 	}

Modified: cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetBuyResponseMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetBuyResponseMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetBuyResponseMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -42,7 +42,7 @@
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
 		message.getBody().add("<BuyConfirmed id=\"" + idValue +"\"></BuyConfirmed>");
 		
-		logger.info("Updated buy message: "+message);
+		logger.info("Updated buy message: "+message.getBody().get());
 		
 		return(message);
 	}

Modified: cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetCreditCheckRequestMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetCreditCheckRequestMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateful/src/main/java/com/acme/services/broker/SetCreditCheckRequestMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -42,7 +42,7 @@
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
 		message.getBody().add("<CreditCheckRequest id=\"" + idValue +"\"></CreditCheckRequest>");
 		
-		logger.info("Updated credit check request message: "+message);
+		logger.info("Updated credit check request message: "+message.getBody().get());
 		
 		return(message);
 	}

Modified: cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetBuyFailedMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetBuyFailedMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetBuyFailedMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -46,7 +46,7 @@
 
 		message.getBody().add("<BuyFailed id=\"" + idValue +"\"></BuyFailed>");
 		
-		logger.info("Updated buy message: "+message);
+		logger.info("Updated buy message: " + message.getBody().get());
 		
 		return(message);
 	}

Modified: cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetBuyResponseMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetBuyResponseMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetBuyResponseMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -42,7 +42,7 @@
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
 		message.getBody().add("<BuyConfirmed id=\"" + idValue +"\"></BuyConfirmed>");
 		
-		logger.info("Updated buy message: "+message);
+		logger.info("Updated buy message: " + message.getBody().get());
 		
 		return(message);
 	}

Modified: cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetCreditCheckRequestMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetCreditCheckRequestMessageAction.java	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/jbossesb/purchasing/store/stateless/src/main/java/com/acme/services/broker/SetCreditCheckRequestMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
@@ -42,7 +42,7 @@
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
 		message.getBody().add("<CreditCheckRequest id=\"" + idValue +"\"></CreditCheckRequest>");
 		
-		logger.info("Updated credit check request message: "+message);
+		logger.info("Updated credit check request message: " + message.getBody().get());
 		
 		return(message);
 	}

Modified: cdl/trunk/samples/pom.xml
===================================================================
--- cdl/trunk/samples/pom.xml	2009-05-02 05:23:35 UTC (rev 634)
+++ cdl/trunk/samples/pom.xml	2009-05-04 16:07:35 UTC (rev 635)
@@ -16,7 +16,7 @@
 
 	<properties>
 	   <deploy.dir>/var/local/jboss-4.2.2.GA/server/default/deploy</deploy.dir>
-	   <cdl.jbossesb.version>1.0-SNAPSHOT</cdl.jbossesb.version>
+	   <cdl.jbossesb.version>1.0-M2</cdl.jbossesb.version>
     </properties>
 
 




More information about the overlord-commits mailing list