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

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Mon Oct 6 05:38:38 EDT 2008


Author: jeff.yuchang
Date: 2008-10-06 05:38:38 -0400 (Mon, 06 Oct 2008)
New Revision: 363

Added:
   cdl/trunk/runtime/jbossesb-assembly/src/test/
   cdl/trunk/runtime/jbossesb-assembly/src/test/java/
   cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/
   cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/
   cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/
   cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/
   cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/
   cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/HibernateTest.java
   cdl/trunk/runtime/jbossesb-assembly/src/test/resources/
   cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb-test.cfg.xml
Modified:
   cdl/trunk/runtime/jbossesb-assembly/pom.xml
   cdl/trunk/runtime/jbossesb-assembly/src/main/resources/cdl-sql/cdl.hsqldb.sql
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.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/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/ScheduleStateAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.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/util/HibernateUtil.java
   cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetCreditCheckRequestMessageAction.java
   cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml
   cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java
Log:
* Finished parentReference property.
* Update Session class and database script to have 'CDL_Session_property' to store the properties. 
* Update PerformAction and SetStateAction accordingly.



Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -19,6 +19,12 @@
  */
 package org.jboss.soa.overlord.jbossesb;
 
+/**
+ * 
+ * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
+ *
+ */
+
 public enum IdentityType {	
 	Primary,
 	Association,

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -24,7 +24,9 @@
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -34,6 +36,7 @@
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
 import javax.persistence.Lob;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToMany;
@@ -41,6 +44,8 @@
 import javax.persistence.Transient;
 
 import org.apache.log4j.Logger;
+import org.hibernate.annotations.CollectionOfElements;
+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;
@@ -58,8 +63,11 @@
 
 	private static final long serialVersionUID = 1115L;
 
+	public static final String PARENT_REFERENCE_KEY = "parentReferenceKey";
+	
 	private static Logger logger = Logger.getLogger(Session.class);
 	
+	
 	@Id @GeneratedValue
 	@Column(name="SESSION_ID")
 	private long id;
@@ -104,6 +112,12 @@
 	@Column(name="Business_OBJECT")
 	private byte[] serializedObject;
 	
+	@CollectionOfElements(fetch = FetchType.LAZY)
+	@JoinTable(name="CDL_SESSION_PROPERTY", joinColumns=@JoinColumn(name="SESSION_ID"))
+	@MapKey(columns={@Column(name="property_key")})
+	@Column(name="property_value")
+	private Map<String, String> properties = new HashMap<String, String>();
+	
 	public Session() {
 	}
 	
@@ -204,7 +218,9 @@
 		
 		synchronized(joinStates) {
 			if (isScheduleItemInJoinState(category, name)) {
-				throw new Exception("Unable to enact join state, converging paths have still not completed");
+				//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");
 			}
 		}
 			
@@ -402,7 +418,15 @@
 	public void setSerializedObject(byte[] serializedObject) {
 		this.serializedObject = serializedObject;
 	}
+		
+	public Map<String, String> getProperties() {
+		return this.properties;
+	}
 
+	public void setProperties(Map<String, String> properties) {
+		this.properties = properties;
+	}
+
 	public String toString() {
 		StringBuffer sbuffer = new StringBuffer();
 		sbuffer.append("[ Session id: " + id);

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -77,15 +77,22 @@
 												                  getProperty(MessageProperties.BOUND_VARIABLE_KEY);
 		for(String key : boundVariables.keySet()) {
 			MVEL.setProperty(businessState, key, boundVariables.get(key));
-			logger.info("bound to " + key);
+			logger.debug("bound to " + key);
 		}
 		
 		Session conversationSession = new Session();
 		conversationSession.setPojoClass(sessionName);
 		conversationSession.setStatus(SessionStatus.Active);
 		conversationSession.setBusinessObject(businessState);
-		conversationSession.setParent(parentSession);		
+		conversationSession.setParent(parentSession);
 		
+		Map<String, String> properties = (Map<String, String>)message.getProperties().
+																getProperty(MessageProperties.SESSION_PROPERTIES);
+		if (properties != null) {
+			conversationSession.setProperties(properties);
+			logger.debug("Inject properties of " + properties);
+		}
+		
 		Service service = pojoclass.getAnnotation(Service.class);
 		if (service != null) {
 			conversationSession.setServiceName(service.name());

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -48,8 +48,11 @@
 	public static final String SERVICE_NAME_PROPERTY = "serviceName";
 	public static final String SERVICE_CATEGORY_PROPERTY = "serviceCategory";
 	public static final String SERVICE_DESCRIPTION_NAME = "serviceDescriptionName";
+	
 	public static final String PARENT_PROPERTY = "parentProperty";
 	
+	public static final String PARENT_REFERENCE_PROPERTY = "parentReference";
+	
 	public static final String RESPONSE_SERVICE_NAME = "responseServiceName";
 	public static final String RESPONSE_SERVICE_CATEGORY = "responseServiceCategory";
 	

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-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -173,7 +173,7 @@
 				//message.getProperties().setProperty(MessageProperties.SESSION, ret);
 				message.getProperties().setProperty(MessageProperties.SESSION_KEY, String.valueOf(ret.getId()));
 			} else {
-				logger.error("Can not get session by using neither session key of [" + sessionKey +"] nor" +
+				logger.debug("Can not get session by using neither session key of [" + sessionKey +"] nor" +
 						     " ids [" + ids + "]");
 			}
 		}
@@ -188,7 +188,7 @@
 	 */
 	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().get() + "]");
+		logger.debug("Session Key is [" + sessionKey + "] Body is: [" + message.getBody().get() + "]");
 		
 		org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
 		Transaction transaction = hibernateSession.beginTransaction();

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-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -29,11 +29,15 @@
 public class MessageProperties {
 
 	public static final String SESSION="session";
+	
 	public static final String SESSION_KEY="sessionKey";
 	
 	public static final String OPERATION="operation";
+	
 	public static final String MESSAGE_TYPE="messageType";
 	
 	public static final String BOUND_VARIABLE_KEY = "bound_variable_key";
 	
+	public static final String SESSION_PROPERTIES = "session_properties";
+	
 }

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-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -59,26 +59,26 @@
 				
 				Object o = MVEL.eval(fromExpression, session.getBusinessObject());
 				bindingVal.put(toVariable, o);
-				logger.info("bind from :" + fromExpression + " to :" + toVariable);
+				logger.debug("bind from :" + fromExpression + " to :" + toVariable);
 			}
 		}
