[jboss-cvs] JBoss Messaging SVN: r3822 - in trunk: src/main/org/jboss/messaging/core/remoting and 12 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Feb 27 11:06:30 EST 2008


Author: jmesnil
Date: 2008-02-27 11:06:29 -0500 (Wed, 27 Feb 2008)
New Revision: 3822

Added:
   trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java
Removed:
   trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcher.java
Modified:
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java
   trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java
   trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java
   trunk/src/main/org/jboss/messaging/core/remoting/RemotingService.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/AbstractPacket.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaSessionTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/ssl/integration/CoreClientOverSSLTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/SerializedClientSupport.java
Log:
* renamed remoting.impl.PacketDispatcher to PacketDispatcherImpl and introduced remoting.PacketDispatcher interface which is used by other JBM modules

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -26,6 +26,8 @@
 import org.jboss.messaging.core.client.ClientConnection;
 import org.jboss.messaging.core.client.ClientConnectionFactory;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
@@ -60,6 +62,8 @@
    // Attributes -----------------------------------------------------------------------------------
    
    private final RemotingConfiguration remotingConfig;
+   
+   private final PacketDispatcher dispatcher;
 
    private final Version serverVersion;
  
@@ -82,6 +86,7 @@
       this.serverVersion = serverVersion;
       this.strictTck = strictTck;
       this.prefetchSize = prefetchSize;
+      this.dispatcher = new PacketDispatcherImpl();
    }
 
    public ClientConnection createConnection() throws MessagingException
@@ -96,7 +101,7 @@
       RemotingConnection remotingConnection = null;
       try
       {
-         remotingConnection = new RemotingConnectionImpl(remotingConfig);
+         remotingConnection = new RemotingConnectionImpl(remotingConfig, dispatcher);
        
          remotingConnection.start();
          

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -29,7 +29,6 @@
 import org.jboss.messaging.core.list.PriorityLinkedList;
 import org.jboss.messaging.core.list.impl.PriorityLinkedListImpl;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.wireformat.CloseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.DeliverMessage;
@@ -243,7 +242,7 @@
 
          remotingConnection.send(id, new CloseMessage());
 
-         PacketDispatcher.client.unregister(id);
+         remotingConnection.getPacketDispatcher().unregister(id);
       }
       finally
       {

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -37,7 +37,6 @@
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientProducer;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.CloseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
@@ -240,7 +239,7 @@
 
       consumers.put(response.getConsumerID(), consumer);
 
-      PacketDispatcher.client.register(new ClientConsumerPacketHandler(consumer, response.getConsumerID()));
+      remotingConnection.getPacketDispatcher().register(new ClientConsumerPacketHandler(consumer, response.getConsumerID()));
 
       if (prefetchSize > 0) // 0 ==> flow control is disabled
       {

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -1,6 +1,7 @@
 package org.jboss.messaging.core.client.impl;
 
 import org.jboss.messaging.core.client.FailureListener;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket;
 import org.jboss.messaging.core.server.MessagingException;
 
@@ -24,4 +25,6 @@
    AbstractPacket send(String id, AbstractPacket packet, boolean oneWay) throws MessagingException;
    
    void setFailureListener(FailureListener newListener);
+   
+   PacketDispatcher getPacketDispatcher();
 }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -28,6 +28,7 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.NIOConnector;
 import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
@@ -59,24 +60,30 @@
    
    private FailureListener listener;
 
+   private transient PacketDispatcher dispatcher;
+
    // Constructors ---------------------------------------------------------------------------------
 
-   public RemotingConnectionImpl(final RemotingConfiguration remotingConfig) throws Exception
+   public RemotingConnectionImpl(final RemotingConfiguration remotingConfig, final PacketDispatcher dispatcher) throws Exception
    {
       assert remotingConfig != null;
+      assert dispatcher != null;
       
       this.remotingConfig = remotingConfig;
+      this.dispatcher = dispatcher;
       
       log.trace(this + " created with configuration " + remotingConfig);
    }
 
    // Public ---------------------------------------------------------------------------------------
 
+   // RemotingConnection implementation ------------------------------------------------------------
+   
    public void start() throws Throwable
    {
       if (log.isTraceEnabled()) { log.trace(this + " started remoting connection"); }
 
-      connector = REGISTRY.getConnector(remotingConfig);
+      connector = REGISTRY.getConnector(remotingConfig, dispatcher);
       session = connector.connect();
 
       if (log.isDebugEnabled())
@@ -180,6 +187,11 @@
       }
       this.listener = newListener;
    }
