[jboss-svn-commits] JBL Code SVN: r8230 - in labs/jbossesb/trunk: product/core/listeners/src/org/jboss/soa/esb/actions product/core/listeners/src/org/jboss/soa/esb/actions/converters product/core/listeners/src/org/jboss/soa/esb/actions/routing product/core/listeners/src/org/jboss/soa/esb/listeners/gateway product/core/listeners/src/org/jboss/soa/esb/listeners/message product/samples/quickstarts/helloworld_embedded_reg qa/junit/src/org/jboss/soa/esb/actions
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Dec 11 13:01:00 EST 2006
Author: tfennelly
Date: 2006-12-11 13:00:49 -0500 (Mon, 11 Dec 2006)
New Revision: 8230
Added:
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/AbstractRouter.java
Modified:
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_embedded_reg/log4j.xml
labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTest.java
Log:
Some action processor updates.
Router still needs to be genericised and brought in line with arch.
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -44,7 +44,13 @@
*/
public static Object getTaskObject(Message message)
{
- return (null==message)? null : message.getBody().get(CURRENT_OBJECT);
+ Object payload = (null==message)? null : message.getBody().get(CURRENT_OBJECT);
+
+ if(payload == null) {
+ payload = message.getBody().getContents();
+ }
+
+ return payload;
}
/**
* Obtain previous 'current object' from standard spot within message
@@ -77,8 +83,14 @@
public static Object setTaskObject(Message message, Object obj)
{
Object oRet = message.getBody().remove(CURRENT_OBJECT);
- if (null!=obj)
+
+ if (null!=obj) {
message.getBody().add(CURRENT_OBJECT,obj);
+ }
+ if(obj instanceof byte[]) {
+ message.getBody().setContents((byte[])obj);
+ }
+
return oRet;
}
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -29,6 +29,7 @@
import org.jboss.soa.esb.actions.ActionProcessingException;
import org.jboss.soa.esb.actions.ActionProcessor;
import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.KeyValuePair;
import org.jboss.soa.esb.message.Message;
@@ -50,6 +51,14 @@
/**
* Public constructor.
+ * @param properties Action properties.
+ */
+ public ByteArrayToString(ConfigTree properties) {
+ this("ByteArrayToString", properties.attributesAsList());
+ }
+
+ /**
+ * Public constructor.
* @param actionName Processing action name.
* @param properties Action properties.
*/
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -32,6 +32,7 @@
import org.jboss.soa.esb.actions.ActionProcessingException;
import org.jboss.soa.esb.actions.ActionProcessor;
import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.KeyValuePair;
import org.jboss.soa.esb.message.Message;
@@ -63,6 +64,15 @@
/**
* Public constructor.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public ObjectToCSVString(ConfigTree properties) throws ConfigurationException {
+ this("ObjectToCSVString", properties.attributesAsList());
+ }
+
+ /**
+ * Public constructor.
* @param actionName Action name.
* @param properties Action Properties.
* @throws ConfigurationException Action not properly configured.
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -29,6 +29,7 @@
import org.jboss.soa.esb.actions.ActionProcessingException;
import org.jboss.soa.esb.actions.ActionProcessor;
import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.KeyValuePair;
import org.jboss.soa.esb.message.Message;
@@ -60,6 +61,15 @@
/**
* Public constructor.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public ObjectToXStream(ConfigTree properties) {
+ this("ObjectToXStream", properties.attributesAsList());
+ }
+
+ /**
+ * Public constructor.
* @param actionName Action name.
* @param properties Action Properties.
* @throws ConfigurationException Action not properly configured.
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -149,14 +149,8 @@
*/
public Message process(Message message) throws ActionProcessingException {
Object payload = ActionUtils.getTaskObject(message);
- boolean wasPayloadOnTaskObject = (payload != null);
try {
- if(!wasPayloadOnTaskObject) {
- logger.debug("Message payload not set as message 'Task Object'. Will try using the message body 'contents'.");
- payload = message.getBody().getContents();
- }
-
if(payload instanceof byte[]) {
payload = new String((byte[])payload, "UTF-8");
}
@@ -199,11 +193,8 @@
if(beanHash != null && setPayloadToBeanHash) {
ActionUtils.setTaskObject(message, beanHash);
} else {
- // Always set result in the message "contents"...
- message.getBody().setContents(transformedMessage.getBytes("UTF-8"));
- if(wasPayloadOnTaskObject) {
- ActionUtils.setTaskObject(message, transformedMessage);
- }
+ ActionUtils.setTaskObject(message, transformedMessage);
+ message.getBody().setContents(transformedMessage.getBytes("UTF-8"));
}
} else {
String sClass = (null==payload) ? "<null>" : payload.getClass().getName();
@@ -211,7 +202,7 @@
+ sClass + "]. Returning message untransformed.");
}
} catch(Throwable thrown) {
- throw new ActionProcessingException("Message transformation failed.", thrown);
+ throw new ActionProcessingException("Message transformation failed. Message [" + payload + "].", thrown);
}
// TODO: Cater for more message input types e.g. InputStream, DOM Document...
@@ -252,9 +243,11 @@
} catch(UnknownDeviceException e) {
String[] profiles = getMessageUseragentProfiles(messageFromType, messageFrom, messageToType, messageTo);
- // Register the message flow within the Smooks context....
- logger.info("Registering message-flow useragent: [" + messageUseragent + "]. Profiles: [" + Arrays.asList(profiles) + "]");
- smooks.registerUseragent(messageUseragent, profiles);
+ synchronized (SmooksTransformer.class) {
+ // Register the message flow within the Smooks context....
+ logger.info("Registering message-flow useragent: [" + messageUseragent + "]. Profiles: [" + Arrays.asList(profiles) + "]");
+ smooks.registerUseragent(messageUseragent, profiles);
+ }
}
return messageUseragent;
@@ -347,6 +340,7 @@
synchronized (SmooksTransformer.class) {
if(smooks == null) {
String cpPrefix;
+ SmooksStandalone localSmooksRef;
// The "cpPrefix" property is "private" and only here in order to make unit testing easier.
// It allows us to force a "bad" config location for the smooks-cdr.lst file....
@@ -361,15 +355,22 @@
throw new ConfigurationException("Failed to locate Smooks configuration list file [" + SMOOKS_CDR_LST + "]. The folder containing this file must be located at " + cpPrefix + " relative to the root of the classpath.");
}
- smooks = new SmooksStandalone("UTF-8");
+ localSmooksRef = new SmooksStandalone("UTF-8");
try {
BufferedReader configReader = new BufferedReader(new InputStreamReader(configListStream));
- smooks.getContext().getStore().load(configReader);
+ localSmooksRef.getContext().getStore().load(configReader);
} catch (Exception e) {
- smooks = null;
+ localSmooksRef = null;
throw new ConfigurationException("Smooks configuration load failed.", e);
}
+
+ logger.info("All Smooks configurations are now loaded.");
+
+ // Purposely not initialising the "smooks" static member until the very end. This will stop other threads
+ // falling through this classes constructor while the Smooks configurations are still being
+ // loaded. See the constructor.
+ smooks = localSmooksRef;
}
}
}
Added: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/AbstractRouter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/AbstractRouter.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/AbstractRouter.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, 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) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.actions.routing;
+
+import java.util.List;
+
+import javax.jms.JMSException;
+import javax.naming.NamingException;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Abstract router.
+ * <p/>
+ * Handles unwrapping of the message payload (if required) before routing. To turn on
+ * unwrapping, supply an "unwrap" property with a value of "true" (default "false").
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class AbstractRouter implements ActionProcessor {
+
+ /**
+ * Unwrap the message payload before routing.
+ */
+ public boolean unwrap = false;
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action properties.
+ * @throws ConfigurationException Queue name not configured.
+ * @throws JMSException Unable to configure JMS destination.
+ * @throws NamingException Unable to configure JMS destination.
+ */
+ public AbstractRouter(String actionName, List<KeyValuePair> properties) throws ConfigurationException {
+ unwrap = KeyValuePair.getBooleanValue("unwrap", properties, false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public final Message process(Message message) throws ActionProcessingException {
+ if(unwrap) {
+ route(ActionUtils.getTaskObject(message));
+ } else {
+ route(message);
+ }
+
+ return message;
+ }
+
+ /**
+ * Route the message or message payload.
+ * <p/>
+ * If the message is to be unwrapped, it will have been unwrapped at this stage.
+ * @param object The object to route.
+ * @throws ActionProcessingException Exception during routing operation.
+ */
+ public abstract void route(Object object) throws ActionProcessingException;
+}
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -25,6 +25,7 @@
import java.io.Serializable;
import java.util.List;
+import javax.jms.BytesMessage;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
@@ -40,29 +41,31 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.actions.ActionProcessor;
-import org.jboss.soa.esb.actions.ActionUtils;
import org.jboss.soa.esb.common.Configuration;
import org.jboss.soa.esb.helpers.NamingContext;
+import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.util.Util;
/**
* JSM Routing Action Processor.
* <p/>
* Sample Action Configuration:
* <pre>
- * <Action name="Route-To-Invoicing" processor="JMSRouter">
- * <property name="jndiName" value="queue/A" />
- * <property name="message-prop:jms-selector" value="incoming-invoice" />
- * </Action>
+ * <action class="org.jboss.soa.esb.actions.routing.JMSRouter">
+ * jndiName="queue/A"
+ * message-prop-<i>>prop-name<</i>="<i>>prop-value<</i>" >!-- (Optional)--<
+ * unwrap="true/false" >!-- (Optional - default false)--<
+ * />
* </pre>
- * Note how properties to be set on the message are prefixed with "message-prop:".
+ * Note how properties to be set on the message are prefixed with "message-prop-".
* <p/>
+ * To unwrap the message payload from the message before routing, set the "unwrap" property to "true".
* TODO: Add support for JMS Topic destinations.
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
* @since Version 4.0
*/
-public class JMSRouter implements ActionProcessor {
+public class JMSRouter extends AbstractRouter {
/**
* Logger.
*/
@@ -75,6 +78,17 @@
* JMS Queue setup.
*/
private JMSSendQueueSetup queueSetup;
+
+ /**
+ * Public constructor.
+ * @param propertiesTree Action properties.
+ * @throws ConfigurationException Queue name not configured.
+ * @throws JMSException Unable to configure JMS destination.
+ * @throws NamingException Unable to configure JMS destination.
+ */
+ public JMSRouter(ConfigTree propertiesTree) throws ConfigurationException, NamingException, JMSException {
+ this("JMSRouter", propertiesTree.attributesAsList());
+ }
/**
* Public constructor.
@@ -84,59 +98,78 @@
* @throws JMSException Unable to configure JMS destination.
* @throws NamingException Unable to configure JMS destination.
*/
- public JMSRouter(String actionName, List<KeyValuePair> properties) throws ConfigurationException, NamingException, JMSException {
+ public JMSRouter(String actionName, List<KeyValuePair> properties) throws ConfigurationException {
+ super(actionName, properties);
+
this.properties = properties;
String queueName = KeyValuePair.getValue("jndiName", properties);
if(queueName == null) {
throw new ConfigurationException("JMSRouter must specify a 'jndiName' property.");
}
- queueSetup = new JMSSendQueueSetup(queueName);
+ try {
+ queueSetup = new JMSSendQueueSetup(queueName);
+ } catch (Throwable t) {
+ new ConfigurationException("Failed to configure JMS Queue for routing.", t);
+ }
this.properties = properties;
}
/* (non-Javadoc)
- * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ * @see org.jboss.soa.esb.actions.routing.AbstractRouter#route(java.lang.Object)
*/
- public org.jboss.soa.esb.message.Message
- process(org.jboss.soa.esb.message.Message message) throws ActionProcessingException {
+ public void route(Object message) throws ActionProcessingException {
- Object oCurr = ActionUtils.getTaskObject(message);
- if(!(oCurr instanceof Serializable)) {
- throw new ActionProcessingException("Cannot send Object [" + oCurr.getClass().getName() + "] to destination [" + queueSetup.queueName + "]. Object must be serializable.");
+ if(!(message instanceof Serializable) && !(message instanceof org.jboss.soa.esb.message.Message)) {
+ throw new ActionProcessingException("Cannot send Object [" + message.getClass().getName() + "] to destination [" + queueSetup.queueName + "]. Object must be serializable.");
}
try {
- // Send a Text or Object message to the queue...
- if (oCurr instanceof String) {
- TextMessage oMsg = queueSetup.jmsSession.createTextMessage();
+ Message jmsMessage = null;
+
+ // Send the message to the queue...
+ if (message instanceof org.jboss.soa.esb.message.Message) {
+ message = Util.serialize((org.jboss.soa.esb.message.Message)message);
+ jmsMessage = createObjectMessage(message);
+ } else if(message instanceof String) {
+ jmsMessage = queueSetup.jmsSession.createTextMessage();
if(logger.isDebugEnabled()) {
- logger.debug("Sending Text message: [" + oCurr + "] to destination [" + queueSetup.queueName + "].");
+ logger.debug("Sending Text message: [" + message + "] to destination [" + queueSetup.queueName + "].");
}
- oMsg.setText((String)oCurr);
- setStringProperties(oMsg);
- queueSetup.jmsProducer.send(oMsg);
- } else {
- ObjectMessage oMsg = queueSetup.jmsSession.createObjectMessage();
+ ((TextMessage)jmsMessage).setText((String)message);
+ } else if(message instanceof byte[]) {
+ jmsMessage = queueSetup.jmsSession.createBytesMessage();
if(logger.isDebugEnabled()) {
- logger.debug("Sending Object message: [" + oCurr + "] to destination [" + queueSetup.queueName + "].");
+ logger.debug("Sending byte[] message: [" + message + "] to destination [" + queueSetup.queueName + "].");
}
- oMsg.setObject((Serializable) oCurr);
- setStringProperties(oMsg);
- queueSetup.jmsProducer.send(oMsg);
+ ((BytesMessage)jmsMessage).writeBytes((byte[])message);
+ } else {
+ jmsMessage = createObjectMessage(message);
}
- return message;
+ setStringProperties(jmsMessage);
+ queueSetup.jmsProducer.send(jmsMessage);
} catch(Exception e) {
- String errorMessage = "Exception while sending message [" + oCurr + "] to destination [" + queueSetup.queueName + "].";
+ String errorMessage = "Exception while sending message [" + message + "] to destination [" + queueSetup.queueName + "].";
logger.error(errorMessage, e);
throw new ActionProcessingException(errorMessage, e);
}
}
+ private Message createObjectMessage(Object message) throws JMSException {
+ Message jmsMessage;
+ jmsMessage = queueSetup.jmsSession.createObjectMessage();
+
+ if(logger.isDebugEnabled()) {
+ logger.debug("Sending Object message: [" + message + "] to destination [" + queueSetup.queueName + "].");
+ }
+ ((ObjectMessage)jmsMessage).setObject((Serializable) message);
+ return jmsMessage;
+ }
+
private void setStringProperties(Message msg) throws JMSException {
- String messagePropPrefix = "message-prop:";
+ String messagePropPrefix = "message-prop-";
for(KeyValuePair property : properties) {
String key = property.getKey();
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -109,7 +109,7 @@
}
catch (ClassCastException e)
{
- _logger.error("Action class method <"+_processMethod.getName()+"> returned a non Message object");
+ _logger.error("Action class method <"+_processMethod.getName()+"> returned a non Message object", e);
continue;
}
catch (CourierException e)
@@ -118,7 +118,7 @@
"Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED"
:
"NULL courier can't deliver Message";
- _logger.error(text);
+ _logger.error(text, e);
continue;
}
continue;
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -209,5 +209,18 @@
*/
public boolean isProcessingComplete() {
return processingComplete;
- }
+ }
+
+ /**
+ * Wait until processing is complete.
+ */
+ public void waitUntilComplete() {
+ while(!processingComplete) {
+ try {
+ Thread.sleep(50);
+ } catch (InterruptedException e) {
+ _logger.error("Thread Interrupted.", e);
+ }
+ }
+ }
}
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_embedded_reg/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_embedded_reg/log4j.xml 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_embedded_reg/log4j.xml 2006-12-11 18:00:49 UTC (rev 8230)
@@ -55,7 +55,7 @@
<priority value="WARN"/>
</category>
<category name="org.jboss.soa.esb">
- <priority value="ERROR"/>
+ <priority value="INFO"/>
</category>
<category name="org.jboss.internal.soa.esb">
<priority value="ERROR"/>
Modified: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTest.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTest.java 2006-12-11 17:44:40 UTC (rev 8229)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTest.java 2006-12-11 18:00:49 UTC (rev 8230)
@@ -89,8 +89,9 @@
}
Thread t = new Thread(chain);
t.start();
- //give the CBR some time to finish
- t.join(5000);
+
+ // Wait for processing to complte...
+ chain.waitUntilComplete();
}
@Test
@@ -113,8 +114,10 @@
}
Thread t = new Thread(chain);
t.start();
- //give the CBR some time to finish
- t.join(5000);
+
+ // Wait for processing to complte...
+ chain.waitUntilComplete();
+
//The message coming should have the Collection of destinationServices as a property.
Collection destinationServices = (Collection) chain.getMessage().getProperties().getProperty(MessageRouter.ROUTING_DESTINATION_SERVICE_LIST);
assertNotNull("Destination service list is null", destinationServices);
More information about the jboss-svn-commits
mailing list