[jboss-cvs] JBoss Messaging SVN: r4046 - in trunk: src/main/org/jboss/messaging/core/message and 19 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Apr 14 09:50:44 EDT 2008


Author: timfox
Date: 2008-04-14 09:50:43 -0400 (Mon, 14 Apr 2008)
New Revision: 4046

Added:
   trunk/src/main/org/jboss/messaging/core/remoting/Packet.java
Removed:
   trunk/src/main/org/jboss/messaging/core/remoting/impl/Assert.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java
Modified:
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionInternal.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerInternal.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.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/message/Message.java
   trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/Interceptor.java
   trunk/src/main/org/jboss/messaging/core/remoting/KeepAliveFactory.java
   trunk/src/main/org/jboss/messaging/core/remoting/NIOSession.java
   trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
   trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java
   trunk/src/main/org/jboss/messaging/core/remoting/PacketHandlerRegistrationListener.java
   trunk/src/main/org/jboss/messaging/core/remoting/PacketSender.java
   trunk/src/main/org/jboss/messaging/core/remoting/RemotingException.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.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/ClientKeepAliveFactory.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaInspector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaKeepAliveFactory.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaSession.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ServerKeepAliveFactory.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/server/ConnectionManager.java
   trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java
   trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java
   trunk/src/main/org/jboss/messaging/core/server/ServerConsumer.java
   trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java
   trunk/src/main/org/jboss/messaging/core/server/ServerSession.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ConnectionManagerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/DeliveryImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerPacketHandlerSupport.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java
   trunk/src/main/org/jboss/messaging/jms/server/ConnectionInfo.java
   trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
   trunk/src/main/org/jboss/messaging/jms/server/SessionInfo.java
   trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
   trunk/tests/src/org/jboss/messaging/core/message/impl/test/unit/MessageTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptor.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptorB.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/FilterChainSupportTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerOrderingTest.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/MinaInspectorTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaKeepAliveFactoryTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaServiceTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ReversePacketHandler.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/impl/wireformat/test/unit/PacketTypeTest.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/messaging/core/remoting/test/unit/TestPacketHandler.java
Log:
Some refactoring to transport - make session id, target id, correlation id etc into longs


Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -50,7 +50,7 @@
 
    // Attributes -----------------------------------------------------------------------------------
 
-   private final String id;
+   private final long serverTargetID;
    
 	private final ClientSessionInternal session;
 	
@@ -62,12 +62,12 @@
 
    // Constructors ---------------------------------------------------------------------------------
 
-   public ClientBrowserImpl(final String id, final ClientSessionInternal session,
+   public ClientBrowserImpl(final long serverTargetID, final ClientSessionInternal session,
    		                   final RemotingConnection remotingConnection)
    {
       this.remotingConnection = remotingConnection;
       
-      this.id = id;
+      this.serverTargetID = serverTargetID;
       
       this.session = session;
    }
@@ -83,7 +83,7 @@
       
       try
       {
-         remotingConnection.send(id, session.getID(), new PacketImpl(CLOSE));
+         remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(CLOSE));
       }
       finally
       {
@@ -102,7 +102,7 @@
    {
       checkClosed();
       
-      remotingConnection.send(id, session.getID(), new PacketImpl(SESS_BROWSER_RESET));
+      remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_RESET));
    }
 
    public boolean hasNextMessage() throws MessagingException
@@ -110,7 +110,7 @@
       checkClosed();
       
       SessionBrowserHasNextMessageResponseMessage response =
-         (SessionBrowserHasNextMessageResponseMessage)remotingConnection.send(id, session.getID(), new PacketImpl(SESS_BROWSER_HASNEXTMESSAGE));
+         (SessionBrowserHasNextMessageResponseMessage)remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_HASNEXTMESSAGE));
       
       return response.hasNext();
    }
@@ -120,7 +120,7 @@
       checkClosed();
       
       SessionBrowserNextMessageResponseMessage response =
-         (SessionBrowserNextMessageResponseMessage)remotingConnection.send(id, session.getID(), new PacketImpl(SESS_BROWSER_NEXTMESSAGE));
+         (SessionBrowserNextMessageResponseMessage)remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_NEXTMESSAGE));
       
       return response.getMessage();
    }
@@ -130,7 +130,7 @@
       checkClosed();
       
       SessionBrowserNextMessageBlockResponseMessage response =
-         (SessionBrowserNextMessageBlockResponseMessage)remotingConnection.send(id, session.getID(), new SessionBrowserNextMessageBlockMessage(maxMessages));
+         (SessionBrowserNextMessageBlockResponseMessage)remotingConnection.send(serverTargetID, session.getServerTargetID(), new SessionBrowserNextMessageBlockMessage(maxMessages));
       return response.getMessages();
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -53,7 +53,6 @@
 public class ClientConnectionFactoryImpl implements ClientConnectionFactory, Serializable
 {
    // Constants ------------------------------------------------------------------------------------
-   public  static final String id = "CONNECTION_FACTORY_ID";
 
    private static final long serialVersionUID = 2512460695662741413L;
    
@@ -97,7 +96,7 @@
       this.defaultConsumerMaxRate = defaultConsumerMaxRate;
       this.defaultProducerWindowSize = defaultProducerWindowSize;
       this.defaultProducerMaxRate = defaultProducerMaxRate;
-      this.dispatcher = new PacketDispatcherImpl();
+      this.dispatcher = new PacketDispatcherImpl(null);
    }
    
    public ClientConnectionFactoryImpl(final int serverID, final Configuration config,
@@ -111,7 +110,7 @@
       this.defaultConsumerMaxRate = -1;
       this.defaultProducerWindowSize = 1000;
       this.defaultProducerMaxRate = -1;
-      this.dispatcher = new PacketDispatcherImpl();
+      this.dispatcher = new PacketDispatcherImpl(null);
    }
 
    public ClientConnection createConnection() throws MessagingException
@@ -130,16 +129,16 @@
        
          remotingConnection.start();
          
-         String sessionID = remotingConnection.getSessionID();
+         long sessionID = remotingConnection.getSessionID();
          
          CreateConnectionRequest request =
             new CreateConnectionRequest(v, sessionID, JMSClientVMIdentifier.instance, username, password);
          
          CreateConnectionResponse response =
-            (CreateConnectionResponse)remotingConnection.send(id, request);
+            (CreateConnectionResponse)remotingConnection.send(0, request);
          
          ClientConnectionImpl connection =