+   
+   public PacketDispatcher getPacketDispatcher()
+   {
+      return dispatcher;
+   }
 
    // Package protected ----------------------------------------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting;
 
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.invm.INVMConnector;
 import org.jboss.messaging.core.remoting.impl.mina.MinaService;
@@ -44,7 +43,7 @@
     */
    boolean unregister(RemotingConfiguration remotingConfig);
 
-   NIOConnector getConnector(RemotingConfiguration remotingConfig);
+   NIOConnector getConnector(RemotingConfiguration remotingConfig, PacketDispatcher dispatcher);
 
    /**
     * Decrement the number of references on the NIOConnector corresponding to

Added: trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -0,0 +1,30 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting;
+
+import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public interface PacketDispatcher
+{
+
+   void register(PacketHandler handler);
+
+   void unregister(String handlerID);
+
+   void dispatch(Packet packet, PacketSender sender) throws Exception;
+
+   /** Call filters on a package */
+   void callFilters(Packet packet) throws Exception;
+
+}
\ No newline at end of file

Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting;
 
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
+import org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 /**

Modified: trunk/src/main/org/jboss/messaging/core/remoting/RemotingService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/RemotingService.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/RemotingService.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -7,7 +7,6 @@
 package org.jboss.messaging.core.remoting;
 
 import org.jboss.messaging.core.client.FailureListener;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.server.MessagingComponent;
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -15,6 +15,7 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.ConnectorRegistry;
 import org.jboss.messaging.core.remoting.NIOConnector;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.TransportType;
 import org.jboss.messaging.core.remoting.impl.invm.INVMConnector;
 import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
@@ -75,7 +76,7 @@
        return (dispatcher != null);
    }
 
-   public synchronized NIOConnector getConnector(RemotingConfiguration remotingConfig)
+   public synchronized NIOConnector getConnector(RemotingConfiguration remotingConfig, PacketDispatcher dispatcher)
    {
       assert remotingConfig != null;
 
@@ -97,7 +98,7 @@
       {
          PacketDispatcher localDispatcher = localDispatchers.get(remotingConfig);
          NIOConnector connector = new INVMConnector(remotingConfig.getHost(), remotingConfig
-               .getPort(), localDispatcher);
+               .getPort(), dispatcher, localDispatcher);
 
          if (log.isDebugEnabled())
             log.debug("Created " + connector + " to connect to "
@@ -114,7 +115,7 @@
 
       if (transport == TCP)
       {
-         connector = new MinaConnector(remotingConfig);
+         connector = new MinaConnector(remotingConfig, dispatcher);
       }
 
       if (connector == null)

Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcher.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcher.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcher.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -1,134 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.core.remoting.impl;
-
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
-import static org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket.NO_ID_SET;
-
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.Interceptor;
-import org.jboss.messaging.core.remoting.PacketHandler;
-import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public class PacketDispatcher
-{
-   // Constants -----------------------------------------------------
-
-   private static final Logger log = Logger.getLogger(PacketDispatcher.class);
-
-   // Attributes ----------------------------------------------------
-
-   private Map<String, PacketHandler> handlers;
-   private List<Interceptor> filters;
-
-   // Static --------------------------------------------------------
-
-   public static final PacketDispatcher client = new PacketDispatcher();
-
-   // Constructors --------------------------------------------------
-
-   public PacketDispatcher()
-   {
-      handlers = new ConcurrentHashMap<String, PacketHandler>();
-   }
-
-   public PacketDispatcher(List<Interceptor> filters)
-   {
-      this();
-      this.filters = filters;
-   }
-
-   // Public --------------------------------------------------------
-   
-   
-
-   public void register(PacketHandler handler)
-   {
-      assertValidID(handler.getID());
-      assert handler != null;
-      
-      handlers.put(handler.getID(), handler);
-
-      if (log.isDebugEnabled())
-      {
-         log.debug("registered " + handler + " with ID " + handler.getID());
-      }
-   }
-
-   public void unregister(String handlerID)
-   {
-      assertValidID(handlerID);
-
-      handlers.remove(handlerID);
-      
-      if (log.isDebugEnabled())
-      {
-         log.debug("unregistered handler for " + handlerID);
-      }
-   }
-
-   public PacketHandler getHandler(String handlerID)
-   {
-      assertValidID(handlerID);
-
-      return handlers.get(handlerID);
-   }
-   
-   public void dispatch(Packet packet, PacketSender sender) throws Exception
-   {
-      String targetID = packet.getTargetID();
-      if (NO_ID_SET.equals(targetID))
-      {
-         log.error("Packet is not handled, it has no targetID: " + packet);
-         return;
-      }
-      PacketHandler handler = getHandler(targetID);
-      if (handler != null)
-      {
-         if (log.isTraceEnabled())
-            log.trace(handler + " handles " + packet);
-
-         callFilters(packet);
-         handler.handle(packet, sender);
-
-      }
-      else
-      {
-         log.error("Unhandled packet " + packet);
-      }
-   }
-
-   /** Call filters on a package */
-   public void callFilters(Packet packet) throws Exception
-   {
-     if (filters != null)
-     {
-        for (Interceptor filter: filters)
-        {
-           filter.intercept(packet);          
-        }
-     }
-   }
-   
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Copied: trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java (from rev 3813, trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcher.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -0,0 +1,142 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.impl;
+
+import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
+import static org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket.NO_ID_SET;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.Interceptor;
+import org.jboss.messaging.core.remoting.PacketHandler;
+import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * 
+ * @version <tt>$Revision$</tt>
+ */
+public class PacketDispatcherImpl implements PacketDispatcher, Serializable
+{
+   // Constants -----------------------------------------------------
+
+   public static final Logger log = Logger.getLogger(PacketDispatcherImpl.class);
+
+   // Attributes ----------------------------------------------------
+
+   private Map<String, PacketHandler> handlers;
+   public List<Interceptor> filters;
+
+   // Static --------------------------------------------------------
+
+   // public static final PacketDispatcher client = new PacketDispatcher();
+
+   // Constructors --------------------------------------------------
+
+   public PacketDispatcherImpl()
+   {
+      handlers = new ConcurrentHashMap<String, PacketHandler>();
+   }
+
+   public PacketDispatcherImpl(List<Interceptor> filters)
+   {
+      this();
+      this.filters = filters;
+   }
+
+   // Public --------------------------------------------------------
+   
+   
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.impl.IPacketDispatcher#register(org.jboss.messaging.core.remoting.PacketHandler)
+    */
+   public void register(PacketHandler handler)
+   {
+      assertValidID(handler.getID());
+      assert handler != null;
+      
+      handlers.put(handler.getID(), handler);
+
+      if (log.isDebugEnabled())
+      {
+         log.debug("registered " + handler + " with ID " + handler.getID());
+      }
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.messaging.core.remoting.impl.IPacketDispatcher#unregister(java.lang.String)
+    */
+   public void unregister(String handlerID)
+   {
+      assertValidID(handlerID);
+
+      handlers.remove(handlerID);
+      
+      if (log.isDebugEnabled())
+      {
+         log.debug("unregistered handler for " + handlerID);
+      }
+   }
+
+   public PacketHandler getHandler(String handlerID)
+   {
+      assertValidID(handlerID);
+
+      return handlers.get(handlerID);
+   }
+   
+   public void dispatch(Packet packet, PacketSender sender) throws Exception
+   {
+      String targetID = packet.getTargetID();
+      if (NO_ID_SET.equals(targetID))
+      {
+         log.error("Packet is not handled, it has no targetID: " + packet);
+         return;
+      }
+      PacketHandler handler = getHandler(targetID);
+      if (handler != null)
+      {
+         if (log.isTraceEnabled())
+            log.trace(handler + " handles " + packet);
+
+         callFilters(packet);
+         handler.handle(packet, sender);
+
+      }
+      else
+      {
+         log.error("Unhandled packet " + packet);
+      }
+   }
+
+   /** Call filters on a package */
+   public void callFilters(Packet packet) throws Exception
+   {
+     if (filters != null)
+     {
+        for (Interceptor filter: filters)
+        {
+           filter.intercept(packet);          
+        }
+     }
+   }
+   
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -13,7 +13,7 @@
 import org.jboss.messaging.core.client.FailureListener;
 import org.jboss.messaging.core.remoting.NIOConnector;
 import org.jboss.messaging.core.remoting.NIOSession;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -33,30 +33,32 @@
 
    private INVMSession session;
 
+   private PacketDispatcher clientDispatcher;
    private PacketDispatcher serverDispatcher;
    
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   // Public --------------------------------------------------------
-
-   public INVMConnector(String host, int port, PacketDispatcher serverDispatcher)
+   public INVMConnector(String host, int port, PacketDispatcher clientDispatcher, PacketDispatcher serverDispatcher)
    {
       assert host != null;
       assert serverDispatcher != null;
       
       this.host = host;
       this.port = port;
+      this.clientDispatcher = clientDispatcher;
       this.serverDispatcher = serverDispatcher;
    }
 
+   // Public --------------------------------------------------------
+
    // NIOConnector implementation -----------------------------------
 
    public NIOSession connect()
          throws IOException
    {
-      this.session = new INVMSession(serverDispatcher);
+      this.session = new INVMSession(clientDispatcher, serverDispatcher);
       return session;
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -12,8 +12,8 @@
 
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
@@ -31,6 +31,7 @@
 
    private String id;
    private long correlationCounter;
+   private PacketDispatcher clientDispatcher;
    private PacketDispatcher serverDispatcher;
    private boolean connected;
    
@@ -39,12 +40,14 @@
 
    // Constructors --------------------------------------------------
 
-   public INVMSession(PacketDispatcher serverDispatcher)
+   public INVMSession(PacketDispatcher clientDispatcher, PacketDispatcher serverDispatcher)
    {
+      assert clientDispatcher != null;
       assert serverDispatcher != null;
       
       this.id = randomUUID().toString();
       this.correlationCounter = 0;
+      this.clientDispatcher = clientDispatcher;
       this.serverDispatcher = serverDispatcher;
       connected = true;
    }
@@ -79,7 +82,7 @@
                public void send(Packet response) throws Exception
                {                  
                   serverDispatcher.callFilters(response);
-                  PacketDispatcher.client.dispatch(response, null);   
+                  clientDispatcher.dispatch(response, null);   
                }
                
                public String getSessionID()
@@ -114,7 +117,7 @@
                      } else 
                      // other later responses are dispatched directly to the client
                      {
-                        PacketDispatcher.client.dispatch(response, null);
+                        clientDispatcher.dispatch(response, null);
                      }
                   }
                   catch (Exception e)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -34,8 +34,8 @@
 import org.jboss.messaging.core.remoting.KeepAliveFactory;
 import org.jboss.messaging.core.remoting.NIOConnector;
 import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.RemotingException;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
@@ -72,14 +72,16 @@
 
    // Public --------------------------------------------------------
 
-   public MinaConnector(RemotingConfiguration configuration)
+   public MinaConnector(RemotingConfiguration configuration, PacketDispatcher dispatcher)
    {
-      this(configuration, new ClientKeepAliveFactory());
+      this(configuration, dispatcher, new ClientKeepAliveFactory());
    }
 
-   public MinaConnector(RemotingConfiguration configuration, KeepAliveFactory keepAliveFactory)
+   public MinaConnector(RemotingConfiguration configuration, PacketDispatcher dispatcher,
+         KeepAliveFactory keepAliveFactory)
    {
       assert configuration != null;
+      assert dispatcher != null;
       assert keepAliveFactory != null;
 
       this.configuration = configuration;
@@ -107,7 +109,7 @@
             configuration.getKeepAliveTimeout(), this);
       addExecutorFilter(filterChain);
 
-      connector.setHandler(new MinaHandler(PacketDispatcher.client, this, false));
+      connector.setHandler(new MinaHandler(dispatcher, this, false));
       connector.getSessionConfig().setKeepAlive(true);
       connector.getSessionConfig().setReuseAddress(true);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -10,9 +10,9 @@
 import org.apache.mina.common.IoSession;
 import org.apache.mina.filter.reqres.Response;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.RemotingException;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.wireformat.AbstractPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -29,10 +29,11 @@
 import org.jboss.beans.metadata.api.annotations.Uninstall;
 import org.jboss.messaging.core.client.FailureListener;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.Interceptor;
 import org.jboss.messaging.core.remoting.RemotingException;
 import org.jboss.messaging.core.remoting.RemotingService;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.server.MessagingException;
 
@@ -82,7 +83,7 @@
 
       this.remotingConfig = remotingConfig;
       this.factory = factory;
-      this.dispatcher = new PacketDispatcher(this.filters);
+      this.dispatcher = new PacketDispatcherImpl(this.filters);
    }
    
    @Install

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/AbstractPacket.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/AbstractPacket.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/AbstractPacket.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -8,7 +8,7 @@
 
 import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
 
-import org.jboss.messaging.core.client.impl.RemotingConnectionImpl;
+import org.jboss.messaging.core.client.impl.RemotingConnection;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -45,7 +45,7 @@
 
    // Constructors --------------------------------------------------
 
-   public AbstractPacket(PacketType type)
+   AbstractPacket(PacketType type)
    {
       assert type != null;
 

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -26,9 +26,9 @@
 import java.util.concurrent.ConcurrentMap;
 
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
 import org.jboss.messaging.core.security.SecurityStore;
 import org.jboss.messaging.core.server.Binding;

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -38,8 +38,8 @@
 
 import org.jboss.messaging.core.filter.impl.FilterImpl;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserResponseMessage;

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -16,6 +16,7 @@
 
 import junit.framework.TestCase;
 
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.NIOConnector;
 import org.jboss.messaging.core.remoting.NIOSession;
 import org.jboss.messaging.core.remoting.PacketHandler;
@@ -40,6 +41,7 @@
    protected ReversePacketHandler serverPacketHandler;
 
    protected PacketDispatcher serverDispatcher;
+   protected PacketDispatcher clientDispatcher;
 
    protected NIOConnector connector;
 
@@ -53,7 +55,7 @@
 
    public void testConnected() throws Exception
    {
-      NIOConnector connector = createNIOConnector();
+      NIOConnector connector = createNIOConnector(new PacketDispatcherImpl());
       NIOSession session = connector.connect();
 
       assertTrue(session.isConnected());
@@ -108,7 +110,7 @@
       TestPacketHandler callbackHandler = new TestPacketHandler();
       callbackHandler.expectMessage(1);
 
-      PacketDispatcher.client.register(callbackHandler);
+      clientDispatcher.register(callbackHandler);
 
       TextPacket packet = new TextPacket("testSendOneWayWithCallbackHandler");
       packet.setTargetID(serverPacketHandler.getID());
@@ -153,7 +155,7 @@
       
       TestPacketHandler callbackHandler = new TestPacketHandler();
       callbackHandler.expectMessage(1);
-      PacketDispatcher.client.register(callbackHandler);
+      clientDispatcher.register(callbackHandler);
 
       TextPacket packet = new TextPacket("testSendOneWayWith2Callbacks");
       packet.setTargetID(serverHandler.getID());
@@ -207,7 +209,7 @@
    public void testClientHandlePacketSentByServer() throws Exception
    {
       TestPacketHandler clientHandler = new TestPacketHandler();
-      PacketDispatcher.client.register(clientHandler);
+      clientDispatcher.register(clientHandler);
 
       serverPacketHandler.expectMessage(1);
       clientHandler.expectMessage(1);
@@ -243,11 +245,14 @@
    {
       serverDispatcher = startServer();
       
-      connector = createNIOConnector();
+      clientDispatcher = new PacketDispatcherImpl();
+
+      connector = createNIOConnector(clientDispatcher);
       session = connector.connect();
       
       serverPacketHandler = new ReversePacketHandler();
       serverDispatcher.register(serverPacketHandler);
+      
    }
 
    @Override
@@ -265,7 +270,7 @@
    
    protected abstract RemotingConfiguration createRemotingConfiguration();
    
-   protected abstract NIOConnector createNIOConnector();
+   protected abstract NIOConnector createNIOConnector(PacketDispatcher dispatcher);
 
    protected abstract PacketDispatcher startServer() throws Exception;
    

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -9,8 +9,9 @@
 import static org.jboss.messaging.core.remoting.TransportType.INVM;
 import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.PORT;
 
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.NIOConnector;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.SessionTestBase;
 import org.jboss.messaging.core.remoting.impl.invm.INVMConnector;
@@ -27,7 +28,8 @@
 
    // Attributes ----------------------------------------------------
 
-   PacketDispatcher dispatcher = new PacketDispatcher();
+   PacketDispatcher serverDispatcher = new PacketDispatcherImpl();
+   
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
@@ -37,9 +39,9 @@
    // ClientTestBase overrides --------------------------------------
    
    @Override
-   protected NIOConnector createNIOConnector()
+   protected NIOConnector createNIOConnector(PacketDispatcher dispatcher)
    {
-      return new INVMConnector("localhost", PORT, dispatcher);
+      return new INVMConnector("localhost", PORT, dispatcher, serverDispatcher);
    }
    
    @Override
@@ -51,13 +53,13 @@
    @Override
    protected PacketDispatcher startServer() throws Exception
    {
-      return dispatcher;
+      return serverDispatcher;
    }
    
    @Override
    protected void stopServer()
    {
-      dispatcher = null;
+      serverDispatcher = null;
    }
 
    // Package protected ---------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -26,6 +26,7 @@
 import org.jboss.messaging.core.remoting.KeepAliveFactory;
 import org.jboss.messaging.core.remoting.NIOSession;
 import org.jboss.messaging.core.remoting.RemotingException;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.mina.ClientKeepAliveFactory;
 import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
@@ -96,7 +97,7 @@
       };
       service.addFailureListener(listener);
 
-      MinaConnector connector = new MinaConnector(service.getRemotingConfiguration(), factory);
+      MinaConnector connector = new MinaConnector(service.getRemotingConfiguration(), new PacketDispatcherImpl(), factory);
       connector.connect();
 
       boolean firedKeepAliveNotification = latch.await(KEEP_ALIVE_INTERVAL
@@ -127,7 +128,7 @@
       };
       service.addFailureListener(listener);
       
-      MinaConnector connector = new MinaConnector(service.getRemotingConfiguration(), factory);
+      MinaConnector connector = new MinaConnector(service.getRemotingConfiguration(), new PacketDispatcherImpl(), factory);
 
       NIOSession session = connector.connect();
       String clientSessionID = session.getID();
@@ -173,7 +174,7 @@
       try
       {
          MinaConnector connector = new MinaConnector(service.getRemotingConfiguration(),
-               factory);
+               new PacketDispatcherImpl(), factory);
 
          NIOSession session = connector.connect();
          String clientSessionID = session.getID();
@@ -232,9 +233,9 @@
       service.addFailureListener(listener);
       
       MinaConnector connectorNotResponding = new MinaConnector(service
-            .getRemotingConfiguration(), notRespondingfactory);
+            .getRemotingConfiguration(), new PacketDispatcherImpl(), notRespondingfactory);
       MinaConnector connectorResponding = new MinaConnector(service
-            .getRemotingConfiguration(), respondingfactory);
+            .getRemotingConfiguration(), new PacketDispatcherImpl(), respondingfactory);
 
       NIOSession sessionNotResponding = connectorNotResponding.connect();
       String clientSessionIDNotResponding = sessionNotResponding.getID();

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -8,7 +8,8 @@
 
 import junit.framework.TestCase;
 
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.mina.MinaHandler;
 import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
@@ -24,6 +25,7 @@
 
    private MinaHandler handler;
    private TestPacketHandler packetHandler;
+   private PacketDispatcher clientDispatcher;
 
    // Constants -----------------------------------------------------
 
@@ -73,18 +75,19 @@
    @Override
    protected void setUp() throws Exception
    {
-      handler = new MinaHandler(PacketDispatcher.client, null, true);
+      clientDispatcher = new PacketDispatcherImpl();
+      handler = new MinaHandler(clientDispatcher, null, true);
 
       packetHandler = new TestPacketHandler();
-      PacketDispatcher.client.register(packetHandler);
+      clientDispatcher.register(packetHandler);
    }
 
    @Override
    protected void tearDown() throws Exception
    {
-      PacketDispatcher.client.unregister(packetHandler.getID());
+      clientDispatcher.unregister(packetHandler.getID());
       packetHandler = null;
-
+      clientDispatcher = null;
       handler = null;
    }
 

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaSessionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaSessionTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaSessionTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -10,8 +10,8 @@
 import static org.jboss.messaging.core.remoting.TransportType.TCP;
 import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.PORT;
 
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.NIOConnector;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.SessionTestBase;
 import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
@@ -59,9 +59,9 @@
    // ClientTestBase overrides --------------------------------------
    
    @Override
-   protected NIOConnector createNIOConnector()
+   protected NIOConnector createNIOConnector(PacketDispatcher dispatcher)
    {
-      return new MinaConnector(createRemotingConfiguration());
+      return new MinaConnector(createRemotingConfiguration(), dispatcher);
    }
    
    @Override

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -19,6 +19,7 @@
 import org.jboss.messaging.core.client.FailureListener;
 import org.jboss.messaging.core.remoting.NIOSession;
 import org.jboss.messaging.core.remoting.RemotingException;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
 import org.jboss.messaging.core.remoting.impl.mina.MinaService;
@@ -87,7 +88,7 @@
       service.start();
 
       MinaConnector connector = new MinaConnector(service
-            .getRemotingConfiguration());
+            .getRemotingConfiguration(), new PacketDispatcherImpl());
       final String[] sessionIDNotResponding = new String[1];
       final CountDownLatch latch = new CountDownLatch(1);
 
