[jboss-svn-commits] JBL Code SVN: r22880 - in labs/jbossesb/workspace/skeagh: runtime/src/main/java/org/jboss/esb/deploy/config and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 18 10:02:34 EDT 2008


Author: tfennelly
Date: 2008-09-18 10:02:34 -0400 (Thu, 18 Sep 2008)
New Revision: 22880

Modified:
   labs/jbossesb/workspace/skeagh/api/service/src/main/java/org/jboss/esb/context/AddressingContext.java
   labs/jbossesb/workspace/skeagh/api/service/src/main/java/org/jboss/esb/context/InvocationContext.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/DeploymentUnit.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/AbstractDispatcher.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/federate/bus/BusDispatcher.java
   labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/federate/bus/BusOutboundRouter.java
   labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/federate/bus/scenario1/BusTest.java
Log:
some basic bus tests

Modified: labs/jbossesb/workspace/skeagh/api/service/src/main/java/org/jboss/esb/context/AddressingContext.java
===================================================================
--- labs/jbossesb/workspace/skeagh/api/service/src/main/java/org/jboss/esb/context/AddressingContext.java	2008-09-18 13:30:16 UTC (rev 22879)
+++ labs/jbossesb/workspace/skeagh/api/service/src/main/java/org/jboss/esb/context/AddressingContext.java	2008-09-18 14:02:34 UTC (rev 22880)
@@ -21,6 +21,8 @@
 
 import org.jboss.esb.service.ServiceName;
 
+import java.io.Serializable;
+
 /**
  * Message Addressing Context.
  *
@@ -29,7 +31,7 @@
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
  * @author <a href="mailto:tom.fennelly at jboss.com">Tom Fennelly</a>
  */
