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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri May 9 04:49:49 EDT 2008


Author: timfox
Date: 2008-05-09 04:49:49 -0400 (Fri, 09 May 2008)
New Revision: 4164

Added:
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/EmptyPacket.java
Removed:
   trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketType.java
Modified:
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.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/remoting/Packet.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/BytesPacket.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConsumerFlowTokenMessage.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/MessagingExceptionMessage.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/ProducerReceiveTokensMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerSendMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReceiveMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAcknowledgeMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBrowserHasNextMessageResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCancelMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAEndMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAForgetMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetInDoubtXidsResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetTimeoutResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAJoinMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAPrepareMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResumeMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXARollbackMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutResponseMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAStartMessage.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/TextPacket.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/ServerConnectionPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java
   trunk/src/main/org/jboss/messaging/util/ByteBufferWrapper.java
   trunk/src/main/org/jboss/messaging/util/MessagingBuffer.java
   trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/MessageProducerTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/MinaSessionTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/ReversePacketHandler.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/SessionTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
Log:
Codec refactoring part I


Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientBrowserImpl.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,15 +21,10 @@
   */
 package org.jboss.messaging.core.client.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_RESET;
-
 import org.jboss.messaging.core.client.ClientBrowser;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.ReceiveMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
 
@@ -81,7 +76,7 @@
       
       try
       {
-         remotingConnection.sendBlocking(serverTargetID, session.getServerTargetID(), new PacketImpl(CLOSE));
+         remotingConnection.sendBlocking(serverTargetID, session.getServerTargetID(), new EmptyPacket(EmptyPacket.CLOSE));
       }
       finally
       {
@@ -100,7 +95,7 @@
    {
       checkClosed();
       
-      remotingConnection.sendBlocking(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_RESET));
+      remotingConnection.sendBlocking(serverTargetID, session.getServerTargetID(), new EmptyPacket(EmptyPacket.SESS_BROWSER_RESET));
    }
 
    public boolean hasNextMessage() throws MessagingException
@@ -108,7 +103,7 @@
       checkClosed();
       
       SessionBrowserHasNextMessageResponseMessage response =
-         (SessionBrowserHasNextMessageResponseMessage)remotingConnection.sendBlocking(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_HASNEXTMESSAGE));
+         (SessionBrowserHasNextMessageResponseMessage)remotingConnection.sendBlocking(serverTargetID, session.getServerTargetID(), new EmptyPacket(EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE));
       
       return response.hasNext();
    }
@@ -118,7 +113,7 @@
       checkClosed();
       
       ReceiveMessage response =
-         (ReceiveMessage)remotingConnection.sendBlocking(serverTargetID, session.getServerTargetID(), new PacketImpl(SESS_BROWSER_NEXTMESSAGE));
+         (ReceiveMessage)remotingConnection.sendBlocking(serverTargetID, session.getServerTargetID(), new EmptyPacket(EmptyPacket.SESS_BROWSER_NEXTMESSAGE));
       
       return response.getClientMessage();
    }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionImpl.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,10 +21,6 @@
   */
 package org.jboss.messaging.core.client.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-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 java.util.HashSet;
 import java.util.Set;
 
@@ -34,7 +30,7 @@
 import org.jboss.messaging.core.logging.Logger;
 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.core.remoting.impl.wireformat.EmptyPacket;
 import org.jboss.messaging.core.version.Version;
 import org.jboss.messaging.util.ConcurrentHashSet;
 
@@ -138,14 +134,14 @@
    {
       checkClosed();
        
-      remotingConnection.sendOneWay(serverTargetID, serverTargetID, new PacketImpl(CONN_START));
+      remotingConnection.sendOneWay(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.CONN_START));
    }
    
    public void stop() throws MessagingException
    {
       checkClosed();
       
-      remotingConnection.sendBlocking(serverTargetID, serverTargetID, new PacketImpl(CONN_STOP));
+      remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.CONN_STOP));
    }
 
    public void setRemotingSessionListener(final RemotingSessionListener listener) throws MessagingException
@@ -166,7 +162,7 @@
       {
          closeChildren();
          
-         remotingConnection.sendBlocking(serverTargetID, serverTargetID, new PacketImpl(CLOSE));
+         remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.CLOSE));
       }
       finally
       {

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerImpl.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,8 +21,6 @@
  */
 package org.jboss.messaging.core.client.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
@@ -34,7 +32,7 @@
 import org.jboss.messaging.core.list.impl.PriorityLinkedListImpl;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -260,7 +258,7 @@
          
          receiverThread = null;
 
-         remotingConnection.sendBlocking(targetID, session.getServerTargetID(), new PacketImpl(CLOSE));
+         remotingConnection.sendBlocking(targetID, session.getServerTargetID(), new EmptyPacket(EmptyPacket.CLOSE));
 
          remotingConnection.getPacketDispatcher().unregister(clientTargetID);
       }

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConsumerPacketHandler.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -1,13 +1,11 @@
 package org.jboss.messaging.core.client.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.RECEIVE_MSG;
-
 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.EmptyPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.ReceiveMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -39,9 +37,9 @@
    {
       try
       {
-         PacketType type = packet.getType();
+         byte type = packet.getType();
          
-         if (type == RECEIVE_MSG)
+         if (type == EmptyPacket.RECEIVE_MSG)
          {
             ReceiveMessage message = (ReceiveMessage) packet;
             

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientProducerPacketHandler.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -1,12 +1,10 @@
 package org.jboss.messaging.core.client.impl;
 
-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.PacketType;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
 
 /**
@@ -40,9 +38,9 @@
    {
       try
       {
-         PacketType type = packet.getType();
+         byte type = packet.getType();
          
-         if (type == PROD_RECEIVETOKENS)
+         if (type == EmptyPacket.PROD_RECEIVETOKENS)
          {
             ProducerReceiveTokensMessage message = (ProducerReceiveTokensMessage) packet;
             

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,13 +21,6 @@
   */
 package org.jboss.messaging.core.client.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SUSPEND;
-
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -47,7 +40,7 @@
 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.PacketImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
@@ -368,7 +361,7 @@
         
       acknowledgeInternal(false);
       
-      remotingConnection.sendBlocking(serverTargetID, serverTargetID, new PacketImpl(SESS_COMMIT));
+      remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.SESS_COMMIT));
       
       lastCommittedID = lastID;
    }
@@ -396,7 +389,7 @@
 
       toAckCount = 0;
 
-      remotingConnection.sendBlocking(serverTargetID, serverTargetID, new PacketImpl(SESS_ROLLBACK));   
+      remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.SESS_ROLLBACK));   
    }
    
    public void acknowledge() throws MessagingException
@@ -457,7 +450,7 @@
          
          acknowledgeInternal(false);      
          
-         remotingConnection.sendBlocking(serverTargetID, serverTargetID, new PacketImpl(CLOSE));            
+         remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.CLOSE));            
       }
       finally
       {
@@ -569,7 +562,7 @@
          
          if (flags == XAResource.TMSUSPEND)
          {
-            packet = new PacketImpl(SESS_XA_SUSPEND);                  
+            packet = new EmptyPacket(EmptyPacket.SESS_XA_SUSPEND);                  
          }
          else if (flags == XAResource.TMSUCCESS)
          {
@@ -628,7 +621,7 @@
       try
       {                              
          SessionXAGetTimeoutResponseMessage response =
-            (SessionXAGetTimeoutResponseMessage)remotingConnection.sendBlocking(serverTargetID, serverTargetID, new PacketImpl(SESS_XA_GET_TIMEOUT));
+            (SessionXAGetTimeoutResponseMessage)remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.SESS_XA_GET_TIMEOUT));
          
          return response.getTimeoutSeconds();
       }