@@ -142,7 +143,7 @@
       service.start();
 
       MinaConnector connector = new MinaConnector(service
-            .getRemotingConfiguration());
+            .getRemotingConfiguration(), new PacketDispatcherImpl());
       final String[] sessionIDNotResponding = new String[1];
       final CountDownLatch latch = new CountDownLatch(1);
 

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -19,6 +19,7 @@
 import org.jboss.messaging.core.remoting.NIOSession;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
 import org.jboss.messaging.core.remoting.impl.mina.MinaService;
@@ -57,7 +58,7 @@
       RemotingConfiguration remotingConfig = new RemotingConfiguration(TCP, "localhost", PORT);
       service = new MinaService(remotingConfig);
       service.start();
-      connector = new MinaConnector(remotingConfig);
+      connector = new MinaConnector(remotingConfig, new PacketDispatcherImpl());
       
    }
    

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/ssl/integration/CoreClientOverSSLTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/ssl/integration/CoreClientOverSSLTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/ssl/integration/CoreClientOverSSLTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -75,7 +75,7 @@
 
    public void testSSL() throws Exception
    {
-      Process p = SerializedClientSupport.spawnVM(CoreClientOverSSL.class
+      final Process p = SerializedClientSupport.spawnVM(CoreClientOverSSL.class
             .getName(), Boolean.TRUE.toString(), "messaging.keystore",
             "secureexample");
 
@@ -84,9 +84,7 @@
       assertEquals(MESSAGE_TEXT_FROM_CLIENT, new String(m.getPayload()));
 
       log.info("waiting for the client VM to exit ...");
-      p.waitFor();
-
-      assertEquals(0, p.exitValue());
+      SerializedClientSupport.assertProcessExits(true, 0, p);
    }
 
    public void testSSLWithIncorrectKeyStorePassword() throws Exception
@@ -99,10 +97,7 @@
       assertNull(m);
 
       log.info("waiting for the client VM to exit ...");
-      p.waitFor();
-
-      // client VM must have exited on an error
-      assertNotSame(0, p.exitValue());
+      SerializedClientSupport.assertProcessExits(false, 0, p);
    }
 
    public void testPlainConnectionToSSLEndpoint() throws Exception