-public class AddressingContext
+public class AddressingContext implements Serializable
 {
     /**
      * "To" ServiceName for the message associated with the current context.

Modified: labs/jbossesb/workspace/skeagh/api/service/src/main/java/org/jboss/esb/context/InvocationContext.java
===================================================================
--- labs/jbossesb/workspace/skeagh/api/service/src/main/java/org/jboss/esb/context/InvocationContext.java	2008-09-18 13:30:16 UTC (rev 22879)
+++ labs/jbossesb/workspace/skeagh/api/service/src/main/java/org/jboss/esb/context/InvocationContext.java	2008-09-18 14:02:34 UTC (rev 22880)
@@ -23,6 +23,7 @@
 
 import java.util.LinkedHashMap;
 import java.util.Map;
+import java.io.Serializable;
 
 /**
  * InvocationContext Context.
@@ -34,7 +35,7 @@
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
  * @author <a href="mailto:tom.fennelly at jboss.com">Tom Fennelly</a>
  */
-public class InvocationContext implements ESBContext
+public class InvocationContext implements ESBContext, Serializable
 {
     /**
      * Context Data Map.

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/DeploymentUnit.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/DeploymentUnit.java	2008-09-18 13:30:16 UTC (rev 22879)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/deploy/config/DeploymentUnit.java	2008-09-18 14:02:34 UTC (rev 22880)
@@ -256,13 +256,24 @@
     /**
      * Expand the outbound routers list for this DeploymentUnit.
      * <p/>
-     * This involves adding an empty outbound routers list for all Services
-     * that do not define any outbound routers.
+     * This involves making sure there's an outbound router list
+     * for all services that have a service or routing components
+     * defined in this deployment unit.
      */
     public final void expandOutboundRouters()
     {
+        // Check through the inrouter definitions...
+        Set<Map.Entry<ServiceName, List<InboundRouterConfig>>> inrouterLists = inboundRouters.entrySet();
+        for (Map.Entry<ServiceName,List<InboundRouterConfig>> inrouterList : inrouterLists)
+        {
+            if(!outboundRouters.containsKey(inrouterList.getKey()))
+            {
+                outboundRouters.put(inrouterList.getKey(), new ArrayList<OutboundRouterConfig>());
+            }
+        }
+
+        // Check through the service definitions...
         Set<Map.Entry<ServiceName, ServiceConfig>> serviceList = services.entrySet();
-
         for (Map.Entry<ServiceName, ServiceConfig> service : serviceList)
         {
             if(!outboundRouters.containsKey(service.getKey()))

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/AbstractDispatcher.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/AbstractDispatcher.java	2008-09-18 13:30:16 UTC (rev 22879)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/dispatch/AbstractDispatcher.java	2008-09-18 14:02:34 UTC (rev 22880)
@@ -173,10 +173,12 @@
     {
         if (outboundRouters != null && !outboundRouters.isEmpty())
         {
+            AddressingContext addressContext = AddressingContext.getContext();
+
             // If this deployment doesn't specifiy this service, see is there a
             // Service by this name on one of the monitored deployments, and route
             // it there...
-            if(service == null)
+            if(!getServiceName().equals(addressContext.getFrom()))
             {
                 for (OutboundRouterConfig outboundRouterConfig : outboundRouters)
                 {
@@ -197,9 +199,20 @@
 
             for (OutboundRouterConfig outboundRouter : outboundRouters)
             {
-                // TODO: cloneOnOutboundTransforms
-                applyOutboundTransformers(outMessage, outboundRouter.getTransformers());
-                outboundRouter.getRouter().route(outMessage);
+                OutboundRouter outRouter = outboundRouter.getRouter();
+                if(outRouter instanceof BusOutboundRouter)
+                {
+                    if(!((BusOutboundRouter)outRouter).hasService(serviceName))
+                    {
+                        outRouter.route(outMessage);
+                    }
+                }
+                else
+                {
+                    // TODO: cloneOnOutboundTransforms
+                    applyOutboundTransformers(outMessage, outboundRouter.getTransformers());
+                    outRouter.route(outMessage);
+                }
             }
         }
     }

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/federate/bus/BusDispatcher.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/federate/bus/BusDispatcher.java	2008-09-18 13:30:16 UTC (rev 22879)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/federate/bus/BusDispatcher.java	2008-09-18 14:02:34 UTC (rev 22880)
@@ -68,9 +68,9 @@
             // The addressing context should have been set for
             // this dispacther.  It should have been received from the Bus...
             AddressingContext addressingContext = AddressingContext.getContext();
-            if(addressingContext != null)
+            if(addressingContext == null)
             {
-                throw new IllegalStateException("");
+                throw new IllegalStateException("Null AddressingContext set on BusMessage instance.");
             }
 
             // The InvocationContext should have also come from the bus...

Modified: labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/federate/bus/BusOutboundRouter.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/federate/bus/BusOutboundRouter.java	2008-09-18 13:30:16 UTC (rev 22879)
+++ labs/jbossesb/workspace/skeagh/runtime/src/main/java/org/jboss/esb/federate/bus/BusOutboundRouter.java	2008-09-18 14:02:34 UTC (rev 22880)
@@ -186,8 +186,6 @@
      */
     private boolean routeToOutRouters(final BusMessage busMessage) throws RoutingException
     {
-        boolean messageWasRouted = false;
-
         for (DeploymentMonitor deploymentMonitor : deploymentMonitors)
         {
             if (deploymentMonitor.isOnline())
@@ -198,12 +196,12 @@
                 if (!services.contains(serviceName) && outRoutedServices.contains(serviceName))
                 {
                     deploymentMonitor.getBus().send(busMessage, deploymentMonitor.getServiceSets().getDeploymentId());
-                    messageWasRouted = true;
+                    return true;
                 }
             }
         }
 
-        return messageWasRouted;
+        return false;
     }
 
     /**

Modified: labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/federate/bus/scenario1/BusTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/federate/bus/scenario1/BusTest.java	2008-09-18 13:30:16 UTC (rev 22879)
+++ labs/jbossesb/workspace/skeagh/runtime/src/test/java/org/jboss/esb/federate/bus/scenario1/BusTest.java	2008-09-18 14:02:34 UTC (rev 22880)
@@ -56,6 +56,7 @@
 
                         inrouterDeployment.setDeploymentName("inrouter");
                         inrouterDeployment.deploy();
+                        Thread.sleep(100); // Allow the deployments to exchange deployment details
                         try
                         {
                             HelloInboundRouter inrouter = (HelloInboundRouter) DeploymentUtil.getInboundRouter(serviceA, "inrouter", inrouterDeployment).getRouter();
@@ -63,10 +64,10 @@
                             HelloOutboundRouter outrouter = (HelloOutboundRouter) DeploymentUtil.getOutboundRouter(serviceA, "outrouter", outrouterDeployment).getRouter();
 
                             inrouter.sendHello("Hi there!!");
-                            Thread.sleep(100);
+                            Thread.sleep(100); // Allow the message to be delivered
 
-                            //assertEquals("Hi there!!", service.getHelloMessage());
-                            //assertEquals("Hi there!!", outrouter.getHelloMessage());
+                            assertEquals("Hi there!!", service.getHelloMessage());
+                            assertEquals("Hi there!!", outrouter.getHelloMessage());
                         }
                         finally
                         {




More information about the jboss-svn-commits mailing list