+		message.getProperties().setProperty(MessageProperties.BOUND_VARIABLE_KEY, bindingVal);
 		
-/*		String parentProperty = getConfig().getAttribute(ActionProperties.PARENT_PROPERTY);
-		if (parentProperty != null && !"".equals(parentProperty.trim())) {
-			bindingVal.put(parentProperty, session.getBusinessObject());
-			logger.info("Setting parent business state class to sub-session thru property of " + parentProperty);
-		}*/
+		String parentProperty = getConfig().getAttribute(ActionProperties.PARENT_REFERENCE_PROPERTY);
+		if (parentProperty != null) {
+			Map<String, String> properties = new HashMap<String, String>();
+			properties.put(Session.PARENT_REFERENCE_KEY, parentProperty);
+			message.getProperties().setProperty(MessageProperties.SESSION_PROPERTIES, properties);
+		}
 		
-		message.getProperties().setProperty(MessageProperties.BOUND_VARIABLE_KEY, bindingVal);
-		
 		session.schedule(serviceCategory, serviceName, message);
 		addScheduleItemToDeliver(serviceCategory, serviceName);
 		
-		String responseCategory = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_CATEGORY);
-		String responseName = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_NAME);
+		String returnServiceCategory = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_CATEGORY);
+		String returnServiceName = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_NAME);
 		