@@ -114,10 +109,7 @@
       assertNull(m);
 
       log.info("waiting for the client VM to exit ...");
-      p.waitFor();
-
-      // client VM must have exited on an error
-      assertNotSame(0, p.exitValue());
+      SerializedClientSupport.assertProcessExits(false, 0, p);
    }
 
    // Package protected ---------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -13,8 +13,9 @@
 
 import org.jboss.messaging.core.remoting.ConnectorRegistry;
 import org.jboss.messaging.core.remoting.NIOConnector;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.ConnectorRegistryImpl;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.RemotingConfiguration;
 
 /**
@@ -42,7 +43,7 @@
    protected void setUp() throws Exception
    {
       registry = new ConnectorRegistryImpl();
-      dispatcher = new PacketDispatcher();
+      dispatcher = new PacketDispatcherImpl();
       assertEquals(0, registry.getRegisteredRemotingConfigurations().length);
    }
    
@@ -71,8 +72,8 @@
    {
       RemotingConfiguration remotingConfig_1 = new RemotingConfiguration(TCP, "localhost", PORT);
       RemotingConfiguration remotingConfig_2 = new RemotingConfiguration(TCP, "localhost", PORT + 1);     
-      PacketDispatcher dispatcher_1 = new PacketDispatcher();      
-      PacketDispatcher dispatcher_2 = new PacketDispatcher();
+      PacketDispatcher dispatcher_1 = new PacketDispatcherImpl();      
+      PacketDispatcher dispatcher_2 = new PacketDispatcherImpl();
       
       assertTrue(registry.register(remotingConfig_1, dispatcher_1));
       assertTrue(registry.register(remotingConfig_2, dispatcher_2));
@@ -88,7 +89,7 @@
       // remotingConfig is registered -> client and server are in the same vm
       assertTrue(registry.register(remotingConfig, dispatcher));
       
-      NIOConnector connector = registry.getConnector(remotingConfig);
+      NIOConnector connector = registry.getConnector(remotingConfig, dispatcher);
       
       assertTrue(connector.getServerURI().startsWith(INVM.toString()));
       
@@ -104,7 +105,7 @@
       
       // remotingConfig is not registered -> client and server are not in the same vm
       
-      NIOConnector connector = registry.getConnector(remotingConfig);
+      NIOConnector connector = registry.getConnector(remotingConfig, dispatcher);
       
       assertNotNull(connector);
       assertEquals(remotingConfig.getURI(), connector.getServerURI());
@@ -117,10 +118,10 @@
       RemotingConfiguration remotingConfig = new RemotingConfiguration(TCP, "localhost", PORT);
       assertEquals(0, registry.getConnectorCount(remotingConfig));
 
-      NIOConnector connector1 = registry.getConnector(remotingConfig);
+      NIOConnector connector1 = registry.getConnector(remotingConfig, dispatcher);
       assertEquals(1, registry.getConnectorCount(remotingConfig));
 
-      NIOConnector connector2 = registry.getConnector(remotingConfig);
+      NIOConnector connector2 = registry.getConnector(remotingConfig, dispatcher);
       assertEquals(2, registry.getConnectorCount(remotingConfig));
 
       assertSame(connector1, connector2);
@@ -128,7 +129,7 @@
       assertNull(registry.removeConnector(remotingConfig));
       assertEquals(1, registry.getConnectorCount(remotingConfig));
 
-      NIOConnector connector3 = registry.getConnector(remotingConfig);
+      NIOConnector connector3 = registry.getConnector(remotingConfig, dispatcher);
       assertEquals(2, registry.getConnectorCount(remotingConfig));
 
       assertSame(connector1, connector3);
@@ -148,10 +149,10 @@
       assertEquals(0, registry.getConnectorCount(remotingConfig1));
       assertEquals(0, registry.getConnectorCount(remotingConfig2));
 
-      NIOConnector connector1 = registry.getConnector(remotingConfig1);
+      NIOConnector connector1 = registry.getConnector(remotingConfig1, dispatcher);
       assertEquals(1, registry.getConnectorCount(remotingConfig1));
 
-      NIOConnector connector2 = registry.getConnector(remotingConfig2);
+      NIOConnector connector2 = registry.getConnector(remotingConfig2, dispatcher);
       assertEquals(1, registry.getConnectorCount(remotingConfig2));
       
       assertNotSame(connector1, connector2);
@@ -172,10 +173,10 @@
       assertNotSame(remotingConfig1, remotingConfig2);
       assertEquals(remotingConfig1, remotingConfig2);
 
-      NIOConnector connector1 = registry.getConnector(remotingConfig1);
+      NIOConnector connector1 = registry.getConnector(remotingConfig1, dispatcher);
       assertEquals(1, registry.getConnectorCount(remotingConfig1));
 
-      NIOConnector connector2 = registry.getConnector(remotingConfig2);
+      NIOConnector connector2 = registry.getConnector(remotingConfig2, dispatcher);
       assertEquals(2, registry.getConnectorCount(remotingConfig2));
 
       assertSame(connector1, connector2);

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -16,7 +16,7 @@
 
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcher;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 
 /**
@@ -31,7 +31,7 @@
 
    // Attributes ----------------------------------------------------
 
-   PacketDispatcher dispatcher;
+   PacketDispatcherImpl dispatcher;
 
    // Static --------------------------------------------------------
 
@@ -44,7 +44,7 @@
    @Override
    protected void setUp() throws Exception
    {
-      dispatcher = new PacketDispatcher();
+      dispatcher = new PacketDispatcherImpl();
    }
 
    @Override

Modified: trunk/tests/src/org/jboss/test/messaging/jms/SerializedClientSupport.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/SerializedClientSupport.java	2008-02-27 15:43:29 UTC (rev 3821)
+++ trunk/tests/src/org/jboss/test/messaging/jms/SerializedClientSupport.java	2008-02-27 16:06:29 UTC (rev 3822)
@@ -6,6 +6,10 @@
  */
 package org.jboss.test.messaging.jms;
 
