[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