-		if (responseCategory != null && responseName != null) {
-			session.schedule(responseCategory, responseName, message);
+		if (returnServiceCategory != null && returnServiceName != null) {
+			session.schedule(returnServiceCategory, returnServiceName, message);
 		}
 		
 		return message;

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -26,6 +26,9 @@
 
 /**
  * Schedule state activity.
+ * 
+ * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu at redhat.com>Jeff Yu</a>
  */
 public class ScheduleStateAction extends ConversationAction {
 	

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -46,12 +46,28 @@
 		String variable = getConfig().getAttribute("variable");
 		String stateExpression = getConfig().getAttribute("stateExpression");
 		String messageExpression = getConfig().getAttribute("messageExpression");
-		String parentProperty = getConfig().getAttribute(ActionProperties.PARENT_PROPERTY);
 		
+		if (variable == null) {
+			throw new NullPointerException("variable can not be null");
+		}
+		
+		boolean need2UpdateParentState = false;
+		
 		Session session = getSession(message);
 		Object bstate = session.getBusinessObject();
-		logger.info("Set value to the variable of " + variable);
 		
+		if (session.getParent() != null) {
+			Session parentSession = session.getParent();
+			String parentReference = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
+			logger.debug("parentReference is : " + parentReference);
+			if (parentReference != null) {
+				Object parentState = parentSession.getBusinessObject();
+				MVEL.setProperty(bstate, parentReference, parentState);
+				need2UpdateParentState = true;
+			}
+		}
+		
+		
 		if (stateExpression != null) {			
 			Object result = MVEL.eval(stateExpression, bstate);
 			MVEL.setProperty(bstate, variable, result);
@@ -62,14 +78,17 @@
 			String result = XMLUtils.executeXpath(element, messageExpression);
 			MVEL.setProperty(bstate, variable, result);
 			logger.info("populated from messageExpression of: " + messageExpression);
-		} else if (parentProperty != null){
+		} else {
+			MVEL.eval(variable, bstate);
+		}
+		
+		if (need2UpdateParentState) {
 			Session parentSession = session.getParent();
-			MVEL.setProperty(bstate, parentProperty, parentSession.getBusinessObject());	
-			MVEL.eval(variable, bstate);
-			Object updatedObject = MVEL.eval(parentProperty, bstate);
+			String parentReference = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
+			Object updatedObject = MVEL.eval(parentReference, bstate);
 			parentSession.setBusinessObject(updatedObject);
 			SessionManager.updateObject(parentSession);
-			logger.info("populated to parentProperty of: " + parentProperty);
+			logger.info("populated to parentProperty of: " + parentReference);
 		}
 		
 		session.setBusinessObject(bstate);

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-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -27,6 +27,9 @@
 /**
  * This action represents a choice between a set of specified paths
  * based on the message that has occurred.
+ * 
+ * @author <a href="mailto:gary.brown at hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu at redhat.com>Jeff Yu</a>
  */
 public class SwitchAction extends ConversationAction {
 	

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -35,28 +35,36 @@
 	
 	private static final ThreadLocal<Session> session = new ThreadLocal<Session>();
 	
-	static {
+	private static final String defaultConfigurationFile = "/overlord-cdl-jbossesb.cfg.xml";
+	
+	
+	public static SessionFactory getSessionFactory(String configurationFile) {
+		if (sessionFactory != null) {
+			return sessionFactory;
+		}
 		try {
-			sessionFactory = new AnnotationConfiguration().configure("/overlord-cdl-jbossesb.cfg.xml").buildSessionFactory();
+			sessionFactory = new AnnotationConfiguration().configure(configurationFile).buildSessionFactory();
 		} catch (Throwable t) {
 			throw new ExceptionInInitializerError(t);
 		}
-	}
-	
-	public static SessionFactory getSessionFactory() {
 		return sessionFactory;
 	}
 	
 	public static void shutdown() {
-		if (getSessionFactory() != null) {
-			getSessionFactory().close();
+		if (sessionFactory != null) {
+			sessionFactory.close();
 		}
 	}
 	
 	public static synchronized Session currentSession() throws HibernateException {
+		return currentSession(defaultConfigurationFile);
+	}
+	
+	
+	public static synchronized Session currentSession(String configurationFile) throws HibernateException {
 		Session s = session.get();
 		if (s == null) {
-			s = sessionFactory.openSession();
+			s = getSessionFactory(configurationFile).openSession();
 			session.set(s);
 		}
 		return s;

Modified: cdl/trunk/runtime/jbossesb-assembly/pom.xml
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/pom.xml	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb-assembly/pom.xml	2008-10-06 09:38:38 UTC (rev 363)
@@ -47,6 +47,13 @@
 				<version>${hsqldb-version}</version>
 			</dependency>
 			
+			<dependency>
+				<groupId>junit</groupId>
+				<artifactId>junit</artifactId>
+				<version>4.4</version>
+				<scope>test</scope>
+			</dependency>
+			
 		</dependencies>
 
 		<build>
@@ -68,7 +75,7 @@
 				<classpath>
 					<pathelement path="maven.compile.classpath" />
 				</classpath>
-				<annotationconfiguration configurationfile="target/classes/hibernate.cfg.xml" />
+				<annotationconfiguration configurationfile="target/classes/overlord-cdl-jbossesb.cfg.xml" />
 				<hbm2ddl
 					create="true"
 					drop="false"

Modified: cdl/trunk/runtime/jbossesb-assembly/src/main/resources/cdl-sql/cdl.hsqldb.sql
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/src/main/resources/cdl-sql/cdl.hsqldb.sql	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb-assembly/src/main/resources/cdl-sql/cdl.hsqldb.sql	2008-10-06 09:38:38 UTC (rev 363)
@@ -7,7 +7,9 @@
     create table CDL_SCHEDULE_ITEM (ID bigint generated by default as identity (start with 1),CATEGORY varchar(255) not null,NAME varchar(255) not null,SESSION_ID bigint,primary key (ID));
 
     create table CDL_SESSION (SESSION_ID bigint generated by default as identity (start with 1),STATUS varchar(255),POJO_CLASS varchar(255),SERVICE_NAME varchar(255),CONVERSATION_TYPE varchar(255),Business_OBJECT longvarbinary,PARENT_ID bigint,primary key (SESSION_ID));
-
+	
+	create table CDL_SESSION_PROPERTY(SESSION_ID bigint not null, property_key varchar(255), property_value varchar(255), primary key (SESSION_ID, property_key));
+	
     alter table CDL_EPRS add constraint FKC42217E088C85D6A foreign key (SESSION_ID)references CDL_SESSION;
 
     alter table CDL_IDENTITY add constraint FK41FEEA7288C85D6A foreign key (SESSION_ID) references CDL_SESSION;
@@ -17,3 +19,6 @@
     alter table CDL_SCHEDULE_ITEM add constraint FKA523168788C85D6A foreign key (SESSION_ID) references CDL_SESSION;
 
     alter table CDL_SESSION add constraint FKD597E42A1212ED6 foreign key (PARENT_ID) references CDL_SESSION;
+    
+    alter table CDL_SESSION_PROPERTY add constraint FKE2CE33504BA6EBA4 foreign key (SESSION_ID) references CDL_SESSION;
+    

Added: cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/HibernateTest.java
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/HibernateTest.java	                        (rev 0)
+++ cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/HibernateTest.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2008,
+ */
+package org.jboss.soa.overlord.jbossesb;
+
+import junit.framework.Assert;
+
+import org.jboss.soa.overlord.jbossesb.util.HibernateUtil;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * @author <a href="mailto:cyu at redhat.com>Jeff Yu</a>
+ *
+ */
+public class HibernateTest extends Assert {
+	
+	@Test
+	@Ignore
+	public void testGetData() throws Exception {
+		org.hibernate.Session hibernateSession = HibernateUtil.currentSession("/overlord-cdl-jbossesb-test.cfg.xml");
+		Session session = (Session) hibernateSession.load(Session.class, Long.valueOf(1));
+		System.out.println(session.getProperties().get(Session.PARENT_REFERENCE_KEY));
+		System.out.println(session.getServiceName());
+	}
+
+}

Added: cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb-test.cfg.xml
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb-test.cfg.xml	                        (rev 0)
+++ cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb-test.cfg.xml	2008-10-06 09:38:38 UTC (rev 363)
@@ -0,0 +1,64 @@
+<!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">
+			org.hsqldb.jdbcDriver
+		</property>
+		<property name="hibernate.connection.url">
+			jdbc:hsqldb:hsql://localhost
+		</property>
+		<property name="hibernate.connection.username">
+			sa
+		</property>
+		
+		<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</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.Session" />
+		<mapping class="org.jboss.soa.overlord.jbossesb.ScheduleItem"/>
+		<mapping class="org.jboss.soa.overlord.jbossesb.JoinState"/>
+		<mapping class="org.jboss.soa.overlord.jbossesb.Identity"/>
+		<mapping class="org.jboss.soa.overlord.jbossesb.EPRWrapper"/>
+		
+	</session-factory>
+</hibernate-configuration>

Modified: cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetCreditCheckRequestMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetCreditCheckRequestMessageAction.java	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetCreditCheckRequestMessageAction.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -40,7 +40,7 @@
 		
 		Node node = XMLUtils.getNode((String)message.getBody().get());
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
-		message.getBody().add("<creditInformation id=\"" + idValue +"\"></creditInformation>");
+		message.getBody().add("<CreditCheckRequest id=\"" + idValue +"\"></CreditCheckRequest>");
 		
 		logger.info("Updated credit check request message: "+message.getBody().get());
 		

Modified: cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml	2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml	2008-10-06 09:38:38 UTC (rev 363)
@@ -173,6 +173,7 @@
 					<property name="serviceName" value="RequestForQuote.main" />
 					<property name="returnServiceCategory" value="ESBBroker.BrokerParticipant" />
 					<property name="returnServiceName" value="ESBBrokerProcess.main.9" />
+					<property name="parentReference" value="quoteManager"/>
 					<property name="bindDetails" >
 						<bind from-expression="getCurrentSupplier()"
 									to-variable="supplier" />
@@ -438,7 +439,6 @@
 				<action class="org.jboss.soa.overlord.jbossesb.actions.SetStateAction" 
 							process="process" name="s9-4">
 					<property name="variable" value="addToQuoteManager()" />
-					<property name="parentProperty" value="quoteManager" />
 				</action>				
 			</actions>
 		</service>
@@ -471,7 +471,7 @@
 				<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
 							process="process" name="s10-4">
 					<property name="operation" value="checkCredit" />
-					<property name="messageType" value="creditInformation" />
+					<property name="messageType" value="CreditCheckRequest" />
 					<property name="serviceName" value="CreditAgency.main" />
 					<property name="serviceCategory" value="PurchaseGoods.CreditAgency" />
 					<property name="responseServiceName" value="CompleteTransaction.main.1" />
@@ -507,11 +507,11 @@
 					<property name="paths">
 						<case service-category="ESBBroker.BrokerParticipant"
 								service-name="CompleteTransaction.main.2" >
-							<message type="creditValid" />
+							<message type="CreditCheckOk" />
 						</case>
 						<case service-category="ESBBroker.BrokerParticipant"
 								service-name="CompleteTransaction.main.4" >
-							<message type="creditInvalid" />
+							<message type="CreditCheckInvalid" />
 						</case>
 					</property>				
 				</action>
@@ -529,7 +529,7 @@
 							process="process" name="s12-1">
 					<property name="session" value="org.jboss.soa.overlord.samples.jbossesb.loan.broker.CompleteTransactionMain" />
 					<property name="operation" value="checkCredit" />
-					<property name="messageType" value="creditValid" />
+					<property name="messageType" value="CreditCheckOk" />
 					<property name="identities" >
 						<identity type="primary" >
 							<token name="id" locator="//@id" />

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-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java	2008-10-06 09:38:38 UTC (rev 363)
@@ -49,8 +49,10 @@
     }
 
     public void run() {
-
-       	String quoteReq="<enquiry id=\"20\" ></enquiry>";
+    	
+    	String id = "20";
+    	
+       	String quoteReq="<enquiry id=\"" + id +"\" ></enquiry>";
         	
         Message mesg = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
         mesg.getBody().add(quoteReq);
@@ -65,7 +67,7 @@
         	Thread.sleep(5000);//Waiting...
         	
         	System.out.println("Sending Buy request to Broker...");
-	        String buyReq = "<buy id=\"20\" supplierDesc=\"{http://www.jboss.org/overlord/loanBroker}Supplier1\" quoteValue=\"10\"></buy>";	
+	        String buyReq = "<buy id=\"" + id + "\" supplierDesc=\"{http://www.jboss.org/overlord/loanBroker}Supplier1\" quoteValue=\"10\"></buy>";	
 	        mesg.getBody().add(buyReq);
 	        
 	        System.out.println("Request: " + mesg.getBody().get());




More information about the overlord-commits mailing list