+import static java.util.concurrent.TimeUnit.SECONDS;
+import static junit.framework.Assert.assertNotSame;
+import static junit.framework.Assert.assertSame;
+
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -13,6 +17,12 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.ObjectOutputStream;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeoutException;
 
 import javax.jms.ConnectionFactory;
 import javax.jms.Queue;
@@ -102,18 +112,43 @@
       return file;
    }
 
-   // Constructors --------------------------------------------------
+   /**
+    * Assert that a process exits with the expected value (or not depending if
+    * the <code>sameValue</code> is expected or not). The method waits 5
+    * seconds for the process to exit, then an Exception is thrown. In any case,
+    * the process is destroyed before the method returns.
+    */
+   public static void assertProcessExits(boolean sameValue, int value,
+         final Process p) throws InterruptedException, ExecutionException,
+         TimeoutException
+   {
+      ScheduledExecutorService executor = Executors
+            .newSingleThreadScheduledExecutor();
+      Future<Integer> future = executor.submit(new Callable<Integer>()
+      {
 
-   // Public --------------------------------------------------------
+         public Integer call() throws Exception
+         {
+            p.waitFor();
+            return p.exitValue();
+         }
+      });
+      try
+      {
+         int exitValue = future.get(5, SECONDS);
+         if (sameValue)
+         {
+            assertSame(value, exitValue);
+         } else
+         {
+            assertNotSame(value, exitValue);
+         }
+      } finally
+      {
+         p.destroy();
+      }
+   }
 
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-
    /**
     * Redirect the input stream to a logger (as debug logs)
     */
@@ -145,4 +180,17 @@
          }
       }
    }
+   
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
 }




More information about the jboss-cvs-commits mailing list