-            new ClientConnectionImpl(response.getConnectionID(), serverID, strictTck, remotingConnection,
+            new ClientConnectionImpl(response.getConnectionTargetID(), serverID, strictTck, remotingConnection,
             		defaultConsumerWindowSize, defaultConsumerMaxRate,
             		defaultProducerWindowSize, defaultProducerMaxRate);
 

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -26,9 +26,7 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_STOP;
 
 import java.util.HashSet;
-import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
 
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.FailureListener;
@@ -37,6 +35,7 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+import org.jboss.messaging.util.ConcurrentHashSet;
 
 /**
  * The client-side Connection connectionFactory class.
@@ -60,7 +59,7 @@
 
    // Attributes -----------------------------------------------------------------------------------
 
-   private final String id;
+   private final long serverTargetID;
    
    private final int serverID;
 
@@ -68,7 +67,7 @@
 
    private final boolean strictTck;
    
-   private final Map<String, ClientSession> children = new ConcurrentHashMap<String, ClientSession>();
+   private final Set<ClientSession> sessions = new ConcurrentHashSet<ClientSession>();
 
    private volatile boolean closed;
    
@@ -85,14 +84,14 @@
 
    // Constructors ---------------------------------------------------------------------------------
 
-   public ClientConnectionImpl(final String id, final int serverID, final boolean strictTck,
+   public ClientConnectionImpl(final long serverTargetID, final int serverID, final boolean strictTck,
                                final RemotingConnection connection,
                                final int defaultConsumerWindowSize,     
                                final int defaultConsumerMaxRate,
                                final int defaultProducerWindowSize,
                                final int defaultProducerMaxRate)
    {
-      this.id = id;
+      this.serverTargetID = serverTargetID;
       
       this.serverID = serverID;
       
@@ -119,14 +118,14 @@
 
       ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(xa, autoCommitSends, autoCommitAcks);
 
-      ConnectionCreateSessionResponseMessage response = (ConnectionCreateSessionResponseMessage)remotingConnection.send(id, request);   
+      ConnectionCreateSessionResponseMessage response = (ConnectionCreateSessionResponseMessage)remotingConnection.send(serverTargetID, request);   
 
       ClientSession session =
       	new ClientSessionImpl(this, response.getSessionID(), ackBatchSize, cacheProducers,
       			autoCommitSends, autoCommitAcks, blockOnAcknowledge,
       			defaultConsumerWindowSize, defaultConsumerMaxRate, defaultProducerWindowSize, defaultProducerMaxRate);
 
-      children.put(response.getSessionID(), session);
+      sessions.add(session);
 
       return session;
    }
@@ -135,14 +134,14 @@
    {
       checkClosed();
        
-      remotingConnection.send(id, id, new PacketImpl(CONN_START), true);
+      remotingConnection.send(serverTargetID, serverTargetID, new PacketImpl(CONN_START), true);
    }
    
    public void stop() throws MessagingException
    {
       checkClosed();
       
-      remotingConnection.send(id, new PacketImpl(CONN_STOP));
+      remotingConnection.send(serverTargetID, new PacketImpl(CONN_STOP));
    }
 
    public void setFailureListener(final FailureListener listener) throws MessagingException
@@ -163,7 +162,7 @@
       {
          closeChildren();
          
-         remotingConnection.send(id, new PacketImpl(CLOSE));
+         remotingConnection.send(serverTargetID, new PacketImpl(CLOSE));
       }
       finally
       {
@@ -191,9 +190,9 @@
       return remotingConnection;
    }
    
-   public void removeChild(String key)
+   public void removeSession(final ClientSession session)
    {
-      children.remove(key);
+      sessions.remove(session);
    }
 
    // Public ---------------------------------------------------------------------------------------
@@ -214,9 +213,9 @@
    
    private void closeChildren() throws MessagingException
    {
-      //We copy the set of children to prevent ConcurrentModificationException which would occur
+      //We copy the set of sessions to prevent ConcurrentModificationException which would occur
       //when the child trues to remove itself from its parent
-      Set<ClientSession> childrenClone = new HashSet<ClientSession>(children.values());
+      Set<ClientSession> childrenClone = new HashSet<ClientSession>(sessions);
       
       for (ClientSession session: childrenClone)
       {

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionInternal.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionInternal.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -7,6 +7,7 @@
 package org.jboss.messaging.core.client.impl;
 
 import org.jboss.messaging.core.client.ClientConnection;
+import org.jboss.messaging.core.client.ClientSession;
 
 /**
  * 
@@ -21,5 +22,5 @@
    
    RemotingConnection getRemotingConnection();
 
-   void removeChild(String id);
+   void removeSession(ClientSession session);
 }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -63,8 +63,10 @@
 
    private final ClientSessionInternal session;
       
-   private final String id;
+   private final long serverTargetID;
    
+   private final long clientTargetID;
+   
    private final ExecutorService sessionExecutor;
    
    private final RemotingConnection remotingConnection;
@@ -90,13 +92,16 @@
    // Constructors
    // ---------------------------------------------------------------------------------
 
-   public ClientConsumerImpl(final ClientSessionInternal session, final String id,
+   public ClientConsumerImpl(final ClientSessionInternal session, final long serverTargetID,
+   		                    final long clientTargetID,
                              final ExecutorService sessionExecutor,
                              final RemotingConnection remotingConnection,
                              final boolean direct, final int tokenBatchSize)
    {
-      this.id = id;
+      this.serverTargetID = serverTargetID;
       
+      this.clientTargetID = clientTargetID;
+      
       this.session = session;
       
       this.sessionExecutor = sessionExecutor;
@@ -247,9 +252,9 @@
          
          receiverThread = null;
 
-         remotingConnection.send(id, session.getID(), new PacketImpl(CLOSE));
+         remotingConnection.send(serverTargetID, session.getServerTargetID(), new PacketImpl(CLOSE));
 
-         remotingConnection.getPacketDispatcher().unregister(id);
+         remotingConnection.getPacketDispatcher().unregister(clientTargetID);
       }
       finally
       {
@@ -265,9 +270,9 @@
    // ClientConsumerInternal implementation
    // --------------------------------------------------------------
 
-   public String getID()
+   public long getClientTargetID()
    {
-      return id;
+      return clientTargetID;
    }
 
    public void handleMessage(final ConsumerDeliverMessage message) throws Exception
@@ -296,7 +301,7 @@
          }
          else
          {
-         	throw new IllegalStateException("Invalid delivery id " + delID);
+         	throw new IllegalStateException("Invalid delivery serverTargetID " + delID);
          }
       }
       
@@ -371,7 +376,7 @@
          {
             tokensToSend = 0;
             
-            remotingConnection.send(id, session.getID(), new ConsumerFlowTokenMessage(tokenBatchSize), true);                  
+            remotingConnection.send(serverTargetID, session.getServerTargetID(), new ConsumerFlowTokenMessage(tokenBatchSize), true);                  
          }
       }
    }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerInternal.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerInternal.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -19,7 +19,7 @@
  */
 public interface ClientConsumerInternal extends ClientConsumer
 {   
-   String getID();
+   long getClientTargetID();
    
    void handleMessage(ConsumerDeliverMessage message) throws Exception;
    

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -3,10 +3,10 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_DELIVER;
 
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerDeliverMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 
 /**
@@ -21,16 +21,16 @@
 
    private final ClientConsumerInternal clientConsumer;
 
-   private final String consumerID;
+   private final long consumerID;
 
-   public ClientConsumerPacketHandler(final ClientConsumerInternal clientConsumer, final String consumerID)
+   public ClientConsumerPacketHandler(final ClientConsumerInternal clientConsumer, final long consumerID)
    {
       this.clientConsumer = clientConsumer;
       
       this.consumerID = consumerID;
    }
 
-   public String getID()
+   public long getID()
    {
       return consumerID;
    }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -50,7 +50,7 @@
    
    private final String address;
    
-   private final String id;
+   private final long serverTargetID;
    
    private final ClientSessionInternal session;
    
@@ -70,13 +70,14 @@
 
    // Constructors ---------------------------------------------------------------------------------
       
-   public ClientProducerImpl(final ClientSessionInternal session, final String id, final String address,
+   public ClientProducerImpl(final ClientSessionInternal session, final long serverTargetID,
+   		                    final String address,
    		                    final RemotingConnection remotingConnection, final int windowSize,
    		                    final int maxRate)
    {   	
       this.session = session;
       
-      this.id = id;
+      this.serverTargetID = serverTargetID;
       
       this.address = address;
       
@@ -139,7 +140,7 @@
    		windowSize--;
    	}
    	
-   	remotingConnection.send(id, session.getID(), message, !msg.isDurable());
+   	remotingConnection.send(serverTargetID, session.getServerTargetID(), message, !msg.isDurable());
    	 	   	
    	if (rateLimiter != null)
    	{
@@ -168,7 +169,7 @@
       
       session.removeProducer(this);
       
-      remotingConnection.getPacketDispatcher().unregister(id);
+      remotingConnection.getPacketDispatcher().unregister(serverTargetID);
       
       closed = true;
    }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -3,9 +3,9 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_RECEIVETOKENS;
 
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
 
@@ -22,16 +22,16 @@
 
    private final ClientProducerInternal clientProducer;
 
-   private final String producerID;
+   private final long producerID;
 
-   public ClientProducerPacketHandler(final ClientProducerInternal clientProducer, final String producerID)
+   public ClientProducerPacketHandler(final ClientProducerInternal clientProducer, final long producerID)
    {
       this.clientProducer = clientProducer;
       
       this.producerID = producerID;
    }
 
-   public String getID()
+   public long getID()
    {
       return producerID;
    }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -35,6 +35,7 @@
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicLong;
 
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
@@ -45,8 +46,8 @@
 import org.jboss.messaging.core.client.ClientProducer;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
@@ -101,7 +102,7 @@
 
    private final ClientConnectionInternal connection;
       
-   private final String id;
+   private final long serverTargetID;
    
    private final int lazyAckBatchSize;
    
@@ -137,7 +138,7 @@
    
    private final Set<ClientProducer> producers = new HashSet<ClientProducer>();
    
-   private final Map<String, ClientConsumerInternal> consumers = new HashMap<String, ClientConsumerInternal>();
+   private final Map<Long, ClientConsumerInternal> consumers = new HashMap<Long, ClientConsumerInternal>();
    
    private final Map<String, ClientProducerInternal> producerCache;
    
@@ -152,9 +153,11 @@
    
    private final boolean blockOnAcknowledge;
    
+   private static AtomicLong clientTargetIDGenerator = new AtomicLong(0);
+   
    // Constructors ---------------------------------------------------------------------------------
    
-   public ClientSessionImpl(final ClientConnectionInternal connection, final String id,
+   public ClientSessionImpl(final ClientConnectionInternal connection, final long serverTargetID,
                             final int lazyAckBatchSize, final boolean cacheProducers,                            
                             final boolean autoCommitSends, final boolean autoCommitAcks,
                             final boolean blockOnAcknowledge,
@@ -168,7 +171,7 @@
    		throw new IllegalArgumentException("Invalid lazyAckbatchSize, valid values are > 0 or -1 (infinite)");
    	}
    	
-      this.id = id;
+      this.serverTargetID = serverTargetID;
       
       this.connection = connection;
       
@@ -214,14 +217,14 @@
 
       SessionCreateQueueMessage request = new SessionCreateQueueMessage(address, queueName, filterString, durable, temporary);
 
-      remotingConnection.send(id, request);
+      remotingConnection.send(serverTargetID, request);
    }
 
    public void deleteQueue(final String queueName) throws MessagingException
    {
       checkClosed();
 
-      remotingConnection.send(id, new SessionDeleteQueueMessage(queueName));
+      remotingConnection.send(serverTargetID, new SessionDeleteQueueMessage(queueName));
    }
    
    public SessionQueueQueryResponseMessage queueQuery(final String queueName) throws MessagingException
@@ -230,7 +233,7 @@
       
       SessionQueueQueryMessage request = new SessionQueueQueryMessage(queueName);
       
-      SessionQueueQueryResponseMessage response = (SessionQueueQueryResponseMessage)remotingConnection.send(id, request);
+      SessionQueueQueryResponseMessage response = (SessionQueueQueryResponseMessage)remotingConnection.send(serverTargetID, request);
       
       return response;
    }
@@ -241,7 +244,7 @@
       
       SessionBindingQueryMessage request = new SessionBindingQueryMessage(address);
       
-      SessionBindingQueryResponseMessage response = (SessionBindingQueryResponseMessage)remotingConnection.send(id, request);
+      SessionBindingQueryResponseMessage response = (SessionBindingQueryResponseMessage)remotingConnection.send(serverTargetID, request);
       
       return response;
    }
@@ -252,7 +255,7 @@
       
       SessionAddDestinationMessage request = new SessionAddDestinationMessage(address, temporary);
       
-      remotingConnection.send(id, request);
+      remotingConnection.send(serverTargetID, request);
    }
    
    public void removeDestination(final String address, final boolean temporary) throws MessagingException
@@ -261,7 +264,7 @@
       
       SessionRemoveDestinationMessage request = new SessionRemoveDestinationMessage(address, temporary);
       
-      remotingConnection.send(id, request);  
+      remotingConnection.send(serverTargetID, request);  
    }
    
    public ClientConsumer createConsumer(final String queueName, final String filterString, final boolean noLocal,
@@ -273,19 +276,21 @@
          new SessionCreateConsumerMessage(queueName, filterString, noLocal, autoDeleteQueue,
          		                           defaultConsumerWindowSize, defaultConsumerMaxRate);
       
-      SessionCreateConsumerResponseMessage response = (SessionCreateConsumerResponseMessage)remotingConnection.send(id, request);
+      SessionCreateConsumerResponseMessage response = (SessionCreateConsumerResponseMessage)remotingConnection.send(serverTargetID, request);
       
+      long clientTargetID = clientTargetIDGenerator.getAndIncrement();
+      
       ClientConsumerInternal consumer =
-         new ClientConsumerImpl(this, response.getConsumerID(), executor, remotingConnection, direct, 1);
+         new ClientConsumerImpl(this, response.getConsumerTargetID(), clientTargetID, executor, remotingConnection, direct, 1);
 
-      consumers.put(response.getConsumerID(), consumer);
+      consumers.put(response.getConsumerTargetID(), consumer);
 
-      remotingConnection.getPacketDispatcher().register(new ClientConsumerPacketHandler(consumer, response.getConsumerID()));
+      remotingConnection.getPacketDispatcher().register(new ClientConsumerPacketHandler(consumer, response.getConsumerTargetID()));
       
       //Now we send window size tokens to start the consumption
       //We even send it if windowSize == -1, since we need to start the consumer
       
-      remotingConnection.send(response.getConsumerID(), id, new ConsumerFlowTokenMessage(response.getWindowSize()), true);
+      remotingConnection.send(response.getConsumerTargetID(), serverTargetID, new ConsumerFlowTokenMessage(response.getWindowSize()), true);
 
       return consumer;
    }
@@ -298,9 +303,9 @@
 
       SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(queueName, coreSelector);
 
-      SessionCreateBrowserResponseMessage response = (SessionCreateBrowserResponseMessage)remotingConnection.send(id, request);
+      SessionCreateBrowserResponseMessage response = (SessionCreateBrowserResponseMessage)remotingConnection.send(serverTargetID, request);
 
-      ClientBrowser browser = new ClientBrowserImpl(response.getBrowserID(), this, remotingConnection);  
+      ClientBrowser browser = new ClientBrowserImpl(response.getBrowserTargetID(), this, remotingConnection);  
 
       browsers.add(browser);
 
@@ -328,15 +333,15 @@
       	SessionCreateProducerMessage request = new SessionCreateProducerMessage(address, windowSize, maxRate);
       	
       	SessionCreateProducerResponseMessage response =
-      		(SessionCreateProducerResponseMessage)remotingConnection.send(id, request);
+      		(SessionCreateProducerResponseMessage)remotingConnection.send(serverTargetID, request);
       	
       	//maxRate and windowSize can be overridden by the server
       	
-      	producer = new ClientProducerImpl(this, response.getProducerID(), address,
+      	producer = new ClientProducerImpl(this, response.getProducerTargetID(), address,
       			                            remotingConnection, response.getWindowSize(),
       			                            response.getMaxRate());  
       	
-      	remotingConnection.getPacketDispatcher().register(new ClientProducerPacketHandler(producer, response.getProducerID()));
+      	remotingConnection.getPacketDispatcher().register(new ClientProducerPacketHandler(producer, response.getProducerTargetID()));
       }
 
       producers.add(producer);
@@ -365,7 +370,7 @@
         
       acknowledgeInternal(false);
       
-      remotingConnection.send(id, new PacketImpl(SESS_COMMIT));
+      remotingConnection.send(serverTargetID, new PacketImpl(SESS_COMMIT));
       
       lastCommittedID = lastID;
    }
@@ -375,7 +380,7 @@
       checkClosed();
                 
       //We tell each consumer to clear it's buffers and ignore any deliveries with
-      //delivery id > last delivery id, until it gets delivery id = lastID again
+      //delivery serverTargetID > last delivery serverTargetID, until it gets delivery serverTargetID = lastID again
       
       if (autoCommitAcks)
       {
@@ -393,7 +398,7 @@
 
       toAckCount = 0;
 
-      remotingConnection.send(id, new PacketImpl(SESS_ROLLBACK));   
+      remotingConnection.send(serverTargetID, new PacketImpl(SESS_ROLLBACK));   
    }
    
    public void acknowledge() throws MessagingException
@@ -411,7 +416,7 @@
       
       if (deliveryExpired)
       {
-         remotingConnection.send(id, id, new SessionCancelMessage(lastID, true), true);
+         remotingConnection.send(serverTargetID, serverTargetID, new SessionCancelMessage(lastID, true), true);
          
          toAckCount = 0;
       }
@@ -454,13 +459,13 @@
          
          acknowledgeInternal(false);      
          
-         remotingConnection.send(id, new PacketImpl(CLOSE));
-   
-         executor.shutdown();
+         remotingConnection.send(serverTargetID, new PacketImpl(CLOSE));            
       }
       finally
       {
-         connection.removeChild(id);
+      	executor.shutdown();
+      	
+         connection.removeSession(this);
          
          closed = true;
       }
@@ -488,9 +493,9 @@
    
    // ClientSessionInternal implementation ------------------------------------------------------------
    
-   public String getID()
+   public long getServerTargetID()
    {
-      return id;
+      return serverTargetID;
    }
    
    public ClientConnectionInternal getConnection()
@@ -507,7 +512,7 @@
    
    public void removeConsumer(final ClientConsumerInternal consumer) throws MessagingException
    {
-      consumers.remove(consumer.getID());
+      consumers.remove(consumer.getClientTargetID());
             
       //1. flush any unacked message to the server
       
@@ -515,7 +520,7 @@
 
       //2. cancel all deliveries on server but not in tx
             
-      remotingConnection.send(id, new SessionCancelMessage(-1, false));
+      remotingConnection.send(serverTargetID, new SessionCancelMessage(-1, false));
    }
    
    public void removeProducer(final ClientProducerInternal producer)
@@ -543,7 +548,7 @@
       { 
          SessionXACommitMessage packet = new SessionXACommitMessage(xid, onePhase);
                   
-         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
          
          if (response.isError())
          {
@@ -584,7 +589,7 @@
          //Need to flush any acks to server first
          acknowledgeInternal(false);
          
-         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
          
          if (response.isError())
          {
@@ -606,7 +611,7 @@
          //Need to flush any acks to server first
          acknowledgeInternal(false);
                   
-         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, new SessionXAForgetMessage(xid));
+         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, new SessionXAForgetMessage(xid));
          
          if (response.isError())
          {
@@ -625,7 +630,7 @@
       try
       {                              
          SessionXAGetTimeoutResponseMessage response =
-            (SessionXAGetTimeoutResponseMessage)remotingConnection.send(id, new PacketImpl(SESS_XA_GET_TIMEOUT));
+            (SessionXAGetTimeoutResponseMessage)remotingConnection.send(serverTargetID, new PacketImpl(SESS_XA_GET_TIMEOUT));
          
          return response.getTimeoutSeconds();
       }
@@ -659,7 +664,7 @@
       {
          SessionXAPrepareMessage packet = new SessionXAPrepareMessage(xid);
          
-         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
          
          if (response.isError())
          {
@@ -682,7 +687,7 @@
    {
       try
       {
-         SessionXAGetInDoubtXidsResponseMessage response = (SessionXAGetInDoubtXidsResponseMessage)remotingConnection.send(id, new PacketImpl(SESS_XA_INDOUBT_XIDS));
+         SessionXAGetInDoubtXidsResponseMessage response = (SessionXAGetInDoubtXidsResponseMessage)remotingConnection.send(serverTargetID, new PacketImpl(SESS_XA_INDOUBT_XIDS));
          
          List<Xid> xids = response.getXids();
          
@@ -703,7 +708,7 @@
       {
          SessionXARollbackMessage packet = new SessionXARollbackMessage(xid);
          
-         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
          
          if (response.isError())
          {
@@ -723,7 +728,7 @@
       try
       {                              
          SessionXASetTimeoutResponseMessage response =
-            (SessionXASetTimeoutResponseMessage)remotingConnection.send(id, new SessionXASetTimeoutMessage(seconds));
+            (SessionXASetTimeoutResponseMessage)remotingConnection.send(serverTargetID, new SessionXASetTimeoutMessage(seconds));
          
          return response.isOK();
       }
@@ -763,7 +768,7 @@
             throw new XAException(XAException.XAER_INVAL);
          }
                      
-         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(id, packet);
+         SessionXAResponseMessage response = (SessionXAResponseMessage)remotingConnection.send(serverTargetID, packet);
          
          if (response.isError())
          {
@@ -801,7 +806,7 @@
       
       SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(lastID, !broken);
             
-      remotingConnection.send(id, id, message, !block);
+      remotingConnection.send(serverTargetID, serverTargetID, message, !block);
       
       acked = true;
    }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionInternal.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -19,7 +19,7 @@
  */
 public interface ClientSessionInternal extends ClientSession
 {
-   String getID();
+   long getServerTargetID();
    
    ClientConnectionInternal getConnection();
       

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnection.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -2,8 +2,8 @@
 
 import org.jboss.messaging.core.client.FailureListener;
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 /**
  * 
@@ -18,17 +18,17 @@
 
    public void stop();
    
-   public String getSessionID();
+   public long getSessionID();
  
    /**
     * Use this method if the packet is to be executed in the context of the targetID (i.e. for
     * sessions, connections & connections factories)
     */
-   Packet send(String targetID, Packet packet) throws MessagingException;
+   Packet send(long targetID, Packet packet) throws MessagingException;
 
-   Packet send(String targetID, String executorID, Packet packet) throws MessagingException;
+   Packet send(long targetID, long executorID, Packet packet) throws MessagingException;
    
-   Packet send(String targetID, String executorID, Packet packet, boolean oneWay) throws MessagingException;
+   Packet send(long targetID, long executorID, Packet packet, boolean oneWay) throws MessagingException;
    
    void setFailureListener(FailureListener newListener);
    

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -30,9 +30,9 @@
 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.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 /**
  * 
@@ -117,17 +117,16 @@
       log.trace(this + " closed");
    }
    
-   public String getSessionID()
+   public long getSessionID()
    {
       if (session == null || !session.isConnected())
       {
-         return null;
+         return -1;
       }
       return session.getID();
    }
     
-   public Packet send(String targetID, Packet packet)
-         throws MessagingException
+   public Packet send(final long targetID, final Packet packet) throws MessagingException
    {
       return send(targetID, targetID, packet);
    }
@@ -135,12 +134,12 @@
    /**
     * send the packet and block until a response is received (<code>oneWay</code> is set to <code>false</code>)
     */
-   public Packet send(final String targetID, final String executorID, final Packet packet) throws MessagingException
+   public Packet send(final long targetID, final long executorID, final Packet packet) throws MessagingException
    {
       return send(targetID, executorID, packet, false);
    }
    
-   public Packet send(final String targetID, final String executorID, final Packet packet, final boolean oneWay) throws MessagingException
+   public Packet send(final long targetID, final long executorID, final Packet packet, final boolean oneWay) throws MessagingException
    {
       assert packet != null;
 

Modified: trunk/src/main/org/jboss/messaging/core/message/Message.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/Message.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/message/Message.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -188,13 +188,13 @@
     * Get the connection id
     * @return
     */
-   String getConnectionID();
+   long getConnectionID();
    
    /**
     * Set the connection id
     * @param connectionID
     */
-   void setConnectionID(String connectionID);
+   void setConnectionID(long connectionID);
    
    
    /**

Modified: trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -74,7 +74,7 @@
    //The payload of MessageImpl instances is opaque
    private byte[] payload;
    
-   private String connectionID;
+   private long connectionID;
    
    private final AtomicInteger durableRefCount = new AtomicInteger(0);
    
@@ -259,12 +259,12 @@
       this.payload = payload;
    }
    
-   public String getConnectionID()
+   public long getConnectionID()
    {
       return connectionID;
    }
    
-   public void setConnectionID(final String connectionID)
+   public void setConnectionID(final long connectionID)
    {
       this.connectionID = connectionID;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/Interceptor.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/Interceptor.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/Interceptor.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -8,7 +8,6 @@
 package org.jboss.messaging.core.remoting;
 
 import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 /**
  *

Modified: trunk/src/main/org/jboss/messaging/core/remoting/KeepAliveFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/KeepAliveFactory.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/KeepAliveFactory.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -18,9 +18,9 @@
 public interface KeepAliveFactory
 {
 
-   Ping ping(String sessionID);
+   Ping ping(long sessionID);
    
-   Pong pong(String sessionID, Ping ping);
+   Pong pong(long sessionID, Ping ping);
 
-   boolean isPing(String sessionID, Object message);
+   boolean isPing(long sessionID, Object message);
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/NIOSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/NIOSession.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/NIOSession.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -8,7 +8,6 @@
 
 import java.util.concurrent.TimeUnit;
 
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -18,9 +17,8 @@
  */
 public interface NIOSession
 {
+   long getID();
 
-   String getID();
-
    void write(Object object) throws Exception;
 
    Object writeAndBlock(Packet packet, long timeout, TimeUnit timeUnit) throws Exception;

Copied: trunk/src/main/org/jboss/messaging/core/remoting/Packet.java (from rev 4032, trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/Packet.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/Packet.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * 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.PacketType;
+
+
+public interface Packet
+{
+   // Public --------------------------------------------------------
+
+   void setCorrelationID(long correlationID);
+
+   long getCorrelationID();
+
+   PacketType getType();
+
+   long getTargetID();
+
+   void setTargetID(long targetID);
+
+   long getExecutorID();
+
+   void setExecutorID(long executorID);
+
+   void setOneWay(boolean oneWay);
+
+   boolean isOneWay();
+   
+   void normalize(Packet other);
+
+   /**
+    * An AbstractPacket is a request if it has a target ID and a correlation ID
+    */
+   public boolean isRequest();
+}

Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting;
 
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 
 /**
@@ -17,10 +16,9 @@
  */
 public interface PacketDispatcher
 {
-
    void register(PacketHandler handler);
 
-   void unregister(String handlerID);
+   void unregister(long handlerID);
    
    void setListener(PacketHandlerRegistrationListener listener);
    

Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting;
 
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 /**
  * A PacketHandler handles packets (as defined by {@link Packet} and its
@@ -24,15 +23,7 @@
  */
 public interface PacketHandler
 {
-   /*
-    * The advantage to use String as ID is that we can leverage Java 5 UUID to
-    * generate these IDs. However theses IDs are 128 bite long and it increases
-    * the size of a packet (compared to integer or long).
-    * 
-    * By switching to Long, we could reduce the size of the packet and maybe
-    * increase the performance (to check after some performance tests)
-    */
-   String getID();
+   long getID();
 
    void handle(Packet packet, PacketSender sender);
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketHandlerRegistrationListener.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketHandlerRegistrationListener.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketHandlerRegistrationListener.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -14,6 +14,6 @@
  */
 public interface PacketHandlerRegistrationListener
 {
-   void handlerRegistered(String handlerID);
-   void handlerUnregistered(String handlerID);
+   void handlerRegistered(long handlerID);
+   void handlerUnregistered(long handlerID);
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketSender.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketSender.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketSender.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 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>
@@ -18,7 +17,7 @@
 {
    void send(Packet packet) throws Exception;
 
-   String getSessionID();
+   long getSessionID();
    
    String getRemoteAddress();
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/RemotingException.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/RemotingException.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/RemotingException.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -23,13 +23,13 @@
 
    // Attributes ----------------------------------------------------
 
-   private String sessionID;
+   private long sessionID;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public RemotingException(int code, String message, String sessionID)
+   public RemotingException(int code, String message, long sessionID)
    {
       super(code, message);
       this.sessionID = sessionID;
@@ -37,7 +37,7 @@
 
    // Public --------------------------------------------------------
 
-   public String getSessionID()
+   public long getSessionID()
    {
       return sessionID;
    }

Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/Assert.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/Assert.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/Assert.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -1,39 +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;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public class Assert
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   public final static void assertValidID(String id)
-   {
-      assert id != null;
-      assert id.length() != 0;
-   }
-   
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -11,6 +11,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.logging.Logger;
@@ -39,7 +40,9 @@
    private Map<String, PacketDispatcher> localDispatchers = new HashMap<String, PacketDispatcher>();
    
    public Map<String, NIOConnectorHolder> connectors = new HashMap<String, NIOConnectorHolder>();
-
+   
+   private final AtomicLong idCounter = new AtomicLong(0);
+   
    // Static --------------------------------------------------------
 
    /**
@@ -101,7 +104,7 @@
       if (localDispatchers.containsKey(key))
       {
          PacketDispatcher localDispatcher = localDispatchers.get(key);
-         NIOConnector connector = new INVMConnector(dispatcher, localDispatcher);
+         NIOConnector connector = new INVMConnector(idCounter.getAndIncrement(), dispatcher, localDispatcher);
 
          if (log.isDebugEnabled())
             log.debug("Created " + connector + " to connect to "

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/PacketDispatcherImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 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.PacketImpl.NO_ID_SET;
 
 import java.io.Serializable;
@@ -16,11 +15,11 @@
 
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.Interceptor;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketHandlerRegistrationListener;
 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>.
@@ -38,37 +37,24 @@
 
    // Attributes ----------------------------------------------------
 
-   private Map<String, PacketHandler> handlers;
-   public List<Interceptor> filters;
+   private final Map<Long, PacketHandler> handlers;
+   public final List<Interceptor> filters;
    private transient PacketHandlerRegistrationListener listener;
 
    // Static --------------------------------------------------------
 
-   // public static final PacketDispatcher client = new PacketDispatcher();
-
    // Constructors --------------------------------------------------
 
-   public PacketDispatcherImpl()
+   public PacketDispatcherImpl(final List<Interceptor> filters)
    {
-      handlers = new ConcurrentHashMap<String, PacketHandler>();
-   }
-
-   public PacketDispatcherImpl(List<Interceptor> filters)
-   {
-      this();
+   	handlers = new ConcurrentHashMap<Long, PacketHandler>();
       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;
-      
+   public void register(final PacketHandler handler)
+   { 
       handlers.put(handler.getID(), handler);
 
       if (log.isDebugEnabled())
@@ -77,16 +63,13 @@
       }
       
       if (listener != null)
+      {
          listener.handlerRegistered(handler.getID());
+      }
    }
 
-   /* (non-Javadoc)
-    * @see org.jboss.messaging.core.remoting.impl.IPacketDispatcher#unregister(java.lang.String)
-    */
-   public void unregister(String handlerID)
+   public void unregister(final long handlerID)
    {
-      assertValidID(handlerID);
-
       PacketHandler handler = handlers.remove(handlerID);
       
       if (log.isDebugEnabled())
@@ -95,25 +78,25 @@
       }
       
       if (listener != null)
+      {
          listener.handlerUnregistered(handlerID);
+      }
    }
    
-   public void setListener(PacketHandlerRegistrationListener listener)
+   public void setListener(final PacketHandlerRegistrationListener listener)
    {
       this.listener = listener;
    }
 
-   public PacketHandler getHandler(String handlerID)
+   public PacketHandler getHandler(final long handlerID)
    {
-      assertValidID(handlerID);
-
       return handlers.get(handlerID);
    }
    
-   public void dispatch(Packet packet, PacketSender sender) throws Exception
+   public void dispatch(final Packet packet, final PacketSender sender) throws Exception
    {
-      String targetID = packet.getTargetID();
-      if (NO_ID_SET.equals(targetID))
+      long targetID = packet.getTargetID();
+      if (NO_ID_SET == targetID)
       {
          log.error("Packet is not handled, it has no targetID: " + packet + ": " + System.identityHashCode(packet));
          return;
@@ -126,7 +109,6 @@
 
          callFilters(packet);
          handler.handle(packet, sender);
-
       }
       else
       {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -9,14 +9,13 @@
 import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.NEED_DATA;
 import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.NOT_OK;
 import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.OK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.NO_ID_SET;
 
 import java.nio.charset.CharacterCodingException;
 
 import javax.transaction.xa.Xid;
 
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.transaction.impl.XidImpl;
 
@@ -38,7 +37,9 @@
    public static final int FLOAT_LENGTH = 4;
 
    public static final int LONG_LENGTH = 8;
-
+   
+   private static final int HEADER_LENGTH = LONG_LENGTH + LONG_LENGTH + LONG_LENGTH + BOOLEAN_LENGTH;
+   
    private static final Logger log = Logger.getLogger(AbstractPacketCodec.class);
 
    // Attributes ----------------------------------------------------
@@ -60,36 +61,14 @@
 
    public void encode(P packet, RemotingBuffer buf) throws Exception
    {
-      assert packet != null;
-      assert buf != null;
-
       long correlationID = packet.getCorrelationID();
-      // to optimize the size of the packets, if the targetID
-      // or the callbackID are not set, they are encoded as null
-      // Strings and will be correctly reset in decode(RemotingBuffer) method
-      String targetID = packet.getTargetID();
-      if (NO_ID_SET.equals(targetID))
-      {
-         targetID = null;
-      }
-      String callbackID = packet.getCallbackID();
-      if (NO_ID_SET.equals(callbackID))
-      {
-         callbackID = null;
-      }
-      String executorID = packet.getExecutorID();
-      if (NO_ID_SET.equals(executorID))
-      {
-         executorID = targetID;
-      }
-      int headerLength = LONG_LENGTH + sizeof(targetID) + sizeof(callbackID) + sizeof(executorID) + BOOLEAN_LENGTH;
+      long targetID = packet.getTargetID();
+      long executorID = packet.getExecutorID();
 
       buf.put(packet.getType().byteValue());
-      buf.putInt(headerLength);
       buf.putLong(correlationID);
-      buf.putNullableString(targetID);
-      buf.putNullableString(callbackID);
-      buf.putNullableString(executorID);
+      buf.putLong(targetID);
+      buf.putLong(executorID);
       buf.putBoolean(packet.isOneWay());
 
       encodeBody(packet, buf);
@@ -100,7 +79,8 @@
       if (nullableString == null)
       {
          return 1; // NULL_STRING byte
-      } else
+      }
+      else
       {
          return nullableString.getBytes().length + 2;// NOT_NULL_STRING +
          // NULL_BYTE
@@ -116,72 +96,29 @@
 
    public DecoderStatus decodable(RemotingBuffer buffer)
    {
-      if (buffer.remaining() < INT_LENGTH)
-      {
-         if (log.isTraceEnabled())
-            log.trace("need more data to read header length");
-         // can not read next int
-         return NEED_DATA;
-      }
-      int headerLength = buffer.getInt();
-      if (buffer.remaining() < headerLength)
-      {
-         if (log.isTraceEnabled())
-            log.trace("need more data to read header");
-         return NEED_DATA;
-      }
-      buffer.getLong(); // correlation ID
-      try
-      {
-         buffer.getNullableString();
-      } catch (CharacterCodingException e)
-      {
-         return NOT_OK;
-      }
-      try
-      {
-         buffer.getNullableString();
-      } catch (CharacterCodingException e)
-      {
-         return NOT_OK;
-      }
-      try
-      {
-         buffer.getNullableString();
-      } catch (CharacterCodingException e)
-      {
-         return NOT_OK;
-      }
-      buffer.getBoolean(); // oneWay boolean
-      if (buffer.remaining() < INT_LENGTH)
-      {
-         if (log.isTraceEnabled())
-            log.trace("need more data to read body length");
-         // can not read next int
-         return NEED_DATA;
-      }
-      int bodyLength = buffer.getInt();
-      if (bodyLength == 0)
-      {
-         return OK;
-      }
-      if (buffer.remaining() < bodyLength)
-      {
-         if (log.isTraceEnabled())
-            log.trace("need more data to read body");
-         return NEED_DATA;
-      }
-      return OK;
+   	if (buffer.remaining() < HEADER_LENGTH + INT_LENGTH)
+   	{
+   		return NEED_DATA;
+   	}
+   	
+   	buffer.getLong();
+   	buffer.getLong();
+   	buffer.getLong();
+   	buffer.getBoolean();
+   	int bodyLength = buffer.getInt();
+   	if (buffer.remaining() < bodyLength)
+   	{
+   		return NEED_DATA;
+   	}
+   	return OK;   	
    }
 
    public Packet decode(RemotingBuffer wrapper) throws Exception
    {
       wrapper.get(); // skip message type
-      wrapper.getInt(); // skip header length
       long correlationID = wrapper.getLong();
-      String targetID = wrapper.getNullableString();
-      String callbackID = wrapper.getNullableString();
-      String executorID = wrapper.getNullableString();
+      long targetID = wrapper.getLong();
+      long executorID = wrapper.getLong();
       boolean oneWay = wrapper.getBoolean();
       
       Packet packet = decodeBody(wrapper);
@@ -190,19 +127,10 @@
       {
          return null;
       }
-      if (targetID == null)
-         targetID = NO_ID_SET;
-      packet.setTargetID(targetID);
       
-      if (callbackID == null)
-         callbackID = NO_ID_SET;
-      packet.setCallbackID(callbackID);
-      
-      if (executorID == null)
-         executorID = targetID;
-      packet.setExecutorID(executorID);
-      
       packet.setCorrelationID(correlationID);
+      packet.setTargetID(targetID);
+      packet.setExecutorID(executorID);            
       packet.setOneWay(oneWay);
 
       return packet;

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -35,12 +35,11 @@
    @Override
    protected void encodeBody(ConnectionCreateSessionResponseMessage response, RemotingBuffer out) throws Exception
    {
-      String sessionID = response.getSessionID();
+      long sessionID = response.getSessionID();
 
-      int bodyLength = sizeof(sessionID);
-
-      out.putInt(bodyLength);
-      out.putNullableString(sessionID);
+      out.putInt(LONG_LENGTH);
+      
+      out.putLong(sessionID);
    }
 
    @Override
@@ -53,7 +52,7 @@
          return null;
       }
 
-      String sessionID = in.getNullableString();
+      long sessionID = in.getLong();
 
       return new ConnectionCreateSessionResponseMessage(sessionID);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -39,20 +39,20 @@
          throws Exception
    {
       int version = request.getVersion();
-      String remotingSessionID = request.getRemotingSessionID();
+      long remotingSessionID = request.getRemotingSessionID();
       String clientVMID = request.getClientVMID();
       String username = request.getUsername();
       String password = request.getPassword();
 
       int bodyLength = INT_LENGTH // version
-            + sizeof(remotingSessionID)
+            + LONG_LENGTH +
             + sizeof(clientVMID)
             + sizeof(username) 
             + sizeof(password);
 
       out.putInt(bodyLength);
       out.putInt(version);
-      out.putNullableString(remotingSessionID);
+      out.putLong(remotingSessionID);
       out.putNullableString(clientVMID);
       out.putNullableString(username);
       out.putNullableString(password);
@@ -68,7 +68,7 @@
          return null;
       }
       int version = in.getInt();
-      String remotingSessionID = in.getNullableString();
+      long remotingSessionID = in.getLong();
       String clientVMID = in.getNullableString();
       String username = in.getNullableString();
       String password = in.getNullableString();

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -38,12 +38,10 @@
          RemotingBuffer out)
          throws Exception
    {
-      String id = response.getConnectionID();
+      long id = response.getConnectionTargetID();
 
-      int bodyLength = sizeof(id);
-
-      out.putInt(bodyLength);
-      out.putNullableString(id);
+      out.putInt(LONG_LENGTH);
+      out.putLong(id);
    }
 
    @Override
@@ -55,7 +53,7 @@
       {
          return null;
       }
-      String id = in.getNullableString();
+      long id = in.getLong();
 
       return new CreateConnectionResponse(id);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,10 +37,10 @@
    protected void encodeBody(Ping packet, RemotingBuffer out)
          throws Exception
    {
-      String clientSessionID = packet.getSessionID();
+      long clientSessionID = packet.getSessionID();
 
-      out.putInt(sizeof(clientSessionID));
-      out.putNullableString(clientSessionID);
+      out.putInt(LONG_LENGTH);
+      out.putLong(clientSessionID);
    }
 
    @Override
@@ -52,7 +52,7 @@
       {
          return null;
       }
-      String clientSessionID = in.getNullableString();
+      long clientSessionID = in.getLong();
 
       return new Ping(clientSessionID);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -36,13 +36,13 @@
    @Override
    protected void encodeBody(Pong packet, RemotingBuffer out) throws Exception
    {
-      String sessionID = packet.getSessionID();
+      long sessionID = packet.getSessionID();
       boolean sessionFailed = packet.isSessionFailed();
 
-      int bodyLength = sizeof(sessionID) + BOOLEAN_LENGTH;
+      int bodyLength = LONG_LENGTH + BOOLEAN_LENGTH;
 
       out.putInt(bodyLength);
-      out.putNullableString(sessionID);
+      out.putLong(sessionID);
       out.putBoolean(sessionFailed);
    }
 
@@ -54,7 +54,7 @@
       {
          return null;
       }
-      String sessionID = in.getNullableString();
+      long sessionID = in.getLong();
       boolean sessionFailed = in.getBoolean();
       return new Pong(sessionID, sessionFailed);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,12 +37,10 @@
    protected void encodeBody(SessionCreateBrowserResponseMessage response,
          RemotingBuffer out) throws Exception
    {
-      String browserID = response.getBrowserID();
+      long browserID = response.getBrowserTargetID();
 
-      int bodyLength = sizeof(browserID);
-      
-      out.putInt(bodyLength);
-      out.putNullableString(browserID);
+      out.putInt(LONG_LENGTH);
+      out.putLong(browserID);
    }
 
    @Override
@@ -55,7 +53,7 @@
          return null;
       }
 
-      String browserID = in.getNullableString();
+      long browserID = in.getLong();
 
       return new SessionCreateBrowserResponseMessage(browserID);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,14 +37,14 @@
    protected void encodeBody(SessionCreateConsumerResponseMessage response,
          RemotingBuffer out) throws Exception
    {
-      String consumerID = response.getConsumerID();
+      long consumerID = response.getConsumerTargetID();
       
       int windowSize = response.getWindowSize();
 
-      int bodyLength = sizeof(consumerID) + INT_LENGTH;
+      int bodyLength = LONG_LENGTH + INT_LENGTH;
        
       out.putInt(bodyLength);
-      out.putNullableString(consumerID);
+      out.putLong(consumerID);
       out.putInt(windowSize);
    }
 
@@ -58,7 +58,7 @@
          return null;
       }
 
-      String consumerID = in.getNullableString();
+      long consumerID = in.getLong();
       int windowSize = in.getInt();
 
       return new SessionCreateConsumerResponseMessage(consumerID, windowSize);

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -41,12 +41,12 @@
    protected void encodeBody(SessionCreateProducerResponseMessage response,
                              RemotingBuffer out) throws Exception
    {
-      String producerID = response.getProducerID();
+      long producerID = response.getProducerTargetID();
 
-      int bodyLength = sizeof(producerID) + 2 * INT_LENGTH;
+      int bodyLength = LONG_LENGTH + 2 * INT_LENGTH;
        
       out.putInt(bodyLength);
-      out.putNullableString(producerID);
+      out.putLong(producerID);
       out.putInt(response.getWindowSize());
       out.putInt(response.getMaxRate());
    }
@@ -61,7 +61,7 @@
          return null;
       }
 
-      String producerID = in.getNullableString();
+      long producerID = in.getLong();
       int windowSize = in.getInt();
       int maxRate = in.getInt();
  

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -29,18 +29,18 @@
 
    private INVMSession session;
 
-   private PacketDispatcher clientDispatcher;
-   private PacketDispatcher serverDispatcher;
-   
+   private final long id;
+      
+   private final PacketDispatcher clientDispatcher;
+   private final PacketDispatcher serverDispatcher;
+     
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public INVMConnector(PacketDispatcher clientDispatcher, PacketDispatcher serverDispatcher)
+   public INVMConnector(final long id, final PacketDispatcher clientDispatcher, final PacketDispatcher serverDispatcher)
    {
-      assert clientDispatcher != null;
-      assert serverDispatcher != null;
-      
+   	this.id = id;
       this.clientDispatcher = clientDispatcher;
       this.serverDispatcher = serverDispatcher;
    }
@@ -52,7 +52,7 @@
    public NIOSession connect()
          throws IOException
    {
-      this.session = new INVMSession(clientDispatcher, serverDispatcher);
+      this.session = new INVMSession(id, 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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,15 +6,13 @@
  */
 package org.jboss.messaging.core.remoting.impl.invm;
 
-import static java.util.UUID.randomUUID;
-
 import java.util.concurrent.TimeUnit;
 
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 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>
@@ -28,10 +26,10 @@
 
    // Attributes ----------------------------------------------------
 
-   private String id;
+   private final long id;
    private long correlationCounter;
-   private PacketDispatcher clientDispatcher;
-   private PacketDispatcher serverDispatcher;
+   private final PacketDispatcher clientDispatcher;
+   private final PacketDispatcher serverDispatcher;
    private boolean connected;
    
    // Static --------------------------------------------------------
@@ -39,12 +37,12 @@
 
    // Constructors --------------------------------------------------
 
-   public INVMSession(PacketDispatcher clientDispatcher, PacketDispatcher serverDispatcher)
+   public INVMSession(final long id, final PacketDispatcher clientDispatcher, final PacketDispatcher serverDispatcher)
    {
       assert clientDispatcher != null;
       assert serverDispatcher != null;
       
-      this.id = randomUUID().toString();
+      this.id = id;
       this.correlationCounter = 0;
       this.clientDispatcher = clientDispatcher;
       this.serverDispatcher = serverDispatcher;
@@ -61,7 +59,7 @@
 
    // NIOSession implementation -------------------------------------
 
-   public String getID()
+   public long getID()
    {
       return id;
    }
@@ -84,7 +82,7 @@
                   clientDispatcher.dispatch(response, null);   
                }
                
-               public String getSessionID()
+               public long getSessionID()
                {
                   return getID();
                }
@@ -126,7 +124,7 @@
                   }
                }
 
-               public String getSessionID()
+               public long getSessionID()
                {
                   return getID();
                }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ClientKeepAliveFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ClientKeepAliveFactory.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ClientKeepAliveFactory.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -30,17 +30,17 @@
 
    // KeepAliveFactory implementation -------------------------------
    
-   public Ping ping(String clientSessionID)
+   public Ping ping(long clientSessionID)
    {
       return new Ping(clientSessionID);
    }
 
-   public boolean isPing(String sessionID, Object message)
+   public boolean isPing(long sessionID, Object message)
    {
       return (message instanceof Ping);
    }
 
-   public Pong pong(String sessionID, Ping ping)
+   public Pong pong(long sessionID, Ping ping)
    {
       return new Pong(sessionID, false);
    }

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,9 +37,9 @@
 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.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.RemotingException;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
 
 /**
@@ -151,7 +151,7 @@
          throw new IOException("Cannot connect to " + address.toString());
       }
       this.session = future.getSession();
-      Packet packet = new Ping(Long.toString(session.getId()));
+      Packet packet = new Ping(session.getId());
       session.write(packet);
       
       return new MinaSession(session);
@@ -283,7 +283,8 @@
       public void sessionDestroyed(IoSession session)
       {
          RemotingException re =
-            new RemotingException(MessagingException.INTERNAL_ERROR, "MINA session has been destroyed", Long.toString(session.getId()));
+            new RemotingException(MessagingException.INTERNAL_ERROR, "MINA session has been destroyed",
+            		session.getId());
          fireFailure(re);
       }
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -14,10 +14,10 @@
 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
 import org.apache.mina.filter.codec.demux.MessageDecoder;
 import org.apache.mina.filter.codec.demux.MessageDecoderResult;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
 import org.jboss.messaging.core.remoting.impl.codec.DecoderStatus;
 import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 
 /**

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -13,9 +13,9 @@
 import org.apache.mina.common.IoSession;
 import org.apache.mina.filter.codec.ProtocolEncoderOutput;
 import org.apache.mina.filter.codec.demux.MessageEncoder;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
 import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 
 /**

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,8 +6,8 @@
  */
 package org.jboss.messaging.core.remoting.impl.mina;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 
@@ -16,17 +16,17 @@
 import org.apache.mina.filter.reqres.Response;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.PacketHandlerRegistrationListener;
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.RemotingException;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
 import org.jboss.messaging.util.OrderedExecutorFactory;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  * 
@@ -43,16 +43,18 @@
 
    private FailureNotifier failureNotifier;
 
-   private boolean closeSessionOnExceptionCaught;
+   private final boolean closeSessionOnExceptionCaught;
 
-   private OrderedExecutorFactory executorFactory;
+   private final OrderedExecutorFactory executorFactory;
 
-   private Map<String, Executor> executors = new HashMap<String, Executor>();
+   //Note! must use ConcurrentMap here to avoid race condition
+   private final ConcurrentMap<Long, Executor> executors = new ConcurrentHashMap<Long, Executor>();
    
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
-   public MinaHandler(PacketDispatcher dispatcher, ExecutorService executorService, FailureNotifier failureNotifier, boolean closeSessionOnExceptionCaught)
+   public MinaHandler(final PacketDispatcher dispatcher, final ExecutorService executorService,
+   		             final FailureNotifier failureNotifier, final boolean closeSessionOnExceptionCaught)
    {
       assert dispatcher!= null;
       assert executorService != null;
@@ -69,12 +71,12 @@
 
    // PacketHandlerRegistrationListener implementation --------------
 
-   public void handlerRegistered(String handlerID)
+   public void handlerRegistered(final long handlerID)
    {
       // do nothing on registration
    }
    
-   public void handlerUnregistered(String handlerID)
+   public void handlerUnregistered(final long handlerID)
    {
       executors.remove(handlerID);
    }
@@ -82,15 +84,16 @@
    // IoHandlerAdapter overrides ------------------------------------
 
    @Override
-   public void exceptionCaught(IoSession session, Throwable cause)
+   public void exceptionCaught(final IoSession session, final Throwable cause)
          throws Exception
    {
       log.error("caught exception " + cause + " for session " + session, cause);
       
       if (failureNotifier != null)
       {
-         String serverSessionID = Long.toString(session.getId());
-         RemotingException re = new RemotingException(MessagingException.INTERNAL_ERROR, "unexpected exception", serverSessionID);
+         long serverSessionID = session.getId();
+         RemotingException re =
+         	new RemotingException(MessagingException.INTERNAL_ERROR, "unexpected exception", serverSessionID);
          re.initCause(cause);
          failureNotifier.fireFailure(re);
       }
@@ -128,16 +131,20 @@
       }
       
       final Packet packet = (Packet) message;
-      String executorID = packet.getExecutorID();
+      long executorID = packet.getExecutorID();
       
-      if (PacketImpl.NO_ID_SET.equals(executorID)) 
-         throw new IllegalArgumentException("executor ID not set for " + packet);
-      
       Executor executor = executors.get(executorID);
       if (executor == null)
       {
-         executor = this.executorFactory.getOrderedExecutor();
-         executors.put(executorID, executor);
+         executor = executorFactory.getOrderedExecutor();
+         
+         Executor oldExecutor = executors.putIfAbsent(executorID, executor);
+         
+         if (oldExecutor != null)
+         {
+         	//Avoid race
+         	executor = oldExecutor;
+         }
       }
       
       executor.execute(new Runnable() 
@@ -146,7 +153,7 @@
          {
             try
             {
-               messageReceived0(session, packet);
+               messageReceivedInternal(session, packet);
             } catch (Exception e)
             {
                log.error("unexpected error", e);
@@ -162,7 +169,7 @@
 
    // Private -------------------------------------------------------
 
-   private void messageReceived0(final IoSession session, Packet packet)
+   private void messageReceivedInternal(final IoSession session, Packet packet)
          throws Exception
    {
       PacketSender sender = new PacketSender()
@@ -173,9 +180,9 @@
             session.write(p);            
          }
          
-         public String getSessionID()
+         public long getSessionID()
          {
-            return Long.toString(session.getId());
+            return session.getId();
          }
          
          public String getRemoteAddress()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaInspector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaInspector.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaInspector.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -7,11 +7,10 @@
 package org.jboss.messaging.core.remoting.impl.mina;
 
 import static org.apache.mina.filter.reqres.ResponseType.WHOLE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.NO_CORRELATION_ID;
 
 import org.apache.mina.filter.reqres.ResponseInspector;
 import org.apache.mina.filter.reqres.ResponseType;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.Packet;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -39,10 +38,16 @@
          return null;
       }
       Packet packet = (Packet) message;
-      if (packet.getCorrelationID() != NO_CORRELATION_ID)
-         return packet.getCorrelationID();
+      long id = packet.getCorrelationID();
+      
+      if (id == -1)
+      {
+      	return null;
+      }
       else
-         return null;
+      {
+      	return id;
+      }
    }
 
    public ResponseType getResponseType(Object message)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaKeepAliveFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaKeepAliveFactory.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaKeepAliveFactory.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -53,19 +53,17 @@
 
    public Object getRequest(IoSession session)
    {
-      return innerFactory.ping(Long.toString(session.getId()));
+      return innerFactory.ping(session.getId());
    }
 
    public Object getResponse(IoSession session, Object request)
    {
-      assert request instanceof Ping;
-
-      return innerFactory.pong(Long.toString(session.getId()), (Ping) request);
+      return innerFactory.pong(session.getId(), (Ping) request);
    }
 
    public boolean isRequest(IoSession session, Object request)
    {
-      return innerFactory.isPing(Long.toString(session.getId()), request);
+      return innerFactory.isPing(session.getId(), request);
    }
 
    public boolean isResponse(IoSession session, Object response)
@@ -78,8 +76,7 @@
             // FIXME better error code
             notifier.fireFailure(new RemotingException(
                   MessagingException.CONNECTION_TIMEDOUT,
-                  "Session has failed on the server", Long.toString(session
-                        .getId())));
+                  "Session has failed on the server", session.getId()));
          }
          return true;
       } else

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -227,8 +227,8 @@
       if (me instanceof RemotingException)
       {
          RemotingException re = (RemotingException) me;
-         String sessionID = re.getSessionID();
-         String clientSessionID = factory.getSessions().get(sessionID);
+         long sessionID = re.getSessionID();
+         long clientSessionID = factory.getSessions().get(sessionID);
          for (FailureListener listener : listeners)
          {
             listener.onFailure(new RemotingException(re.getCode(), re.getMessage(), clientSessionID));
@@ -281,7 +281,7 @@
 
       public void sessionDestroyed(IoSession session)
       {
-         String sessionID = Long.toString(session.getId());
+         long sessionID = session.getId();
          if (factory.getSessions().containsKey(sessionID))
          {
             fireFailure(new RemotingException(MessagingException.INTERNAL_ERROR, "MINA session destroyed", sessionID));

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaSession.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaSession.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,7 +12,7 @@
 import org.apache.mina.filter.reqres.Request;
 import org.apache.mina.filter.reqres.Response;
 import org.jboss.messaging.core.remoting.NIOSession;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.Packet;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -44,9 +44,9 @@
 
    // Public --------------------------------------------------------
 
-   public String getID()
+   public long getID()
    {
-      return Long.toString(session.getId());
+      return session.getId();
    }
 
    public void write(Object object)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -68,6 +68,7 @@
 
 import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
 import org.jboss.messaging.core.remoting.impl.codec.BytesPacketCodec;
 import org.jboss.messaging.core.remoting.impl.codec.ConnectionCreateSessionMessageCodec;
@@ -117,7 +118,6 @@
 import org.jboss.messaging.core.remoting.impl.codec.SessionXAStartMessageCodec;
 import org.jboss.messaging.core.remoting.impl.codec.TextPacketCodec;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 
 /**

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ServerKeepAliveFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ServerKeepAliveFactory.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/ServerKeepAliveFactory.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -34,7 +34,7 @@
    /**
     * Key = server session ID Value = client session ID
     */
-   private Map<String, String> sessions = new ConcurrentHashMap<String, String>();
+   private Map<Long, Long> sessions = new ConcurrentHashMap<Long, Long>();
 
    // Static --------------------------------------------------------
 
@@ -44,24 +44,26 @@
 
    // KeepAliveFactory implementation -------------------------------
 
-   public Ping ping(String sessionID)
+   public Ping ping(long sessionID)
    {
       return new Ping(sessionID);
    }
 
-   public boolean isPing(String sessionID, Object message)
+   public boolean isPing(long sessionID, Object message)
    {
       if (!(message instanceof Ping))
       {
          return false;
-      } else
+      }
+      else
       {
          Ping ping = (Ping) message;
-         String clientSessionID = ping.getSessionID();
-         if (clientSessionID.equals(sessionID))
+         long clientSessionID = ping.getSessionID();
+         if (clientSessionID == sessionID)
          {
             return false;
-         } else
+         }
+         else
          {
             if (log.isDebugEnabled())
                log.debug("associated server session " + sessionID
@@ -72,13 +74,13 @@
       }
    }
 
-   public Pong pong(String sessionID, Ping ping)
+   public Pong pong(long sessionID, Ping ping)
    {
-      String clientSessionID = ping.getSessionID();
+      long clientSessionID = ping.getSessionID();
       return new Pong(sessionID, sessions.containsKey(clientSessionID));
    }
 
-   public Map<String, String> getSessions()
+   public Map<Long, Long> getSessions()
    {
       return sessions;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -20,33 +19,31 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String sessionID;
+   private final long sessionTargetID;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public ConnectionCreateSessionResponseMessage(final String sessionID)
+   public ConnectionCreateSessionResponseMessage(final long sessionTargetID)
    {
       super(PacketType.CONN_CREATESESSION_RESP);
 
-      assertValidID(sessionID);
-
-      this.sessionID = sessionID;
+      this.sessionTargetID = sessionTargetID;
    }
 
    // Public --------------------------------------------------------
 
-   public String getSessionID()
+   public long getSessionID()
    {
-      return sessionID;
+      return sessionTargetID;
    }
 
 
    @Override
    public String toString()
    {
-      return getParentString() + ", sessionID=" + sessionID
+      return getParentString() + ", sessionTargetID=" + sessionTargetID
             + "]";
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
 
 /**
@@ -23,7 +22,7 @@
    // Attributes ----------------------------------------------------
 
    private final int version;
-   private final String remotingSessionID;
+   private final long remotingSessionID;
    private final String clientVMID;
    private final String username;
    private final String password;
@@ -33,13 +32,10 @@
    // Constructors --------------------------------------------------
 
    public CreateConnectionRequest(final int version,
-         final String remotingSessionID, final String clientVMID, final String username, final String password)
+         final long remotingSessionID, final String clientVMID, final String username, final String password)
    {
       super(CREATECONNECTION);
 
-      assertValidID(remotingSessionID);
-      assertValidID(clientVMID);
-
       this.version = version;
       this.remotingSessionID = remotingSessionID;
       this.clientVMID = clientVMID;
@@ -54,7 +50,7 @@
       return version;
    }
 
-   public String getRemotingSessionID()
+   public long getRemotingSessionID()
    {
       return remotingSessionID;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION_RESP;
 
 /**
@@ -21,32 +20,30 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String connectionID;
+   private final long connectionTargetID;
    
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public CreateConnectionResponse(final String connectionID)
+   public CreateConnectionResponse(final long connectionTargetID)
    {
       super(CREATECONNECTION_RESP);
 
-      assertValidID(connectionID);
-
-      this.connectionID = connectionID;
+      this.connectionTargetID = connectionTargetID;
    }
 
    // Public --------------------------------------------------------
 
-   public String getConnectionID()
+   public long getConnectionTargetID()
    {
-      return connectionID;
+      return connectionTargetID;
    }
    
    @Override
    public String toString()
    {
-      return getParentString() + ", connectionID" + connectionID + "]";
+      return getParentString() + ", connectionID" + connectionTargetID + "]";
    }
 
    // Package protected ---------------------------------------------

Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Packet.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -1,43 +0,0 @@
-/*
- * JBoss, the OpenSource J2EE webOS
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-
-package org.jboss.messaging.core.remoting.impl.wireformat;
-
-
-public interface Packet
-{
-   // Public --------------------------------------------------------
-
-   void setCorrelationID(long correlationID);
-
-   long getCorrelationID();
-
-   PacketType getType();
-
-   String getTargetID();
-
-   void setTargetID(String targetID);
-
-   String getCallbackID();
-
-   void setCallbackID(String callbackID);
-
-   String getExecutorID();
-
-   void setExecutorID(String executorID);
-
-   void setOneWay(boolean oneWay);
-
-   boolean isOneWay();
-   
-   void normalize(Packet other);
-
-   /**
-    * An AbstractPacket is a request if it has a target ID and a correlation ID
-    */
-   public boolean isRequest();
-}

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,9 +6,8 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
-
 import org.jboss.messaging.core.client.impl.RemotingConnection;
+import org.jboss.messaging.core.remoting.Packet;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -17,141 +16,120 @@
  */
 public class PacketImpl implements Packet
 {
-   // Constants -----------------------------------------------------
+	// Constants -----------------------------------------------------
 
-   public static final String NO_ID_SET = "NO_ID_SET";
+	public static final long NO_ID_SET = -1L;
 
-   public static final long NO_CORRELATION_ID = -1L;
+	// Attributes ----------------------------------------------------
 
-   // Attributes ----------------------------------------------------
+	private long correlationID = NO_ID_SET;
 
-   private long correlationID = NO_CORRELATION_ID;
+	private long targetID = NO_ID_SET;
 
-   private String targetID = NO_ID_SET;
+	private long executorID = NO_ID_SET;
 
-   private String callbackID = NO_ID_SET;
+	private final PacketType type;
 
-   String executorID = NO_ID_SET;
+	/**
+	 * <code>oneWay</code> is <code>true</code> when the packet is sent "one way"
+	 * by the client which does not expect any response to it.
+	 * 
+	 * @see RemotingConnection#sendOneWay(AbstractPacket)
+	 */
+	private boolean oneWay = false;
 
-   private final PacketType type;
+	// Static --------------------------------------------------------
 
-   /**
-    * <code>oneWay</code> is <code>true</code> when the packet is sent "one way"
-    * by the client which does not expect any response to it.
-    * 
-    * @see RemotingConnection#sendOneWay(AbstractPacket)
-    */
-   private boolean oneWay = false;
-   
-   // Static --------------------------------------------------------
+	// Constructors --------------------------------------------------
 
-   // Constructors --------------------------------------------------
+	public PacketImpl(PacketType type)
+	{
+		assert type != null;
 
-   public PacketImpl(PacketType type)
-   {
-      assert type != null;
-      
-      this.type = type;
-   }
+		this.type = type;
+	}
 
-   // Public --------------------------------------------------------
+	// Public --------------------------------------------------------
 
-   public PacketType getType()
-   {
-      return type;
-   }
+	public PacketType getType()
+	{
+		return type;
+	}
 
-   public void setCorrelationID(long correlationID)
-   {
-      this.correlationID = correlationID;
-   }
+	public void setCorrelationID(long correlationID)
+	{
+		this.correlationID = correlationID;
+	}
 
-   public long getCorrelationID()
-   {
-      return correlationID;
-   }
+	public long getCorrelationID()
+	{
+		return correlationID;
+	}
 
-   public String getTargetID()
-   {
-      return targetID;
-   }
+	public long getTargetID()
+	{
+		return targetID;
+	}
 
-   public void setTargetID(String targetID)
-   {
-      assertValidID(targetID);
+	public void setTargetID(long targetID)
+	{
+		this.targetID = targetID;
+	}
 
-      this.targetID = targetID;
-   }
+	public long getExecutorID()
+	{
+		return executorID;
+	}
 
-   public void setCallbackID(String callbackID)
-   {
-      assertValidID(callbackID);
+	public void setExecutorID(long executorID)
+	{
+		this.executorID = executorID;
+	}
 
-      this.callbackID = callbackID;
-   }
+	public void setOneWay(boolean oneWay)
+	{
+		this.oneWay = oneWay;
+	}
 
-   public String getCallbackID()
-   {
-      return callbackID;
-   }
-   
-  public String getExecutorID()
-  {
-     return executorID;
-  }
-  
-  public void setExecutorID(String executorID)
-  {
-     assertValidID(executorID);
-     
-     this.executorID = executorID;
-  }
+	public boolean isOneWay()
+	{
+		return oneWay;
+	}
 
-   public void setOneWay(boolean oneWay)
-   {
-      this.oneWay = oneWay;
-   }
+	public void normalize(Packet other)
+	{
+		assert other != null;
 
-   public boolean isOneWay()
-   {
-      return oneWay;
-   }
-   
-   public void normalize(Packet other)
-   {
-      assert other != null;
+		setCorrelationID(other.getCorrelationID());
+	}
 
-      setCorrelationID(other.getCorrelationID());
-      setTargetID(other.getCallbackID());
-   }
+	/**
+	 * An AbstractPacket is a request if it has a target ID and a correlation ID
+	 */
+	 public boolean isRequest()
+	 {
+		 return targetID != NO_ID_SET && correlationID != NO_ID_SET;
+	 }
 
-   /**
-    * An AbstractPacket is a request if it has a target ID and a correlation ID
-    */
-   public boolean isRequest()
-   {
-      return targetID != NO_ID_SET && correlationID != NO_CORRELATION_ID;
-   }
+	 @Override
+	 public String toString()
+	 {
+		 return getParentString() + "]";
+	 }
 
-   @Override
-   public String toString()
-   {
-      return getParentString() + "]";
-   }
+	 // Package protected ---------------------------------------------
 
-   // Package protected ---------------------------------------------
+	 protected String getParentString()
+	 {
+		 return "PACKET[type=" + type
+		 + ", correlationID=" + correlationID + ", targetID=" + targetID
+		 + ", executorID=" + executorID + ", oneWay=" + oneWay;
+	 }
 
-   protected String getParentString()
-   {
-      return "PACKET[type=" + type
-            + ", correlationID=" + correlationID + ", targetID=" + targetID
-            + ", callbackID=" + callbackID + ", executorID=" + executorID + ", oneWay=" + oneWay;
-   }
+	 // Protected -----------------------------------------------------
 
-   // Protected -----------------------------------------------------
+	 // Private -------------------------------------------------------
 
-   // Private -------------------------------------------------------
+	 // Inner classes -------------------------------------------------
 
-   // Inner classes -------------------------------------------------
-
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PING;
 
 /**
@@ -21,24 +20,22 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String sessionID;
+   private final long sessionID;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public Ping(final String sessionID)
+   public Ping(final long sessionID)
    {
       super(PING);
       
-      assertValidID(sessionID);
-      
       this.sessionID = sessionID;
    }
    
    // Public --------------------------------------------------------
    
-   public String getSessionID()
+   public long getSessionID()
    {
       return sessionID;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PONG;
 
 /**
@@ -21,7 +20,7 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String sessionID;
+   private final long sessionID;
 
    private final boolean sessionFailed;
 
@@ -29,19 +28,17 @@
 
    // Constructors --------------------------------------------------
 
-   public Pong(final String sessionID, final boolean sessionFailed)
+   public Pong(final long sessionID, final boolean sessionFailed)
    {
       super(PONG);
 
-      assertValidID(sessionID);
-
       this.sessionID = sessionID;
       this.sessionFailed = sessionFailed;
    }
 
    // Public --------------------------------------------------------
 
-   public String getSessionID()
+   public long getSessionID()
    {
       return sessionID;
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,7 +6,6 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.Assert.assertValidID;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER_RESP;
 
 /**
@@ -22,32 +21,30 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String browserID;
+   private final long browserTargetID;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public SessionCreateBrowserResponseMessage(final String browserID)
+   public SessionCreateBrowserResponseMessage(final long browserTargetID)
    {
       super(SESS_CREATEBROWSER_RESP);
 
-      assertValidID(browserID);
-
-      this.browserID = browserID;
+      this.browserTargetID = browserTargetID;
    }
 
    // Public --------------------------------------------------------
 
-   public String getBrowserID()
+   public long getBrowserTargetID()
    {
-      return browserID;
+      return browserTargetID;
    }
 
    @Override
    public String toString()
    {
-      return getParentString() + ", browserID=" + browserID + "]";
+      return getParentString() + ", browserTargetID=" + browserTargetID + "]";
    }
 
    // Package protected ---------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -8,8 +8,6 @@
 
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER_RESP;
 
-import org.jboss.messaging.core.remoting.impl.Assert;
-
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -22,7 +20,7 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String consumerID;
+   private final long consumerTargetID;
    
    private final int windowSize;
    
@@ -30,22 +28,20 @@
 
    // Constructors --------------------------------------------------
 
-   public SessionCreateConsumerResponseMessage(final String consumerID, final int windowSize)
+   public SessionCreateConsumerResponseMessage(final long consumerID, final int windowSize)
    {
       super(SESS_CREATECONSUMER_RESP);
 
-      Assert.assertValidID(consumerID);
-
-      this.consumerID = consumerID;
+      this.consumerTargetID = consumerID;
       
       this.windowSize = windowSize;
    }
 
    // Public --------------------------------------------------------
 
-   public String getConsumerID()
+   public long getConsumerTargetID()
    {
-      return consumerID;
+      return consumerTargetID;
    }
    
    public int getWindowSize()
@@ -57,7 +53,7 @@
    public String toString()
    {
       StringBuffer buf = new StringBuffer(getParentString());
-      buf.append(", consumerID=" + consumerID);
+      buf.append(", consumerTargetID=" + consumerTargetID);
       buf.append(", windowSize=" + windowSize);
       buf.append("]");
       return buf.toString();

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -20,7 +20,7 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String producerID;
+   private final long producerTargetID;
    
    private final int windowSize;
    
@@ -30,11 +30,11 @@
 
    // Constructors --------------------------------------------------
 
-   public SessionCreateProducerResponseMessage(final String producerID, final int windowSize, final int maxRate)
+   public SessionCreateProducerResponseMessage(final long producerTargetID, final int windowSize, final int maxRate)
    {
       super(SESS_CREATEPRODUCER_RESP);
 
-      this.producerID = producerID;
+      this.producerTargetID = producerTargetID;
       
       this.windowSize = windowSize;
       
@@ -43,9 +43,9 @@
 
    // Public --------------------------------------------------------
 
-   public String getProducerID()
+   public long getProducerTargetID()
    {
-      return producerID;
+      return producerTargetID;
    }
    
    public int getWindowSize()
@@ -62,7 +62,7 @@
    public String toString()
    {
       StringBuffer buf = new StringBuffer(getParentString());
-      buf.append(", producerID=" + producerID);
+      buf.append(", producerTargetID=" + producerTargetID);
       buf.append(", windowSize=" + windowSize);
       buf.append(", maxRate=" + maxRate);
       buf.append("]");

Modified: trunk/src/main/org/jboss/messaging/core/server/ConnectionManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ConnectionManager.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ConnectionManager.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -40,13 +40,13 @@
 public interface ConnectionManager extends MessagingComponent
 {
    void registerConnection(String clientVMID,
-                           String remotingClientSessionID, ServerConnection endpoint);
+                           long remotingClientSessionID, ServerConnection endpoint);
 
    /**
     * @param ServerConnection 
     * @return null if there is no such connection.
     */
-   ServerConnection unregisterConnection(String remotingClientSessionID, ServerConnection ServerConnection);
+   ServerConnection unregisterConnection(long remotingClientSessionID, ServerConnection ServerConnection);
    
    /**
     * Returns a list of active connection endpoints currently maintained by an instance of this

Modified: trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -88,8 +88,10 @@
    void setPostOffice(PostOffice postOffice);
    
    CreateConnectionResponse createConnection(String username, String password,
-                                             String remotingClientSessionID, String clientVMID,
+                                             long remotingClientSessionID, String clientVMID,
                                              String clientAddress) throws Exception;
 
    DeploymentManager getDeploymentManager();
+   
+   ObjectIDGenerator getObjectIDGenerator();
 }

Modified: trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerConnection.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,7 +37,7 @@
  */
 public interface ServerConnection
 {
-	String getID();
+	long getID();
 	
 	ConnectionCreateSessionResponseMessage createSession(boolean xa, boolean autoCommitSends, boolean autoCommitAcks,
                                                         PacketSender sender) throws Exception;
@@ -54,7 +54,7 @@
 	
 	String getPassword();
 		
-	void removeSession(String sessionID) throws Exception;
+	void removeSession(ServerSession session) throws Exception;
 	
 	void addTemporaryQueue(Queue queue);
 	

Modified: trunk/src/main/org/jboss/messaging/core/server/ServerConsumer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerConsumer.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerConsumer.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -31,7 +31,7 @@
  */
 public interface ServerConsumer extends Consumer
 {
-	String getID();
+	long getID();
 	
 	void close() throws Exception;
 	

Modified: trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerProducer.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -11,7 +11,7 @@
  */
 public interface ServerProducer
 {
-	String getID();
+	long getID();
 	
 	void close() throws Exception;
 	

Modified: trunk/src/main/org/jboss/messaging/core/server/ServerSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/ServerSession.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/ServerSession.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -35,6 +35,7 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
+import org.jboss.messaging.core.server.impl.ServerBrowserImpl;
 
 /**
  * 
@@ -45,13 +46,13 @@
  */
 public interface ServerSession
 {
-	String getID();
+	long getID();
 	
-	void removeBrowser(String browserID) throws Exception;
+	void removeBrowser(ServerBrowserImpl browser) throws Exception;
 	
-	void removeConsumer(String consumerID) throws Exception;
+	void removeConsumer(ServerConsumer consumer) throws Exception;
 	
-	void removeProducer(String producerID) throws Exception;
+	void removeProducer(ServerProducer producer) throws Exception;
 	
 	void close() throws Exception;
 	

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ConnectionManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ConnectionManagerImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ConnectionManagerImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -56,26 +56,26 @@
 
    // Attributes -----------------------------------------------------------------------------------
 
-   private Map<String /* remoting session ID */, List<ServerConnection>> endpoints;
+   private Map<Long /* remoting session ID */, List<ServerConnection>> endpoints;
 
    private Set<ServerConnection> activeServerConnections;
 
    // the clients maps is for information only: to better identify the clients of
    // jboss messaging using their VM ID
-   private Map<String /* remoting session id */, String /* client vm id */> clients;
+   private Map<Long /* remoting session id */, String /* client vm id */> clients;
    
    // Constructors ---------------------------------------------------------------------------------
 
    public ConnectionManagerImpl()
    {
-      endpoints = new HashMap<String, List<ServerConnection>>();
+      endpoints = new HashMap<Long, List<ServerConnection>>();
       activeServerConnections = new HashSet<ServerConnection>();
-      clients = new HashMap<String, String>();
+      clients = new HashMap<Long, String>();
    }
 
    // ConnectionManager implementation -------------------------------------------------------------
 
-   public synchronized void registerConnection(String clientVMID, String remotingClientSessionID,
+   public synchronized void registerConnection(String clientVMID, long remotingClientSessionID,
          ServerConnection endpoint)
    {    
       List<ServerConnection> connectionEndpoints = endpoints.get(remotingClientSessionID);
@@ -95,7 +95,7 @@
       log.debug("registered connection " + endpoint + " as " + remotingClientSessionID);
    }
    
-   public synchronized ServerConnection unregisterConnection(String remotingClientSessionID,
+   public synchronized ServerConnection unregisterConnection(long remotingClientSessionID,
          ServerConnection endpoint)
    {
       List<ServerConnection> connectionEndpoints = endpoints.get(remotingClientSessionID);
@@ -171,7 +171,7 @@
     *        client to this server, false if the failure has been detected while trying to send a
     *        callback from this server to the client.
     */
-   private synchronized void handleClientFailure(String remotingSessionID, boolean clientToServer)
+   private synchronized void handleClientFailure(long remotingSessionID, boolean clientToServer)
    {
       String clientVMID = clients.get(remotingSessionID);
 
@@ -193,10 +193,8 @@
       dump();
    }
 
-   private synchronized void closeConsumers(String remotingClientSessionID)
+   private synchronized void closeConsumers(long remotingClientSessionID)
    {
-      assert remotingClientSessionID != null;
-      
       List<ServerConnection> connectionEndpoints = endpoints.get(remotingClientSessionID);
       // the connection endpoints are copied in a new list to avoid concurrent modification exception
       List<ServerConnection> copy;
@@ -231,9 +229,9 @@
          {
             buff.append("    No registered sessions\n");
          }
-         for (Entry<String, String> client : clients.entrySet())
+         for (Entry<Long, String> client : clients.entrySet())
          {
-            String remotingSessionID = client.getKey();
+            long remotingSessionID = client.getKey();
             String clientVMID = client.getValue();
             buff.append("    ").append(remotingSessionID).append(" <----> ").append(clientVMID).append("\n");
          }
@@ -242,7 +240,7 @@
          {
             buff.append("    No registered endpoints\n");
          }
-         for (Entry<String, List<ServerConnection>> entry : endpoints.entrySet())
+         for (Entry<Long, List<ServerConnection>> entry : endpoints.entrySet())
          {
             List<ServerConnection> connectionEndpoints = entry.getValue();
             buff.append("    "  + entry.getKey() + "----->\n");

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/DeliveryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/DeliveryImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/DeliveryImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -42,16 +42,16 @@
    
    private final MessageReference reference;
    
-   private final String sessionID;
+   private final long sessionID;
 
-   private final String consumerID;
+   private final long consumerID;
    
    private final long deliveryID;
    
    private final PacketSender sender;
 
    public DeliveryImpl(final MessageReference reference, 
-                       final String sessionID, final String consumerID,
+                       final long sessionID, final long consumerID,
                        final long deliveryID, final PacketSender sender)
    {      
       this.reference = reference;

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -39,9 +39,9 @@
 import org.jboss.messaging.core.persistence.impl.nullpm.NullStorageManager;
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.postoffice.impl.PostOfficeImpl;
+import org.jboss.messaging.core.remoting.ConnectorRegistrySingleton;
 import org.jboss.messaging.core.remoting.Interceptor;
 import org.jboss.messaging.core.remoting.RemotingService;
-import org.jboss.messaging.core.remoting.ConnectorRegistrySingleton;
 import org.jboss.messaging.core.remoting.impl.mina.MinaService;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
 import org.jboss.messaging.core.security.JBMSecurityManager;
@@ -51,6 +51,7 @@
 import org.jboss.messaging.core.security.impl.SecurityStoreImpl;
 import org.jboss.messaging.core.server.ConnectionManager;
 import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.server.ObjectIDGenerator;
 import org.jboss.messaging.core.server.QueueFactory;
 import org.jboss.messaging.core.server.ServerConnection;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
@@ -97,6 +98,7 @@
    private Deployer queueSettingsDeployer;
    private JBMSecurityManager securityManager = new JBMSecurityManagerImpl(true);
    private DeploymentManager deploymentManager = new FileDeploymentManager();
+   private ObjectIDGenerator objectIDGenerator = new ObjectIDGeneratorImpl();
 
    // plugins
 
@@ -329,7 +331,7 @@
    }
 
    public CreateConnectionResponse createConnection(final String username, final String password,
-                                                    final String remotingClientSessionID, final String clientVMID,
+                                                    final long remotingClientSessionID, final String clientVMID,
                                                     final String clientAddress)
       throws Exception
    {
@@ -347,13 +349,19 @@
                           remotingClientSessionID, clientVMID, clientAddress,
                           remotingService.getDispatcher(), resourceManager, storageManager,
                           queueSettingsRepository,
-                          postOffice, securityStore, connectionManager);
+                          postOffice, securityStore, connectionManager,
+                          objectIDGenerator);
 
       remotingService.getDispatcher().register(new ServerConnectionPacketHandler(connection));
 
       return new CreateConnectionResponse(connection.getID());
    }
-
+   
+   public ObjectIDGenerator getObjectIDGenerator()
+   {
+   	return this.objectIDGenerator;
+   }
+   
    // Public ---------------------------------------------------------------------------------------
 
    // Package protected ----------------------------------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -24,11 +24,10 @@
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
 
 import org.jboss.logging.Logger;
-import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.server.MessagingServer;
 
@@ -58,9 +57,10 @@
    * By switching to Long, we could reduce the size of the packet and maybe
    * increase the performance (to check after some performance tests)
    */
-   public String getID()
+   public long getID()
    {
-      return ClientConnectionFactoryImpl.id;
+   	//0 is reserved for this handler
+      return 0;
    }
 
    public Packet doHandle(final Packet packet, final PacketSender sender) throws Exception

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -38,10 +38,10 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.MessageReference;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageResponseMessage;
@@ -69,7 +69,7 @@
 
    // Attributes -----------------------------------------------------------------------------------
 
-   private final String id;
+   private final long id;
    private final ServerSession session;
    private final Queue destination;
    private final Filter filter;
@@ -77,11 +77,11 @@
 
    // Constructors ---------------------------------------------------------------------------------
 
-   ServerBrowserImpl(ServerSession session,
-                     Queue destination, String messageFilter) throws Exception
+   ServerBrowserImpl(final long id, final ServerSession session,
+                     final Queue destination, final String messageFilter) throws Exception
    {     
       this.session = session;
-      id = UUID.randomUUID().toString();
+      this.id = id;
       
       this.destination = destination;
 
@@ -97,7 +97,7 @@
 
    // BrowserEndpoint implementation ---------------------------------------------------------------
 
-   public String getID()
+   public long getID()
    {
    	return id;
    }
@@ -162,7 +162,7 @@
    {
       iterator = null;
       
-      session.removeBrowser(id);
+      session.removeBrowser(this);
       
       log.trace(this + " closed");
    }
@@ -203,8 +203,7 @@
    
    private class ServerBrowserEndpointHandler extends ServerPacketHandlerSupport
    {
-
-      public String getID()
+      public long getID()
       {
          return ServerBrowserImpl.this.id;
       }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -21,20 +21,20 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.persistence.StorageManager;
 import org.jboss.messaging.core.postoffice.Binding;
 import org.jboss.messaging.core.postoffice.PostOffice;
 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.wireformat.ConnectionCreateSessionResponseMessage;
 import org.jboss.messaging.core.security.SecurityStore;
 import org.jboss.messaging.core.server.ConnectionManager;
+import org.jboss.messaging.core.server.ObjectIDGenerator;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.ServerConnection;
 import org.jboss.messaging.core.server.ServerSession;
@@ -66,13 +66,13 @@
 
    // Attributes -----------------------------------------------------------------------------------
 
-   private final String id;
+   private final long id;
 
    private final String username;
    
    private final String password;
 
-   private final String remotingClientSessionID;
+   private final long remotingClientSessionID;
    
    private final String clientAddress;
       
@@ -89,10 +89,12 @@
    private final SecurityStore securityStore;
    
    private final ConnectionManager connectionManager;
+   
+   private final ObjectIDGenerator objectIDGenerator;
 
    private final long createdTime;
          
-   private final ConcurrentMap<String, ServerSession> sessions = new ConcurrentHashMap<String, ServerSession>();
+   private final Set<ServerSession> sessions = new ConcurrentHashSet<ServerSession>();
 
    private final Set<Queue> temporaryQueues = new ConcurrentHashSet<Queue>();
    
@@ -104,16 +106,17 @@
    // Constructors ---------------------------------------------------------------------------------
       
    public ServerConnectionImpl(final String username, final String password,
-   		                      final String remotingClientSessionID, final String jmsClientVMID,
+   		                      final long remotingClientSessionID, final String jmsClientVMID,
    		                      final String clientAddress,
    		                      final PacketDispatcher dispatcher,
    		                      final ResourceManager resourceManager,
    		                      final StorageManager persistenceManager,
    		                      final HierarchicalRepository<QueueSettings> queueSettingsRepository,
    		                      final PostOffice postOffice, final SecurityStore securityStore,
-   		                      final ConnectionManager connectionManager)
+   		                      final ConnectionManager connectionManager,
+   		                      final ObjectIDGenerator objectIDGenerator)
    {
-   	id = UUID.randomUUID().toString();
+   	this.id = objectIDGenerator.generateID();
       
    	this.username = username;
       
@@ -137,6 +140,8 @@
       
       this.connectionManager = connectionManager;
       
+      this.objectIDGenerator = objectIDGenerator;
+      
       started = false;
       
       createdTime = System.currentTimeMillis();
@@ -146,7 +151,7 @@
 
    // ServerConnection implementation ------------------------------------------------------------
 
-   public String getID()
+   public long getID()
    {
    	return id;
    }
@@ -157,13 +162,11 @@
    {           
       ServerSession session =
          new ServerSessionImpl(autoCommitSends, autoCommitAcks, xa, this, resourceManager,
-         		sender, dispatcher, persistenceManager, queueSettingsRepository, postOffice, securityStore);
+         		sender, dispatcher, persistenceManager, queueSettingsRepository, postOffice, securityStore,
+         		objectIDGenerator);
 
-      synchronized (sessions)
-      {
-         sessions.put(session.getID(), session);
-      }
-
+      sessions.add(session);
+      
       dispatcher.register(new ServerSessionPacketHandler(session));
       
       return new ConnectionCreateSessionResponseMessage(session.getID());
@@ -181,9 +184,9 @@
 
    public void close() throws Exception
    {
-      Map<String, ServerSession> sessionsClone = new HashMap<String, ServerSession>(sessions);
+      Set<ServerSession> sessionsClone = new HashSet<ServerSession>(sessions);
       
-      for (ServerSession session: sessionsClone.values())
+      for (ServerSession session: sessionsClone)
       {
          session.close();
       }
@@ -235,14 +238,14 @@
       return password;
    }
    
-   public void removeSession(final String sessionId) throws Exception
+   public void removeSession(final ServerSession session) throws Exception
    {
-      if (sessions.remove(sessionId) == null)
+      if (!sessions.remove(session))
       {
-         throw new IllegalStateException("Cannot find session with id " + sessionId + " to remove");
+         throw new IllegalStateException("Cannot find session with id " + session.getID() + " to remove");
       }      
       
-      dispatcher.unregister(sessionId);
+      dispatcher.unregister(session.getID());
    }
 
    public void addTemporaryQueue(final Queue queue)
@@ -287,7 +290,7 @@
 
    public Collection<ServerSession> getSessions()
    {
-      return sessions.values();
+      return sessions;
    }
 
    // Public ---------------------------------------------------------------------------------------
@@ -301,11 +304,9 @@
    
    private void setStarted(final boolean started) throws Exception
    {
-      Map<String, ServerSession> sessionsClone = null;
-      
-      sessionsClone = new HashMap<String, ServerSession>(sessions);
+      Set<ServerSession> sessionsClone = new HashSet<ServerSession>(sessions);
             
-      for (ServerSession session: sessionsClone.values() )
+      for (ServerSession session: sessionsClone)
       {
          session.setStarted(started);
       }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -21,17 +21,13 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_CREATESESSION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_START;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_STOP;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
 
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.server.ServerConnection;
 
@@ -52,7 +48,7 @@
    	this.connection = connection;
    }
 
-   public String getID()
+   public long getID()
    {
       return connection.getID();
    }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -65,7 +65,7 @@
 
    private final boolean trace = log.isTraceEnabled();
 
-   private final String id;
+   private final long id;
 
    private final Queue messageQueue;
    
@@ -77,7 +77,7 @@
    
    private final TokenBucketLimiter limiter;
    
-   private final String connectionID;   
+   private final long connectionID;   
    
    private final ServerSession sessionEndpoint;
 
@@ -94,16 +94,16 @@
    private boolean started;
 
    // Constructors ---------------------------------------------------------------------------------
-
-   ServerConsumerImpl(final Queue messageQueue, final boolean noLocal, final Filter filter,
+ 
+   ServerConsumerImpl(final long id, final Queue messageQueue, final boolean noLocal, final Filter filter,
    		             final boolean autoDeleteQueue, final boolean enableFlowControl, final int maxRate,
-   		             final String connectionID, final ServerSession sessionEndpoint,
+   		             final long connectionID, final ServerSession sessionEndpoint,
 					       final StorageManager persistenceManager,
 					       final HierarchicalRepository<QueueSettings> queueSettingsRepository,
 					       final PostOffice postOffice,
 					       final boolean started)
    {
-   	id = UUID.randomUUID().toString();
+   	this.id = id;
       
       this.messageQueue = messageQueue;
       
@@ -148,7 +148,7 @@
 
    // ServerConsumer implementation ----------------------------------------------------------------------
 
-   public String getID()
+   public long getID()
    {
    	return id;
    }
@@ -185,9 +185,9 @@
          
          if (noLocal)
          {
-            String conId = message.getConnectionID();
+            long conId = message.getConnectionID();
 
-            if (connectionID.equals(conId))
+            if (connectionID == conId)
             {	            	
             	Transaction tx = new TransactionImpl(persistenceManager, postOffice);
             	
@@ -243,7 +243,7 @@
          }
       }
       
-      sessionEndpoint.removeConsumer(id);           
+      sessionEndpoint.removeConsumer(this);           
    }
    
    public void setStarted(final boolean started)

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -21,15 +21,13 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_FLOWTOKEN;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
 
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.server.ServerConsumer;
 
@@ -50,7 +48,7 @@
 		this.consumer = consumer;
 	}
 
-   public String getID()
+   public long getID()
    {
       return consumer.getID();
    }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerPacketHandlerSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerPacketHandlerSupport.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerPacketHandlerSupport.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -23,10 +23,10 @@
 
 import org.jboss.logging.Logger;
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 /**
  * 

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -26,8 +26,8 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.postoffice.FlowController;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
 import org.jboss.messaging.core.server.ServerProducer;
 import org.jboss.messaging.core.server.ServerSession;
@@ -43,7 +43,7 @@
 {
 	private static final Logger log = Logger.getLogger(ServerProducerImpl.class);
 	
-	private final String id;
+	private final long id;
 	
 	private final ServerSession session;
 	
@@ -57,11 +57,11 @@
 	
 	// Constructors ----------------------------------------------------------------
 	
-	public ServerProducerImpl(final ServerSession session, final String address, 
+	public ServerProducerImpl(final long id, final ServerSession session, final String address, 
 			                    final PacketSender sender,
 			                    final FlowController flowController) throws Exception
 	{
-		id = UUID.randomUUID().toString();
+		this.id = id;
       
 		this.session = session;
 		
@@ -74,14 +74,14 @@
 	
 	// ServerProducer implementation --------------------------------------------
 	
-	public String getID()
+	public long getID()
 	{
 		return id;
 	}
 	
 	public void close() throws Exception
 	{
-		session.removeProducer(id);
+		session.removeProducer(this);
 	}
 	
 	

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -21,14 +21,12 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
 import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_SEND;
 
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
 import org.jboss.messaging.core.server.ServerProducer;
@@ -49,7 +47,7 @@
 		this.producer = producer;
 	}
 
-   public String getID()
+   public long getID()
    {
       return producer.getID();
    }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -22,13 +22,11 @@
 package org.jboss.messaging.core.server.impl;
 
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -59,6 +57,7 @@
 import org.jboss.messaging.core.security.CheckType;
 import org.jboss.messaging.core.security.SecurityStore;
 import org.jboss.messaging.core.server.Delivery;
+import org.jboss.messaging.core.server.ObjectIDGenerator;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.ServerConnection;
 import org.jboss.messaging.core.server.ServerConsumer;
@@ -69,6 +68,7 @@
 import org.jboss.messaging.core.transaction.ResourceManager;
 import org.jboss.messaging.core.transaction.Transaction;
 import org.jboss.messaging.core.transaction.impl.TransactionImpl;
+import org.jboss.messaging.util.ConcurrentHashSet;
 
 /**
  * Session implementation
@@ -99,7 +99,7 @@
 
    private final boolean trace = log.isTraceEnabled();
 
-   private final String id;
+   private final long id;
    
    private final boolean autoCommitSends;
 
@@ -120,12 +120,14 @@
    private final PostOffice postOffice;
    
    private final SecurityStore securityStore;
+   
+   private final ObjectIDGenerator objectIDGenerator;
          
-   private final Map<String, ServerConsumer> consumers = new ConcurrentHashMap<String, ServerConsumer>();
+   private final Set<ServerConsumer> consumers = new ConcurrentHashSet<ServerConsumer>();
 
-   private final Map<String, ServerBrowserImpl> browsers = new ConcurrentHashMap<String, ServerBrowserImpl>();
+   private final Set<ServerBrowserImpl> browsers = new ConcurrentHashSet<ServerBrowserImpl>();
    
-   private final Map<String, ServerProducer> producers = new ConcurrentHashMap<String, ServerProducer>();
+   private final Set<ServerProducer> producers = new ConcurrentHashSet<ServerProducer>();
 
    private final LinkedList<Delivery> deliveries = new LinkedList<Delivery>();
 
@@ -144,9 +146,10 @@
                             final ResourceManager resourceManager, final PacketSender sender, 
                             final PacketDispatcher dispatcher, final StorageManager persistenceManager,
                             final HierarchicalRepository<QueueSettings> queueSettingsRepository,
-                            final PostOffice postOffice, final SecurityStore securityStore) throws Exception
+                            final PostOffice postOffice, final SecurityStore securityStore,
+                            final ObjectIDGenerator objectIDGenerator) throws Exception
    {
-   	id = UUID.randomUUID().toString();
+   	this.id = objectIDGenerator.generateID();
             
       this.autoCommitSends = autoCommitSends;
 
@@ -172,6 +175,8 @@
       this.postOffice = postOffice;
       
       this.securityStore = securityStore;
+      
+      this.objectIDGenerator = objectIDGenerator;
             
       if (log.isTraceEnabled())
       {
@@ -182,7 +187,7 @@
    // ServerSession implementation
    // ---------------------------------------------------------------------------------------
    
-   public String getID()
+   public long getID()
    {
    	return id;
    }
@@ -192,34 +197,34 @@
       return connection;
    }
 
-   public void removeBrowser(final String browserID) throws Exception
+   public void removeBrowser(final ServerBrowserImpl browser) throws Exception
    {
-      if (browsers.remove(browserID) == null)
+      if (!browsers.remove(browser))
       {
-         throw new IllegalStateException("Cannot find browser with id " + browserID + " to remove");
+         throw new IllegalStateException("Cannot find browser with id " + browser.getID() + " to remove");
       }
       
-      dispatcher.unregister(browserID);           
+      dispatcher.unregister(browser.getID());           
    }
 
-   public void removeConsumer(final String consumerID) throws Exception
+   public void removeConsumer(final ServerConsumer consumer) throws Exception
    {
-      if (consumers.remove(consumerID) == null)
+      if (!consumers.remove(consumer))
       {
-         throw new IllegalStateException("Cannot find consumer with id " + consumerID + " to remove");
+         throw new IllegalStateException("Cannot find consumer with id " + consumer.getID() + " to remove");
       }
       
-      dispatcher.unregister(consumerID);           
+      dispatcher.unregister(consumer.getID());           
    }
    
-   public void removeProducer(final String producerID) throws Exception
+   public void removeProducer(final ServerProducer producer) throws Exception
    {
-      if (producers.remove(producerID) == null)
+      if (!producers.remove(producer))
       {
-         throw new IllegalStateException("Cannot find producer with id " + producerID + " to remove");
+         throw new IllegalStateException("Cannot find producer with id " + producer.getID() + " to remove");
       }
       
-      dispatcher.unregister(producerID);           
+      dispatcher.unregister(producer.getID());           
    }
    
    public synchronized void handleDelivery(final MessageReference ref, final ServerConsumer consumer) throws Exception
@@ -233,9 +238,9 @@
    
    public void setStarted(final boolean s) throws Exception
    {
-      Map<String, ServerConsumer> consumersClone = new HashMap<String, ServerConsumer>(consumers);
+      Set<ServerConsumer> consumersClone = new HashSet<ServerConsumer>(consumers);
 
-      for (ServerConsumer consumer: consumersClone.values())
+      for (ServerConsumer consumer: consumersClone)
       {
          consumer.setStarted(s);
       }
@@ -243,27 +248,27 @@
 
    public void close() throws Exception
    {
-      Map<String, ServerConsumer> consumersClone = new HashMap<String, ServerConsumer>(consumers);
+      Set<ServerConsumer> consumersClone = new HashSet<ServerConsumer>(consumers);
 
-      for (ServerConsumer consumer: consumersClone.values())
+      for (ServerConsumer consumer: consumersClone)
       {
          consumer.close();
       }
 
       consumers.clear();
 
-      Map<String, ServerBrowserImpl> browsersClone = new HashMap<String, ServerBrowserImpl>(browsers);
+      Set<ServerBrowserImpl> browsersClone = new HashSet<ServerBrowserImpl>(browsers);
 
-      for (ServerBrowserImpl browser: browsersClone.values())
+      for (ServerBrowserImpl browser: browsersClone)
       {
          browser.close();
       }
 
       browsers.clear();
       
-      Map<String, ServerProducer> producersClone = new HashMap<String, ServerProducer>(producers);
+      Set<ServerProducer> producersClone = new HashSet<ServerProducer>(producers);
 
-      for (ServerProducer producer: producersClone.values())
+      for (ServerProducer producer: producersClone)
       {
          producer.close();
       }
@@ -276,7 +281,7 @@
 
       deliveries.clear();
 
-      connection.removeSession(id);
+      connection.removeSession(this);
    }
    
    public void promptDelivery(final Queue queue)
@@ -919,7 +924,7 @@
       maxRate = queueMaxRate != null ? queueMaxRate : maxRate;
       
       ServerConsumer consumer =
-      	new ServerConsumerImpl(binding.getQueue(), noLocal, filter, autoDeleteQueue, windowSize != -1, maxRate, connection.getID(),
+      	new ServerConsumerImpl(objectIDGenerator.generateID(), binding.getQueue(), noLocal, filter, autoDeleteQueue, windowSize != -1, maxRate, connection.getID(),
                                 this, persistenceManager, queueSettingsRepository, postOffice, connection.isStarted());
 
       dispatcher.register(new ServerConsumerPacketHandler(consumer));
@@ -927,7 +932,7 @@
       SessionCreateConsumerResponseMessage response =
       	new SessionCreateConsumerResponseMessage(consumer.getID(), windowSize);
 
-      consumers.put(consumer.getID(), consumer);      
+      consumers.add(consumer);      
       
       return response;
    }
@@ -999,9 +1004,9 @@
       
       securityStore.check(binding.getAddress(), CheckType.READ, connection);
       
-      ServerBrowserImpl browser = new ServerBrowserImpl(this, binding.getQueue(), selector);
+      ServerBrowserImpl browser = new ServerBrowserImpl(objectIDGenerator.generateID(), this, binding.getQueue(), selector);
 
-      browsers.put(browser.getID(), browser);
+      browsers.add(browser);
       
       dispatcher.register(browser.newHandler());
 
@@ -1029,9 +1034,9 @@
    		flowController = windowSize == -1 ? null : postOffice.getFlowController(address);
    	}
    	
-   	ServerProducerImpl producer = new ServerProducerImpl(this, address, sender, flowController);
+   	ServerProducerImpl producer = new ServerProducerImpl(objectIDGenerator.generateID(), this, address, sender, flowController);
 
-   	producers.put(producer.getID(), producer);
+   	producers.add(producer);
    	
    	dispatcher.register(new ServerProducerPacketHandler(producer));
    	

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -29,8 +29,8 @@
 
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
@@ -77,7 +77,7 @@
 		this.session = session;
    }
 
-   public String getID()
+   public long getID()
    {
       return session.getID();
    }

Modified: trunk/src/main/org/jboss/messaging/jms/server/ConnectionInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/ConnectionInfo.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/jms/server/ConnectionInfo.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -37,13 +37,13 @@
 
    public enum status{ STARTED, STOPPED }
 
-   private final String id;
+   private final long id;
    private final String user;
    private final String address;
    private final boolean started;
    private final long created;
 
-   public ConnectionInfo(final String id, final String user, final String address,
+   public ConnectionInfo(final long id, final String user, final String address,
    		                final boolean started, final long created)
    {
       this.id = id;
@@ -53,7 +53,7 @@
       this.created = created;
    }
 
-   public String getId()
+   public long getId()
    {
       return id;
    }

Modified: trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,6 +6,7 @@
 
 import javax.jms.Message;
 
+
 /**
  * The JMS Management interface.
  *
@@ -306,7 +307,7 @@
     * @param clientId the client id
     * @throws Exception if a problem occurred
     */
-   void dropConnection(String clientId) throws Exception;
+   void dropConnection(long id) throws Exception;
 
    /**
     * drop all the connections for a specific user
@@ -320,7 +321,7 @@
     * @return the session info
     * @throws Exception if a problem occurred
     */
-   public List<SessionInfo> getSessions() throws Exception;
+   //public List<SessionInfo> getSessions() throws Exception;
 
    /**
     * get the session info for a particular connection with the specified client id
@@ -328,7 +329,7 @@
     * @return the session info
     * @throws Exception if a problem occurred
     */
-   public List<SessionInfo> getSessionsForConnection(String clientid) throws Exception;
+  // public List<SessionInfo> getSessionsForConnection(long id) throws Exception;
 
    /**
     * get the session info for a particular user
@@ -336,7 +337,7 @@
     * @return the session info
     * @throws Exception if a problem occurred
     */
-   public List<SessionInfo> getSessionsForUser(String user) throws Exception;
+  // public List<SessionInfo> getSessionsForUser(String user) throws Exception;
 
    /**
     * Start gathering delivery statistics for all queues

Modified: trunk/src/main/org/jboss/messaging/jms/server/SessionInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/SessionInfo.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/jms/server/SessionInfo.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -29,22 +29,22 @@
  */
 public class SessionInfo implements Serializable
 {
-   private final String id;
+   private final long id;
    
-   private final String connectionID;
+   private final long connectionID;
 
-   public SessionInfo(final String id, final String connectionID)
+   public SessionInfo(final long id, final long connectionID)
    {
       this.id = id;
       this.connectionID = connectionID;
    }
 
-   public String getId()
+   public long getId()
    {
       return id;
    }
 
-   public String getConnectionID()
+   public long getConnectionID()
    {
       return connectionID;
    }

Modified: trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -42,7 +42,6 @@
 import org.jboss.messaging.core.messagecounter.MessageCounter;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.server.ServerConnection;
-import org.jboss.messaging.core.server.ServerSession;
 import org.jboss.messaging.jms.JBossQueue;
 import org.jboss.messaging.jms.JBossTemporaryQueue;
 import org.jboss.messaging.jms.JBossTemporaryTopic;
@@ -52,7 +51,6 @@
 import org.jboss.messaging.jms.server.ConnectionInfo;
 import org.jboss.messaging.jms.server.JMSServerManager;
 import org.jboss.messaging.jms.server.MessageStatistics;
-import org.jboss.messaging.jms.server.SessionInfo;
 import org.jboss.messaging.jms.server.SubscriptionInfo;
 import org.jboss.messaging.util.JNDIUtil;
 import org.jboss.messaging.util.Pair;
@@ -431,12 +429,12 @@
       return connectionInfos;
    }
 
-   public void dropConnection(String clientId) throws Exception
+   public void dropConnection(long clientId) throws Exception
    {
       List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
       for (ServerConnection endpoint : endpoints)
       {
-         if (endpoint.getID().equals(clientId))
+         if (endpoint.getID() == clientId)
          {
             endpoint.close();
             break;
@@ -450,11 +448,9 @@
       List<ConnectionInfo> connectionInfos = getConnectionsForUser(user);
       for (ConnectionInfo connectionInfo : connectionInfos)
       {
-
-
          for (ServerConnection endpoint : endpoints)
          {
-            if (endpoint.getID().equals(connectionInfo.getId()))
+            if (endpoint.getID() == connectionInfo.getId())
             {
                endpoint.close();
                break;
@@ -463,44 +459,44 @@
       }
    }
 
-   public List<SessionInfo> getSessions() throws Exception
-   {
-      return getSessionsForConnection(null);
-   }
+//   public List<SessionInfo> getSessions() throws Exception
+//   {
+//      return getSessionsForConnection(null);
+//   }
+//
+//   public List<SessionInfo> getSessionsForConnection(long id) throws Exception
+//   {
+//      List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
+//      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
+//      for (ServerConnection endpoint : endpoints)
+//      {
+//         if (id == endpoint.getID())
+//         {
+//            Collection<ServerSession> serverSessionEndpoints = endpoint.getSessions();
+//            for (ServerSession serverSessionEndpoint : serverSessionEndpoints)
+//            {
+//               sessionInfos.add(new SessionInfo(serverSessionEndpoint.getID(),
+//                       endpoint.getID()));
+//            }
+//         }
+//      }
+//      return sessionInfos;
+//   }
 
-   public List<SessionInfo> getSessionsForConnection(String id) throws Exception
-   {
-      List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
-      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
-      for (ServerConnection endpoint : endpoints)
-      {
-         if (id == null || id.equals(endpoint.getID()))
-         {
-            Collection<ServerSession> serverSessionEndpoints = endpoint.getSessions();
-            for (ServerSession serverSessionEndpoint : serverSessionEndpoints)
-            {
-               sessionInfos.add(new SessionInfo(serverSessionEndpoint.getID(),
-                       endpoint.getID()));
-            }
-         }
-      }
-      return sessionInfos;
-   }
+//   public List<SessionInfo> getSessionsForUser(String user) throws Exception
+//   {
+//      List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
+//      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
+//      for (ServerConnection endpoint : endpoints)
+//      {
+//         if (user == null || user.equals(endpoint.getUsername()))
+//         {
+//            sessionInfos.addAll(getSessionsForConnection(endpoint.getID()));
+//         }
+//      }
+//      return sessionInfos;
+//   }
 
-   public List<SessionInfo> getSessionsForUser(String user) throws Exception
-   {
-      List<SessionInfo> sessionInfos = new ArrayList<SessionInfo>();
-      List<ServerConnection> endpoints = messagingServerManagement.getActiveConnections();
-      for (ServerConnection endpoint : endpoints)
-      {
-         if (user == null || user.equals(endpoint.getUsername()))
-         {
-            sessionInfos.addAll(getSessionsForConnection(endpoint.getID()));
-         }
-      }
-      return sessionInfos;
-   }
-
    public void startGatheringStatistics() throws Exception
    {
       Set<String> availableAddresses = messagingServerManagement.listAvailableAddresses();

Modified: trunk/tests/src/org/jboss/messaging/core/message/impl/test/unit/MessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/message/impl/test/unit/MessageTest.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/message/impl/test/unit/MessageTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -188,8 +188,8 @@
    {
       Message message = new MessageImpl();
       
-      assertNull(message.getConnectionID());
-      String connectionID = "conn123";
+      assertEquals(0, message.getConnectionID());
+      long connectionID = 781628;
       message.setConnectionID(connectionID);
       assertEquals(connectionID, message.getConnectionID());      
    }

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/SessionTestBase.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -13,18 +13,19 @@
 import static org.jboss.messaging.test.unit.RandomUtil.randomString;
 
 import java.util.List;
+import java.util.concurrent.atomic.AtomicLong;
 
 import junit.framework.TestCase;
 
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.remoting.NIOConnector;
 import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.Packet;
 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.mina.integration.test.ReversePacketHandler;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
 
@@ -56,7 +57,7 @@
 
    public void testConnected() throws Exception
    {
-      NIOConnector connector = createNIOConnector(new PacketDispatcherImpl());
+      NIOConnector connector = createNIOConnector(new PacketDispatcherImpl(null));
       NIOSession session = connector.connect();
 
       assertTrue(session.isConnected());
@@ -106,77 +107,7 @@
       }
    }
 
-   public void testWriteWithCallbackHandler() throws Exception
-   {
-      TestPacketHandler callbackHandler = new TestPacketHandler();
-      callbackHandler.expectMessage(1);
-
-      clientDispatcher.register(callbackHandler);
-
-      TextPacket packet = new TextPacket("testSendOneWayWithCallbackHandler");
-      packet.setTargetID(serverPacketHandler.getID());
-      packet.setCallbackID(callbackHandler.getID());
-
-      session.write(packet);
-
-      assertTrue(callbackHandler.await(5, SECONDS));
-
-      assertEquals(1, callbackHandler.getPackets().size());
-      String response = callbackHandler.getPackets().get(0).getText();
-      assertEquals(reverse(packet.getText()), response);
-   }
    
-   public void testWriteAndBlockWithOneCallbackLater() throws Exception
-   {
-      final PacketSender[] serverSender = new PacketSender[1];
-      PacketHandler serverHandler = new PacketHandler() {
-         private final String id = randomString();
-         
-         public String getID()
-         {
-            return id;
-         }
-
-         public void handle(Packet packet, PacketSender sender)
-         {
-            serverSender[0] = sender;
-            // immediate reply
-            TextPacket response = new TextPacket("blockingResponse");
-            response.normalize(packet);
-            try
-            {
-               sender.send(packet);
-            } catch (Exception e)
-            {
-               fail(e.getMessage());
-            }
-         }
-      };
-      serverDispatcher.register(serverHandler);
-      
-      TestPacketHandler callbackHandler = new TestPacketHandler();
-      callbackHandler.expectMessage(1);
-      clientDispatcher.register(callbackHandler);
-
-      TextPacket packet = new TextPacket("testSendOneWayWith2Callbacks");
-      packet.setTargetID(serverHandler.getID());
-      packet.setCallbackID(callbackHandler.getID());
-
-      PacketImpl blockingResponse = (PacketImpl) session.writeAndBlock(packet, REQRES_TIMEOUT, SECONDS);
-      assertNotNull(blockingResponse);
-      
-      assertEquals(0, callbackHandler.getPackets().size());
-      
-      assertNotNull(serverSender[0]);
-      TextPacket callbackResponse = new TextPacket("callbackResponse");
-      callbackResponse.setTargetID(callbackHandler.getID());
-      serverSender[0].send(callbackResponse);
-
-      assertTrue(callbackHandler.await(REQRES_TIMEOUT, SECONDS));
-      
-      assertEquals(1, callbackHandler.getPackets().size());
-   }
-
    public void testWriteAndBlock() throws Exception
    {
       TextPacket request = new TextPacket("testSendBlocking");
@@ -209,7 +140,7 @@
    
    public void testClientHandlePacketSentByServer() throws Exception
    {
-      TestPacketHandler clientHandler = new TestPacketHandler();
+      TestPacketHandler clientHandler = new TestPacketHandler(generateID());
       clientDispatcher.register(clientHandler);
 
       serverPacketHandler.expectMessage(1);
@@ -230,7 +161,7 @@
             "testClientHandlePacketSentByServer from server");
       packetFromServer.setTargetID(clientHandler.getID());
       sender.send(packetFromServer);
-
+      
       assertTrue(clientHandler.await(2, SECONDS));
 
       List<TextPacket> packets = clientHandler.getPackets();
@@ -246,12 +177,12 @@
    {
       serverDispatcher = startServer();
       
-      clientDispatcher = new PacketDispatcherImpl();
+      clientDispatcher = new PacketDispatcherImpl(null);
 
       connector = createNIOConnector(clientDispatcher);
       session = connector.connect();
       
-      serverPacketHandler = new ReversePacketHandler();
+      serverPacketHandler = new ReversePacketHandler(generateID());
       serverDispatcher.register(serverPacketHandler);
       
    }
@@ -276,4 +207,11 @@
    protected abstract PacketDispatcher startServer() throws Exception;
    
    protected abstract void stopServer();
+   
+   private AtomicLong idSequence = new AtomicLong(0);
+   
+   private long generateID()
+   {
+   	return idSequence.getAndIncrement();
+   }
 }

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptor.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptor.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptor.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,8 +12,8 @@
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.Interceptor;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerDeliverMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 public class DummyInterceptor implements Interceptor
 {

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptorB.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptorB.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/integration/DummyInterceptorB.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,7 +12,7 @@
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.Interceptor;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
+import org.jboss.messaging.core.remoting.Packet;
 
 public class DummyInterceptorB implements Interceptor
 {

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/invm/test/unit/INVMSessionTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -29,7 +29,7 @@
 
    // Attributes ----------------------------------------------------
 
-   PacketDispatcher serverDispatcher = new PacketDispatcherImpl();
+   PacketDispatcher serverDispatcher = new PacketDispatcherImpl(null);
    
    // Static --------------------------------------------------------
 
@@ -42,7 +42,7 @@
    @Override
    protected NIOConnector createNIOConnector(PacketDispatcher dispatcher)
    {
-      return new INVMConnector(dispatcher, serverDispatcher);
+      return new INVMConnector(1, dispatcher, serverDispatcher);
    }
    
    @Override

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ClientKeepAliveTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -16,6 +16,7 @@
 import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.KEEP_ALIVE_INTERVAL;
 import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.KEEP_ALIVE_TIMEOUT;
 import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.PORT;
+import static org.jboss.messaging.test.unit.RandomUtil.randomLong;
 import static org.jboss.messaging.test.unit.RandomUtil.randomString;
 
 import java.util.concurrent.CountDownLatch;
@@ -35,6 +36,7 @@
 import org.jboss.messaging.core.remoting.impl.mina.MinaService;
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
 import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
+import org.jboss.messaging.test.unit.RandomUtil;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -78,11 +80,11 @@
       KeepAliveFactory factory = createMock(KeepAliveFactory.class);
 
       // client never send ping
-      expect(factory.ping(isA(String.class))).andStubReturn(null);
-      expect(factory.isPing(isA(String.class), isA(Ping.class))).andStubReturn(true);
-      expect(factory.isPing(isA(String.class), isA(Object.class))).andStubReturn(false);
+      expect(factory.ping(isA(Long.class))).andStubReturn(null);
+      expect(factory.isPing(isA(Long.class), isA(Ping.class))).andStubReturn(true);
+      expect(factory.isPing(isA(Long.class), isA(Object.class))).andStubReturn(false);
       // client is responding
-      expect(factory.pong(isA(String.class), isA(Ping.class))).andReturn(new Pong(randomString(), false)).atLeastOnce();
+      expect(factory.pong(isA(Long.class), isA(Ping.class))).andReturn(new Pong(randomLong(), false)).atLeastOnce();
 
       replay(factory);
 
@@ -98,7 +100,7 @@
       };
       service.addFailureListener(listener);
 
-      MinaConnector connector = new MinaConnector(service.getConfiguration(), new PacketDispatcherImpl(), factory);
+      MinaConnector connector = new MinaConnector(service.getConfiguration(), new PacketDispatcherImpl(null), factory);
       connector.connect();
 
       boolean firedKeepAliveNotification = latch.await(KEEP_ALIVE_INTERVAL
@@ -115,7 +117,7 @@
    {
       KeepAliveFactory factory = new ClientKeepAliveFactoryNotResponding();
 
-      final String[] clientSessionIDNotResponding = new String[1];
+      final long[] clientSessionIDNotResponding = new long[1];
       final CountDownLatch latch = new CountDownLatch(1);
 
       FailureListener listener = new FailureListener() {
@@ -129,10 +131,10 @@
       };
       service.addFailureListener(listener);
       
-      MinaConnector connector = new MinaConnector(service.getConfiguration(), new PacketDispatcherImpl(), factory);
+      MinaConnector connector = new MinaConnector(service.getConfiguration(), new PacketDispatcherImpl(null), factory);
 
       NIOSession session = connector.connect();
-      String clientSessionID = session.getID();
+      long clientSessionID = session.getID();
 
       boolean firedKeepAliveNotification = latch.await(KEEP_ALIVE_INTERVAL
             + KEEP_ALIVE_TIMEOUT + 2, SECONDS);
@@ -148,17 +150,17 @@
    {
       KeepAliveFactory factory = new KeepAliveFactory()
       {
-         public Ping ping(String sessionID)
+         public Ping ping(long sessionID)
          {
             return null;
          }
          
-         public boolean isPing(String sessionID, Object message)
+         public boolean isPing(long sessionID, Object message)
          {
             return (message instanceof Ping);
          }
 
-         public synchronized Pong pong(String sessionID, Ping ping)
+         public synchronized Pong pong(long sessionID, Ping ping)
          {
             // like a TCP timeout, there is no response in the next 2 hours
             try
@@ -168,19 +170,19 @@
             {
                e.printStackTrace();
             }
-            return new Pong(randomString(), false);
+            return new Pong(randomLong(), false);
          }         
       };
 
       try
       {
          MinaConnector connector = new MinaConnector(service.getConfiguration(),
-               new PacketDispatcherImpl(), factory);
+               new PacketDispatcherImpl(null), factory);
 
          NIOSession session = connector.connect();
-         String clientSessionID = session.getID();
+         long clientSessionID = session.getID();
 
-         final String[] clientSessionIDNotResponding = new String[1];
+         final long[] clientSessionIDNotResponding = new long[1];
          final CountDownLatch latch = new CountDownLatch(1);
 
          FailureListener listener = new FailureListener() {
@@ -219,7 +221,7 @@
       KeepAliveFactory notRespondingfactory = new ClientKeepAliveFactoryNotResponding();
       KeepAliveFactory respondingfactory = new ClientKeepAliveFactory();
 
-      final String[] sessionIDNotResponding = new String[1];
+      final long[] sessionIDNotResponding = new long[1];
       final CountDownLatch latch = new CountDownLatch(1);
 
       FailureListener listener = new FailureListener() {
@@ -234,16 +236,16 @@
       service.addFailureListener(listener);
       
       MinaConnector connectorNotResponding = new MinaConnector(service
-            .getConfiguration(), new PacketDispatcherImpl(), notRespondingfactory);
+            .getConfiguration(), new PacketDispatcherImpl(null), notRespondingfactory);
       MinaConnector connectorResponding = new MinaConnector(service
-            .getConfiguration(), new PacketDispatcherImpl(), respondingfactory);
+            .getConfiguration(), new PacketDispatcherImpl(null), respondingfactory);
 
       NIOSession sessionNotResponding = connectorNotResponding.connect();
-      String clientSessionIDNotResponding = sessionNotResponding.getID();
+      long clientSessionIDNotResponding = sessionNotResponding.getID();
 
       
       NIOSession sessionResponding = connectorResponding.connect();
-      String clientSessionIDResponding = sessionResponding.getID();
+      long clientSessionIDResponding = sessionResponding.getID();
 
       boolean firedKeepAliveNotification = latch.await(KEEP_ALIVE_INTERVAL
             + KEEP_ALIVE_TIMEOUT + 2, SECONDS);
@@ -269,13 +271,13 @@
    private class ClientKeepAliveFactoryNotResponding extends ClientKeepAliveFactory
    {
       @Override
-      public Ping ping(String clientSessionID)
+      public Ping ping(long clientSessionID)
       {
          return null;
       }
 
       @Override
-      public Pong pong(String sessionID, Ping ping)
+      public Pong pong(long sessionID, Ping ping)
       {
          return null;
       }

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/FilterChainSupportTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/FilterChainSupportTest.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/FilterChainSupportTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,7 +12,7 @@
 import static org.easymock.EasyMock.verify;
 import static org.jboss.messaging.core.remoting.impl.mina.FilterChainSupport.addCodecFilter;
 import static org.jboss.messaging.core.remoting.impl.mina.FilterChainSupport.addSSLFilter;
-import static org.jboss.messaging.test.unit.RandomUtil.randomString;
+import static org.jboss.messaging.test.unit.RandomUtil.randomLong;
 
 import java.net.InetSocketAddress;
 import java.util.concurrent.CountDownLatch;
@@ -32,6 +32,7 @@
 import org.jboss.messaging.core.remoting.impl.mina.FailureNotifier;
 import org.jboss.messaging.core.remoting.impl.mina.FilterChainSupport;
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
+import org.jboss.messaging.test.unit.RandomUtil;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -119,7 +120,7 @@
       connector.setHandler(new IoHandlerAdapter());
       ConnectFuture future = connector.connect(address).awaitUninterruptibly();
       IoSession session = future.getSession();
-      session.write(new Ping(randomString()));
+      session.write(new Ping(randomLong()));
 
       boolean gotMessage = latch.await(500, MILLISECONDS);
       assertTrue(gotMessage);

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerOrderingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerOrderingTest.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerOrderingTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -12,14 +12,15 @@
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicLong;
 
 import junit.framework.TestCase;
 
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.PacketSender;
 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.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
 
@@ -99,13 +100,13 @@
    @Override
    protected void setUp() throws Exception
    {
-      clientDispatcher = new PacketDispatcherImpl();
+      clientDispatcher = new PacketDispatcherImpl(null);
       threadPool = Executors.newCachedThreadPool();
       handler = new MinaHandler(clientDispatcher, threadPool, null, true);
 
-      handler_1 = new TestPacketHandler();
+      handler_1 = new TestPacketHandler(23);
       clientDispatcher.register(handler_1);
-      handler_2 = new TestPacketHandler() {
+      handler_2 = new TestPacketHandler(24) {
         @Override
          public void handle(Packet packet, PacketSender sender)
          {
@@ -141,6 +142,6 @@
    // Protected -----------------------------------------------------
 
    // Private -------------------------------------------------------
-
+   
    // Inner classes -------------------------------------------------
 }

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaHandlerTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -85,11 +85,11 @@
    @Override
    protected void setUp() throws Exception
    {
-      clientDispatcher = new PacketDispatcherImpl();
+      clientDispatcher = new PacketDispatcherImpl(null);
       threadPool = Executors.newCachedThreadPool();
       handler = new MinaHandler(clientDispatcher, threadPool, null, true);
 
-      packetHandler = new TestPacketHandler();
+      packetHandler = new TestPacketHandler(23);
       clientDispatcher.register(packetHandler);
    }
 

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaInspectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaInspectorTest.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaInspectorTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -50,16 +50,15 @@
    public void testGetRequestIdForAbstractPacketWhichIsNotRequest()
    {
       PacketImpl packet = new PacketImpl(NULL);
-      packet.setTargetID(UUID.randomUUID().toString());
-      assertFalse(packet.isRequest());
-
+      packet.setTargetID(23);
+      assertFalse(packet.isRequest());     
       assertNull(inspector.getRequestId(packet));
    }
 
    public void testGetRequestIdForAbstractPacketWhichIsRequest()
    {
       PacketImpl packet = new PacketImpl(NULL);
-      packet.setTargetID(UUID.randomUUID().toString());
+      packet.setTargetID(23);
       packet.setCorrelationID(System.currentTimeMillis());
       assertTrue(packet.isRequest());
 

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaKeepAliveFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaKeepAliveFactoryTest.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaKeepAliveFactoryTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -58,7 +58,7 @@
    public void testResponseIsAPongWithSessionNotFailed()
    {
       IoSession session = createMock(IoSession.class);
-      String sessionID = randomString();
+      long sessionID = randomLong();
       Pong pong = new Pong(sessionID, false);
       KeepAliveFactory factory = createMock(KeepAliveFactory.class);
       FailureNotifier notifier = createMock(FailureNotifier.class);
@@ -74,8 +74,8 @@
    public void testResponseIsAPongWithSessionFailed()
    {
       IoSession session = createMock(IoSession.class);
-      String sessionID = Long.toString(randomLong());
-      expect(session.getId()).andStubReturn(Long.parseLong(sessionID));
+      long sessionID = randomLong();
+      expect(session.getId()).andStubReturn(sessionID);
       Pong pong = new Pong(sessionID, true);
       KeepAliveFactory factory = createMock(KeepAliveFactory.class);
       FailureNotifier notifier = createMock(FailureNotifier.class);

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaServiceTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaServiceTest.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaServiceTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -32,7 +32,7 @@
 
    public void testINVMConnector_OK() throws Exception
    {
-      NIOConnector connector = new INVMConnector(new PacketDispatcherImpl(), invmService.getDispatcher());
+      NIOConnector connector = new INVMConnector(1, new PacketDispatcherImpl(null), invmService.getDispatcher());
       NIOSession session = connector.connect();
 
       assertTrue(session.isConnected());
@@ -43,7 +43,7 @@
    public void testMinaConnector_Failure() throws Exception
    {
       NIOConnector connector = new MinaConnector(ConfigurationHelper.newConfiguration(
-            TCP, "localhost", 9000), new PacketDispatcherImpl());
+            TCP, "localhost", 9000), new PacketDispatcherImpl(null));
 
       try
       {

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ReversePacketHandler.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ReversePacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ReversePacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -16,8 +16,8 @@
 import junit.framework.Assert;
 
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 import org.jboss.messaging.core.remoting.test.unit.TestPacketHandler;
 
@@ -43,6 +43,11 @@
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
+   
+   public ReversePacketHandler(final long id)
+   {
+   	super(id);
+   }
 
    // Public --------------------------------------------------------
 
@@ -78,7 +83,7 @@
       }
       
       TextPacket message = (TextPacket) packet;
-      if (message.isRequest() || !NO_ID_SET.equals(message.getCallbackID()))
+      if (message.isRequest())
       {
          TextPacket response = new TextPacket(reverse(message.getText()));
          response.normalize(message);

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/ServerKeepAliveTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -68,13 +68,13 @@
       {
          // server does not send ping
          @Override
-         public Ping ping(String sessionID)
+         public Ping ping(long sessionID)
          {
             return null;
          }
 
          @Override
-         public Pong pong(String sessionID, Ping ping)
+         public Pong pong(long sessionID, Ping ping)
          {
             // no pong -> server is not responding
             super.pong(sessionID, ping);
@@ -90,8 +90,8 @@
       service.start();
 
       MinaConnector connector = new MinaConnector(service
-            .getConfiguration(), new PacketDispatcherImpl());
-      final String[] sessionIDNotResponding = new String[1];
+            .getConfiguration(), new PacketDispatcherImpl(null));
+      final long[] sessionIDNotResponding = new long[1];
       final CountDownLatch latch = new CountDownLatch(1);
 
       FailureListener listener = new FailureListener()
@@ -123,13 +123,13 @@
       {
          // server does not send ping
          @Override
-         public Ping ping(String sessionID)
+         public Ping ping(long sessionID)
          {
             return null;
          }
 
          @Override
-         public Pong pong(String sessionID, Ping ping)
+         public Pong pong(long sessionID, Ping ping)
          {
             // no pong -> server is not responding
             super.pong(sessionID, ping);
@@ -145,8 +145,8 @@
       service.start();
 
       MinaConnector connector = new MinaConnector(service
-            .getConfiguration(), new PacketDispatcherImpl());
-      final String[] sessionIDNotResponding = new String[1];
+            .getConfiguration(), new PacketDispatcherImpl(null));
+      final long[] sessionIDNotResponding = new long[1];
       final CountDownLatch latch = new CountDownLatch(1);
 
       FailureListener listener = new FailureListener()

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/stress/PacketStressTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -18,6 +18,7 @@
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.remoting.NIOConnector;
 import org.jboss.messaging.core.remoting.NIOSession;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
 import org.jboss.messaging.core.remoting.impl.ConfigurationHelper;
@@ -26,7 +27,6 @@
 import org.jboss.messaging.core.remoting.impl.mina.MinaService;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.BytesPacket;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -59,7 +59,7 @@
       Configuration config = ConfigurationHelper.newConfiguration(TCP, "localhost", PORT);
       service = new MinaService(config);
       service.start();
-      connector = new MinaConnector(config, new PacketDispatcherImpl());
+      connector = new MinaConnector(config, new PacketDispatcherImpl(null));
       
    }
    
@@ -83,7 +83,7 @@
       System.out.println();
       
       
-      final String handlerID = randomUUID().toString();
+      final long handlerID = 12346;
       CountDownLatch latch = new CountDownLatch(1);
       
       service.getDispatcher().register(new ServerHandler(handlerID, latch, spinner));
@@ -135,12 +135,12 @@
 
    private final class ServerHandler implements PacketHandler
    {
-      private final String handlerID;
+      private final long handlerID;
       private CountDownLatch latch;
       private int messagesReceived;
       private int spinner;
 
-      private ServerHandler(String handlerID, CountDownLatch latch, int spinner)
+      private ServerHandler(long handlerID, CountDownLatch latch, int spinner)
       {
          this.handlerID = handlerID;
          this.latch = latch;
@@ -148,7 +148,7 @@
          messagesReceived = 0;
       }
 
-      public String getID()
+      public long getID()
       {
          return handlerID;
       }

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/wireformat/test/unit/PacketTypeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/wireformat/test/unit/PacketTypeTest.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/wireformat/test/unit/PacketTypeTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -92,6 +92,7 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.message.impl.MessageImpl;
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
 import org.jboss.messaging.core.remoting.impl.codec.BytesPacketCodec;
 import org.jboss.messaging.core.remoting.impl.codec.ConnectionCreateSessionMessageCodec;
@@ -149,7 +150,6 @@
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
 import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
@@ -270,66 +270,19 @@
    private static void checkHeader(SimpleRemotingBuffer buffer,
          PacketImpl packet) throws Exception
    {
-      checkHeaderBytes(packet, buffer.buffer().buf());
-
       assertEquals(buffer.get(), packet.getType().byteValue());
 
-      String targetID = (packet.getTargetID().equals(NO_ID_SET) ? null : packet
-            .getTargetID());
-      String callbackID = (packet.getCallbackID().equals(NO_ID_SET) ? null
-            : packet.getCallbackID());
-      String executorID = (packet.getExecutorID().equals(NO_ID_SET) ? null
-            : packet.getExecutorID());
-
-      int headerLength = LONG_LENGTH + sizeof(targetID) + sizeof(callbackID) + sizeof(executorID)
-            + BOOLEAN_LENGTH;
-      assertEquals(buffer.getInt(), headerLength);
-      assertEquals(buffer.getLong(), packet.getCorrelationID());
-
-      String bufferTargetID = buffer.getNullableString();
-      if (bufferTargetID == null)
-         bufferTargetID = NO_ID_SET;
-      String bufferCallbackID = buffer.getNullableString();
-      if (bufferCallbackID == null)
-         bufferCallbackID = NO_ID_SET;
-      String bufferExecutorID = buffer.getNullableString();
-      if (bufferExecutorID == null)
-         bufferExecutorID = NO_ID_SET;
+      long correlationID = buffer.getLong();
+      long targetID = buffer.getLong();
+      long executorID = buffer.getLong();
       boolean oneWay = buffer.getBoolean();
 
-      assertEquals(bufferTargetID, packet.getTargetID());
-      assertEquals(bufferCallbackID, packet.getCallbackID());
-      assertEquals(bufferExecutorID, packet.getExecutorID());
+      assertEquals(packet.getCorrelationID(), correlationID);
+      assertEquals(packet.getTargetID(), targetID);
+      assertEquals(packet.getExecutorID(), executorID);
       assertEquals(oneWay, packet.isOneWay());
    }
 
-   private static void checkHeaderBytes(PacketImpl packet, ByteBuffer actual)
-   {
-      String targetID = (packet.getTargetID().equals(NO_ID_SET) ? null : packet
-            .getTargetID());
-      String callbackID = (packet.getCallbackID().equals(NO_ID_SET) ? null
-            : packet.getCallbackID());
-      String executorID = (packet.getExecutorID().equals(NO_ID_SET) ? null
-            : packet.getExecutorID());
-
-      int headerLength = LONG_LENGTH + sizeof(targetID) + sizeof(callbackID) + sizeof(executorID)
-            + BOOLEAN_LENGTH;
-      ByteBuffer expected = ByteBuffer.allocate(1 + 1 + INT_LENGTH
-            + headerLength);
-      expected.put(packet.getType().byteValue());
-
-      expected.putInt(headerLength);
-      expected.putLong(packet.getCorrelationID());
-      putNullableString(targetID, expected);
-      putNullableString(callbackID, expected);
-      putNullableString(executorID, expected);
-      expected.put(packet.isOneWay() ? TRUE : FALSE);
-      expected.flip();
-
-      assertEqualsByteArrays(expected.remaining(), expected.array(), actual
-            .array());
-   }
-
    private static void checkBodyIsEmpty(RemotingBuffer buffer)
    {
       assertEquals(0, buffer.getInt());
@@ -354,10 +307,9 @@
    public void testNullPacket() throws Exception
    {
       PacketImpl packet = new PacketImpl(NULL);
-      packet.setCallbackID(randomString());
       packet.setCorrelationID(randomLong());
-      packet.setTargetID(randomString());
-      packet.setExecutorID(randomString());
+      packet.setTargetID(randomLong());
+      packet.setExecutorID(randomLong());
 
       AbstractPacketCodec<Packet> codec = PacketCodecFactory
             .createCodecForEmptyPacket(NULL);
@@ -369,14 +321,13 @@
       Packet decodedPacket = codec.decode(buffer);
 
       assertEquals(NULL, decodedPacket.getType());
-      assertEquals(packet.getCallbackID(), decodedPacket.getCallbackID());
       assertEquals(packet.getCorrelationID(), decodedPacket.getCorrelationID());
       assertEquals(packet.getTargetID(), decodedPacket.getTargetID());
    }
 
    public void testPing() throws Exception
    {
-      Ping ping = new Ping(randomString());
+      Ping ping = new Ping(randomLong());
       AbstractPacketCodec<Ping> codec = new PingCodec();
       
       SimpleRemotingBuffer buffer = encode(ping, codec);
@@ -394,7 +345,7 @@
 
    public void testPong() throws Exception
    {
-      Pong pong = new Pong(randomString(), true);
+      Pong pong = new Pong(randomLong(), true);
       AbstractPacketCodec<Pong> codec = new PongCodec();
       
       SimpleRemotingBuffer buffer = encode(pong, codec);
@@ -452,7 +403,7 @@
    public void testCreateConnectionRequest() throws Exception
    {
       int version = randomInt();
-      String remotingSessionID = randomString();
+      long remotingSessionID = randomLong();
       String clientVMID = randomString();
       String username = null;
       String password = null;
@@ -482,13 +433,12 @@
 
    public void testCreateConnectionResponse() throws Exception
    {
-      CreateConnectionResponse response = new CreateConnectionResponse(
-            randomString());
+      CreateConnectionResponse response = new CreateConnectionResponse(randomLong());
 
       AbstractPacketCodec<CreateConnectionResponse> codec = new CreateConnectionResponseMessageCodec();
       SimpleRemotingBuffer buffer = encode(response, codec);
       checkHeader(buffer, response);
-      checkBody(buffer, response.getConnectionID());
+      checkBody(buffer, response.getConnectionTargetID());
       buffer.rewind();
 
       Packet decodedPacket = codec.decode(buffer);
@@ -496,8 +446,7 @@
       assertTrue(decodedPacket instanceof CreateConnectionResponse);
       CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
       assertEquals(CREATECONNECTION_RESP, decodedResponse.getType());
-      assertEquals(response.getConnectionID(), decodedResponse
-            .getConnectionID());
+      assertEquals(response.getConnectionTargetID(), decodedResponse.getConnectionTargetID());
    }
 
    public void testCreateSessionRequest() throws Exception
@@ -525,7 +474,7 @@
 
    public void testCreateSessionResponse() throws Exception
    {
-      ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(randomString());
+      ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(randomLong());
 
       AbstractPacketCodec codec = new ConnectionCreateSessionResponseMessageCodec();
       SimpleRemotingBuffer buffer = encode(response, codec);
@@ -590,12 +539,12 @@
    public void testCreateConsumerResponse() throws Exception
    {
       SessionCreateConsumerResponseMessage response =
-      	new SessionCreateConsumerResponseMessage(randomString(), randomInt());
+      	new SessionCreateConsumerResponseMessage(randomLong(), randomInt());
 
       AbstractPacketCodec codec = new SessionCreateConsumerResponseMessageCodec();
       SimpleRemotingBuffer buffer = encode(response, codec);
       checkHeader(buffer, response);
-      checkBody(buffer, response.getConsumerID(), response.getWindowSize());
+      checkBody(buffer, response.getConsumerTargetID(), response.getWindowSize());
       buffer.rewind();
 
       Packet decodedPacket = codec.decode(buffer);
@@ -604,7 +553,7 @@
       SessionCreateConsumerResponseMessage decodedResponse = (SessionCreateConsumerResponseMessage) decodedPacket;
       assertEquals(SESS_CREATECONSUMER_RESP, decodedResponse.getType());
       
-      assertEquals(response.getConsumerID(), decodedResponse.getConsumerID());
+      assertEquals(response.getConsumerTargetID(), decodedResponse.getConsumerTargetID());
       assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
    }
    
@@ -634,12 +583,12 @@
    public void testCreateProducerResponse() throws Exception
    {
       SessionCreateProducerResponseMessage response =
-      	new SessionCreateProducerResponseMessage(randomString(), randomInt(), randomInt());
+      	new SessionCreateProducerResponseMessage(randomLong(), randomInt(), randomInt());
 
       AbstractPacketCodec codec = new SessionCreateProducerResponseMessageCodec();
       SimpleRemotingBuffer buffer = encode(response, codec);
       checkHeader(buffer, response);
-      checkBody(buffer, response.getProducerID(), response.getWindowSize(), response.getMaxRate());
+      checkBody(buffer, response.getProducerTargetID(), response.getWindowSize(), response.getMaxRate());
       buffer.rewind();
 
       Packet decodedPacket = codec.decode(buffer);
@@ -647,7 +596,7 @@
       assertTrue(decodedPacket instanceof SessionCreateProducerResponseMessage);
       SessionCreateProducerResponseMessage decodedResponse = (SessionCreateProducerResponseMessage) decodedPacket;
       assertEquals(SESS_CREATEPRODUCER_RESP, decodedResponse.getType());
-      assertEquals(response.getProducerID(), decodedResponse.getProducerID());
+      assertEquals(response.getProducerTargetID(), decodedResponse.getProducerTargetID());
       assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
       assertEquals(response.getMaxRate(), decodedResponse.getMaxRate());
    }
@@ -870,12 +819,12 @@
 
    public void testCreateBrowserResponse() throws Exception
    {
-      SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(randomString());
+      SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(randomLong());
 
       AbstractPacketCodec codec = new SessionCreateBrowserResponseMessageCodec();
       SimpleRemotingBuffer buffer = encode(response, codec);
       checkHeader(buffer, response);
-      checkBody(buffer, response.getBrowserID());
+      checkBody(buffer, response.getBrowserTargetID());
       buffer.rewind();
 
       Packet decodedPacket = codec.decode(buffer);
@@ -883,7 +832,7 @@
       assertTrue(decodedPacket instanceof SessionCreateBrowserResponseMessage);
       SessionCreateBrowserResponseMessage decodedResponse = (SessionCreateBrowserResponseMessage) decodedPacket;
       assertEquals(SESS_CREATEBROWSER_RESP, decodedResponse.getType());
-      assertEquals(response.getBrowserID(), decodedResponse.getBrowserID());
+      assertEquals(response.getBrowserTargetID(), decodedResponse.getBrowserTargetID());
    }
 
    public void testBrowserResetMessage() throws Exception

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -44,7 +44,7 @@
    protected void setUp() throws Exception
    {
       registry = new ConnectorRegistryImpl();
-      dispatcher = new PacketDispatcherImpl();
+      dispatcher = new PacketDispatcherImpl(null);
       assertEquals(0, registry.getRegisteredConfigurationSize());
    }
    
@@ -73,8 +73,8 @@
    {
       Configuration config_1 = ConfigurationHelper.newConfiguration(TCP, "localhost", PORT);
       Configuration config_2 = ConfigurationHelper.newConfiguration(TCP, "localhost", PORT + 1);     
-      PacketDispatcher dispatcher_1 = new PacketDispatcherImpl();      
-      PacketDispatcher dispatcher_2 = new PacketDispatcherImpl();
+      PacketDispatcher dispatcher_1 = new PacketDispatcherImpl(null);      
+      PacketDispatcher dispatcher_2 = new PacketDispatcherImpl(null);
       
       assertTrue(registry.register(config_1, dispatcher_1));
       assertTrue(registry.register(config_2, dispatcher_2));

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-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/PacketDispatcherTest.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -6,12 +6,12 @@
  */
 package org.jboss.messaging.core.remoting.test.unit;
 
-import static java.util.UUID.randomUUID;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.test.unit.RandomUtil.randomLong;
 import junit.framework.TestCase;
 
 import org.jboss.messaging.core.remoting.PacketHandler;
@@ -45,7 +45,7 @@
    @Override
    protected void setUp() throws Exception
    {
-      dispatcher = new PacketDispatcherImpl();
+      dispatcher = new PacketDispatcherImpl(null);
    }
 
    @Override
@@ -57,7 +57,7 @@
    public void testUnregisterAnUnregisteredHandlerReturnsNull() throws Exception
    {
       PacketHandler handler = createMock(PacketHandler.class);
-      String id = randomUUID().toString();
+      long id = randomLong();
       
       replay(handler);
       
@@ -70,7 +70,7 @@
    public void testRegisterAndUnregisterValidHandler() throws Exception
    {
       PacketHandler handler = createMock(PacketHandler.class);
-      String id = randomUUID().toString();
+      long id = randomLong();
       expect(handler.getID()).andReturn(id).anyTimes();
       
       replay(handler);
@@ -93,7 +93,7 @@
       
       TextPacket packet = new TextPacket("testDispatch");
       
-      String id = randomUUID().toString();
+      long id = randomLong();
       expect(handler.getID()).andStubReturn(id);
       handler.handle(packet, sender);
       expectLastCall().once();
@@ -119,7 +119,7 @@
       PacketHandlerRegistrationListener listener = createMock(PacketHandlerRegistrationListener.class);
       PacketHandler handler = createMock(PacketHandler.class);
 
-      String id = randomUUID().toString();
+      long id = randomLong();
       expect(handler.getID()).andStubReturn(id);
       listener.handlerRegistered(id);
       expectLastCall().once();

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java	2008-04-14 11:54:08 UTC (rev 4045)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/TestPacketHandler.java	2008-04-14 13:50:43 UTC (rev 4046)
@@ -8,29 +8,27 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.UUID;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketHandler;
 import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.Packet;
 import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 
 public class TestPacketHandler implements PacketHandler
 {
-   private final String id;
+   private final long id;
    private final List<TextPacket> packets;
    private CountDownLatch latch;
    
-   public TestPacketHandler()
+   public TestPacketHandler(final long id)
    {
-      this.id = UUID.randomUUID().toString();
+      this.id = id;
       packets = new ArrayList<TextPacket>();
    }
 
-   public String getID()
+   public long getID()
    {
       return id;
    }




More information about the jboss-cvs-commits mailing list