[jboss-svn-commits] JBL Code SVN: r7432 - in labs/jbossesb/trunk: product/core/listeners/src/org/jboss/soa/esb/actions product/core/listeners/src/org/jboss/soa/esb/listeners/message product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml product/core/services/tests/src/org/jboss/soa/esb/services/routing/cbr qa/junit/src/org/jboss/soa/esb/actions

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Nov 7 13:34:21 EST 2006


Author: kurt.stam at jboss.com
Date: 2006-11-07 13:34:17 -0500 (Tue, 07 Nov 2006)
New Revision: 7432

Added:
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment1.xml
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment2.xml
Removed:
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment.xml
Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/CbrJmsQueueListener.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/JmsQueueReplyListener.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
   labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/routing/cbr/ContentBasedRoutingUnitTest.java
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTest.java
Log:
cbr qa test

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java	2006-11-07 18:19:28 UTC (rev 7431)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java	2006-11-07 18:34:17 UTC (rev 7432)
@@ -28,6 +28,7 @@
 
 import org.apache.log4j.Logger;
 import org.apache.log4j.Priority;
+import org.jboss.soa.esb.addressing.Call;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.eprs.JMSEpr;
 import org.jboss.soa.esb.couriers.Courier;
@@ -99,6 +100,7 @@
      */
     public Message route(Message message) 
     {
+    	message.getProperties().setProperty(MessageRouter.DELIVER_MESSAGES, Boolean.FALSE);
     	Message replyMessage=null;
     	JmsQueueReplyListener jmsQueueReplyListener = new JmsQueueReplyListener();
     	try {
@@ -109,8 +111,16 @@
 				Courier courier = CourierFactory.getCourier(epr);
 				//If not successful try the next EPR
 				if (JMSEpr.class.equals(epr.getClass())) {
+					//Setting the replyTo to the queue we specific in the epr we are going to call
+					//The selectors will do the job.
+					if (message.getHeader().getCall()==null) {
+						Call call = new Call();
+						message.getHeader().setCall(call);
+					}
+					
+					message.getHeader().getCall().setReplyTo(epr);
+					String uniqueReplySelector = jmsQueueReplyListener.setCorrelationId(message);
 					if (courier.deliver(message)) {
-						String uniqueReplySelector = jmsQueueReplyListener.setCorrelationId(message);
 						replyMessage = jmsQueueReplyListener.listen((JMSEpr)epr, uniqueReplySelector);
 						break;
 					} else {

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/CbrJmsQueueListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/CbrJmsQueueListener.java	2006-11-07 18:19:28 UTC (rev 7431)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/CbrJmsQueueListener.java	2006-11-07 18:34:17 UTC (rev 7432)
@@ -29,6 +29,7 @@
 import org.apache.log4j.Priority;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.eprs.JMSEpr;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierFactory;
 import org.jboss.soa.esb.helpers.ConfigTree;
@@ -89,10 +90,11 @@
         			_logger.log(Priority.DEBUG, "Sending message to the Content Based Router.");
         			Collection<String> destinationServices = cbr.route(ruleSet, message);
         			if (Boolean.FALSE.equals(message.getProperties().getProperty(MessageRouter.DELIVER_MESSAGES))) {
-        				message.getBody().add(MessageRouter.ROUTING_DESTINATION_SERVICE_LIST, destinationServices);
+        				//message.getBody().add(MessageRouter.ROUTING_DESTINATION_SERVICE_LIST, destinationServices);
         				try  { 
         					_logger.debug("Replying to caller");
-        					EPR replyTo = message.getHeader().getCall().getReplyTo();
+        					//TODO For now it's ok to assume it's JMS. But going forward this needs to be fixed
+        					JMSEpr replyTo = new JMSEpr(message.getHeader().getCall().getReplyTo());
         					if (replyTo!=null) {
         						CourierFactory.getCourier(replyTo).deliver(message);
         					} else {

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/JmsQueueReplyListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/JmsQueueReplyListener.java	2006-11-07 18:19:28 UTC (rev 7431)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/JmsQueueReplyListener.java	2006-11-07 18:34:17 UTC (rev 7432)
@@ -114,23 +114,17 @@
     {
     	MessageConsumer consumer = null;
     	javax.jms.Message jmsMessage = null;
-        try 
-		{	
-        	consumer = getConsumer(epr, uniqueReplySelector);
-        	jmsMessage = consumer.receive(LISTEN_TIME_OUT); //TODO Kurt why this timeout?
-		}
-        catch (JMSException oJ)
         {
-        	for (int i1 = 0; i1 < 3; i1++)
-        		// try to reconnect to the queue
+        	for (int i = 0; i < 3; i++)
         		try 
         		{ 
         			consumer = getConsumer(epr, uniqueReplySelector); 
                 	jmsMessage = consumer.receive(LISTEN_TIME_OUT);
+                	break;
         		} 
         		catch (Exception e)
         		{
-                	_logger.error("JMS error on receive.  Attempting JMS Destination reconnect.", oJ);
+                	_logger.error("JMS error on receive.  Attempting JMS Destination reconnect.", e);
         			_logger.error("Reconnecting to Queue", e);
         			try {	Thread.sleep(SLEEP_FOR_RETRY); }
         			catch (InterruptedException e1)
@@ -138,10 +132,8 @@
         				_logger.error("Unexpected thread interupt exception.", e);
         				break;
                     }
-                 }
+                 } finally {cleanupJms(); }
         }
-        finally {cleanupJms(); }
-
         if (null == jmsMessage)
         	return null;
 

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java	2006-11-07 18:19:28 UTC (rev 7431)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java	2006-11-07 18:34:17 UTC (rev 7432)
@@ -11,6 +11,7 @@
 import org.w3c.dom.CDATASection;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
 /*
@@ -149,12 +150,14 @@
 					}
 					else
 					{
-						Object value = MarshalUnmarshalManager.getInstance().unmarshal((Element) child.getFirstChild());
-						
-						if (value == null)
-							throw new UnmarshalException("Cannot unpack object "+child.getNodeName());
-						else
-							_objects.put(child.getNodeName(), value);
+						Object value = child.getFirstChild();
+						if (value instanceof Element) {
+							value = MarshalUnmarshalManager.getInstance().unmarshal((Element) child.getFirstChild());
+							if (value == null)
+								throw new UnmarshalException("Cannot unpack object "+child.getNodeName());
+							else
+								_objects.put(child.getNodeName(), value);
+						}
 					}
 				}
 			}

Modified: labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/routing/cbr/ContentBasedRoutingUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/routing/cbr/ContentBasedRoutingUnitTest.java	2006-11-07 18:19:28 UTC (rev 7431)
+++ labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/routing/cbr/ContentBasedRoutingUnitTest.java	2006-11-07 18:34:17 UTC (rev 7432)
@@ -33,6 +33,7 @@
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.services.routing.MessageRouter;
 import org.jboss.soa.esb.services.routing.MessageRouterException;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -57,6 +58,7 @@
 			//set some object attachments inside the Message
 			message.getAttachment().addItem(new String("TEST ATTACHMENT1"));
 			message.getAttachment().addItem(new String("TEST ATTACHMENT2"));
+			message.getProperties().setProperty(MessageRouter.DELIVER_MESSAGES, Boolean.FALSE);
 			
 			ContentBasedRouter cbr = ContentBasedRouterFactory.getRouter();
 			List<String> destinationServices = cbr.route("JBossESBRules.drl",message);
@@ -81,6 +83,7 @@
 			//set some object attachments inside the Message
 			message.getAttachment().addItem(new String("TEST ATTACHMENT1"));
 			message.getAttachment().addItem(new String("TEST ATTACHMENT2"));
+			message.getProperties().setProperty(MessageRouter.DELIVER_MESSAGES, Boolean.FALSE);
 		
 			ContentBasedRouter cbr = ContentBasedRouterFactory.getRouter();
 			List<String> destinationServices = cbr.route("JBossESBRules.drl",message);

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-11-07 18:19:28 UTC (rev 7431)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTest.java	2006-11-07 18:34:17 UTC (rev 7432)
@@ -63,14 +63,13 @@
 	private static String mDbUsername;
 	private static String mDbPassword;
 	
-	@Test
+	
     public void routeAndDeliver() 
     {
 		try {
 			Message message = MessageFactory.getInstance().getMessage();
 			message.getBody().setContents("Body".getBytes());
-	        @SuppressWarnings("unused")
-			ConfigTree config = ConfigTree.fromInputStream(getClass().getResourceAsStream("CbrProxyActionUnitTestFragment.xml"));
+			ConfigTree config = ConfigTree.fromInputStream(getClass().getResourceAsStream("CbrProxyActionUnitTestFragment1.xml"));
 	        
 	        ActionProcessingPipeline chain = null;
 	    	
@@ -90,6 +89,34 @@
 		}
     }
 	
+	@Test
+    public void route()
+    {
+		try {
+			Message message = MessageFactory.getInstance().getMessage();
+			message.getBody().setContents("Body".getBytes());
+			ConfigTree config = ConfigTree.fromInputStream(getClass().getResourceAsStream("CbrProxyActionUnitTestFragment2.xml"));
+	        
+	        ActionProcessingPipeline chain = null;
+	    	
+			try	{ 
+				chain = new ActionProcessingPipeline(message,config); 
+			}catch (IllegalArgumentException e){
+				e.printStackTrace();
+			} catch (ConfigurationException e){
+				e.printStackTrace();
+			}
+			new Thread(chain).start();
+			//give the CBR some time to finish
+			Thread.sleep(5000);
+		} catch (Exception e) {
+			assertTrue(false);
+			e.printStackTrace();
+		}
+    }
+	
+	
+	
 	@BeforeClass
 	public static void runBeforeAllTests()
 	{

Deleted: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment.xml
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment.xml	2006-11-07 18:19:28 UTC (rev 7431)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment.xml	2006-11-07 18:34:17 UTC (rev 7432)
@@ -1,10 +0,0 @@
-<CbrProxyActionTest>
-<action name="TestDefaultRouteAction" 
-    class="org.jboss.soa.esb.actions.CbrProxyAction"
-	service-category="MessageRouting"
-	service-name="ContentBasedRoutingService" />
-	
-	
-</CbrProxyActionTest>
-
-

Copied: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment1.xml (from rev 7424, labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment.xml)
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment.xml	2006-11-07 14:41:17 UTC (rev 7424)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment1.xml	2006-11-07 18:34:17 UTC (rev 7432)
@@ -0,0 +1,9 @@
+<CbrProxyActionTest>
+<action name="TestDefaultRouteAction" 
+    class="org.jboss.soa.esb.actions.CbrProxyAction"
+	service-category="MessageRouting"
+	service-name="ContentBasedRoutingService" />
+	
+</CbrProxyActionTest>
+
+

Added: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment2.xml
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment2.xml	2006-11-07 18:19:28 UTC (rev 7431)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/actions/CbrProxyActionUnitTestFragment2.xml	2006-11-07 18:34:17 UTC (rev 7432)
@@ -0,0 +1,10 @@
+<CbrProxyActionTest>
+<action name="TestDefaultRouteAction" 
+    process="route"
+    class="org.jboss.soa.esb.actions.CbrProxyAction"
+	service-category="MessageRouting"
+	service-name="ContentBasedRoutingService" />
+	
+</CbrProxyActionTest>
+
+




More information about the jboss-svn-commits mailing list