[jboss-cvs] JBoss Messaging SVN: r3356 - branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 21 12:40:28 EST 2007


Author: jmesnil
Date: 2007-11-21 12:40:28 -0500 (Wed, 21 Nov 2007)
New Revision: 3356

Removed:
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserHasNextMessageRequestCodec.java
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageRequestCodec.java
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserResetMessageCodec.java
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CloseMessageCodec.java
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/EmptyBodyPacketCodec.java
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientIDRequestCodec.java
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/NullPacketCodec.java
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/StartConnectionMessageCodec.java
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/StopConnectionMessageCodec.java
Modified:
   branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java
Log:
http://jira.jboss.org/jira/browse/JBMESSAGING-544: Replace client-server transport with NIO based transport
* factorized code to create codecs for empty packet in PacketCodecFactory

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserHasNextMessageRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserHasNextMessageRequestCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserHasNextMessageRequestCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,52 +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.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_HASNEXTMESSAGE;
-
-import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageRequest;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class BrowserHasNextMessageRequestCodec extends EmptyBodyPacketCodec<BrowserHasNextMessageRequest>
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   public BrowserHasNextMessageRequestCodec()
-   {
-    super(REQ_BROWSER_HASNEXTMESSAGE);
-   }
-   
-   // Public --------------------------------------------------------
-
-   // EmptyBodyPacketCodec overrides --------------------------------
-   
-   @Override
-   protected BrowserHasNextMessageRequest newPacket()
-   {
-      return new BrowserHasNextMessageRequest();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageRequestCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageRequestCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,52 +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.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_NEXTMESSAGE;
-
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageRequest;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class BrowserNextMessageRequestCodec extends EmptyBodyPacketCodec<BrowserNextMessageRequest>
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   public BrowserNextMessageRequestCodec()
-   {
-    super(REQ_BROWSER_NEXTMESSAGE);
-   }
-   
-   // Public --------------------------------------------------------
-
-   // EmptyBodyPacketCodec overrides --------------------------------
-   
-   @Override
-   protected BrowserNextMessageRequest newPacket()
-   {
-      return new BrowserNextMessageRequest();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserResetMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserResetMessageCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserResetMessageCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,52 +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.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_BROWSER_RESET;
-
-import org.jboss.messaging.core.remoting.wireformat.BrowserResetMessage;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class BrowserResetMessageCodec extends EmptyBodyPacketCodec<BrowserResetMessage>
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   public BrowserResetMessageCodec()
-   {
-    super(MSG_BROWSER_RESET);
-   }
-   
-   // Public --------------------------------------------------------
-
-   // EmptyBodyPacketCodec overrides --------------------------------
-   
-   @Override
-   protected BrowserResetMessage newPacket()
-   {
-      return new BrowserResetMessage();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CloseMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CloseMessageCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CloseMessageCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,49 +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.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CLOSE;
-
-import org.jboss.messaging.core.remoting.wireformat.CloseMessage;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- */
-public class CloseMessageCodec extends
-      EmptyBodyPacketCodec<CloseMessage>
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   public CloseMessageCodec()
-   {
-      super(MSG_CLOSE);
-   }
-
-   // Public --------------------------------------------------------
-
-   // EmptyBodyPacketCodec overrides ---------------------------------
-
-   @Override
-   protected CloseMessage newPacket()
-   {
-      return new CloseMessage();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private ----------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/EmptyBodyPacketCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/EmptyBodyPacketCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/EmptyBodyPacketCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,65 +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.codec;
-
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
-import org.jboss.messaging.core.remoting.wireformat.PacketType;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public abstract class EmptyBodyPacketCodec<P extends AbstractPacket> extends
-      AbstractPacketCodec<P>
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   public EmptyBodyPacketCodec(PacketType type)
-   {
-      super(type);
-   }
-
-   // Public --------------------------------------------------------
-
-   // AbstractPacketCodec overrides ---------------------------------
-
-   @Override
-   protected void encodeBody(IoSession session, P packet,
-         IoBuffer out) throws Exception
-   {
-      // no body
-      out.putInt(0);
-   }
-
-   @Override
-   protected P decodeBody(IoSession session, IoBuffer in)
-         throws Exception
-   {
-      in.getInt(); // skip body length
-      return newPacket();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   protected abstract P newPacket();
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientIDRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientIDRequestCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientIDRequestCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,49 +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.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETCLIENTID;
-
-import org.jboss.messaging.core.remoting.wireformat.GetClientIDRequest;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- */
-public class GetClientIDRequestCodec extends
-      EmptyBodyPacketCodec<GetClientIDRequest>
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   public GetClientIDRequestCodec()
-   {
-      super(REQ_GETCLIENTID);
-   }
-
-   // Public --------------------------------------------------------
-
-   // EmptyBodyPacketCodec overrides ---------------------------------
-
-   @Override
-   protected GetClientIDRequest newPacket()
-   {
-      return new GetClientIDRequest();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/NullPacketCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/NullPacketCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/NullPacketCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,51 +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.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.NULL;
-
-import org.jboss.messaging.core.remoting.wireformat.NullPacket;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- */
-public class NullPacketCodec extends EmptyBodyPacketCodec<NullPacket>
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public NullPacketCodec()
-   {
-      super(NULL);
-   }
-
-   @Override
-   protected NullPacket newPacket()
-   {
-      return new NullPacket();
-   }
-
-   // EmptyBodyPacketCodec overrides----------------------------------
-   
-   
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-
-}

Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -6,7 +6,19 @@
  */
 package org.jboss.messaging.core.remoting.codec;
 
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_BROWSER_RESET;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CLOSE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_STARTCONNECTION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_STOPCONNECTION;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.NULL;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_HASNEXTMESSAGE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_NEXTMESSAGE;
+import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETCLIENTID;
+
+import org.apache.mina.common.IoBuffer;
+import org.apache.mina.common.IoSession;
 import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
 import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveriesMessage;
 import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryRequest;
 import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryResponse;
@@ -38,6 +50,7 @@
 import org.jboss.messaging.core.remoting.wireformat.IDBlockResponse;
 import org.jboss.messaging.core.remoting.wireformat.JMSExceptionMessage;
 import org.jboss.messaging.core.remoting.wireformat.NullPacket;
+import org.jboss.messaging.core.remoting.wireformat.PacketType;
 import org.jboss.messaging.core.remoting.wireformat.RecoverDeliveriesMessage;
 import org.jboss.messaging.core.remoting.wireformat.SendMessage;
 import org.jboss.messaging.core.remoting.wireformat.SendTransactionMessage;
@@ -62,157 +75,97 @@
    // FIXME: split encoder/decoder required only on client and/or server sides
    public PacketCodecFactory()
    {
-      super.addMessageDecoder(NullPacketCodec.class);
-      super.addMessageEncoder(NullPacket.class, NullPacketCodec.class);
+      addCodecForEmptyPacket(NULL, NullPacket.class);
 
-      super.addMessageDecoder(JMSExceptionMessageCodec.class);
-      super.addMessageEncoder(JMSExceptionMessage.class, JMSExceptionMessageCodec.class);
+      addCodec(JMSExceptionMessage.class, JMSExceptionMessageCodec.class);
 
       // TextPacket are for testing purpose only!
-      super.addMessageDecoder(TextPacketCodec.class);
-      super.addMessageEncoder(TextPacket.class, TextPacketCodec.class);
+      addCodec(TextPacket.class, TextPacketCodec.class);
 
-      super
-            .addMessageDecoder(ConnectionFactoryCreateConnectionRequestCodec.class);
-      super.addMessageEncoder(CreateConnectionRequest.class,
+      addCodec(CreateConnectionRequest.class,
             ConnectionFactoryCreateConnectionRequestCodec.class);
 
-      super
-            .addMessageDecoder(ConnectionFactoryCreateConnectionResponseCodec.class);
-      super.addMessageEncoder(CreateConnectionResponse.class,
+      addCodec(CreateConnectionResponse.class,
             ConnectionFactoryCreateConnectionResponseCodec.class);
 
-      super.addMessageDecoder(CreateSessionRequestCodec.class);
-      super.addMessageEncoder(CreateSessionRequest.class,
-            CreateSessionRequestCodec.class);
+      addCodec(CreateSessionRequest.class, CreateSessionRequestCodec.class);
 
-      super.addMessageDecoder(CreateSessionResponseCodec.class);
-      super.addMessageEncoder(CreateSessionResponse.class,
-            CreateSessionResponseCodec.class);
+      addCodec(CreateSessionResponse.class, CreateSessionResponseCodec.class);
 
-      super.addMessageDecoder(IDBlockRequestCodec.class);
-      super.addMessageEncoder(IDBlockRequest.class, IDBlockRequestCodec.class);
+      addCodec(IDBlockRequest.class, IDBlockRequestCodec.class);
 
-      super.addMessageDecoder(IDBlockResponseCodec.class);
-      super
-            .addMessageEncoder(IDBlockResponse.class,
-                  IDBlockResponseCodec.class);
+      addCodec(IDBlockResponse.class, IDBlockResponseCodec.class);
 
-      super.addMessageDecoder(GetClientIDRequestCodec.class);
-      super.addMessageEncoder(GetClientIDRequest.class,
-            GetClientIDRequestCodec.class);
+      addCodecForEmptyPacket(REQ_GETCLIENTID, GetClientIDRequest.class);
 
-      super.addMessageDecoder(GetClientIDResponseCodec.class);
-      super.addMessageEncoder(GetClientIDResponse.class,
-            GetClientIDResponseCodec.class);
+      addCodec(GetClientIDResponse.class, GetClientIDResponseCodec.class);
 
-      super.addMessageDecoder(SetClientIDMessageCodec.class);
-      super.addMessageEncoder(SetClientIDMessage.class,
-            SetClientIDMessageCodec.class);
+      addCodec(SetClientIDMessage.class, SetClientIDMessageCodec.class);
 
-      super.addMessageDecoder(SendMessageCodec.class);
-      super.addMessageEncoder(SendMessage.class, SendMessageCodec.class);
+      addCodec(SendMessage.class, SendMessageCodec.class);
 
-      super.addMessageDecoder(CreateConsumerRequestCodec.class);
-      super.addMessageEncoder(CreateConsumerRequest.class,
-            CreateConsumerRequestCodec.class);
+      addCodec(CreateConsumerRequest.class, CreateConsumerRequestCodec.class);
 
-      super.addMessageDecoder(CreateDestinationRequestCodec.class);
-      super.addMessageEncoder(CreateDestinationRequest.class,
+      addCodec(CreateDestinationRequest.class,
             CreateDestinationRequestCodec.class);
 
-      super.addMessageDecoder(CreateDestinationResponseCodec.class);
-      super.addMessageEncoder(CreateDestinationResponse.class,
+      addCodec(CreateDestinationResponse.class,
             CreateDestinationResponseCodec.class);
 
-      super.addMessageDecoder(CreateConsumerResponseCodec.class);
-      super.addMessageEncoder(CreateConsumerResponse.class,
-            CreateConsumerResponseCodec.class);
+      addCodec(CreateConsumerResponse.class, CreateConsumerResponseCodec.class);
 
-      super.addMessageDecoder(CreateBrowserRequestCodec.class);
-      super.addMessageEncoder(CreateBrowserRequest.class,
-            CreateBrowserRequestCodec.class);
+      addCodec(CreateBrowserRequest.class, CreateBrowserRequestCodec.class);
 
-      super.addMessageDecoder(CreateBrowserResponseCodec.class);
-      super.addMessageEncoder(CreateBrowserResponse.class,
-            CreateBrowserResponseCodec.class);
+      addCodec(CreateBrowserResponse.class, CreateBrowserResponseCodec.class);
 
-      super.addMessageDecoder(StartConnectionMessageCodec.class);
-      super.addMessageEncoder(StartConnectionMessage.class,
-            StartConnectionMessageCodec.class);
+      addCodecForEmptyPacket(MSG_STARTCONNECTION, StartConnectionMessage.class);
 
-      super.addMessageDecoder(StopConnectionMessageCodec.class);
-      super.addMessageEncoder(StopConnectionMessage.class,
-            StopConnectionMessageCodec.class);
+      addCodecForEmptyPacket(MSG_STOPCONNECTION, StopConnectionMessage.class);
 
-      super.addMessageDecoder(ChangeRateMessageCodec.class);
-      super.addMessageEncoder(ChangeRateMessage.class,
-            ChangeRateMessageCodec.class);
+      addCodec(ChangeRateMessage.class, ChangeRateMessageCodec.class);
 
-      super.addMessageDecoder(DeliverMessageCodec.class);
-      super.addMessageEncoder(DeliverMessage.class, DeliverMessageCodec.class);
+      addCodec(DeliverMessage.class, DeliverMessageCodec.class);
 
-      super.addMessageDecoder(AcknowledgeDeliveryRequestCodec.class);
-      super.addMessageEncoder(AcknowledgeDeliveryRequest.class,
+      addCodec(AcknowledgeDeliveryRequest.class,
             AcknowledgeDeliveryRequestCodec.class);
 
-      super.addMessageDecoder(AcknowledgeDeliveryResponseCodec.class);
-      super.addMessageEncoder(AcknowledgeDeliveryResponse.class,
+      addCodec(AcknowledgeDeliveryResponse.class,
             AcknowledgeDeliveryResponseCodec.class);
 
-      super.addMessageDecoder(AcknowledgeDeliveriesRequestCodec.class);
-      super.addMessageEncoder(AcknowledgeDeliveriesMessage.class,
+      addCodec(AcknowledgeDeliveriesMessage.class,
             AcknowledgeDeliveriesRequestCodec.class);
 
-      super.addMessageDecoder(RecoverDeliveriesMessageCodec.class);
-      super.addMessageEncoder(RecoverDeliveriesMessage.class,
+      addCodec(RecoverDeliveriesMessage.class,
             RecoverDeliveriesMessageCodec.class);
 
-      super.addMessageDecoder(CancelDeliveryMessageCodec.class);
-      super.addMessageEncoder(CancelDeliveryMessage.class,
-            CancelDeliveryMessageCodec.class);
+      addCodec(CancelDeliveryMessage.class, CancelDeliveryMessageCodec.class);
 
-      super.addMessageDecoder(CancelDeliveriesMessageCodec.class);
-      super.addMessageEncoder(CancelDeliveriesMessage.class,
+      addCodec(CancelDeliveriesMessage.class,
             CancelDeliveriesMessageCodec.class);
 
-      super.addMessageDecoder(ClosingRequestCodec.class);
-      super.addMessageEncoder(ClosingRequest.class, ClosingRequestCodec.class);
+      addCodec(ClosingRequest.class, ClosingRequestCodec.class);
 
-      super.addMessageDecoder(ClosingResponseCodec.class);
-      super
-            .addMessageEncoder(ClosingResponse.class,
-                  ClosingResponseCodec.class);
+      addCodec(ClosingResponse.class, ClosingResponseCodec.class);
 
-      super.addMessageDecoder(CloseMessageCodec.class);
-      super.addMessageEncoder(CloseMessage.class, CloseMessageCodec.class);
+      addCodecForEmptyPacket(MSG_CLOSE, CloseMessage.class);
 
-      super.addMessageDecoder(SendTransactionRequestCodec.class);
-      super.addMessageEncoder(SendTransactionMessage.class,
-            SendTransactionRequestCodec.class);
+      addCodec(SendTransactionMessage.class, SendTransactionRequestCodec.class);
 
-      super.addMessageDecoder(BrowserResetMessageCodec.class);
-      super.addMessageEncoder(BrowserResetMessage.class,
-            BrowserResetMessageCodec.class);
-      
-      super.addMessageDecoder(BrowserHasNextMessageRequestCodec.class);
-      super.addMessageEncoder(BrowserHasNextMessageRequest.class,
-            BrowserHasNextMessageRequestCodec.class);
+      addCodecForEmptyPacket(MSG_BROWSER_RESET, BrowserResetMessage.class);
 
-      super.addMessageDecoder(BrowserHasNextMessageResponseCodec.class);
-      super.addMessageEncoder(BrowserHasNextMessageResponse.class,
+      addCodecForEmptyPacket(REQ_BROWSER_HASNEXTMESSAGE,
+            BrowserHasNextMessageRequest.class);
+
+      addCodec(BrowserHasNextMessageResponse.class,
             BrowserHasNextMessageResponseCodec.class);
-      
-      super.addMessageDecoder(BrowserNextMessageRequestCodec.class);
-      super.addMessageEncoder(BrowserNextMessageRequest.class,
-            BrowserNextMessageRequestCodec.class);
 
-      super.addMessageDecoder(BrowserNextMessageResponseCodec.class);
-      super.addMessageEncoder(BrowserNextMessageResponse.class,
+      addCodecForEmptyPacket(REQ_BROWSER_NEXTMESSAGE,
+            BrowserNextMessageRequest.class);
+
+      addCodec(BrowserNextMessageResponse.class,
             BrowserNextMessageResponseCodec.class);
+   }
 
-}
-
    // Public --------------------------------------------------------
 
    // Package protected ---------------------------------------------
@@ -221,6 +174,69 @@
 
    // Private -------------------------------------------------------
 
+   private void addCodec(
+         Class<? extends AbstractPacket> packetClass,
+         Class<? extends AbstractPacketCodec<? extends AbstractPacket>> codecClass)
+   {
+      super.addMessageDecoder(codecClass);
+      super.addMessageEncoder(packetClass, codecClass);
+   }
+
+   private void addCodecForEmptyPacket(PacketType type,
+         Class<? extends AbstractPacket> clazz)
+   {
+      AbstractPacketCodec<AbstractPacket> codec = createCodecForEmptyPacket(type,
+            clazz);
+      super.addMessageDecoder(codec);
+      super.addMessageEncoder(clazz, codec);
+   }
+
+   private AbstractPacketCodec<AbstractPacket> createCodecForEmptyPacket(
+         PacketType type, final Class<? extends AbstractPacket> clazz)
+   {
+      return new CodecForEmptyPacket<AbstractPacket>(type)
+      {
+         @Override
+         protected AbstractPacket newPacket()
+         {
+            try
+            {
+               return (AbstractPacket) clazz.newInstance();
+            } catch (Throwable t)
+            {
+               return null;
+            }
+         }
+      };
+   }
+
    // Inner classes -------------------------------------------------
 
+   abstract class CodecForEmptyPacket<P extends AbstractPacket> extends
+         AbstractPacketCodec<P>
+   {
+
+      public CodecForEmptyPacket(PacketType type)
+      {
+         super(type);
+      }
+
+      @Override
+      protected void encodeBody(IoSession session, P packet, IoBuffer out)
+            throws Exception
+      {
+         // no body
+         out.putInt(0);
+      }
+
+      @Override
+      protected P decodeBody(IoSession session, IoBuffer in) throws Exception
+      {
+         in.getInt(); // skip body length
+         return newPacket();
+      }
+
+      protected abstract P newPacket();
+
+   }
 }

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/StartConnectionMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/StartConnectionMessageCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/StartConnectionMessageCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,49 +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.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_STARTCONNECTION;
-
-import org.jboss.messaging.core.remoting.wireformat.StartConnectionMessage;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- */
-public class StartConnectionMessageCodec extends
-      EmptyBodyPacketCodec<StartConnectionMessage>
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   public StartConnectionMessageCodec()
-   {
-      super(MSG_STARTCONNECTION);
-   }
-
-   // Public --------------------------------------------------------
-
-   // EmptyBodyPacketCodec overrides --------------------------------
-
-   @Override
-   protected StartConnectionMessage newPacket()
-   {
-      return new StartConnectionMessage();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private ----------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/StopConnectionMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/StopConnectionMessageCodec.java	2007-11-21 15:52:35 UTC (rev 3355)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/StopConnectionMessageCodec.java	2007-11-21 17:40:28 UTC (rev 3356)
@@ -1,51 +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.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_STOPCONNECTION;
-
-import org.jboss.messaging.core.remoting.wireformat.StopConnectionMessage;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- */
-public class StopConnectionMessageCodec extends
-      EmptyBodyPacketCodec<StopConnectionMessage>
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   public StopConnectionMessageCodec()
-   {
-      super(MSG_STOPCONNECTION);
-   }
-
-   // Public --------------------------------------------------------
-
-   // EmptyBodyPacketCodec overrides --------------------------------
-
-   @Override
-   protected StopConnectionMessage newPacket()
-   {
-      return new StopConnectionMessage();
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private ----------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}




More information about the jboss-cvs-commits mailing list