[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