@@ -686,7 +679,7 @@
    {
       try
       {
-         SessionXAGetInDoubtXidsResponseMessage response = (SessionXAGetInDoubtXidsResponseMessage)remotingConnection.sendBlocking(serverTargetID, serverTargetID, new PacketImpl(SESS_XA_INDOUBT_XIDS));
+         SessionXAGetInDoubtXidsResponseMessage response = (SessionXAGetInDoubtXidsResponseMessage)remotingConnection.sendBlocking(serverTargetID, serverTargetID, new EmptyPacket(EmptyPacket.SESS_XA_INDOUBT_XIDS));
          
          List<Xid> xids = response.getXids();
          

Modified: trunk/src/main/org/jboss/messaging/core/remoting/Packet.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/Packet.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/Packet.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -7,7 +7,7 @@
 
 package org.jboss.messaging.core.remoting;
 
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * 
@@ -27,7 +27,7 @@
 
    long getResponseTargetID();
 
-   PacketType getType();
+   byte getType();
 
    long getTargetID();
 
@@ -39,8 +39,7 @@
    
    void normalize(Packet other);
 
-   /**
-    * An AbstractPacket is a request if it has a target ID and a correlation ID
-    */
-   public boolean isRequest();
+   void encode(MessagingBuffer buffer) throws Exception;
+      
+   void decode(MessagingBuffer buffer) throws Exception;
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -127,6 +127,11 @@
    {
       buffer.putInt(intValue);
    }
+   
+   public void putInt(final int pos, final int intValue)
+   {
+      buffer.putInt(pos, intValue);
+   }
 
    public void putLong(final long longValue)
    {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,20 +8,12 @@
 
 import static org.apache.mina.common.IdleStatus.BOTH_IDLE;
 import static org.apache.mina.filter.keepalive.KeepAliveRequestTimeoutHandler.EXCEPTION;
-import static org.apache.mina.filter.logging.LogLevel.TRACE;
-import static org.apache.mina.filter.logging.LogLevel.WARN;
 
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-
 import javax.net.ssl.SSLContext;
 
 import org.apache.mina.common.DefaultIoFilterChainBuilder;
 import org.apache.mina.filter.codec.ProtocolCodecFilter;
 import org.apache.mina.filter.keepalive.KeepAliveFilter;
-import org.apache.mina.filter.logging.LoggingFilter;
-import org.apache.mina.filter.logging.MdcInjectionFilter;
-import org.apache.mina.filter.reqres.RequestResponseFilter;
 import org.apache.mina.filter.ssl.SslFilter;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.KeepAliveFactory;
@@ -52,7 +44,7 @@
    {
       assert filterChain != null;
 
-      filterChain.addLast("codec", new ProtocolCodecFilter(new PacketCodecFactory()));
+      filterChain.addLast("codec", new ProtocolCodecFilter(new MessagingCodec()));
    }
    
    public static void addKeepAliveFilter(final DefaultIoFilterChainBuilder filterChain,

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,21 +6,72 @@
  */
 package org.jboss.messaging.core.remoting.impl.mina;
 
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.BYTES;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CLOSE;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CREATECONNECTION;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CREATECONNECTION_RESP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.EXCEPTION;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.NULL;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.PING;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.PONG;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.TEXT;
 import static org.jboss.messaging.util.DataConstants.SIZE_INT;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.mina.common.IoBuffer;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
+import org.apache.mina.filter.codec.ProtocolCodecFactory;
+import org.apache.mina.filter.codec.ProtocolDecoder;
 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
 import org.apache.mina.filter.codec.ProtocolEncoder;
 import org.apache.mina.filter.codec.ProtocolEncoderOutput;
 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.wireformat.PacketType;
+import org.jboss.messaging.core.remoting.impl.wireformat.BytesPacket;
+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.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.EmptyPacket;
+import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
+import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
+import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.ReceiveMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionCancelMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateQueueMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionDeleteQueueMessage;
+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.SessionRemoveDestinationMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXACommitMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAEndMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAForgetMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetInDoubtXidsResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetTimeoutResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAJoinMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAPrepareMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResumeMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXARollbackMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutResponseMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAStartMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * 
@@ -29,13 +80,25 @@
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  */
-public class MessagingCodec extends CumulativeProtocolDecoder implements
-      ProtocolEncoder
+public class MessagingCodec extends CumulativeProtocolDecoder
+   implements ProtocolEncoder, ProtocolCodecFactory
 {
    private static final Logger log = Logger.getLogger(MessagingCodec.class);
 
-   private final Map<PacketType, AbstractPacketCodec<?>> codecs = new HashMap<PacketType, AbstractPacketCodec<?>>();
+   // ProtocolCodecFactory implementation
+   // -----------------------------------------------------------------------------------
 
+   public ProtocolDecoder getDecoder(final IoSession session)
+   {
+      return this;
+   }
+
+   public ProtocolEncoder getEncoder(final IoSession session)
+   {
+      return this;
+   }
+
+   
    // ProtocolEncoder implementation ------------------------------------------
 
    public void dispose(final IoSession session) throws Exception
@@ -46,28 +109,27 @@
          final ProtocolEncoderOutput out) throws Exception
    {
       Packet packet = (Packet) message;
+      
+      IoBuffer iobuf = IoBuffer.allocate(1024, false);
+      
+      iobuf.setAutoExpand(true);
+      
+      MessagingBuffer buffer = new BufferWrapper(iobuf);
 
-      AbstractPacketCodec codec = codecs.get(packet.getType());
-
-      if (codec == null)
-      {
-         throw new IllegalStateException("no encoder has been registered for "
-               + packet);
-      }
-
-      codec.encode(packet, out);
+      packet.encode(buffer);
+      
+      out.write(iobuf);
    }
+      
+   // CumulativeProtocolDecoder overrides
+   // -------------------------------------------------------------------------------------
 
-   // CumulativeProtocolDecoder overrides -------------------------------------
-
-   protected boolean doDecode(final IoSession session, final IoBuffer in,
-         final ProtocolDecoderOutput out) throws Exception
+   protected boolean doDecode(final IoSession session, final IoBuffer in, final ProtocolDecoderOutput out) throws Exception
    {
       int start = in.position();
 
       if (in.remaining() <= SIZE_INT)
       {
-         in.position(start);
          return false;
       }
 
@@ -76,39 +138,322 @@
       if (in.remaining() < length)
       {
          in.position(start);
+         
          return false;
       }
 
       int limit = in.limit();
       in.limit(in.position() + length);
-      byte byteType = in.get();
-      PacketType packetType = PacketType.from(byteType);
-
+      
+      byte packetType = in.get();
+      
+      Packet packet;
+      
       try
       {
-         AbstractPacketCodec codec = codecs.get(packetType);
-
-         if (codec == null)
+         switch (packetType)
          {
-            throw new IllegalStateException(
-                  "no decoder has been registered for " + packetType);
+            case NULL:
+            {
+               packet = new EmptyPacket(EmptyPacket.NULL);
+               break;
+            }
+            case TEXT:
+            {
+               //TODO get rid of this!!!
+               packet = new TextPacket();
+               break;
+            }
+            case BYTES:
+            {
+               //TODO get rid of this!!!
+               packet = new BytesPacket();
+               break;
+            }
+            case PING:
+            {
+               packet = new Ping();
+               break;
+            }
+            case PONG:
+            {
+               packet = new Pong();
+               break;
+            }
+            case EXCEPTION:
+            {
+               packet = new MessagingExceptionMessage();
+               break;
+            }
+            case CLOSE:
+            {
+               packet = new EmptyPacket(EmptyPacket.CLOSE);
+               break;
+            }
+            case CREATECONNECTION:
+            {
+               packet = new CreateConnectionRequest();
+               break;
+            }
+            case CREATECONNECTION_RESP:
+            {           
+               packet = new CreateConnectionResponse();
+               break;
+            }
+            case EmptyPacket.CONN_CREATESESSION:
+            {
+               packet = new ConnectionCreateSessionMessage();
+               break;
+            }
+            case EmptyPacket.CONN_CREATESESSION_RESP:
+            {
+               packet = new ConnectionCreateSessionResponseMessage();
+               break;
+            }
+            case EmptyPacket.CONN_START:
+            {              
+               packet = new EmptyPacket(EmptyPacket.CONN_START);
+               break;
+            }
+            case EmptyPacket.CONN_STOP:
+            {            
+               packet = new EmptyPacket(EmptyPacket.CONN_STOP);
+               break;
+            }
+            case EmptyPacket.SESS_CREATECONSUMER:
+            {
+               packet = new SessionCreateConsumerMessage();
+               break;
+            }
+            case EmptyPacket.SESS_CREATECONSUMER_RESP:
+            {
+               packet = new SessionCreateConsumerResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_CREATEPRODUCER:
+            {     
+               packet = new SessionCreateProducerMessage();
+               break;
+            }
+            case EmptyPacket.SESS_CREATEPRODUCER_RESP:
+            {       
+               packet = new SessionCreateProducerResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_CREATEBROWSER:
+            {        
+               packet = new SessionCreateBrowserMessage();
+               break;
+            }
+            case EmptyPacket.SESS_CREATEBROWSER_RESP:
+            {
+               packet = new SessionCreateBrowserResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_ACKNOWLEDGE:
+            {            
+               packet = new SessionAcknowledgeMessage();
+               break;
+            }
+            case EmptyPacket.SESS_RECOVER:
+            {     
+               packet = new EmptyPacket(EmptyPacket.SESS_RECOVER);
+               break;
+            }
+            case EmptyPacket.SESS_COMMIT:
+            {             
+               packet = new EmptyPacket(EmptyPacket.SESS_COMMIT);
+               break;
+            }
+            case EmptyPacket.SESS_ROLLBACK:
+            {              
+               packet = new EmptyPacket(EmptyPacket.SESS_ROLLBACK);
+               break;
+            }
+            case EmptyPacket.SESS_CANCEL:
+            {        
+               packet = new SessionCancelMessage();
+               break;
+            }
+            case EmptyPacket.SESS_QUEUEQUERY:
+            {
+               packet = new SessionQueueQueryMessage();
+               break;
+            }
+            case EmptyPacket.SESS_QUEUEQUERY_RESP:
+            {
+               packet = new SessionQueueQueryResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_CREATEQUEUE:
+            {
+               packet = new SessionCreateQueueMessage();
+               break;
+            }
+            case EmptyPacket.SESS_DELETE_QUEUE:
+            {
+               packet = new SessionDeleteQueueMessage();
+               break;
+            }
+            case EmptyPacket.SESS_ADD_DESTINATION:
+            {
+               packet = new SessionAddDestinationMessage();
+               break;
+            }
+            case EmptyPacket.SESS_REMOVE_DESTINATION:
+            {
+               packet = new SessionRemoveDestinationMessage();
+               break;
+            }
+            case EmptyPacket.SESS_BINDINGQUERY:
+            {
+               packet = new SessionBindingQueryMessage();
+               break;
+            }
+            case EmptyPacket.SESS_BINDINGQUERY_RESP:
+            {
+               packet = new SessionBindingQueryResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_BROWSER_RESET:
+            {
+               packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_RESET);
+               break;
+            }
+            case EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE:
+            {
+               packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE);
+               break;
+            }
+            case EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE_RESP:
+            {
+               packet = new SessionBrowserHasNextMessageResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_BROWSER_NEXTMESSAGE:
+            {
+               packet = new EmptyPacket(EmptyPacket.SESS_BROWSER_NEXTMESSAGE);
+               break;
+            }
+            case EmptyPacket.SESS_XA_START:
+            {
+               packet = new SessionXAStartMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_END:
+            {
+               packet = new SessionXAEndMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_COMMIT:
+            {
+               packet = new SessionXACommitMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_PREPARE:
+            {
+               packet = new SessionXAPrepareMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_RESP:
+            {
+               packet = new SessionXAResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_ROLLBACK:
+            {
+               packet = new SessionXARollbackMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_JOIN:
+            {
+               packet = new SessionXAJoinMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_SUSPEND:
+            {
+               packet = new EmptyPacket(EmptyPacket.SESS_XA_SUSPEND);
+               break;
+            }
+            case EmptyPacket.SESS_XA_RESUME:
+            {             
+               packet = new SessionXAResumeMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_FORGET:
+            {
+               packet = new SessionXAForgetMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_INDOUBT_XIDS:
+            {
+               packet = new EmptyPacket(EmptyPacket.SESS_XA_INDOUBT_XIDS);
+               break;
+            }
+            case EmptyPacket.SESS_XA_INDOUBT_XIDS_RESP:
+            {
+               packet = new SessionXAGetInDoubtXidsResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_SET_TIMEOUT:
+            {
+               packet = new SessionXASetTimeoutMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_SET_TIMEOUT_RESP:
+            {
+               packet = new SessionXASetTimeoutResponseMessage();
+               break;
+            }
+            case EmptyPacket.SESS_XA_GET_TIMEOUT:
+            {
+               packet = new EmptyPacket(EmptyPacket.SESS_XA_GET_TIMEOUT);
+               break;
+            }
+            case EmptyPacket.SESS_XA_GET_TIMEOUT_RESP:
+            {
+               packet = new SessionXAGetTimeoutResponseMessage();
+               break;
+            }
+            case EmptyPacket.CONS_FLOWTOKEN:
+            {
+               packet = new ConsumerFlowTokenMessage();
+               break;
+            }
+            case EmptyPacket.PROD_SEND:
+            {
+               packet = new ProducerSendMessage();
+               break;
+            }
+            case EmptyPacket.PROD_RECEIVETOKENS:
+            {
+               packet = new ProducerReceiveTokensMessage();
+               break;
+            }
+            case EmptyPacket.RECEIVE_MSG:
+            {
+               packet = new ReceiveMessage();
+               break;
+            }
+            default:
+            {
+               throw new IllegalArgumentException("Invalid type: " + packetType);
+            }
          }
+         
+         MessagingBuffer buff = new BufferWrapper(in.slice());
+         
+         packet.decode(buff);
 
-         codec.decode(new BufferWrapper(in.slice()), out);
+         out.write(packet);
+         
          return true;
-      } finally
+      }
+      finally
       {
          in.position(in.limit());
+         
          in.limit(limit);
       }
-
    }
-
-   // Package protected ---------------------------------------------
-
-   void put(PacketType type, AbstractPacketCodec codec)
-   {
-      codecs.put(type, codec);
-   }
-
 }

Deleted: 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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -1,288 +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.mina;
-
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.BYTES;
-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_CREATESESSION_RESP;
-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.CONS_FLOWTOKEN;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.EXCEPTION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PING;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PONG;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_RECEIVETOKENS;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_SEND;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.RECEIVE_MSG;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ACKNOWLEDGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ADD_DESTINATION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_RESET;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CANCEL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEQUEUE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_DELETE_QUEUE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_RECOVER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_REMOVE_DESTINATION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_END;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_FORGET;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_JOIN;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_PREPARE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_RESUME;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SET_TIMEOUT_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_START;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SUSPEND;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.TEXT;
-
-import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.codec.ProtocolCodecFactory;
-import org.apache.mina.filter.codec.ProtocolDecoder;
-import org.apache.mina.filter.codec.ProtocolEncoder;
-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;
-import org.jboss.messaging.core.remoting.impl.codec.ConnectionCreateSessionResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ConsumerFlowTokenMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.CreateConnectionMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.CreateConnectionResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.EmptyPacketCodec;
-import org.jboss.messaging.core.remoting.impl.codec.MessagingExceptionMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.PingCodec;
-import org.jboss.messaging.core.remoting.impl.codec.PongCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ProducerReceiveTokensMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ProducerSendMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ReceiveMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionAcknowledgeMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionAddDestinationMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBindingQueryMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBindingQueryResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBrowserHasNextMessageResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCancelMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateBrowserMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateBrowserResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateConsumerMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateConsumerResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateProducerMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateProducerResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateQueueMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionDeleteQueueMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionQueueQueryMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionQueueQueryResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionRemoveDestinationMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXACommitMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAEndMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAForgetMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAGetInDoubtXidsResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAGetTimeoutResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAJoinMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAPrepareMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAResumeMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXARollbackMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXASetTimeoutMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXASetTimeoutResponseMessageCodec;
-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.PacketType;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- */
-public class PacketCodecFactory implements ProtocolCodecFactory
-{
-   // Constants -----------------------------------------------------
-
-	private final Logger log = Logger.getLogger(PacketCodecFactory.class);
-	
-   private final MessagingCodec codec;
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // FIXME: split encoder/decoder required only on client and/or server sides
-   public PacketCodecFactory()
-   {
-      codec = new MessagingCodec();
-
-      addCodecForEmptyPacket(NULL);
-      
-      addCodec(PROD_SEND, new ProducerSendMessageCodec());
-      
-      addCodec(RECEIVE_MSG, new ReceiveMessageCodec());
-
-      // TextPacket are for testing purpose only!
-      addCodec(TEXT, new TextPacketCodec());
-      addCodec(BYTES, new BytesPacketCodec());
-
-      addCodec(PING, new PingCodec());
-      addCodec(PONG, new PongCodec());
-
-      addCodec(EXCEPTION, new MessagingExceptionMessageCodec());
-
-      addCodec(CREATECONNECTION, new CreateConnectionMessageCodec());
-
-      addCodec(CREATECONNECTION_RESP, new CreateConnectionResponseMessageCodec());
-
-      addCodec(CONN_CREATESESSION,  new ConnectionCreateSessionMessageCodec());
-
-      addCodec(CONN_CREATESESSION_RESP, new ConnectionCreateSessionResponseMessageCodec());
-
-      addCodec(SESS_CREATECONSUMER, new SessionCreateConsumerMessageCodec());
-
-      addCodec(SESS_CREATECONSUMER_RESP, new SessionCreateConsumerResponseMessageCodec());
-
-      addCodec(SESS_CREATEPRODUCER,  new SessionCreateProducerMessageCodec());
-
-      addCodec(SESS_CREATEPRODUCER_RESP, new SessionCreateProducerResponseMessageCodec());
-
-      addCodec(SESS_CREATEBROWSER, new SessionCreateBrowserMessageCodec());
-
-      addCodec(SESS_CREATEBROWSER_RESP, new SessionCreateBrowserResponseMessageCodec());
-
-      addCodecForEmptyPacket(CONN_START);
-
-      addCodecForEmptyPacket(CONN_STOP);
-
-      addCodec(CONS_FLOWTOKEN, new ConsumerFlowTokenMessageCodec());
-
-      addCodec(SESS_ACKNOWLEDGE, new SessionAcknowledgeMessageCodec());
-
-      addCodec(SESS_CANCEL, new SessionCancelMessageCodec());
-
-      addCodecForEmptyPacket(SESS_COMMIT);
-
-      addCodecForEmptyPacket(SESS_ROLLBACK);
-
-      addCodecForEmptyPacket(CLOSE);
-
-      addCodecForEmptyPacket(SESS_RECOVER);
-
-      addCodecForEmptyPacket(SESS_BROWSER_RESET);
-
-      addCodecForEmptyPacket(SESS_BROWSER_HASNEXTMESSAGE);
-
-      addCodec(SESS_BROWSER_HASNEXTMESSAGE_RESP, new SessionBrowserHasNextMessageResponseMessageCodec());
-
-      addCodecForEmptyPacket(SESS_BROWSER_NEXTMESSAGE);
-
-      addCodec(SESS_XA_COMMIT, new SessionXACommitMessageCodec());
-
-      addCodec(SESS_XA_END, new SessionXAEndMessageCodec());
-
-      addCodec(SESS_XA_FORGET, new SessionXAForgetMessageCodec());
-
-      addCodecForEmptyPacket(SESS_XA_INDOUBT_XIDS);
-
-      addCodec(SESS_XA_INDOUBT_XIDS_RESP, new SessionXAGetInDoubtXidsResponseMessageCodec());
-
-      addCodecForEmptyPacket(SESS_XA_GET_TIMEOUT);
-
-      addCodec(SESS_XA_GET_TIMEOUT_RESP, new SessionXAGetTimeoutResponseMessageCodec());
-
-      addCodec(SESS_XA_JOIN, new SessionXAJoinMessageCodec());
-
-      addCodec(SESS_XA_PREPARE, new SessionXAPrepareMessageCodec());
-
-      addCodec(SESS_XA_RESP, new SessionXAResponseMessageCodec());
-
-      addCodec(SESS_XA_RESUME, new SessionXAResumeMessageCodec());
-
-      addCodec(SESS_XA_ROLLBACK, new SessionXARollbackMessageCodec());
-
-      addCodec(SESS_XA_SET_TIMEOUT, new SessionXASetTimeoutMessageCodec());
-
-      addCodec(SESS_XA_SET_TIMEOUT_RESP, new SessionXASetTimeoutResponseMessageCodec());
-
-      addCodec(SESS_XA_START, new SessionXAStartMessageCodec());
-
-      addCodecForEmptyPacket(SESS_XA_SUSPEND);
-
-      addCodec(SESS_REMOVE_DESTINATION, new SessionRemoveDestinationMessageCodec());
-
-      addCodec(SESS_CREATEQUEUE, new SessionCreateQueueMessageCodec());
-
-      addCodec(SESS_QUEUEQUERY,  new SessionQueueQueryMessageCodec());
-
-      addCodec(SESS_QUEUEQUERY_RESP, new SessionQueueQueryResponseMessageCodec());
-
-      addCodec(SESS_ADD_DESTINATION, new SessionAddDestinationMessageCodec());
-
-      addCodec(SESS_BINDINGQUERY, new SessionBindingQueryMessageCodec());
-
-      addCodec(SESS_BINDINGQUERY_RESP, new SessionBindingQueryResponseMessageCodec());
-
-      addCodec(SESS_DELETE_QUEUE, new SessionDeleteQueueMessageCodec());
-
-      addCodec(PROD_RECEIVETOKENS, new ProducerReceiveTokensMessageCodec());
-   }
-   
-   public ProtocolDecoder getDecoder(IoSession session) throws Exception
-	{
-		return codec;
-	}
-
-	public ProtocolEncoder getEncoder(IoSession session) throws Exception
-	{
-		return codec;
-	}
-
-   // Public --------------------------------------------------------
-
-   public static AbstractPacketCodec<?> createCodecForEmptyPacket(final PacketType type)
-   {
-      return new EmptyPacketCodec(type);
-   }
-   
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   private void addCodec(final PacketType type, final AbstractPacketCodec<? extends Packet> c)
-   {
-      codec.put(type, c);
-   }
-   
-   private void addCodecForEmptyPacket(final PacketType type)
-   {
-      AbstractPacketCodec<?> c = createCodecForEmptyPacket(type);
-      addCodec(type, c);
-   }
-
-}

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/BytesPacket.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/BytesPacket.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/BytesPacket.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.BYTES;
+import org.jboss.messaging.util.MessagingBuffer;
 
 
 /**
@@ -14,27 +14,30 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class BytesPacket extends PacketImpl
+public class BytesPacket extends EmptyPacket
 {
    // Constants -----------------------------------------------------
-
+   
    // Attributes ----------------------------------------------------
 
-   private final byte[] bytes;
+   private byte[] bytes;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public BytesPacket(byte[] bytes)
+   public BytesPacket(final byte[] bytes)
    {
       super(BYTES);
 
-      assert bytes != null;
-
       this.bytes = bytes;
    }
    
+   public BytesPacket()
+   {
+      super(BYTES);
+   }
+   
    // Public --------------------------------------------------------
 
    public byte[] getBytes()
@@ -47,7 +50,21 @@
    {
       return getParentString() + ", bytes.length=" + bytes.length + "]";
    }
-
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putInt(bytes.length);
+      
+      buffer.putBytes(bytes);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      bytes = new byte[buffer.getInt()];
+      
+      buffer.getBytes(bytes);
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_CREATESESSION;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -14,17 +14,17 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class ConnectionCreateSessionMessage extends PacketImpl
+public class ConnectionCreateSessionMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final boolean xa;
+   private boolean xa;
    
-   private final boolean autoCommitSends;
+   private boolean autoCommitSends;
    
-   private final boolean autoCommitAcks;
+   private boolean autoCommitAcks;
 
    // Static --------------------------------------------------------
 
@@ -40,6 +40,11 @@
       
       this.autoCommitAcks = autoCommitAcks;
    }
+   
+   public ConnectionCreateSessionMessage()
+   {
+      super(CONN_CREATESESSION);
+   }
 
    // Public --------------------------------------------------------
 
@@ -57,6 +62,20 @@
    {
       return this.autoCommitAcks;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putBoolean(xa);
+      buffer.putBoolean(autoCommitSends);
+      buffer.putBoolean(autoCommitAcks);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      xa = buffer.getBoolean();
+      autoCommitSends = buffer.getBoolean();
+      autoCommitAcks = buffer.getBoolean();
+   }
 
    // Package protected ---------------------------------------------
 

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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConnectionCreateSessionResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,20 +6,22 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
  * 
  * @version <tt>$Revision$</tt>
  */
-public class ConnectionCreateSessionResponseMessage extends PacketImpl
+public class ConnectionCreateSessionResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long sessionTargetID;
+   private long sessionTargetID;
 
    // Static --------------------------------------------------------
 
@@ -27,10 +29,15 @@
 
    public ConnectionCreateSessionResponseMessage(final long sessionTargetID)
    {
-      super(PacketType.CONN_CREATESESSION_RESP);
+      super(CONN_CREATESESSION_RESP);
 
       this.sessionTargetID = sessionTargetID;
    }
+   
+   public ConnectionCreateSessionResponseMessage()
+   {
+      super(CONN_CREATESESSION_RESP);
+   }
 
    // Public --------------------------------------------------------
 
@@ -38,8 +45,17 @@
    {
       return sessionTargetID;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(sessionTargetID);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      sessionTargetID = buffer.getLong();
+   }
 
-
    @Override
    public String toString()
    {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConsumerFlowTokenMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConsumerFlowTokenMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ConsumerFlowTokenMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_FLOWTOKEN;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -14,13 +14,13 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class ConsumerFlowTokenMessage extends PacketImpl
+public class ConsumerFlowTokenMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final int tokens;
+   private int tokens;
 
    // Static --------------------------------------------------------
 
@@ -32,6 +32,11 @@
 
       this.tokens = tokens;
    }
+   
+   public ConsumerFlowTokenMessage()
+   {
+      super(CONS_FLOWTOKEN);
+   }
 
    // Public --------------------------------------------------------
 
@@ -39,6 +44,16 @@
    {
       return tokens;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putInt(tokens);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      tokens = buffer.getInt();
+   }
 
    @Override
    public String toString()

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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionRequest.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -15,16 +15,16 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class CreateConnectionRequest extends PacketImpl
+public class CreateConnectionRequest extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final int version;
-   private final long remotingSessionID;
-   private final String username;
-   private final String password;
+   private int version;
+   private long remotingSessionID;
+   private String username;
+   private String password;
 
    // Static --------------------------------------------------------
 
@@ -40,6 +40,11 @@
       this.username = username;
       this.password = password;
    }
+   
+   public CreateConnectionRequest()
+   {
+      super(CREATECONNECTION);
+   }
 
    // Public --------------------------------------------------------
 
@@ -63,6 +68,22 @@
       return password;
    }
 
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putInt(version);
+      buffer.putLong(remotingSessionID);
+      buffer.putNullableString(username);
+      buffer.putNullableString(password);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      version = buffer.getInt();
+      remotingSessionID = buffer.getLong();
+      username = buffer.getNullableString();
+      password = buffer.getNullableString();
+   }
+   
    @Override
    public String toString()
    {

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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateConnectionResponse.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,8 +6,9 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION_RESP;
 import org.jboss.messaging.core.version.Version;
+import org.jboss.messaging.core.version.impl.VersionImpl;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -15,15 +16,15 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class CreateConnectionResponse extends PacketImpl
+public class CreateConnectionResponse extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long connectionTargetID;
+   private long connectionTargetID;
 
-   private final Version serverVersion;
+   private Version serverVersion;
    
    // Static --------------------------------------------------------
 
@@ -36,6 +37,11 @@
       this.connectionTargetID = connectionTargetID;
       this.serverVersion = serverVersion;
    }
+   
+   public CreateConnectionResponse()
+   {
+      super(CREATECONNECTION_RESP);
+   }
 
    // Public --------------------------------------------------------
 
@@ -48,6 +54,29 @@
    {
       return serverVersion;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(connectionTargetID);
+      buffer.putNullableString(serverVersion.getVersionName());
+      buffer.putInt(serverVersion.getMajorVersion());
+      buffer.putInt(serverVersion.getMinorVersion());
+      buffer.putInt(serverVersion.getMicroVersion());
+      buffer.putInt(serverVersion.getIncrementingVersion());
+      buffer.putNullableString(serverVersion.getVersionSuffix());
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      connectionTargetID = buffer.getLong();
+      String versionName = buffer.getNullableString();
+      int majorVersion = buffer.getInt();
+      int minorVersion = buffer.getInt();
+      int microVersion = buffer.getInt();
+      int incrementingVersion = buffer.getInt();
+      String versionSuffix = buffer.getNullableString();
+      serverVersion =  new VersionImpl(versionName, majorVersion, minorVersion, microVersion, incrementingVersion, versionSuffix);
+   }
 
    @Override
    public String toString()

Copied: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/EmptyPacket.java (from rev 4158, trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/EmptyPacket.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/EmptyPacket.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -0,0 +1,235 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.impl.wireformat;
+
+import javax.transaction.xa.Xid;
+
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.transaction.impl.XidImpl;
+import org.jboss.messaging.util.DataConstants;
+import org.jboss.messaging.util.MessagingBuffer;
+
+/**
+ * @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>
+ */
+public class EmptyPacket implements Packet
+{
+   // Constants -----------------------------------------------------
+   
+   private static final Logger log = Logger.getLogger(EmptyPacket.class);
+
+
+   private long responseTargetID = NO_ID_SET;
+
+   private long targetID = NO_ID_SET;
+
+   private long executorID = NO_ID_SET;
+
+   private final byte type;
+      
+   // The message types
+   // ------------------------------------------------------------------------------------
+   
+   public static final byte NULL = 1;
+   public static final byte TEXT = 2;
+   public static final byte BYTES = 3;
+   public static final byte PING = 4;
+   public static final byte PONG = 5;
+   
+   // Miscellaneous   
+   public static final byte EXCEPTION = 10;
+   public static final byte CLOSE = 11;
+   
+   // Server
+   public static final byte CREATECONNECTION = 20;
+   public static final byte CREATECONNECTION_RESP = 21;
+   
+   // Connection
+   public static final byte CONN_CREATESESSION = 30;
+   public static final byte CONN_CREATESESSION_RESP = 31;
+   public static final byte CONN_START = 32;
+   public static final byte CONN_STOP = 33;
+
+   // Session   
+   public static final byte SESS_CREATECONSUMER = 40;
+   public static final byte SESS_CREATECONSUMER_RESP = 41;
+   public static final byte SESS_CREATEPRODUCER = 42;
+   public static final byte SESS_CREATEPRODUCER_RESP = 43;
+   public static final byte SESS_CREATEBROWSER = 44;
+   public static final byte SESS_CREATEBROWSER_RESP = 45;    
+   public static final byte SESS_ACKNOWLEDGE = 46;
+   public static final byte SESS_RECOVER = 47;
+   public static final byte SESS_COMMIT = 48;
+   public static final byte SESS_ROLLBACK = 49;
+   public static final byte SESS_CANCEL = 50;
+   public static final byte SESS_QUEUEQUERY = 51;
+   public static final byte SESS_QUEUEQUERY_RESP = 52;
+   public static final byte SESS_CREATEQUEUE = 53;
+   public static final byte SESS_DELETE_QUEUE = 54;  
+   public static final byte SESS_ADD_DESTINATION = 55;
+   public static final byte SESS_REMOVE_DESTINATION = 56;
+   public static final byte SESS_BINDINGQUERY = 57;
+   public static final byte SESS_BINDINGQUERY_RESP = 58;
+   public static final byte SESS_BROWSER_RESET = 59;
+   public static final byte SESS_BROWSER_HASNEXTMESSAGE = 60;
+   public static final byte SESS_BROWSER_HASNEXTMESSAGE_RESP = 61;
+   public static final byte SESS_BROWSER_NEXTMESSAGE = 64; 
+   public static final byte SESS_XA_START = 66;
+   public static final byte SESS_XA_END = 67;
+   public static final byte SESS_XA_COMMIT = 68;
+   public static final byte SESS_XA_PREPARE = 69;
+   public static final byte SESS_XA_RESP = 70;
+   public static final byte SESS_XA_ROLLBACK = 71;
+   public static final byte SESS_XA_JOIN = 72;
+   public static final byte SESS_XA_SUSPEND = 73;
+   public static final byte SESS_XA_RESUME = 74;
+   public static final byte SESS_XA_FORGET = 75;
+   public static final byte SESS_XA_INDOUBT_XIDS = 76;
+   public static final byte SESS_XA_INDOUBT_XIDS_RESP = 77;
+   public static final byte SESS_XA_SET_TIMEOUT = 78;
+   public static final byte SESS_XA_SET_TIMEOUT_RESP = 79;
+   public static final byte SESS_XA_GET_TIMEOUT = 80;
+   public static final byte SESS_XA_GET_TIMEOUT_RESP = 81;
+       
+   // Consumer 
+   public static final byte CONS_FLOWTOKEN = 90;   
+   
+   //Producer
+   public static final byte PROD_SEND = 100;
+   public static final byte PROD_RECEIVETOKENS = 101;
+   
+   public static final byte RECEIVE_MSG = 110;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   public EmptyPacket(final byte type)
+   {
+      this.type = type;
+   }
+
+   // Public --------------------------------------------------------
+
+   public byte getType()
+   {
+      return type;
+   }
+
+   public void setResponseTargetID(long responseTargetID)
+   {
+      this.responseTargetID = responseTargetID;
+   }
+
+   public long getResponseTargetID()
+   {
+      return responseTargetID;
+   }
+
+   public long getTargetID()
+   {
+      return targetID;
+   }
+
+   public void setTargetID(long targetID)
+   {
+      this.targetID = targetID;
+   }
+
+   public long getExecutorID()
+   {
+      return executorID;
+   }
+
+   public void setExecutorID(long executorID)
+   {
+      this.executorID = executorID;
+   }
+
+   public void normalize(Packet other)
+   {
+      assert other != null;
+
+      setTargetID(other.getResponseTargetID());
+   }
+
+   public void encode(MessagingBuffer buffer)
+   {      
+      //The standard header fields
+      buffer.putInt(0); //The length gets filled in at the end
+      buffer.putByte(type); 
+      buffer.putLong(responseTargetID);
+      buffer.putLong(targetID);
+      buffer.putLong(executorID);
+
+      encodeBody(buffer);
+      
+      //The length doesn't include the actual length byte
+      int len = buffer.position() - DataConstants.SIZE_INT;
+      
+      buffer.putInt(0, len);
+      
+      buffer.flip();
+   }
+
+   public void decode(final MessagingBuffer buffer) throws Exception
+   {
+      responseTargetID = buffer.getLong();
+      targetID = buffer.getLong();
+      executorID = buffer.getLong();
+      
+      decodeBody(buffer);
+   }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {      
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {      
+   }
+
+   // Package protected ---------------------------------------------
+
+   protected String getParentString()
+   {
+      return "PACKET[type=" + type
+      + ", responseTargetID=" + responseTargetID + ", targetID=" + targetID
+      + ", executorID=" + executorID;
+   }
+   
+   protected void encodeXid(final Xid xid, final MessagingBuffer out)
+   {
+      out.putInt(xid.getFormatId());
+      out.putInt(xid.getBranchQualifier().length);
+      out.putBytes(xid.getBranchQualifier());
+      out.putInt(xid.getGlobalTransactionId().length);
+      out.putBytes(xid.getGlobalTransactionId());
+   }
+   
+   protected Xid decodeXid(final MessagingBuffer in)
+   {
+      int formatID = in.getInt();
+      byte[] bq = new byte[in.getInt()];
+      in.getBytes(bq);
+      byte[] gtxid = new byte[in.getInt()];
+      in.getBytes(gtxid);      
+      Xid xid = new XidImpl(bq, formatID, gtxid);      
+      return xid;
+   }
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/MessagingExceptionMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/MessagingExceptionMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/MessagingExceptionMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,9 +6,8 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.EXCEPTION;
-
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -16,13 +15,13 @@
  * @version <tt>$Revision$</tt>
  * 
  */
-public class MessagingExceptionMessage extends PacketImpl
+public class MessagingExceptionMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final MessagingException exception;
+   private MessagingException exception;
 
    // Static --------------------------------------------------------
 
@@ -32,10 +31,13 @@
    {
       super(EXCEPTION);
 
-      assert exception != null;
-
       this.exception = exception;
    }
+   
+   public MessagingExceptionMessage()
+   {
+      super(EXCEPTION);
+   }
 
    // Public --------------------------------------------------------
 
@@ -43,7 +45,20 @@
    {
       return exception;
    }
-
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putInt(exception.getCode());
+      buffer.putNullableString(exception.getMessage());
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      int code = buffer.getInt();
+      String msg = buffer.getNullableString();
+      exception = new MessagingException(code, msg);
+   }
+   
    @Override
    public String toString()
    {

Deleted: 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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketImpl.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -1,112 +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.wireformat;
-
-import org.jboss.messaging.core.remoting.Packet;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public class PacketImpl implements Packet
-{
-	// Constants -----------------------------------------------------
-
-	private long responseTargetID = NO_ID_SET;
-
-	private long targetID = NO_ID_SET;
-
-	private long executorID = NO_ID_SET;
-
-	private final PacketType type;
-
-	// Static --------------------------------------------------------
-
-	// Constructors --------------------------------------------------
-
-	public PacketImpl(PacketType type)
-	{
-		assert type != null;
-
-		this.type = type;
-	}
-
-	// Public --------------------------------------------------------
-
-	public PacketType getType()
-	{
-		return type;
-	}
-
-	public void setResponseTargetID(long responseTargetID)
-	{
-		this.responseTargetID = responseTargetID;
-	}
-
-	public long getResponseTargetID()
-	{
-		return responseTargetID;
-	}
-
-	public long getTargetID()
-	{
-		return targetID;
-	}
-
-	public void setTargetID(long targetID)
-	{
-		this.targetID = targetID;
-	}
-
-	public long getExecutorID()
-	{
-		return executorID;
-	}
-
-	public void setExecutorID(long executorID)
-	{
-		this.executorID = executorID;
-	}
-
-	public void normalize(Packet other)
-	{
-		assert other != null;
-
-		setTargetID(other.getResponseTargetID());
-	}
-
-	/**
-	 * An AbstractPacket is a request if it has a target ID and a correlation ID
-	 */
-	 public boolean isRequest()
-	 {
-		 return targetID != NO_ID_SET && responseTargetID != NO_ID_SET;
-	 }
-
-	 @Override
-	 public String toString()
-	 {
-		 return getParentString() + "]";
-	 }
-
-	 // Package protected ---------------------------------------------
-
-	 protected String getParentString()
-	 {
-		 return "PACKET[type=" + type
-		 + ", responseTargetID=" + responseTargetID + ", targetID=" + targetID
-		 + ", executorID=" + executorID;
-	 }
-
-	 // Protected -----------------------------------------------------
-
-	 // Private -------------------------------------------------------
-
-	 // Inner classes -------------------------------------------------
-
-}

Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketType.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketType.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/PacketType.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -1,126 +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.wireformat;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- * 
- * @version <tt>$Revision$</tt>
- */
-public enum PacketType
-{
-   // System
-   NULL                                ((byte)1),
-   TEXT                                ((byte)2),
-   BYTES                               ((byte)3),
-   PING                                ((byte)4),
-   PONG                                ((byte)5),
-   
-   // Miscellaneous   
-   EXCEPTION                           ((byte)10),
-   CLOSE                               ((byte)11),
-   
-   // Server
-   CREATECONNECTION                    ((byte)20),
-   CREATECONNECTION_RESP               ((byte)21),    
-   
-   // Connection
-   CONN_CREATESESSION                  ((byte)30),
-   CONN_CREATESESSION_RESP             ((byte)31),
-   CONN_START                          ((byte)32),
-   CONN_STOP                           ((byte)33),
-
-   // Session   
-   SESS_CREATECONSUMER                 ((byte)40),
-   SESS_CREATECONSUMER_RESP            ((byte)41),
-   SESS_CREATEPRODUCER                 ((byte)42),
-   SESS_CREATEPRODUCER_RESP            ((byte)43),
-   SESS_CREATEBROWSER                  ((byte)44),
-   SESS_CREATEBROWSER_RESP             ((byte)45),      
-   SESS_ACKNOWLEDGE                    ((byte)46),
-   SESS_RECOVER                        ((byte)47),
-   SESS_COMMIT                         ((byte)48),
-   SESS_ROLLBACK                       ((byte)49),
-   SESS_CANCEL                         ((byte)50),
-   SESS_QUEUEQUERY                     ((byte)51),
-   SESS_QUEUEQUERY_RESP                ((byte)52),
-   SESS_CREATEQUEUE                    ((byte)53),
-   SESS_DELETE_QUEUE                   ((byte)54),   
-   SESS_ADD_DESTINATION                ((byte)55),
-   SESS_REMOVE_DESTINATION             ((byte)56),
-   SESS_BINDINGQUERY                   ((byte)57),
-   SESS_BINDINGQUERY_RESP              ((byte)58),  
-   SESS_BROWSER_RESET                  ((byte)59),
-   SESS_BROWSER_HASNEXTMESSAGE         ((byte)60),
-   SESS_BROWSER_HASNEXTMESSAGE_RESP    ((byte)61),
-   SESS_BROWSER_NEXTMESSAGEBLOCK       ((byte)62),
-   SESS_BROWSER_NEXTMESSAGEBLOCK_RESP  ((byte)63),
-   SESS_BROWSER_NEXTMESSAGE            ((byte)64),
-   SESS_BROWSER_NEXTMESSAGE_RESP       ((byte)65),      
-   SESS_XA_START                       ((byte)66),
-   SESS_XA_END                         ((byte)67),
-   SESS_XA_COMMIT                      ((byte)68),
-   SESS_XA_PREPARE                     ((byte)69),
-   SESS_XA_RESP                        ((byte)70),
-   SESS_XA_ROLLBACK                    ((byte)71),
-   SESS_XA_JOIN                        ((byte)72),
-   SESS_XA_SUSPEND                     ((byte)73),
-   SESS_XA_RESUME                      ((byte)74),
-   SESS_XA_FORGET                      ((byte)75),
-   SESS_XA_INDOUBT_XIDS                ((byte)76),
-   SESS_XA_INDOUBT_XIDS_RESP           ((byte)77),
-   SESS_XA_SET_TIMEOUT                 ((byte)78),
-   SESS_XA_SET_TIMEOUT_RESP            ((byte)79),
-   SESS_XA_GET_TIMEOUT                 ((byte)80),
-   SESS_XA_GET_TIMEOUT_RESP            ((byte)81),
-       
-   // Consumer 
-   CONS_FLOWTOKEN                      ((byte)90),   
-   
-   //Producer
-   PROD_SEND                           ((byte)100),
-   PROD_RECEIVETOKENS                  ((byte)101),
-   
-   RECEIVE_MSG                        ((byte)111);
-   
-   // the ALL_TYPES map is used to find the PacketType corresponding to a given byte
-   // by using the static method from(byte)
-   private static final Map<Byte, PacketType> ALL_TYPES = new HashMap<Byte, PacketType>();
-
-   static {
-      PacketType[] types = PacketType.values();
-      for (int i = 0; i < types.length; i++)
-      {  
-         PacketType type = types[i];
-         ALL_TYPES.put(type.byteValue(), type);         
-      }
-   }
-
-   private final byte type;
-
-   PacketType(byte type)
-   {
-      this.type = type;
-   }
-
-   public byte byteValue()
-   {
-      return type;
-   }
-
-   public static PacketType from(byte typeByte)
-   {
-      PacketType type = ALL_TYPES.get(typeByte);
-      if (type != null)
-         return type;
-      else
-         throw new IllegalArgumentException(typeByte + " is not a valid PacketType byte.");
-   }
-}

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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PING;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -14,13 +14,13 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class Ping extends PacketImpl
+public class Ping extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long sessionID;
+   private long sessionID;
 
    // Static --------------------------------------------------------
 
@@ -33,12 +33,27 @@
       this.sessionID = sessionID;
    }
    
+   public Ping()
+   {
+      super(PING);
+   }
+      
    // Public --------------------------------------------------------
    
    public long getSessionID()
    {
       return sessionID;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(sessionID);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      sessionID = buffer.getLong();
+   }
 
    @Override
    public String toString()

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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PONG;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -14,15 +14,15 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class Pong extends PacketImpl
+public class Pong extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long sessionID;
+   private long sessionID;
 
-   private final boolean sessionFailed;
+   private boolean sessionFailed;
 
    // Static --------------------------------------------------------
 
@@ -35,6 +35,11 @@
       this.sessionID = sessionID;
       this.sessionFailed = sessionFailed;
    }
+   
+   public Pong()
+   {
+      super(PONG);
+   }
 
    // Public --------------------------------------------------------
 
@@ -47,6 +52,18 @@
    {
       return sessionFailed;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(sessionID);
+      buffer.putBoolean(sessionFailed);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      sessionID = buffer.getLong();
+      sessionFailed = buffer.getBoolean();
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerReceiveTokensMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerReceiveTokensMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerReceiveTokensMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,6 +6,8 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
+
 /**
  * 
  * A ProducerReceiveTokensMessage
@@ -13,13 +15,13 @@
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  */
-public class ProducerReceiveTokensMessage extends PacketImpl
+public class ProducerReceiveTokensMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final int tokens;
+   private int tokens;
 
    // Static --------------------------------------------------------
 
@@ -27,10 +29,15 @@
 
    public ProducerReceiveTokensMessage(final int tokens)
    {
-      super(PacketType.PROD_RECEIVETOKENS);
+      super(PROD_RECEIVETOKENS);
 
       this.tokens = tokens;
    }
+   
+   public ProducerReceiveTokensMessage()
+   {
+      super(PROD_RECEIVETOKENS);
+   }
 
    // Public --------------------------------------------------------
 
@@ -38,6 +45,16 @@
    {
       return tokens;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putInt(tokens);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      tokens = buffer.getInt();
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerSendMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerSendMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ProducerSendMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,10 +6,10 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_SEND;
-
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.core.server.impl.ServerMessageImpl;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -17,15 +17,15 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class ProducerSendMessage extends PacketImpl
+public class ProducerSendMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final ClientMessage clientMessage;
+   private ClientMessage clientMessage;
    
-   private final ServerMessage serverMessage;
+   private ServerMessage serverMessage;
 
    // Static --------------------------------------------------------
 
@@ -36,8 +36,6 @@
       super(PROD_SEND);
 
       this.clientMessage = message;
-      
-      this.serverMessage = null;
    }
    
    public ProducerSendMessage(final ServerMessage message)
@@ -45,9 +43,12 @@
       super(PROD_SEND);
 
       this.serverMessage = message;
-      
-      this.clientMessage = null;
    }
+   
+   public ProducerSendMessage()
+   {
+      super(PROD_SEND);
+   }
 
    // Public --------------------------------------------------------
 
@@ -60,6 +61,30 @@
    {
       return serverMessage;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      MessagingBuffer buf = clientMessage.encode();
+      
+      buf.flip();
+      
+      //TODO - can be optimised
+      
+      byte[] data = buf.array();
+       
+      buffer.putBytes(data, 0, buf.limit());
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      //TODO can be optimised
+      
+      serverMessage = new ServerMessageImpl();
+      
+      serverMessage.decode(buffer);
+      
+      serverMessage.getBody().flip();
+   }
 
 
    // Package protected ---------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReceiveMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReceiveMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReceiveMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,10 +6,10 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.RECEIVE_MSG;
-
 import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.impl.ClientMessageImpl;
 import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -18,19 +18,19 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class ReceiveMessage extends PacketImpl
+public class ReceiveMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final ClientMessage clientMessage;
+   private ClientMessage clientMessage;
    
-   private final ServerMessage serverMessage;
+   private ServerMessage serverMessage;
    
-   private final int deliveryCount;
+   private int deliveryCount;
    
-   private final long deliveryID;
+   private long deliveryID;
 
    // Static --------------------------------------------------------
 
@@ -61,6 +61,11 @@
       
       this.deliveryID = deliveryID;
    }
+   
+   public ReceiveMessage()
+   {
+      super(RECEIVE_MSG);
+   }
 
    // Public --------------------------------------------------------
 
@@ -83,6 +88,36 @@
    {
       return deliveryID;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      MessagingBuffer buf = serverMessage.encode();
+      
+      buf.flip();
+      
+      //TODO - can be optimised
+      
+      byte[] data = buf.array();
+      
+      buffer.putInt(deliveryCount);
+      buffer.putLong(deliveryID);
+      
+      buffer.putBytes(data, 0, buf.limit());
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      //TODO can be optimised
+      
+      deliveryCount = buffer.getInt();
+      deliveryID = buffer.getLong();
+      
+      clientMessage = new ClientMessageImpl(deliveryCount, deliveryID);
+      
+      clientMessage.decode(buffer);
+      
+      clientMessage.getBody().flip();
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAcknowledgeMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAcknowledgeMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAcknowledgeMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,21 +6,23 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionAcknowledgeMessage extends PacketImpl
+public class SessionAcknowledgeMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final long deliveryID;
+   private long deliveryID;
    
-   private final boolean allUpTo;
+   private boolean allUpTo;
 
    // Static --------------------------------------------------------
 
@@ -28,12 +30,17 @@
 
    public SessionAcknowledgeMessage(final long deliveryID, final boolean allUpTo)
    {
-      super(PacketType.SESS_ACKNOWLEDGE);
+      super(SESS_ACKNOWLEDGE);
       
       this.deliveryID = deliveryID;
       
       this.allUpTo = allUpTo;
    }
+   
+   public SessionAcknowledgeMessage()
+   {
+      super(SESS_ACKNOWLEDGE);
+   }
 
    // Public --------------------------------------------------------
    
@@ -46,6 +53,18 @@
    {
       return allUpTo;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(deliveryID);
+      buffer.putBoolean(allUpTo);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      deliveryID = buffer.getLong();
+      allUpTo = buffer.getBoolean();
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionAddDestinationMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,8 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ADD_DESTINATION;
-
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 
@@ -18,15 +17,15 @@
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  */
-public class SessionAddDestinationMessage extends PacketImpl
+public class SessionAddDestinationMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final SimpleString address;
+   private SimpleString address;
    
-   private final boolean temporary;
+   private boolean temporary;
    
    // Static --------------------------------------------------------
 
@@ -40,6 +39,11 @@
       
       this.temporary = temp;
    }
+   
+   public SessionAddDestinationMessage()
+   {
+      super(SESS_ADD_DESTINATION);
+   }
 
    // Public --------------------------------------------------------
    
@@ -53,6 +57,18 @@
    	return temporary;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putSimpleString(address);
+      buffer.putBoolean(temporary);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      address = buffer.getSimpleString();
+      temporary = buffer.getBoolean();
+   }
+   
    @Override
    public String toString()
    {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,6 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 
@@ -16,20 +17,35 @@
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  */
-public class SessionBindingQueryMessage extends PacketImpl
+public class SessionBindingQueryMessage extends EmptyPacket
 {
-   private final SimpleString address;
+   private SimpleString address;
 
    public SessionBindingQueryMessage(final SimpleString address)
    {
-      super(PacketType.SESS_BINDINGQUERY);
+      super(SESS_BINDINGQUERY);
 
       this.address = address;            
    }
+   
+   public SessionBindingQueryMessage()
+   {
+      super(SESS_BINDINGQUERY);          
+   }
 
    public SimpleString getAddress()
    {
       return address;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putSimpleString(address);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      address = buffer.getSimpleString();
+   }
+   
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBindingQueryResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -1,9 +1,9 @@
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY_RESP;
-
+import java.util.ArrayList;
 import java.util.List;
 
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 /**
@@ -13,11 +13,11 @@
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  */
-public class SessionBindingQueryResponseMessage extends PacketImpl
+public class SessionBindingQueryResponseMessage extends EmptyPacket
 {
-   private final boolean exists;
+   private boolean exists;
    
-   private final List<SimpleString> queueNames;
+   private List<SimpleString> queueNames;
    
    public SessionBindingQueryResponseMessage(final boolean exists, final List<SimpleString> queueNames)
    {
@@ -27,6 +27,11 @@
 
       this.queueNames = queueNames;
    }
+   
+   public SessionBindingQueryResponseMessage()
+   {
+      super(SESS_BINDINGQUERY_RESP);
+   }
 
    public boolean isExists()
    {
@@ -37,5 +42,26 @@
    {
       return this.queueNames;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putBoolean(exists);
+      buffer.putInt(queueNames.size());      
+      for (SimpleString queueName: queueNames)
+      {
+         buffer.putSimpleString(queueName);
+      }      
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      exists = buffer.getBoolean();      
+      int numQueues = buffer.getInt();      
+      queueNames = new ArrayList<SimpleString>(numQueues);      
+      for (int i = 0; i < numQueues; i++)
+      {
+         queueNames.add(buffer.getSimpleString());
+      }          
+   }
 
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBrowserHasNextMessageResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBrowserHasNextMessageResponseMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionBrowserHasNextMessageResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE_RESP;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -15,13 +15,13 @@
  * @version <tt>$Revision$</tt>
  * 
  */
-public class SessionBrowserHasNextMessageResponseMessage extends PacketImpl
+public class SessionBrowserHasNextMessageResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final boolean hasNext;
+   private boolean hasNext;
 
    // Static --------------------------------------------------------
 
@@ -33,6 +33,11 @@
 
       this.hasNext = hasNext;
    }
+   
+   public SessionBrowserHasNextMessageResponseMessage()
+   {
+      super(SESS_BROWSER_HASNEXTMESSAGE_RESP);
+   }
 
    // Public --------------------------------------------------------
 
@@ -40,6 +45,16 @@
    {
       return hasNext;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putBoolean(hasNext);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      hasNext = buffer.getBoolean();       
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCancelMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCancelMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCancelMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CANCEL;
+import org.jboss.messaging.util.MessagingBuffer;
 
 
 /**
@@ -14,15 +14,15 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionCancelMessage extends PacketImpl
+public class SessionCancelMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final long deliveryID;
+   private long deliveryID;
    
-   private final boolean expired;
+   private boolean expired;
 
    // Static --------------------------------------------------------
 
@@ -36,6 +36,11 @@
       
       this.expired = expired;
    }
+   
+   public SessionCancelMessage()
+   {
+      super(SESS_CANCEL);
+   }
 
    // Public --------------------------------------------------------
    
@@ -48,6 +53,18 @@
    {
       return expired;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(deliveryID);
+      buffer.putBoolean(expired);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      deliveryID = buffer.getLong();
+      expired = buffer.getBoolean();
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,8 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER;
-
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 /**
@@ -17,15 +16,15 @@
  * @version <tt>$Revision$</tt>
  * 
  */
-public class SessionCreateBrowserMessage extends PacketImpl
+public class SessionCreateBrowserMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final SimpleString queueName;
+   private SimpleString queueName;
    
-   private final SimpleString filterString;
+   private SimpleString filterString;
 
    // Static --------------------------------------------------------
 
@@ -35,11 +34,14 @@
    {
       super(SESS_CREATEBROWSER);
 
-      assert queueName != null;
-
       this.queueName = queueName;
       this.filterString = filterString;
    }
+   
+   public SessionCreateBrowserMessage()
+   {
+      super(SESS_CREATEBROWSER);
+   }
 
    // Public --------------------------------------------------------
 
@@ -52,6 +54,18 @@
    {
       return filterString;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putSimpleString(queueName);
+      buffer.putNullableSimpleString(filterString);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      queueName = buffer.getSimpleString();
+      filterString = buffer.getNullableSimpleString();
+   }
 
    @Override
    public String toString()

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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateBrowserResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER_RESP;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -15,13 +15,13 @@
  * @version <tt>$Revision$</tt>
  * 
  */
-public class SessionCreateBrowserResponseMessage extends PacketImpl
+public class SessionCreateBrowserResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long browserTargetID;
+   private long browserTargetID;
 
    // Static --------------------------------------------------------
 
@@ -33,6 +33,11 @@
 
       this.browserTargetID = browserTargetID;
    }
+   
+   public SessionCreateBrowserResponseMessage()
+   {
+      super(SESS_CREATEBROWSER_RESP);
+   }
 
    // Public --------------------------------------------------------
 
@@ -40,6 +45,16 @@
    {
       return browserTargetID;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(browserTargetID);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      browserTargetID = buffer.getLong();
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,6 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 
@@ -14,23 +15,23 @@
  *
  * @version <tt>$Revision$</tt>
  */
-public class SessionCreateConsumerMessage extends PacketImpl
+public class SessionCreateConsumerMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long clientTargetID;
+   private long clientTargetID;
    
-   private final SimpleString queueName;
+   private SimpleString queueName;
    
-   private final SimpleString filterString;
+   private SimpleString filterString;
    
-   private final boolean noLocal;
+   private boolean noLocal;
    
-   private final boolean autoDeleteQueue;
+   private boolean autoDeleteQueue;
    
-   private final int windowSize;
+   private int windowSize;
    
    private int maxRate;
       
@@ -42,7 +43,7 @@
    		                              final boolean noLocal, final boolean autoDeleteQueue,
    		                              final int windowSize, final int maxRate)
    {
-      super(PacketType.SESS_CREATECONSUMER);
+      super(SESS_CREATECONSUMER);
 
       this.clientTargetID = clientTargetID;
       this.queueName = queueName;
@@ -52,6 +53,11 @@
       this.windowSize = windowSize;
       this.maxRate = maxRate;
    }
+   
+   public SessionCreateConsumerMessage()
+   {
+      super(SESS_CREATECONSUMER);   
+   }
 
    // Public --------------------------------------------------------
 
@@ -103,6 +109,28 @@
    {
    	return maxRate;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(clientTargetID);
+      buffer.putSimpleString(queueName);
+      buffer.putNullableSimpleString(filterString);
+      buffer.putBoolean(noLocal);
+      buffer.putBoolean(autoDeleteQueue);
+      buffer.putInt(windowSize);
+      buffer.putInt(maxRate);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      clientTargetID = buffer.getLong();
+      queueName = buffer.getSimpleString();
+      filterString = buffer.getNullableSimpleString();
+      noLocal = buffer.getBoolean();
+      autoDeleteQueue = buffer.getBoolean();
+      windowSize = buffer.getInt();
+      maxRate = buffer.getInt();
+   }
 
    // 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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateConsumerResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,7 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER_RESP;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -14,15 +14,15 @@
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionCreateConsumerResponseMessage extends PacketImpl
+public class SessionCreateConsumerResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long consumerTargetID;
+   private long consumerTargetID;
    
-   private final int windowSize;
+   private int windowSize;
    
    // Static --------------------------------------------------------
 
@@ -36,6 +36,11 @@
       
       this.windowSize = windowSize;
    }
+   
+   public SessionCreateConsumerResponseMessage()
+   {
+      super(SESS_CREATECONSUMER_RESP);
+   }
 
    // Public --------------------------------------------------------
 
@@ -48,6 +53,18 @@
    {
    	return windowSize;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(consumerTargetID);
+      buffer.putInt(windowSize);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      consumerTargetID = buffer.getLong();
+      windowSize = buffer.getInt();
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,6 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 
@@ -14,19 +15,19 @@
  *
  * @version <tt>$Revision$</tt>
  */
-public class SessionCreateProducerMessage extends PacketImpl
+public class SessionCreateProducerMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long clientTargetID;
+   private long clientTargetID;
    
-   private final SimpleString address;
+   private SimpleString address;
    
-   private final int windowSize;
+   private int windowSize;
    
-   private final int maxRate;
+   private int maxRate;
       
    // Static --------------------------------------------------------
 
@@ -34,7 +35,7 @@
 
    public SessionCreateProducerMessage(final long clientTargetID, final SimpleString address, final int windowSize, final int maxRate)
    {
-      super(PacketType.SESS_CREATEPRODUCER);
+      super(SESS_CREATEPRODUCER);
 
       this.clientTargetID = clientTargetID;
       
@@ -44,6 +45,11 @@
       
       this.maxRate = maxRate;
    }
+   
+   public SessionCreateProducerMessage()
+   {
+      super(SESS_CREATEPRODUCER);
+   }
 
    // Public --------------------------------------------------------
 
@@ -77,6 +83,22 @@
    {
    	return maxRate;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(clientTargetID);
+      buffer.putNullableSimpleString(address);
+      buffer.putInt(windowSize);
+      buffer.putInt(maxRate);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      clientTargetID = buffer.getLong();      
+      address = buffer.getNullableSimpleString();      
+      windowSize = buffer.getInt();      
+      maxRate = buffer.getInt();
+   }
 
    // Package protected ---------------------------------------------
 

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-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateProducerResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,25 +6,24 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER_RESP;
+import org.jboss.messaging.util.MessagingBuffer;
 
-
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionCreateProducerResponseMessage extends PacketImpl
+public class SessionCreateProducerResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final long producerTargetID;
+   private long producerTargetID;
    
-   private final int windowSize;
+   private int windowSize;
    
-   private final int maxRate;
+   private int maxRate;
 
    // Static --------------------------------------------------------
 
@@ -40,6 +39,11 @@
       
       this.maxRate = maxRate;
    }
+   
+   public SessionCreateProducerResponseMessage()
+   {
+      super(SESS_CREATEPRODUCER_RESP);
+   }
 
    // Public --------------------------------------------------------
 
@@ -57,6 +61,21 @@
    {
    	return maxRate;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putLong(producerTargetID);
+      buffer.putInt(windowSize);
+      buffer.putInt(maxRate);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      producerTargetID = buffer.getLong();      
+      windowSize = buffer.getInt();
+      maxRate = buffer.getInt();
+   }
+   
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionCreateQueueMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,8 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEQUEUE;
-
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 
@@ -16,17 +15,17 @@
 
  * @version <tt>$Revision$</tt>
  */
-public class SessionCreateQueueMessage extends PacketImpl
+public class SessionCreateQueueMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final SimpleString address;
-   private final SimpleString queueName;
-   private final SimpleString filterString;
-   private final boolean durable;
-   private final boolean temporary;
+   private SimpleString address;
+   private SimpleString queueName;
+   private SimpleString filterString;
+   private boolean durable;
+   private boolean temporary;
    
    // Static --------------------------------------------------------
 
@@ -43,6 +42,11 @@
       this.durable = durable;
       this.temporary = temporary;
    }
+   
+   public SessionCreateQueueMessage()
+   {
+      super(SESS_CREATEQUEUE);
+   }
 
    // Public --------------------------------------------------------
 
@@ -83,6 +87,24 @@
    {
       return temporary;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putSimpleString(address);
+      buffer.putSimpleString(queueName);
+      buffer.putNullableSimpleString(filterString);
+      buffer.putBoolean(durable);
+      buffer.putBoolean(temporary);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      address = buffer.getSimpleString();
+      queueName = buffer.getSimpleString();
+      filterString = buffer.getNullableSimpleString();
+      durable = buffer.getBoolean();
+      temporary = buffer.getBoolean();
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionDeleteQueueMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,8 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_DELETE_QUEUE;
-
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 
@@ -16,13 +15,13 @@
 
  * @version <tt>$Revision$</tt>
  */
-public class SessionDeleteQueueMessage extends PacketImpl
+public class SessionDeleteQueueMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final SimpleString queueName;
+   private SimpleString queueName;
 
    // Static --------------------------------------------------------
 
@@ -34,6 +33,11 @@
 
       this.queueName = queueName;
    }
+   
+   public SessionDeleteQueueMessage()
+   {
+      super(SESS_DELETE_QUEUE);
+   }
 
    // Public --------------------------------------------------------
 
@@ -50,6 +54,16 @@
    {
       return queueName;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putSimpleString(queueName);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      queueName = buffer.getSimpleString();
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,6 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 
@@ -16,20 +17,35 @@
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  */
-public class SessionQueueQueryMessage extends PacketImpl
+public class SessionQueueQueryMessage extends EmptyPacket
 {
-   private final SimpleString queueName;
+   private SimpleString queueName;
 
    public SessionQueueQueryMessage(final SimpleString queueName)
    {
-      super(PacketType.SESS_QUEUEQUERY);
+      super(SESS_QUEUEQUERY);
 
       this.queueName = queueName;            
    }
+   
+   public SessionQueueQueryMessage()
+   {
+      super(SESS_QUEUEQUERY);        
+   }
 
    public SimpleString getQueueName()
    {
       return queueName;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putSimpleString(queueName);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      queueName = buffer.getSimpleString();
+   }
+   
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionQueueQueryResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -1,7 +1,6 @@
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY_RESP;
-
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 /**
@@ -11,23 +10,23 @@
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  */
-public class SessionQueueQueryResponseMessage extends PacketImpl
+public class SessionQueueQueryResponseMessage extends EmptyPacket
 {
-   private final boolean exists;
+   private boolean exists;
    
-   private final boolean durable;
+   private boolean durable;
    
-   private final boolean temporary;
+   private boolean temporary;
    
-   private final int maxSize;
+   private int maxSize;
    
-   private final int consumerCount;
+   private int consumerCount;
    
-   private final int messageCount;
+   private int messageCount;
    
-   private final SimpleString filterString;
+   private SimpleString filterString;
    
-   private final SimpleString address;
+   private SimpleString address;
    
    public SessionQueueQueryResponseMessage(final boolean durable, final boolean temporary, final int maxSize, 
    		final int consumerCount, final int messageCount, final SimpleString filterString, final SimpleString address)
@@ -103,4 +102,28 @@
       return address;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putBoolean(exists);
+      buffer.putBoolean(durable);
+      buffer.putBoolean(temporary);
+      buffer.putInt(maxSize);
+      buffer.putInt(consumerCount);
+      buffer.putInt(messageCount);
+      buffer.putNullableSimpleString(filterString);
+      buffer.putNullableSimpleString(address);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      exists = buffer.getBoolean();
+      durable = buffer.getBoolean();
+      temporary = buffer.getBoolean();
+      maxSize = buffer.getInt();
+      consumerCount = buffer.getInt();
+      messageCount = buffer.getInt();
+      filterString  = buffer.getNullableSimpleString();
+      address = buffer.getNullableSimpleString();
+   }
+   
 }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionRemoveDestinationMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,8 +6,7 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_REMOVE_DESTINATION;
-
+import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 
@@ -18,15 +17,15 @@
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  */
-public class SessionRemoveDestinationMessage extends PacketImpl
+public class SessionRemoveDestinationMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final SimpleString address;
+   private SimpleString address;
    
-   private final boolean temporary;
+   private boolean temporary;
    
    // Static --------------------------------------------------------
 
@@ -40,6 +39,11 @@
       
       this.temporary = temporary;
    }
+   
+   public SessionRemoveDestinationMessage()
+   {
+      super(SESS_REMOVE_DESTINATION);
+   }
 
    // Public --------------------------------------------------------
    
@@ -53,6 +57,18 @@
    	return temporary;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putSimpleString(address);
+      buffer.putBoolean(temporary);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      address = buffer.getSimpleString();
+      temporary = buffer.getBoolean();
+   }
+      
    @Override
    public String toString()
    {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,21 +8,23 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXACommitMessage extends PacketImpl
+public class SessionXACommitMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final boolean onePhase;
+   private boolean onePhase;
    
-   private final Xid xid;
+   private Xid xid;
    
    // Static --------------------------------------------------------
 
@@ -30,11 +32,16 @@
 
    public SessionXACommitMessage(final Xid xid, final boolean onePhase)
    {
-      super(PacketType.SESS_XA_COMMIT);
+      super(SESS_XA_COMMIT);
       
       this.xid = xid;
       this.onePhase = onePhase;
    }
+   
+   public SessionXACommitMessage()
+   {
+      super(SESS_XA_COMMIT);
+   }
 
    // Public --------------------------------------------------------
    
@@ -47,6 +54,18 @@
    {
       return onePhase;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putBoolean(onePhase);
+      encodeXid(xid, buffer);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      onePhase = buffer.getBoolean();
+      xid = decodeXid(buffer);
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAEndMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAEndMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAEndMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,21 +8,23 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAEndMessage extends PacketImpl
+public class SessionXAEndMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final Xid xid;
+   private Xid xid;
    
-   private final boolean failed;
+   private boolean failed;
    
    // Static --------------------------------------------------------
 
@@ -30,12 +32,17 @@
 
    public SessionXAEndMessage(final Xid xid, final boolean failed)
    {
-      super(PacketType.SESS_XA_END);
+      super(SESS_XA_END);
       
       this.xid = xid;
       
       this.failed = failed;
    }
+   
+   public SessionXAEndMessage()
+   {
+      super(SESS_XA_END);
+   }
 
    // Public --------------------------------------------------------
    
@@ -48,6 +55,18 @@
    {
       return xid;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putBoolean(failed);
+      encodeXid(xid, buffer);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      failed = buffer.getBoolean();
+      xid = decodeXid(buffer);
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAForgetMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAForgetMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAForgetMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,19 +8,21 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAForgetMessage extends PacketImpl
+public class SessionXAForgetMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final Xid xid;
+   private Xid xid;
       
    // Static --------------------------------------------------------
 
@@ -28,10 +30,15 @@
 
    public SessionXAForgetMessage(final Xid xid)
    {
-      super(PacketType.SESS_XA_FORGET);
+      super(SESS_XA_FORGET);
       
       this.xid = xid;
    }
+   
+   public SessionXAForgetMessage()
+   {
+      super(SESS_XA_FORGET);
+   }
 
    // Public --------------------------------------------------------
    
@@ -40,6 +47,16 @@
       return xid;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      encodeXid(xid, buffer);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      xid = decodeXid(buffer);
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetInDoubtXidsResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetInDoubtXidsResponseMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetInDoubtXidsResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,23 +6,26 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAGetInDoubtXidsResponseMessage extends PacketImpl
+public class SessionXAGetInDoubtXidsResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final List<Xid> xids;
+   private List<Xid> xids;
    
    // Static --------------------------------------------------------
 
@@ -30,10 +33,15 @@
 
    public SessionXAGetInDoubtXidsResponseMessage(final List<Xid> xids)
    {
-      super(PacketType.SESS_XA_INDOUBT_XIDS_RESP);
+      super(SESS_XA_INDOUBT_XIDS_RESP);
       
       this.xids = xids;
    }
+   
+   public SessionXAGetInDoubtXidsResponseMessage()
+   {
+      super(SESS_XA_INDOUBT_XIDS_RESP);
+   }
 
    // Public --------------------------------------------------------
    
@@ -41,7 +49,29 @@
    {
       return xids;
    }
+
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putInt(xids.size());
+
+      for (Xid xid: xids)
+      {
+         encodeXid(xid, buffer);
+      }    
+   }
    
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      int len = buffer.getInt();
+      xids = new ArrayList<Xid>(len);      
+      for (int i = 0; i < len; i++)
+      {
+         Xid xid = decodeXid(buffer);
+         
+         xids.add(xid);
+      }      
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetTimeoutResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetTimeoutResponseMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAGetTimeoutResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,20 +6,22 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAGetTimeoutResponseMessage extends PacketImpl
+public class SessionXAGetTimeoutResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final int timeoutSeconds;
+   private int timeoutSeconds;
    
    // Static --------------------------------------------------------
 
@@ -27,11 +29,16 @@
 
    public SessionXAGetTimeoutResponseMessage(final int timeoutSeconds)
    {
-      super(PacketType.SESS_XA_GET_TIMEOUT_RESP);
+      super(SESS_XA_GET_TIMEOUT_RESP);
       
       this.timeoutSeconds = timeoutSeconds;
    }
    
+   public SessionXAGetTimeoutResponseMessage()
+   {
+      super(SESS_XA_GET_TIMEOUT_RESP);
+   }
+   
 
    // Public --------------------------------------------------------
    
@@ -39,6 +46,16 @@
    {
       return this.timeoutSeconds;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putInt(timeoutSeconds);  
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      timeoutSeconds = buffer.getInt(); 
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAJoinMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAJoinMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAJoinMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,19 +8,21 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAJoinMessage extends PacketImpl
+public class SessionXAJoinMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final Xid xid;
+   private Xid xid;
    
    // Static --------------------------------------------------------
 
@@ -28,10 +30,15 @@
 
    public SessionXAJoinMessage(final Xid xid)
    {
-      super(PacketType.SESS_XA_JOIN);
+      super(SESS_XA_JOIN);
       
       this.xid = xid;
    }
+   
+   public SessionXAJoinMessage()
+   {
+      super(SESS_XA_JOIN);
+   }
 
    // Public --------------------------------------------------------
    
@@ -40,6 +47,16 @@
       return xid;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      encodeXid(xid, buffer);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      xid = decodeXid(buffer);
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAPrepareMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAPrepareMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAPrepareMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,19 +8,21 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAPrepareMessage extends PacketImpl
+public class SessionXAPrepareMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final Xid xid;
+   private Xid xid;
    
    // Static --------------------------------------------------------
 
@@ -28,10 +30,15 @@
 
    public SessionXAPrepareMessage(final Xid xid)
    {
-      super(PacketType.SESS_XA_PREPARE);
+      super(SESS_XA_PREPARE);
       
       this.xid = xid;
    }
+   
+   public SessionXAPrepareMessage()
+   {
+      super(SESS_XA_PREPARE);
+   }
 
    // Public --------------------------------------------------------
    
@@ -39,6 +46,16 @@
    {
       return xid;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      encodeXid(xid, buffer);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      xid = decodeXid(buffer);
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResponseMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,23 +6,25 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAResponseMessage extends PacketImpl
+public class SessionXAResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final boolean error;
+   private boolean error;
    
-   private final int responseCode;
+   private int responseCode;
    
-   private final String message;
+   private String message;
       
    // Static --------------------------------------------------------
 
@@ -30,7 +32,7 @@
 
    public SessionXAResponseMessage(final boolean isError, final int responseCode, final String message)
    {
-      super(PacketType.SESS_XA_RESP);
+      super(SESS_XA_RESP);
       
       this.error = isError;
       
@@ -38,6 +40,11 @@
       
       this.message = message;
    }
+   
+   public SessionXAResponseMessage()
+   {
+      super(SESS_XA_RESP);
+   }
 
    // Public --------------------------------------------------------
    
@@ -55,6 +62,20 @@
    {
       return message;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putBoolean(error);      
+      buffer.putInt(responseCode);      
+      buffer.putNullableString(message);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      error = buffer.getBoolean();      
+      responseCode = buffer.getInt();      
+      message = buffer.getNullableString();
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResumeMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResumeMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAResumeMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,19 +8,21 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAResumeMessage extends PacketImpl
+public class SessionXAResumeMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final Xid xid;
+   private Xid xid;
    
    // Static --------------------------------------------------------
 
@@ -28,10 +30,15 @@
 
    public SessionXAResumeMessage(final Xid xid)
    {
-      super(PacketType.SESS_XA_RESUME);
+      super(SESS_XA_RESUME);
       
       this.xid = xid;
    }
+   
+   public SessionXAResumeMessage()
+   {
+      super(SESS_XA_RESUME);
+   }
 
    // Public --------------------------------------------------------
    
@@ -40,6 +47,16 @@
       return xid;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      encodeXid(xid, buffer);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      xid = decodeXid(buffer);
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXARollbackMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXARollbackMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXARollbackMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,19 +8,21 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXARollbackMessage extends PacketImpl
+public class SessionXARollbackMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final Xid xid;
+   private Xid xid;
    
    // Static --------------------------------------------------------
 
@@ -28,10 +30,15 @@
 
    public SessionXARollbackMessage(final Xid xid)
    {
-      super(PacketType.SESS_XA_ROLLBACK);
+      super(SESS_XA_ROLLBACK);
       
       this.xid = xid;
    }
+   
+   public SessionXARollbackMessage()
+   {
+      super(SESS_XA_ROLLBACK);
+   }
 
    // Public --------------------------------------------------------
    
@@ -40,6 +47,16 @@
       return xid;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      encodeXid(xid, buffer);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      xid = decodeXid(buffer);
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,20 +6,22 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXASetTimeoutMessage extends PacketImpl
+public class SessionXASetTimeoutMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final int timeoutSeconds;
+   private int timeoutSeconds;
    
    // Static --------------------------------------------------------
 
@@ -27,11 +29,16 @@
 
    public SessionXASetTimeoutMessage(final int timeoutSeconds)
    {
-      super(PacketType.SESS_XA_SET_TIMEOUT);
+      super(SESS_XA_SET_TIMEOUT);
       
       this.timeoutSeconds = timeoutSeconds;
    }
    
+   public SessionXASetTimeoutMessage()
+   {
+      super(SESS_XA_SET_TIMEOUT);
+   }
+   
 
    // Public --------------------------------------------------------
    
@@ -39,6 +46,16 @@
    {
       return this.timeoutSeconds;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putInt(timeoutSeconds);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      timeoutSeconds = buffer.getInt();
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutResponseMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXASetTimeoutResponseMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,19 +6,21 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXASetTimeoutResponseMessage extends PacketImpl
+public class SessionXASetTimeoutResponseMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final boolean ok;
+   private boolean ok;
    
    // Static --------------------------------------------------------
 
@@ -26,11 +28,16 @@
 
    public SessionXASetTimeoutResponseMessage(final boolean ok)
    {
-      super(PacketType.SESS_XA_SET_TIMEOUT_RESP);
+      super(SESS_XA_SET_TIMEOUT_RESP);
       
       this.ok = ok;
    }
    
+   public SessionXASetTimeoutResponseMessage()
+   {
+      super(SESS_XA_SET_TIMEOUT_RESP);
+   }
+   
    // Public --------------------------------------------------------
    
    public boolean isOK()
@@ -38,6 +45,16 @@
       return ok;
    }
    
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putBoolean(ok);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      ok = buffer.getBoolean();
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAStartMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAStartMessage.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXAStartMessage.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,19 +8,21 @@
 
 import javax.transaction.xa.Xid;
 
+import org.jboss.messaging.util.MessagingBuffer;
 
+
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * 
  * @version <tt>$Revision$</tt>
  */
-public class SessionXAStartMessage extends PacketImpl
+public class SessionXAStartMessage extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
    
-   private final Xid xid;
+   private Xid xid;
    
    // Static --------------------------------------------------------
 
@@ -28,10 +30,15 @@
 
    public SessionXAStartMessage(final Xid xid)
    {
-      super(PacketType.SESS_XA_START);
+      super(SESS_XA_START);
       
       this.xid = xid;
    }
+   
+   public SessionXAStartMessage()
+   {
+      super(SESS_XA_START);
+   }
 
    // Public --------------------------------------------------------
    
@@ -39,6 +46,17 @@
    {
       return xid;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      encodeXid(xid, buffer);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      xid = decodeXid(buffer);
+   }
+   
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/TextPacket.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/TextPacket.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/TextPacket.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,40 +6,53 @@
  */
 package org.jboss.messaging.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.TEXT;
+import org.jboss.messaging.util.MessagingBuffer;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
  * 
  * @version <tt>$Revision$</tt>
  */
-public class TextPacket extends PacketImpl
+public class TextPacket extends EmptyPacket
 {
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
-   private final String text;
+   private String text;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public TextPacket(String text)
+   public TextPacket(final String text)
    {
       super(TEXT);
 
-      assert text != null;
-
       this.text = text;
    }
    
+   public TextPacket()
+   {
+      super(TEXT);
+   }
+   
    // Public --------------------------------------------------------
 
    public String getText()
    {
       return text;
    }
+   
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putNullableString(text);
+   }
+   
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      text = buffer.getNullableString();
+   }
 
    @Override
    public String toString()

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,14 +21,14 @@
    */
 package org.jboss.messaging.core.server.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CREATECONNECTION;
 
 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.PacketSender;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
 import org.jboss.messaging.core.server.MessagingServer;
 
 /**
@@ -67,7 +67,7 @@
    {
       Packet response = null;
      
-      PacketType type = packet.getType();
+      byte type = packet.getType();
       
       if (type == CREATECONNECTION)
       {

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerBrowserImpl.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,7 +21,11 @@
  */
 package org.jboss.messaging.core.server.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.CLOSE;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.NULL;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BROWSER_HASNEXTMESSAGE;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BROWSER_NEXTMESSAGE;
+import static org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket.SESS_BROWSER_RESET;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -35,8 +39,7 @@
 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.PacketType;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.ReceiveMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
 import org.jboss.messaging.core.server.MessageReference;
@@ -209,7 +212,7 @@
       {
          Packet response = null;
 
-         PacketType type = packet.getType();
+         byte type = packet.getType();
          switch (type)
          {
          case SESS_BROWSER_HASNEXTMESSAGE:
@@ -233,7 +236,7 @@
          // reply if necessary
          if (response == null && packet.getResponseTargetID() != Packet.NO_ID_SET)
          {
-            response = new PacketImpl(NULL);               
+            response = new EmptyPacket(NULL);               
          }            
          
          return response;

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConnectionPacketHandler.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,14 +21,11 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-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.ConnectionCreateSessionMessage;
-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.EmptyPacket;
 import org.jboss.messaging.core.server.ServerConnection;
 
 /**
@@ -57,21 +54,21 @@
    {
       Packet response = null;
 
-      PacketType type = packet.getType();
+      byte type = packet.getType();
       
       switch (type)
       {
-      case CONN_CREATESESSION:
+      case EmptyPacket.CONN_CREATESESSION:
          ConnectionCreateSessionMessage request = (ConnectionCreateSessionMessage) packet;   
          response = connection.createSession(request.isXA(), request.isAutoCommitSends(), request.isAutoCommitAcks(), sender);
          break;
-      case CONN_START:
+      case EmptyPacket.CONN_START:
          connection.start();
          break;
-      case CONN_STOP:
+      case EmptyPacket.CONN_STOP:
          connection.stop();
          break;
-      case CLOSE:
+      case EmptyPacket.CLOSE:
          connection.close();
          break;
       default:
@@ -82,7 +79,7 @@
       // reply if necessary
       if (response == null && packet.getResponseTargetID() != Packet.NO_ID_SET)
       {
-         response = new PacketImpl(NULL);               
+         response = new EmptyPacket(EmptyPacket.NULL);               
       }
       
       return response;

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerConsumerPacketHandler.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,14 +21,11 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-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.ConsumerFlowTokenMessage;
-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.EmptyPacket;
 import org.jboss.messaging.core.server.ServerConsumer;
 
 /**
@@ -57,14 +54,14 @@
    {
       Packet response = null;
 
-      PacketType type = packet.getType();
+      byte type = packet.getType();
       switch (type)
       {
-      case CONS_FLOWTOKEN:
+      case EmptyPacket.CONS_FLOWTOKEN:
          ConsumerFlowTokenMessage message = (ConsumerFlowTokenMessage) packet;
          consumer.receiveTokens(message.getTokens());
          break;
-      case CLOSE:
+      case EmptyPacket.CLOSE:
          consumer.close();
          break;
       default:
@@ -75,7 +72,7 @@
       // reply if necessary
       if (response == null && packet.getResponseTargetID() != Packet.NO_ID_SET)
       {
-         response = new PacketImpl(NULL);               
+         response = new EmptyPacket(EmptyPacket.NULL);               
       }
       
       return response;

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerProducerPacketHandler.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,13 +21,10 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-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.PacketType;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
 import org.jboss.messaging.core.server.ServerProducer;
 
@@ -56,14 +53,14 @@
    {
       Packet response = null;
 
-      PacketType type = packet.getType();
+      byte type = packet.getType();
       switch (type)
       {
-      case PROD_SEND:
+      case EmptyPacket.PROD_SEND:
          ProducerSendMessage message = (ProducerSendMessage) packet;
          producer.send(message.getServerMessage());
          break;
-      case CLOSE:
+      case EmptyPacket.CLOSE:
          producer.close();
          break;
       default:
@@ -74,7 +71,7 @@
       // reply if necessary
       if (response == null && packet.getResponseTargetID() != Packet.NO_ID_SET)
       {
-         response = new PacketImpl(NULL);               
+         response = new EmptyPacket(EmptyPacket.NULL);               
       }
       
       return response;

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionPacketHandler.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -21,8 +21,6 @@
   */
 package org.jboss.messaging.core.server.impl;
 
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
-
 import java.util.List;
 
 import javax.transaction.xa.Xid;
@@ -31,8 +29,7 @@
 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.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
@@ -86,11 +83,11 @@
    {
       Packet response = null;
 
-      PacketType type = packet.getType();
+      byte type = packet.getType();
       
       switch (type)
       {
-      case SESS_CREATECONSUMER:
+      case EmptyPacket.SESS_CREATECONSUMER:
       {
          SessionCreateConsumerMessage request = (SessionCreateConsumerMessage) packet;
          
@@ -99,7 +96,7 @@
          		                            request.getWindowSize(), request.getMaxRate());
          break;
       }
-      case SESS_CREATEQUEUE:
+      case EmptyPacket.SESS_CREATEQUEUE:
       {
          SessionCreateQueueMessage request = (SessionCreateQueueMessage) packet;
          session.createQueue(request.getAddress(), request.getQueueName(), request
@@ -107,130 +104,138 @@
                .isTemporary());
          break;
       }
-      case SESS_DELETE_QUEUE:
+      case EmptyPacket.SESS_DELETE_QUEUE:
       {
          SessionDeleteQueueMessage request = (SessionDeleteQueueMessage) packet;
          session.deleteQueue(request.getQueueName());
          break;
       }
-      case SESS_QUEUEQUERY:
+      case EmptyPacket.SESS_QUEUEQUERY:
       {
          SessionQueueQueryMessage request = (SessionQueueQueryMessage) packet;
          response = session.executeQueueQuery(request);
          break;
       }
-      case SESS_BINDINGQUERY:
+      case EmptyPacket.SESS_BINDINGQUERY:
       {
          SessionBindingQueryMessage request = (SessionBindingQueryMessage)packet;
          response = session.executeBindingQuery(request);
          break;
       }
-      case SESS_CREATEBROWSER:
+      case EmptyPacket.SESS_CREATEBROWSER:
       {
          SessionCreateBrowserMessage request = (SessionCreateBrowserMessage) packet;
          response = session.createBrowser(request.getQueueName(), request
                .getFilterString());
          break;
       }
-      case SESS_CREATEPRODUCER:
+      case EmptyPacket.SESS_CREATEPRODUCER:
       {
          SessionCreateProducerMessage request = (SessionCreateProducerMessage) packet;
          response = session.createProducer(request.getClientTargetID(), request.getAddress(), request.getWindowSize(), request.getMaxRate());
          break;
       }
-      case CLOSE:
+      case EmptyPacket.CLOSE:
+      {
          session.close();
          break;
-      case SESS_ACKNOWLEDGE:
+      }
+      case EmptyPacket.SESS_ACKNOWLEDGE:
       {
          SessionAcknowledgeMessage message = (SessionAcknowledgeMessage) packet;
          session.acknowledge(message.getDeliveryID(), message.isAllUpTo());
          break;
       }
-      case SESS_COMMIT:
+      case EmptyPacket.SESS_COMMIT:
          session.commit();
          break;
-      case SESS_ROLLBACK:
+      case EmptyPacket.SESS_ROLLBACK:
          session.rollback();
          break;
-      case SESS_CANCEL:
+      case EmptyPacket.SESS_CANCEL:
       {
          SessionCancelMessage message = (SessionCancelMessage) packet;
          session.cancel(message.getDeliveryID(), message.isExpired());
          break;
       }
-      case SESS_XA_COMMIT:
+      case EmptyPacket.SESS_XA_COMMIT:
       {
          SessionXACommitMessage message = (SessionXACommitMessage) packet;
          response = session.XACommit(message.isOnePhase(), message.getXid());
          break;
       }
-      case SESS_XA_END:
+      case EmptyPacket.SESS_XA_END:
       {
          SessionXAEndMessage message = (SessionXAEndMessage) packet;
          response = session.XAEnd(message.getXid(), message.isFailed());
          break;
       }
-      case SESS_XA_FORGET:
+      case EmptyPacket.SESS_XA_FORGET:
       {
          SessionXAForgetMessage message = (SessionXAForgetMessage) packet;
          response = session.XAForget(message.getXid());
          break;
       }
-      case SESS_XA_JOIN:
+      case EmptyPacket.SESS_XA_JOIN:
       {
          SessionXAJoinMessage message = (SessionXAJoinMessage) packet;
          response = session.XAJoin(message.getXid());
          break;
       }
-      case SESS_XA_RESUME:
+      case EmptyPacket.SESS_XA_RESUME:
       {
          SessionXAResumeMessage message = (SessionXAResumeMessage) packet;
          response = session.XAResume(message.getXid());
          break;
       }
-      case SESS_XA_ROLLBACK:
+      case EmptyPacket.SESS_XA_ROLLBACK:
       {
          SessionXARollbackMessage message = (SessionXARollbackMessage) packet;
          response = session.XARollback(message.getXid());
          break;
       }
-      case SESS_XA_START:
+      case EmptyPacket.SESS_XA_START:
       {
          SessionXAStartMessage message = (SessionXAStartMessage) packet;
          response = session.XAStart(message.getXid());
          break;
       }
-      case SESS_XA_SUSPEND:
+      case EmptyPacket.SESS_XA_SUSPEND:
+      {
          response = session.XASuspend();
          break;
-      case SESS_XA_PREPARE:
+      }
+      case EmptyPacket.SESS_XA_PREPARE:
       {
          SessionXAPrepareMessage message = (SessionXAPrepareMessage) packet;
          response = session.XAPrepare(message.getXid());
          break;
       }
-      case SESS_XA_INDOUBT_XIDS:
+      case EmptyPacket.SESS_XA_INDOUBT_XIDS:
+      {
          List<Xid> xids = session.getInDoubtXids();
          response = new SessionXAGetInDoubtXidsResponseMessage(xids);
          break;
-      case SESS_XA_GET_TIMEOUT:
+      }
+      case EmptyPacket.SESS_XA_GET_TIMEOUT:
+      {
          response = new SessionXAGetTimeoutResponseMessage(session.getXATimeout());
          break;
-      case SESS_XA_SET_TIMEOUT:
+      }
+      case EmptyPacket.SESS_XA_SET_TIMEOUT:
       {
          SessionXASetTimeoutMessage message = (SessionXASetTimeoutMessage) packet;
          response = new SessionXASetTimeoutResponseMessage(session.setXATimeout(message
                .getTimeoutSeconds()));
          break;
       }
-      case SESS_ADD_DESTINATION:
+      case EmptyPacket.SESS_ADD_DESTINATION:
       {
          SessionAddDestinationMessage message = (SessionAddDestinationMessage) packet;
          session.addDestination(message.getAddress(), message.isTemporary());
          break;
       }
-      case SESS_REMOVE_DESTINATION:
+      case EmptyPacket.SESS_REMOVE_DESTINATION:
       {
          SessionRemoveDestinationMessage message = (SessionRemoveDestinationMessage) packet;
          session.removeDestination(message.getAddress(), message.isTemporary());
@@ -243,7 +248,7 @@
       // reply if necessary
       if (response == null && packet.getResponseTargetID() != Packet.NO_ID_SET)
       {
-         response = new PacketImpl(NULL);               
+         response = new EmptyPacket(EmptyPacket.NULL);               
       }
 
       return response;

Modified: trunk/src/main/org/jboss/messaging/util/ByteBufferWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/ByteBufferWrapper.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/util/ByteBufferWrapper.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -301,6 +301,11 @@
 	{
 		buffer.putInt(val);
 	}
+	
+	public void putInt(int pos, int val)
+   {
+      buffer.putInt(pos, val);
+   }
 
 	public void putLong(long val)
 	{

Modified: trunk/src/main/org/jboss/messaging/util/MessagingBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/MessagingBuffer.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/src/main/org/jboss/messaging/util/MessagingBuffer.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -23,6 +23,8 @@
 	
 	void putInt(int val);
 	
+	void putInt(int pos, int val);
+	
 	void putLong(long val);
 	
 	void putShort(short val);

Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/MessageProducerTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/MessageProducerTest.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/MessageProducerTest.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -167,7 +167,7 @@
          
        //  pconn.start();
          
-         p.setDeliveryMode(DeliveryMode.PERSISTENT);
+         p.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
          
          p.setDisableMessageID(true);
          p.setDisableMessageTimestamp(true);
@@ -203,7 +203,56 @@
 
       }
    }
+   
+   public void testSpeed2() throws Exception
+   {
+      Connection pconn = null;      
 
+      try
+      {
+         pconn = cf.createConnection();
+
+         Session ps = pconn.createSession(true, Session.SESSION_TRANSACTED);
+
+         MessageProducer p = ps.createProducer(queue1);
+         
+         p.setDeliveryMode(DeliveryMode.PERSISTENT);
+         
+         p.setDisableMessageID(true);
+         p.setDisableMessageTimestamp(true);
+
+         final int numMessages = 20000;
+
+         long start = System.currentTimeMillis();
+
+         BytesMessage msg = ps.createBytesMessage();
+         
+         msg.writeBytes(new byte[1000]);
+
+         
+         for (int i = 0; i < numMessages; i++)
+         {
+            p.send(msg);
+            
+            if ((i+1) % 1000 == 0)
+            {
+               ps.commit();
+            }
+         }
+         
+         long end = System.currentTimeMillis();
+
+         double actualRate = 1000 * (double)numMessages / ( end - start);
+
+         log.info("rate " + actualRate + " msgs /sec");
+
+      }
+      finally
+      {
+
+      }
+   }
+
    public void testTransactedSendPersistent() throws Exception
    {
       transactedSend(true);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/MinaSessionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/MinaSessionTest.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/MinaSessionTest.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,19 +6,16 @@
  */
 package org.jboss.messaging.tests.integration.core.remoting.mina;
 
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static org.jboss.messaging.core.remoting.TransportType.TCP;
 
+import org.jboss.messaging.core.client.impl.LocationImpl;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.remoting.NIOConnector;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
-import org.jboss.messaging.tests.unit.core.remoting.impl.ConfigurationHelper;
-import org.jboss.messaging.tests.unit.core.remoting.impl.SessionTestBase;
 import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
 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.TextPacket;
-import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.tests.unit.core.remoting.impl.ConfigurationHelper;
+import org.jboss.messaging.tests.unit.core.remoting.impl.SessionTestBase;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/ReversePacketHandler.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/ReversePacketHandler.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/ReversePacketHandler.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -16,6 +16,7 @@
 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.EmptyPacket;
 import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 import org.jboss.messaging.tests.unit.core.remoting.TestPacketHandler;
 
@@ -62,6 +63,11 @@
    
    // TestPacketHandler overrides -----------------------------------
    
+   protected boolean isRequest(final Packet packet)
+   {
+      return packet.getTargetID() != EmptyPacket.NO_ID_SET && packet.getResponseTargetID() != EmptyPacket.NO_ID_SET;
+   }
+   
    @Override
    protected void doHandle(Packet packet, PacketSender sender)
    {
@@ -79,9 +85,9 @@
             fail();
          }
       }
-      
+                  
       TextPacket message = (TextPacket) packet;
-      if (message.isRequest())
+      if (isRequest(message))
       {
          TextPacket response = new TextPacket(TestSupport.reverse(message.getText()));
          response.normalize(message);

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/SessionTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/SessionTestBase.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/SessionTestBase.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -8,8 +8,6 @@
 
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.jboss.messaging.tests.integration.core.remoting.mina.TestSupport.MANY_MESSAGES;
-import static org.jboss.messaging.tests.integration.core.remoting.mina.TestSupport.REQRES_TIMEOUT;
-import static org.jboss.messaging.tests.integration.core.remoting.mina.TestSupport.reverse;
 
 import java.util.List;
 import java.util.concurrent.atomic.AtomicLong;
@@ -22,12 +20,10 @@
 import org.jboss.messaging.core.remoting.NIOSession;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
 import org.jboss.messaging.tests.integration.core.remoting.mina.ReversePacketHandler;
 import org.jboss.messaging.tests.unit.core.remoting.TestPacketHandler;
-import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
-import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java	2008-05-08 11:20:19 UTC (rev 4163)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java	2008-05-09 08:49:49 UTC (rev 4164)
@@ -6,174 +6,11 @@
  */
 package org.jboss.messaging.tests.unit.core.remoting.impl.wireformat;
 
-import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.HEADER_LENGTH;
-import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.encodeXid;
-import static org.jboss.messaging.core.remoting.impl.mina.PacketCodecFactory.createCodecForEmptyPacket;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.BYTES;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-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.CONS_FLOWTOKEN;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PING;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PONG;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_RECEIVETOKENS;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.RECEIVE_MSG;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ACKNOWLEDGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ADD_DESTINATION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_RESET;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CANCEL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEQUEUE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_DELETE_QUEUE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_RECOVER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_REMOVE_DESTINATION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_END;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_FORGET;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_JOIN;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_PREPARE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_RESUME;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SET_TIMEOUT_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_START;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SUSPEND;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.TEXT;
-import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertEqualsByteArrays;
-import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertSameXids;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBytes;
-import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
-import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
-import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-import static org.jboss.messaging.tests.util.RandomUtil.randomXid;
-import static org.jboss.messaging.util.DataConstants.SIZE_LONG;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.transaction.xa.Xid;
-
-import org.apache.mina.common.IoBuffer;
 import org.apache.mina.common.WriteFuture;
 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
 import org.apache.mina.filter.codec.ProtocolEncoderOutput;
 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;
-import org.jboss.messaging.core.remoting.impl.codec.ConnectionCreateSessionResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ConsumerFlowTokenMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.CreateConnectionMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.CreateConnectionResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.PingCodec;
-import org.jboss.messaging.core.remoting.impl.codec.PongCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ProducerReceiveTokensMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ProducerSendMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ReceiveMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionAcknowledgeMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionAddDestinationMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBindingQueryMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBindingQueryResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBrowserHasNextMessageResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCancelMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateBrowserMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateBrowserResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateConsumerMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateConsumerResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateProducerMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateProducerResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateQueueMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionDeleteQueueMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionQueueQueryMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionQueueQueryResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionRemoveDestinationMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXACommitMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAEndMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAForgetMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAGetInDoubtXidsResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAGetTimeoutResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAJoinMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAPrepareMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAResumeMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXARollbackMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXASetTimeoutMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXASetTimeoutResponseMessageCodec;
-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.mina.BufferWrapper;
-import org.jboss.messaging.core.remoting.impl.mina.PacketCodecFactory;
-import org.jboss.messaging.core.remoting.impl.wireformat.BytesPacket;
-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.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.PacketImpl;
-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;
-import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ReceiveMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCancelMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateQueueMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionDeleteQueueMessage;
-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.SessionRemoveDestinationMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXACommitMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAEndMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAForgetMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetInDoubtXidsResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetTimeoutResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAJoinMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAPrepareMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResumeMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXARollbackMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAStartMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
-import org.jboss.messaging.core.version.impl.VersionImpl;
 import org.jboss.messaging.tests.util.UnitTestCase;
-import org.jboss.messaging.util.MessagingBuffer;
 import org.jboss.messaging.util.SimpleString;
 
 /**
@@ -195,164 +32,164 @@
 
    // Static --------------------------------------------------------
 
-   private static MessagingBuffer encode(int length, Object... args)
-         throws Exception
-   {
-      BufferWrapper buffer = new BufferWrapper(IoBuffer.allocate(length));
-      for (Object arg : args)
-      {
-         if (arg instanceof Byte)
-            buffer.putByte(((Byte) arg).byteValue());
-         else if (arg instanceof Boolean)
-         {
-            Boolean bool = (Boolean) arg;
-            buffer.putBoolean(bool);
-         } else if (arg instanceof Integer)
-            buffer.putInt(((Integer) arg).intValue());
-         else if (arg instanceof Long)
-            buffer.putLong(((Long) arg).longValue());
-         else if (arg instanceof Float)
-            buffer.putFloat(((Float) arg).floatValue());
-         else if (arg instanceof String)
-            buffer.putNullableString((String) arg);
-         else if (arg instanceof SimpleString)
-            buffer.putSimpleString((SimpleString)arg);
-         else if (arg instanceof NullableStringHolder)
-            buffer.putNullableSimpleString(((NullableStringHolder)arg).str);
-         else if (arg == null)
-            buffer.putNullableString(null);
-         else if (arg instanceof byte[])
-         {
-            byte[] b = (byte[]) arg;
-            buffer.putInt(b.length);
-            buffer.putBytes(b);
-         } else if (arg instanceof long[])
-         {
-            long[] longs = (long[]) arg;
-            for (long l : longs)
-            {
-               buffer.putLong(l);
-            }
-         } else if (arg instanceof List)
-         {
-            List argsInList = (List) arg;
-            buffer.putInt(argsInList.size());
-            for (Object argInList : argsInList)
-            {
-               if (argInList instanceof SimpleString)
-                  buffer.putSimpleString((SimpleString) argInList);
-               else if (argInList instanceof Xid)
-                  encodeXid((Xid)argInList, buffer);
-               else
-                  fail ("no encoding defined for " + arg + " in List");
-            }
-         } else if (arg instanceof Xid)
-         {
-            Xid xid = (Xid) arg;
-            encodeXid(xid, buffer);
-         } else
-         {
-            fail("no encoding defined for " + arg);
-         }
-      }
-      buffer.flip();
-      return buffer;
-   }
+//   private static MessagingBuffer encode(int length, Object... args)
+//         throws Exception
+//   {
+//      BufferWrapper buffer = new BufferWrapper(IoBuffer.allocate(length));
+//      for (Object arg : args)
+//      {
+//         if (arg instanceof Byte)
+//            buffer.putByte(((Byte) arg).byteValue());
+//         else if (arg instanceof Boolean)
+//         {
+//            Boolean bool = (Boolean) arg;
+//            buffer.putBoolean(bool);
+//         } else if (arg instanceof Integer)
+//            buffer.putInt(((Integer) arg).intValue());
+//         else if (arg instanceof Long)
+//            buffer.putLong(((Long) arg).longValue());
+//         else if (arg instanceof Float)
+//            buffer.putFloat(((Float) arg).floatValue());
+//         else if (arg instanceof String)
+//            buffer.putNullableString((String) arg);
+//         else if (arg instanceof SimpleString)
+//            buffer.putSimpleString((SimpleString)arg);
+//         else if (arg instanceof NullableStringHolder)
+//            buffer.putNullableSimpleString(((NullableStringHolder)arg).str);
+//         else if (arg == null)
+//            buffer.putNullableString(null);
+//         else if (arg instanceof byte[])
+//         {
+//            byte[] b = (byte[]) arg;
+//            buffer.putInt(b.length);
+//            buffer.putBytes(b);
+//         } else if (arg instanceof long[])
+//         {
+//            long[] longs = (long[]) arg;
+//            for (long l : longs)
+//            {
+//               buffer.putLong(l);
+//            }
+//         } else if (arg instanceof List)
+//         {
+//            List argsInList = (List) arg;
+//            buffer.putInt(argsInList.size());
+//            for (Object argInList : argsInList)
+//            {
+//               if (argInList instanceof SimpleString)
+//                  buffer.putSimpleString((SimpleString) argInList);
+//               else if (argInList instanceof Xid)
+//                  encodeXid((Xid)argInList, buffer);
+//               else
+//                  fail ("no encoding defined for " + arg + " in List");
+//            }
+//         } else if (arg instanceof Xid)
+//         {
+//            Xid xid = (Xid) arg;
+//            encodeXid(xid, buffer);
+//         } else
+//         {
+//            fail("no encoding defined for " + arg);
+//         }
+//      }
+//      buffer.flip();
+//      return buffer;
+//   }
+//
+//   private static void checkHeader(final MessagingBuffer buffer,
+//         final Packet packet, final int bodyLength) throws Exception
+//   {
+//      buffer.rewind();
+//      int messageLength = buffer.getInt();
+//      assertEquals(AbstractPacketCodec.HEADER_LENGTH + bodyLength,
+//            messageLength);
+//
+//      assertEquals(buffer.getByte(), packet.getType().byteValue());
+//
+//      long responseTargetID = buffer.getLong();
+//      long targetID = buffer.getLong();
+//      long executorID = buffer.getLong();
+//
+//      assertEquals(packet.getResponseTargetID(), responseTargetID);
+//      assertEquals(packet.getTargetID(), targetID);
+//      assertEquals(packet.getExecutorID(), executorID);
+//   }
+//
+//   private static void checkBody(MessagingBuffer buffer, int bodyLength,
+//         Object... bodyObjects) throws Exception
+//   {
+//      byte[] actualBody = new byte[bodyLength];
+//      buffer.getBytes(actualBody);
+//      MessagingBuffer expectedBody = encode(actualBody.length, bodyObjects);
+//      assertEqualsByteArrays(expectedBody.array(), actualBody);
+//      // check the buffer has been wholly read
+//      assertEquals(0, buffer.remaining());
+//   }
+//
+//   private static Packet encodeAndCheckBytesAndDecode(Packet packet,
+//         AbstractPacketCodec codec, Object... bodyObjects) throws Exception
+//   {
+//      MessagingBuffer buffer = encode(packet, codec);
+//      int bodyLength = buffer.position();
+//      checkHeader(buffer, packet, bodyLength);
+//      checkBody(buffer, bodyLength, bodyObjects);
+//      buffer.rewind();
+//
+//      Packet decodedPacket = decode(buffer, codec, bodyLength);
+//      
+//      return decodedPacket;
+//   }
+//
+//   private static MessagingBuffer encode(final Packet packet,
+//         final AbstractPacketCodec<Packet> codec) throws Exception
+//   {
+//      SimpleProtocolEncoderOutput out = new SimpleProtocolEncoderOutput();
+//
+//      codec.encode(packet, out);
+//
+//      Object encodedMessage = out.getEncodedMessage();
+//
+//      assertNotNull(encodedMessage);
+//
+//      assertTrue(encodedMessage instanceof IoBuffer);
+//
+//      MessagingBuffer buff = new BufferWrapper((IoBuffer) encodedMessage);
+//
+//      return buff;
+//   }
+//
+//   private static Packet decode(final MessagingBuffer buffer,
+//         final AbstractPacketCodec<Packet> codec, final int len)
+//         throws Exception
+//   {
+//      SimpleProtocolDencoderOutput out = new SimpleProtocolDencoderOutput();
+//
+//      int length = buffer.getInt();
+//
+//      assertEquals(len + HEADER_LENGTH, length);
+//
+//      byte type = buffer.getByte();
+//
+//      assertEquals(codec.getType().byteValue(), type);
+//
+//      codec.decode(buffer, out);
+//
+//      Object message = out.getMessage();
+//
+//      assertNotNull(message);
+//
+//      assertTrue(message instanceof Packet);
+//
+//      return (Packet) message;
+//   }
 
-   private static void checkHeader(final MessagingBuffer buffer,
-         final Packet packet, final int bodyLength) throws Exception
-   {
-      buffer.rewind();
-      int messageLength = buffer.getInt();
-      assertEquals(AbstractPacketCodec.HEADER_LENGTH + bodyLength,
-            messageLength);
-
-      assertEquals(buffer.getByte(), packet.getType().byteValue());
-
-      long responseTargetID = buffer.getLong();
-      long targetID = buffer.getLong();
-      long executorID = buffer.getLong();
-
-      assertEquals(packet.getResponseTargetID(), responseTargetID);
-      assertEquals(packet.getTargetID(), targetID);
-      assertEquals(packet.getExecutorID(), executorID);
-   }
-
-   private static void checkBody(MessagingBuffer buffer, int bodyLength,
-         Object... bodyObjects) throws Exception
-   {
-      byte[] actualBody = new byte[bodyLength];
-      buffer.getBytes(actualBody);
-      MessagingBuffer expectedBody = encode(actualBody.length, bodyObjects);
-      assertEqualsByteArrays(expectedBody.array(), actualBody);
-      // check the buffer has been wholly read
-      assertEquals(0, buffer.remaining());
-   }
-
-   private static Packet encodeAndCheckBytesAndDecode(Packet packet,
-         AbstractPacketCodec codec, Object... bodyObjects) throws Exception
-   {
-      MessagingBuffer buffer = encode(packet, codec);
-      int bodyLength = buffer.position();
-      checkHeader(buffer, packet, bodyLength);
-      checkBody(buffer, bodyLength, bodyObjects);
-      buffer.rewind();
-
-      Packet decodedPacket = decode(buffer, codec, bodyLength);
-      
-      return decodedPacket;
-   }
-
-   private static MessagingBuffer encode(final Packet packet,
-         final AbstractPacketCodec<Packet> codec) throws Exception
-   {
-      SimpleProtocolEncoderOutput out = new SimpleProtocolEncoderOutput();
-
-      codec.encode(packet, out);
-
-      Object encodedMessage = out.getEncodedMessage();
-
-      assertNotNull(encodedMessage);
-
-      assertTrue(encodedMessage instanceof IoBuffer);
-
-      MessagingBuffer buff = new BufferWrapper((IoBuffer) encodedMessage);
-
-      return buff;
-   }
-
-   private static Packet decode(final MessagingBuffer buffer,
-         final AbstractPacketCodec<Packet> codec, final int len)
-         throws Exception
-   {
-      SimpleProtocolDencoderOutput out = new SimpleProtocolDencoderOutput();
-
-      int length = buffer.getInt();
-
-      assertEquals(len + HEADER_LENGTH, length);
-
-      byte type = buffer.getByte();
-
-      assertEquals(codec.getType().byteValue(), type);
-
-      codec.decode(buffer, out);
-
-      Object message = out.getMessage();
-
-      assertNotNull(message);
-
-      assertTrue(message instanceof Packet);
-
-      return (Packet) message;
-   }
-
    // Constructors --------------------------------------------------
 
    // Public --------------------------------------------------------
 //
 //   public void testNullPacket() throws Exception
 //   {
-//      Packet packet = new PacketImpl(NULL);
+//      Packet packet = new EmptyPacket(NULL);
 //      long cid = randomLong();
 //      packet.setResponseTargetID(cid);
 //      packet.setTargetID(randomLong());
@@ -361,7 +198,7 @@
 //            .createCodecForEmptyPacket(NULL);
 //
 //      Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec);
-//      assertTrue(decodedPacket instanceof PacketImpl);
+//      assertTrue(decodedPacket instanceof EmptyPacket);
 //
 //      assertEquals(NULL, decodedPacket.getType());
 //      assertEquals(packet.getResponseTargetID(), decodedPacket.getResponseTargetID());
@@ -626,7 +463,7 @@
 //
 //   public void testStartConnectionMessage() throws Exception
 //   {
-//      Packet packet = new PacketImpl(CONN_START);
+//      Packet packet = new EmptyPacket(CONN_START);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(CONN_START);
 //
@@ -637,7 +474,7 @@
 //
 //   public void testStopConnectionMessage() throws Exception
 //   {
-//      Packet packet = new PacketImpl(CONN_STOP);
+//      Packet packet = new EmptyPacket(CONN_STOP);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(CONN_STOP);
 //
@@ -727,7 +564,7 @@
 //
 //   public void testSessionCommitMessage() throws Exception
 //   {
-//      Packet message = new PacketImpl(SESS_COMMIT);
+//      Packet message = new EmptyPacket(SESS_COMMIT);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(SESS_COMMIT);
 //
@@ -738,7 +575,7 @@
 //
 //   public void testSessionRollbackMessage() throws Exception
 //   {
-//      Packet message = new PacketImpl(SESS_ROLLBACK);
+//      Packet message = new EmptyPacket(SESS_ROLLBACK);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(SESS_ROLLBACK);
 //
@@ -749,7 +586,7 @@
 //
 //   public void testSessionRecoverMessage() throws Exception
 //   {
-//      Packet message = new PacketImpl(SESS_RECOVER);
+//      Packet message = new EmptyPacket(SESS_RECOVER);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(SESS_RECOVER);
 //
@@ -760,7 +597,7 @@
 //
 //   public void testCloseMessage() throws Exception
 //   {
-//      Packet message = new PacketImpl(CLOSE);
+//      Packet message = new EmptyPacket(CLOSE);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(CLOSE);
 //
@@ -804,7 +641,7 @@
 //
 //   public void testBrowserResetMessage() throws Exception
 //   {
-//      Packet message = new PacketImpl(SESS_BROWSER_RESET);
+//      Packet message = new EmptyPacket(SESS_BROWSER_RESET);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(SESS_BROWSER_RESET);
 //
@@ -815,7 +652,7 @@
 //
 //   public void testBrowserHasNextMessageRequest() throws Exception
 //   {
-//      Packet request = new PacketImpl(SESS_BROWSER_HASNEXTMESSAGE);
+//      Packet request = new EmptyPacket(SESS_BROWSER_HASNEXTMESSAGE);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(SESS_BROWSER_HASNEXTMESSAGE);
 //
@@ -842,7 +679,7 @@
 //
 //   public void testBrowserNextMessageRequest() throws Exception
 //   {
-//      Packet request = new PacketImpl(SESS_BROWSER_NEXTMESSAGE);
+//      Packet request = new EmptyPacket(SESS_BROWSER_NEXTMESSAGE);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(SESS_BROWSER_NEXTMESSAGE);
 //
@@ -899,7 +736,7 @@
 //
 //   public void testSessionXAGetInDoubtXidsMessage() throws Exception
 //   {
-//      Packet request = new PacketImpl(SESS_XA_INDOUBT_XIDS);
+//      Packet request = new EmptyPacket(SESS_XA_INDOUBT_XIDS);
 //      AbstractPacketCodec codec = createCodecForEmptyPacket(SESS_XA_INDOUBT_XIDS);
 //
 //      Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec);
@@ -930,7 +767,7 @@
 //
 //   public void testSessionXAGetTimeoutMessage() throws Exception
 //   {
-//      Packet message = new PacketImpl(SESS_XA_GET_TIMEOUT);
+//      Packet message = new EmptyPacket(SESS_XA_GET_TIMEOUT);
 //      AbstractPacketCodec codec = createCodecForEmptyPacket(PacketType.SESS_XA_GET_TIMEOUT);
 //
 //      Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec);
@@ -1075,7 +912,7 @@
 //
 //   public void testSessionXASuspendMessage() throws Exception
 //   {
-//      Packet message = new PacketImpl(SESS_XA_SUSPEND);
+//      Packet message = new EmptyPacket(SESS_XA_SUSPEND);
 //      AbstractPacketCodec codec = PacketCodecFactory
 //            .createCodecForEmptyPacket(PacketType.SESS_XA_SUSPEND);
 //




More information about the jboss-cvs-commits mailing list