[jboss-cvs] JBoss Messaging SVN: r3386 - in branches/Branch_JBMESSAGING-544: src/main/org/jboss/jms/wireformat and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Nov 30 12:20:15 EST 2007
Author: jmesnil
Date: 2007-11-30 12:20:15 -0500 (Fri, 30 Nov 2007)
New Revision: 3386
Added:
branches/Branch_JBMESSAGING-544/src/main/org/jboss/jms/wireformat/
branches/Branch_JBMESSAGING-544/src/main/org/jboss/jms/wireformat/JMSWireFormat.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DecoderStatus.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/internal/MinaPacketCodec.java
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/internal/
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/internal/MinaRemotingBuffer.java
Removed:
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/AbstractPacketCodecTest.java
Modified:
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AbstractPacketCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveriesRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveryRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveryResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AddCallbackMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AddTemporaryDestinationMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserHasNextMessageResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageBlockRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageBlockResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CancelDeliveriesMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CancelDeliveryMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ChangeRateMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ClosingRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ClosingResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ConnectionFactoryCreateConnectionRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ConnectionFactoryCreateConnectionResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateBrowserRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateBrowserResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateConsumerRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateConsumerResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateDestinationRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateDestinationResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateSessionRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateSessionResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DeleteTemporaryDestinationMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DeliverMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientAOPStackResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientIDResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetPreparedTransactionsResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetTopologyResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/IDBlockRequestCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/IDBlockResponseCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/JMSExceptionMessageCodec.java
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/RecoverDeliveriesMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SendMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SendTransactionMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SetClientIDMessageCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/TextPacketCodec.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/UnsubscribeMessageCodec.java
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java
Log:
http://jira.jboss.org/jira/browse/JBMESSAGING-544 Replace client-server transport with NIO based transport
* refactored remoting.codec package to remove any dependency to MINA (put in the internal subpackage instead)
* reintroduced an empty JMSWireFormat required to compile
Added: branches/Branch_JBMESSAGING-544/src/main/org/jboss/jms/wireformat/JMSWireFormat.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/jms/wireformat/JMSWireFormat.java (rev 0)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/jms/wireformat/JMSWireFormat.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -0,0 +1,106 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.jms.wireformat;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Map;
+
+import org.jboss.logging.Logger;
+import org.jboss.remoting.marshal.Marshaller;
+import org.jboss.remoting.marshal.UnMarshaller;
+
+/**
+ * We do not use Java or JBoss serialization to send data over the wire. Serialization adds
+ * considerable overhead in terms of the amount of data sent (it adds class information plus block
+ * data information) which significantly degrades performance.
+ *
+ * Instead we define a customer wire format that minimises the amount of data sent.
+ *
+ * The only exception to this rule is when sending an ObjectMessage which contains a user defined
+ * object whose type is only known at run-time. In this case we use serialization.
+ *
+ * @author <a href="tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="ovidiu at feodorov.com">Ovidiu Feodorov</a>
+ * @version <tt>$Revision: 3265 $</tt>
+ *
+ * $Id: JMSWireFormat.java 3265 2007-10-31 12:44:42Z timfox $
+ */
+public class JMSWireFormat implements Marshaller, UnMarshaller
+{
+ // Constants ------------------------------------------------------------------------------------
+
+ private static final long serialVersionUID = -7646123424863782043L;
+
+ private static final Logger log = Logger.getLogger(JMSWireFormat.class);
+
+ // Static ---------------------------------------------------------------------------------------
+
+ // Attributes -----------------------------------------------------------------------------------
+
+ protected boolean trace;
+
+ // Constructors ---------------------------------------------------------------------------------
+
+ public JMSWireFormat()
+ {
+ }
+
+ // Marshaller implementation --------------------------------------------------------------------
+
+ public void write(Object obj, OutputStream out) throws IOException
+ {
+ throw new IllegalStateException("JBoss Remoting wireformat must not be used");
+ }
+
+ public Marshaller cloneMarshaller() throws CloneNotSupportedException
+ {
+ return null;
+ }
+
+ // UnMarshaller implementation ------------------------------------------------------------------
+
+ public Object read(InputStream in, Map map) throws IOException, ClassNotFoundException
+ {
+ throw new IllegalStateException("JBoss Remoting wireformat must not be used");
+ }
+
+ public UnMarshaller cloneUnMarshaller() throws CloneNotSupportedException
+ {
+ return null;
+ }
+
+ public void setClassLoader(ClassLoader classloader)
+ {
+ }
+
+ // Public ---------------------------------------------------------------------------------------
+
+ // Package protected ----------------------------------------------------------------------------
+
+ // Protected ------------------------------------------------------------------------------------
+
+ // Private --------------------------------------------------------------------------------------
+
+ // Inner classes --------------------------------------------------------------------------------
+}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AbstractPacketCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AbstractPacketCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AbstractPacketCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -18,51 +18,33 @@
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.codec.ProtocolDecoderOutput;
-import org.apache.mina.filter.codec.ProtocolEncoderOutput;
-import org.apache.mina.filter.codec.demux.MessageDecoder;
-import org.apache.mina.filter.codec.demux.MessageDecoderResult;
-import org.apache.mina.filter.codec.demux.MessageEncoder;
import org.jboss.jms.destination.JBossDestination;
import org.jboss.messaging.core.contract.Message;
import org.jboss.messaging.core.impl.message.MessageFactory;
import org.jboss.messaging.core.remoting.Constants;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
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>.
*/
-public abstract class AbstractPacketCodec<P extends AbstractPacket> implements
-MessageEncoder<P>, MessageDecoder
+public abstract class AbstractPacketCodec<P extends AbstractPacket>
{
// Constants -----------------------------------------------------
- private static final CharsetEncoder UTF_8_ENCODER = Charset.forName("UTF-8")
- .newEncoder();
-
- private static final CharsetDecoder UTF_8_DECODER = Charset.forName("UTF-8")
- .newDecoder();
-
- private static final byte TRUE = (byte) 0;
-
- private static final byte FALSE = (byte) 1;
-
protected static final int INT_LENGTH = 4;
protected static final int FLOAT_LENGTH = 4;
protected static final int LONG_LENGTH = 8;
- // used to terminate encoded Strings
- protected static final byte NULL_BYTE = (byte) 0;
+ public static final CharsetEncoder UTF_8_ENCODER = Charset.forName("UTF-8")
+ .newEncoder();
- protected static final byte NULL_STRING = (byte) 0;
+ public static final CharsetDecoder UTF_8_DECODER = Charset.forName("UTF-8")
+ .newDecoder();
- protected static final byte NOT_NULL_STRING = (byte) 1;
-
// Attributes ----------------------------------------------------
private PacketType type;
@@ -80,11 +62,12 @@
// Public --------------------------------------------------------
- // MessageEncoder implementation ---------------------------------
-
- public void encode(IoSession session, P packet, ProtocolEncoderOutput out)
+ public void encode(P packet, RemotingBuffer buf)
throws Exception
{
+ assert packet != null;
+ assert buf != null;
+
byte version = packet.getVersion();
if (version == Constants.NO_VERSION_SET)
{
@@ -97,115 +80,100 @@
int headerLength = LONG_LENGTH + sizeof(targetID) + sizeof(callbackID);
- IoBuffer buf = IoBuffer.allocate(256);
-
- // Enable auto-expand for easier encoding
- buf.setAutoExpand(true);
-
buf.put(packet.getType().byteValue());
buf.put(version);
buf.putInt(headerLength);
buf.putLong(correlationID);
- putString(buf, targetID);
- putString(buf, callbackID);
+ buf.putNullableString(targetID);
+ buf.putNullableString(callbackID);
- encodeBody(session, packet, buf);
-
- buf.flip();
- out.write(buf);
+ encodeBody(packet, buf);
}
// MessageDecoder implementation ---------------------------------
- public MessageDecoderResult decodable(IoSession session, IoBuffer in)
+ public DecoderStatus decodable(RemotingBuffer buffer)
{
- byte t = in.get();
+ byte t = buffer.get();
if (t != type.byteValue())
{
- return NOT_OK;
+ return DecoderStatus.NOT_OK;
}
- in.get(); // version
- if (in.remaining() < INT_LENGTH)
+ buffer.get(); // version
+ if (buffer.remaining() < INT_LENGTH)
{
System.out.println("need more data to read header length");
// can not read next int
- return NEED_DATA;
+ return DecoderStatus.NEED_DATA;
}
- int headerLength = in.getInt();
- if (in.remaining() < headerLength)
+ int headerLength = buffer.getInt();
+ if (buffer.remaining() < headerLength)
{
System.out.println("need more data to read header");
- return NEED_DATA;
+ return DecoderStatus.NEED_DATA;
}
- in.getLong(); // correlation ID
+ buffer.getLong(); // correlation ID
try
{
- in.getString(UTF_8_DECODER);
+ buffer.getString(UTF_8_DECODER);
} catch (CharacterCodingException e)
{
- return NOT_OK;
+ return DecoderStatus.NOT_OK;
}
try
{
- in.getString(UTF_8_DECODER);
+ buffer.getString(UTF_8_DECODER);
} catch (CharacterCodingException e)
{
- return NOT_OK;
+ return DecoderStatus.NOT_OK;
}
- if (in.remaining() < INT_LENGTH)
+ if (buffer.remaining() < INT_LENGTH)
{
System.out.println("need more data to read body length");
// can not read next int
- return NEED_DATA;
+ return DecoderStatus.NEED_DATA;
}
- int bodyLength = in.getInt();
+ int bodyLength = buffer.getInt();
if (bodyLength == 0)
{
- return OK;
+ return DecoderStatus.OK;
}
- if (in.remaining() < bodyLength)
+ if (buffer.remaining() < bodyLength)
{
System.out.println("need more data to read body");
- return NEED_DATA;
+ return DecoderStatus.NEED_DATA;
}
- return OK;
+ return DecoderStatus.OK;
}
- public MessageDecoderResult decode(IoSession session, IoBuffer in,
- ProtocolDecoderOutput out) throws Exception
+ public P decode(RemotingBuffer wrapper) throws Exception
{
- in.get(); // skip message type
- byte version = in.get();
- in.getInt(); // skip header length
- long correlationID = in.getLong();
- String targetID = getString(in);
- String callbackID = getString(in);
+ wrapper.get(); // skip message type
+ byte version = wrapper.get();
+ wrapper.getInt(); // skip header length
+ long correlationID = wrapper.getLong();
+ String targetID = MinaPacketCodec.getString(wrapper);
+ String callbackID = MinaPacketCodec.getString(wrapper);
- P packet = decodeBody(session, in);
+ P packet = decodeBody(wrapper);
if (packet == null)
{
- return NEED_DATA;
+ return null;
}
packet.setVersion(version);
packet.setTargetID(targetID);
packet.setCorrelationID(correlationID);
packet.setCallbackID(callbackID);
- out.write(packet);
-
- return OK;
+
+ return packet;
}
-
- public void finishDecode(IoSession session, ProtocolDecoderOutput out)
- throws Exception
- {
- }
-
- protected abstract void encodeBody(IoSession session, P packet, IoBuffer out)
+
+ protected abstract void encodeBody(P packet, RemotingBuffer buf)
throws Exception;
- protected abstract P decodeBody(IoSession session, IoBuffer in)
+ protected abstract P decodeBody(RemotingBuffer buffer)
throws Exception;
public static int sizeof(String nullableString)
@@ -220,63 +188,6 @@
}
}
- public static void putString(IoBuffer out, String nullableString)
- throws CharacterCodingException
- {
-
- if (nullableString == null)
- {
- out.put(NULL_STRING);
- } else
- {
- out.put(NOT_NULL_STRING);
- out.putString(nullableString, UTF_8_ENCODER);
- out.put(NULL_BYTE);
- }
- }
-
- public static String getString(IoBuffer in) throws CharacterCodingException
- {
- byte check = in.get();
- if (check == NULL_STRING)
- {
- return null;
- } else
- {
- assert check == NOT_NULL_STRING;
-
- return in.getString(UTF_8_DECODER);
- }
- }
-
- public static void putBoolean(IoBuffer out, boolean b)
- {
- if (b)
- {
- out.put(TRUE);
- } else
- {
- out.put(FALSE);
- }
- }
-
- public static boolean getBoolean(IoBuffer in)
- {
- byte b = in.get();
- if (b == TRUE)
- {
- return true;
- } else
- {
- assert b == FALSE;
- return false;
- }
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
protected static byte[] encode(JBossDestination destination) throws Exception
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -306,6 +217,7 @@
msg.read(new DataInputStream(bais));
return msg;
}
+
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveriesRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveriesRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveriesRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -11,8 +11,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.delegate.Ack;
import org.jboss.jms.delegate.DefaultAck;
import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveriesMessage;
@@ -41,8 +39,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- AcknowledgeDeliveriesMessage request, IoBuffer out) throws Exception
+ protected void encodeBody(AcknowledgeDeliveriesMessage request,
+ RemotingBuffer out) throws Exception
{
long[] deliveryIDs = convert(request.getAcks());
@@ -56,8 +54,7 @@
}
@Override
- protected AcknowledgeDeliveriesMessage decodeBody(IoSession session,
- IoBuffer in) throws Exception
+ protected AcknowledgeDeliveriesMessage decodeBody(RemotingBuffer in) throws Exception
{
int bodyLength = in.getInt();
if (in.remaining() < bodyLength)
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveryRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveryRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveryRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_ACKDELIVERY;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryRequest;
/**
@@ -36,8 +34,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- AcknowledgeDeliveryRequest request, IoBuffer out) throws Exception
+ protected void encodeBody(AcknowledgeDeliveryRequest request,
+ RemotingBuffer out) throws Exception
{
long deliveryID = request.getDeliveryID();
@@ -46,8 +44,7 @@
}
@Override
- protected AcknowledgeDeliveryRequest decodeBody(IoSession session,
- IoBuffer in) throws Exception
+ protected AcknowledgeDeliveryRequest decodeBody(RemotingBuffer in) throws Exception
{
int bodyLength = in.getInt();
if (in.remaining() < bodyLength)
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveryResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveryResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AcknowledgeDeliveryResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_ACKDELIVERY;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryResponse;
/**
@@ -36,16 +34,15 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- AcknowledgeDeliveryResponse response, IoBuffer out) throws Exception
+ protected void encodeBody(AcknowledgeDeliveryResponse response,
+ RemotingBuffer out) throws Exception
{
out.putInt(1); //body length
- putBoolean(out, response.isAcknowledged());
+ out.putBoolean(response.isAcknowledged());
}
@Override
- protected AcknowledgeDeliveryResponse decodeBody(IoSession session,
- IoBuffer in) throws Exception
+ protected AcknowledgeDeliveryResponse decodeBody(RemotingBuffer in) throws Exception
{
int bodyLength = in.getInt();
if (in.remaining() < bodyLength)
@@ -53,7 +50,7 @@
return null;
}
- boolean acknowledged = getBoolean(in);
+ boolean acknowledged = in.getBoolean();
return new AcknowledgeDeliveryResponse(acknowledged);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AddCallbackMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AddCallbackMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AddCallbackMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_UPDATECALLBACK;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.UpdateCallbackMessage;
/**
@@ -36,8 +35,7 @@
// AbstractPackedCodec overrides----------------------------------
@Override
- protected void encodeBody(IoSession session, UpdateCallbackMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(UpdateCallbackMessage message, RemotingBuffer out) throws Exception
{
String remotingSessionID = message.getRemotingSessionID();
String clientVMID = message.getClientVMID();
@@ -46,13 +44,13 @@
int bodyLength = sizeof(remotingSessionID) + sizeof(clientVMID) + 1;
out.putInt(bodyLength);
- putString(out, remotingSessionID);
- putString(out, clientVMID);
- putBoolean(out, add);
+ out.putNullableString(remotingSessionID);
+ out.putNullableString(clientVMID);
+ out.putBoolean(add);
}
@Override
- protected UpdateCallbackMessage decodeBody(IoSession session, IoBuffer in)
+ protected UpdateCallbackMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -60,9 +58,9 @@
{
return null;
}
- String remotingSessionID = getString(in);
- String clientVMID = getString(in);
- boolean add = getBoolean(in);
+ String remotingSessionID = MinaPacketCodec.getString(in);
+ String clientVMID = MinaPacketCodec.getString(in);
+ boolean add = in.getBoolean();
return new UpdateCallbackMessage(remotingSessionID, clientVMID, add);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AddTemporaryDestinationMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AddTemporaryDestinationMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/AddTemporaryDestinationMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_ADDTEMPORARYDESTINATION;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.destination.JBossDestination;
import org.jboss.messaging.core.remoting.wireformat.AddTemporaryDestinationMessage;
@@ -37,8 +35,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, AddTemporaryDestinationMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(AddTemporaryDestinationMessage message, RemotingBuffer out) throws Exception
{
byte[] destination = encode(message.getDestination());
@@ -50,7 +47,7 @@
}
@Override
- protected AddTemporaryDestinationMessage decodeBody(IoSession session, IoBuffer in)
+ protected AddTemporaryDestinationMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserHasNextMessageResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserHasNextMessageResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserHasNextMessageResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_BROWSER_HASNEXTMESSAGE;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageResponse;
/**
@@ -36,16 +34,15 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- BrowserHasNextMessageResponse response, IoBuffer out) throws Exception
+ protected void encodeBody(BrowserHasNextMessageResponse response,
+ RemotingBuffer out) throws Exception
{
out.putInt(1); //body length
- putBoolean(out, response.hasNext());
+ out.putBoolean(response.hasNext());
}
@Override
- protected BrowserHasNextMessageResponse decodeBody(IoSession session,
- IoBuffer in) throws Exception
+ protected BrowserHasNextMessageResponse decodeBody(RemotingBuffer in) throws Exception
{
int bodyLength = in.getInt();
if (in.remaining() < bodyLength)
@@ -53,7 +50,7 @@
return null;
}
- boolean hasNext = getBoolean(in);
+ boolean hasNext = in.getBoolean();
return new BrowserHasNextMessageResponse(hasNext);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageBlockRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageBlockRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageBlockRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_BROWSER_NEXTMESSAGEBLOCK;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageBlockRequest;
/**
@@ -35,15 +33,14 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, BrowserNextMessageBlockRequest request,
- IoBuffer out) throws Exception
+ protected void encodeBody(BrowserNextMessageBlockRequest request, RemotingBuffer out) throws Exception
{
out.putInt(LONG_LENGTH);
out.putLong(request.getMaxMessages());
}
@Override
- protected BrowserNextMessageBlockRequest decodeBody(IoSession session, IoBuffer in)
+ protected BrowserNextMessageBlockRequest decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageBlockResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageBlockResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageBlockResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -13,8 +13,6 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.message.JBossMessage;
import org.jboss.messaging.core.impl.message.MessageFactory;
import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageBlockResponse;
@@ -42,8 +40,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, BrowserNextMessageBlockResponse response,
- IoBuffer out) throws Exception
+ protected void encodeBody(BrowserNextMessageBlockResponse response, RemotingBuffer out) throws Exception
{
JBossMessage[] messages = response.getMessages();
@@ -58,7 +55,7 @@
}
@Override
- protected BrowserNextMessageBlockResponse decodeBody(IoSession session, IoBuffer in)
+ protected BrowserNextMessageBlockResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/BrowserNextMessageResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_BROWSER_NEXTMESSAGE;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.message.JBossMessage;
import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageResponse;
@@ -36,8 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, BrowserNextMessageResponse response,
- IoBuffer out) throws Exception
+ protected void encodeBody(BrowserNextMessageResponse response, RemotingBuffer out) throws Exception
{
JBossMessage message = response.getMessage();
byte[] encodedMsg = encode(response.getMessage());
@@ -51,7 +48,7 @@
}
@Override
- protected BrowserNextMessageResponse decodeBody(IoSession session, IoBuffer in)
+ protected BrowserNextMessageResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CancelDeliveriesMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CancelDeliveriesMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CancelDeliveriesMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -11,8 +11,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.delegate.Cancel;
import org.jboss.jms.delegate.DefaultCancel;
import org.jboss.messaging.core.remoting.wireformat.CancelDeliveriesMessage;
@@ -43,8 +41,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- CancelDeliveriesMessage message, IoBuffer out) throws Exception
+ protected void encodeBody(CancelDeliveriesMessage message,
+ RemotingBuffer out) throws Exception
{
List<Cancel> cancels = message.getCancels();
@@ -58,13 +56,13 @@
{
out.putLong(cancel.getDeliveryId());
out.putInt(cancel.getDeliveryCount());
- putBoolean(out, cancel.isExpired());
- putBoolean(out, cancel.isReachedMaxDeliveryAttempts());
+ out.putBoolean(cancel.isExpired());
+ out.putBoolean(cancel.isReachedMaxDeliveryAttempts());
}
}
@Override
- protected CancelDeliveriesMessage decodeBody(IoSession session, IoBuffer in)
+ protected CancelDeliveriesMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -79,8 +77,8 @@
{
long deliveryID = in.getLong();
int deliveryCount = in.getInt();
- boolean expired = getBoolean(in);
- boolean reachedMaxDeliveryAttempts = getBoolean(in);
+ boolean expired = in.getBoolean();
+ boolean reachedMaxDeliveryAttempts = in.getBoolean();
cancels.add(new DefaultCancel(deliveryID, deliveryCount, expired,
reachedMaxDeliveryAttempts));
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CancelDeliveryMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CancelDeliveryMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CancelDeliveryMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CANCELDELIVERY;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.delegate.Cancel;
import org.jboss.jms.delegate.DefaultCancel;
import org.jboss.messaging.core.remoting.wireformat.CancelDeliveryMessage;
@@ -38,8 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, CancelDeliveryMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(CancelDeliveryMessage message, RemotingBuffer out) throws Exception
{
long deliveryID = message.getCancel().getDeliveryId();
int deliveryCount = message.getCancel().getDeliveryCount();
@@ -52,12 +49,12 @@
out.putInt(bodyLength);
out.putLong(deliveryID);
out.putInt(deliveryCount);
- putBoolean(out, expired);
- putBoolean(out, reachedMaxDeliveryAttempts);
+ out.putBoolean(expired);
+ out.putBoolean(reachedMaxDeliveryAttempts);
}
@Override
- protected CancelDeliveryMessage decodeBody(IoSession session, IoBuffer in)
+ protected CancelDeliveryMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -68,8 +65,8 @@
long deliveryID = in.getLong();
int deliveryCount = in.getInt();
- boolean expired = getBoolean(in);
- boolean reachedMaxDeliveryAttempts = getBoolean(in);
+ boolean expired = in.getBoolean();
+ boolean reachedMaxDeliveryAttempts = in.getBoolean();
Cancel cancel = new DefaultCancel(deliveryID, deliveryCount, expired,
reachedMaxDeliveryAttempts);
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ChangeRateMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ChangeRateMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ChangeRateMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_CHANGERATE;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.ChangeRateMessage;
/**
@@ -36,15 +34,14 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, ChangeRateMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(ChangeRateMessage message, RemotingBuffer out) throws Exception
{
out.putInt(FLOAT_LENGTH);
out.putFloat(message.getRate());
}
@Override
- protected ChangeRateMessage decodeBody(IoSession session, IoBuffer in)
+ protected ChangeRateMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ClosingRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ClosingRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ClosingRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CLOSING;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.ClosingRequest;
/**
@@ -35,15 +33,14 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, ClosingRequest request,
- IoBuffer out) throws Exception
+ protected void encodeBody(ClosingRequest request, RemotingBuffer out) throws Exception
{
out.putInt(LONG_LENGTH);
out.putLong(request.getSequence());
}
@Override
- protected ClosingRequest decodeBody(IoSession session, IoBuffer in)
+ protected ClosingRequest decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ClosingResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ClosingResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ClosingResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CLOSING;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.ClosingResponse;
/**
@@ -35,15 +33,14 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, ClosingResponse response,
- IoBuffer out) throws Exception
+ protected void encodeBody(ClosingResponse response, RemotingBuffer out) throws Exception
{
out.putInt(LONG_LENGTH);
out.putLong(response.getID());
}
@Override
- protected ClosingResponse decodeBody(IoSession session, IoBuffer in)
+ protected ClosingResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ConnectionFactoryCreateConnectionRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ConnectionFactoryCreateConnectionRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ConnectionFactoryCreateConnectionRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATECONNECTION;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.CreateConnectionRequest;
/**
@@ -36,8 +35,8 @@
// AbstractPackedCodec overrides----------------------------------
@Override
- protected void encodeBody(IoSession session,
- CreateConnectionRequest request, IoBuffer out)
+ protected void encodeBody(CreateConnectionRequest request,
+ RemotingBuffer out)
throws Exception
{
byte version = request.getVersion();
@@ -56,16 +55,16 @@
out.putInt(bodyLength);
out.put(version);
- putString(out, remotingSessionID);
- putString(out, clientVMID);
+ out.putNullableString(remotingSessionID);
+ out.putNullableString(clientVMID);
out.putInt(failedNodeID);
- putString(out, username);
- putString(out, password);
+ out.putNullableString(username);
+ out.putNullableString(password);
}
@Override
protected CreateConnectionRequest decodeBody(
- IoSession session, IoBuffer in) throws Exception
+ RemotingBuffer in) throws Exception
{
int bodyLength = in.getInt();
if (in.remaining() < bodyLength)
@@ -73,11 +72,11 @@
return null;
}
byte version = in.get();
- String remotingSessionID = getString(in);
- String clientVMID = getString(in);
+ String remotingSessionID = MinaPacketCodec.getString(in);
+ String clientVMID = MinaPacketCodec.getString(in);
int failedNodeID = in.getInt();
- String username = getString(in);
- String password = getString(in);
+ String username = MinaPacketCodec.getString(in);
+ String password = MinaPacketCodec.getString(in);
return new CreateConnectionRequest(version, remotingSessionID,
clientVMID, failedNodeID, username, password);
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ConnectionFactoryCreateConnectionResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ConnectionFactoryCreateConnectionResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/ConnectionFactoryCreateConnectionResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATECONNECTION;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.CreateConnectionResponse;
/**
@@ -36,8 +35,8 @@
// AbstractPackedCodec overrides----------------------------------
@Override
- protected void encodeBody(IoSession session,
- CreateConnectionResponse response, IoBuffer out)
+ protected void encodeBody(CreateConnectionResponse response,
+ RemotingBuffer out)
throws Exception
{
String id = response.getConnectionID();
@@ -46,20 +45,20 @@
int bodyLength = sizeof(id) + INT_LENGTH;
out.putInt(bodyLength);
- putString(out, id);
+ out.putNullableString(id);
out.putInt(serverID);
}
@Override
protected CreateConnectionResponse decodeBody(
- IoSession session, IoBuffer in) throws Exception
+ RemotingBuffer in) throws Exception
{
int bodyLength = in.getInt();
if (bodyLength > in.remaining())
{
return null;
}
- String id = getString(in);
+ String id = MinaPacketCodec.getString(in);
int serverID = in.getInt();
return new CreateConnectionResponse(id, serverID);
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateBrowserRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateBrowserRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateBrowserRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,9 +8,8 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATEBROWSER;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.destination.JBossDestination;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.CreateBrowserRequest;
/**
@@ -37,8 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, CreateBrowserRequest request,
- IoBuffer out) throws Exception
+ protected void encodeBody(CreateBrowserRequest request, RemotingBuffer out) throws Exception
{
byte[] destination = encode(request.getDestination());
String selector = request.getSelector();
@@ -48,11 +46,11 @@
out.putInt(bodyLength);
out.putInt(destination.length);
out.put(destination);
- putString(out, selector);
+ out.putNullableString(selector);
}
@Override
- protected CreateBrowserRequest decodeBody(IoSession session, IoBuffer in)
+ protected CreateBrowserRequest decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -65,7 +63,7 @@
byte[] b = new byte[destinationLength];
in.get(b);
JBossDestination destination = decode(b);
- String selector = getString(in);
+ String selector = MinaPacketCodec.getString(in);
return new CreateBrowserRequest(destination, selector);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateBrowserResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateBrowserResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateBrowserResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATEBROWSER;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.CreateBrowserResponse;
/**
@@ -36,19 +35,19 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- CreateBrowserResponse response, IoBuffer out) throws Exception
+ protected void encodeBody(CreateBrowserResponse response,
+ RemotingBuffer out) throws Exception
{
String browserID = response.getBrowserID();
int bodyLength = sizeof(browserID);
out.putInt(bodyLength);
- putString(out, browserID);
+ out.putNullableString(browserID);
}
@Override
- protected CreateBrowserResponse decodeBody(IoSession session, IoBuffer in)
+ protected CreateBrowserResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -57,7 +56,7 @@
return null;
}
- String browserID = getString(in);
+ String browserID = MinaPacketCodec.getString(in);
return new CreateBrowserResponse(browserID);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateConsumerRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateConsumerRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateConsumerRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,9 +8,8 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATECONSUMER;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.destination.JBossDestination;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.CreateConsumerRequest;
/**
@@ -37,8 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, CreateConsumerRequest request,
- IoBuffer out) throws Exception
+ protected void encodeBody(CreateConsumerRequest request, RemotingBuffer out) throws Exception
{
byte[] destination = encode(request.getDestination());
String selector = request.getSelector();
@@ -53,15 +51,15 @@
out.putInt(bodyLength);
out.putInt(destination.length);
out.put(destination);
- putString(out, selector);
- putBoolean(out, noLocal);
- putString(out, subName);
- putBoolean(out, connectionConsumer);
- putBoolean(out, autoFlowControl);
+ out.putNullableString(selector);
+ out.putBoolean(noLocal);
+ out.putNullableString(subName);
+ out.putBoolean(connectionConsumer);
+ out.putBoolean(autoFlowControl);
}
@Override
- protected CreateConsumerRequest decodeBody(IoSession session, IoBuffer in)
+ protected CreateConsumerRequest decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -74,11 +72,11 @@
byte[] b = new byte[destinationLength];
in.get(b);
JBossDestination destination = decode(b);
- String selector = getString(in);
- boolean noLocal = getBoolean(in);
- String subName = getString(in);
- boolean connectionConsumer = getBoolean(in);
- boolean autoflowControl = getBoolean(in);
+ String selector = MinaPacketCodec.getString(in);
+ boolean noLocal = in.getBoolean();
+ String subName = MinaPacketCodec.getString(in);
+ boolean connectionConsumer = in.getBoolean();
+ boolean autoflowControl = in.getBoolean();
return new CreateConsumerRequest(destination, selector, noLocal, subName,
connectionConsumer, autoflowControl);
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateConsumerResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateConsumerResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateConsumerResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATECONSUMER;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.CreateConsumerResponse;
/**
@@ -36,8 +35,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- CreateConsumerResponse response, IoBuffer out) throws Exception
+ protected void encodeBody(CreateConsumerResponse response,
+ RemotingBuffer out) throws Exception
{
String consumerID = response.getConsumerID();
int bufferSize = response.getBufferSize();
@@ -48,14 +47,14 @@
+ LONG_LENGTH;
out.putInt(bodyLength);
- putString(out, consumerID);
+ out.putNullableString(consumerID);
out.putInt(bufferSize);
out.putInt(maxDeliveries);
out.putLong(redeliveryDelay);
}
@Override
- protected CreateConsumerResponse decodeBody(IoSession session, IoBuffer in)
+ protected CreateConsumerResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -64,7 +63,7 @@
return null;
}
- String consumerID = getString(in);
+ String consumerID = MinaPacketCodec.getString(in);
int bufferSize = in.getInt();
int maxDeliveries = in.getInt();
long redeliveryDelay = in.getLong();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateDestinationRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateDestinationRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateDestinationRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATEDESTINATION;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.CreateDestinationRequest;
/**
@@ -36,8 +35,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- CreateDestinationRequest request, IoBuffer out) throws Exception
+ protected void encodeBody(CreateDestinationRequest request,
+ RemotingBuffer out) throws Exception
{
String name = request.getName();
boolean isQueue = request.isQueue();
@@ -45,12 +44,12 @@
int bodyLength = sizeof(name) + 1;
out.putInt(bodyLength);
- putString(out, name);
- putBoolean(out, isQueue);
+ out.putNullableString(name);
+ out.putBoolean(isQueue);
}
@Override
- protected CreateDestinationRequest decodeBody(IoSession session, IoBuffer in)
+ protected CreateDestinationRequest decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -59,8 +58,8 @@
return null;
}
- String name = getString(in);
- boolean isQueue = getBoolean(in);
+ String name = MinaPacketCodec.getString(in);
+ boolean isQueue = in.getBoolean();
return new CreateDestinationRequest(name, isQueue);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateDestinationResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateDestinationResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateDestinationResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_CREATEDESTINATION;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.destination.JBossDestination;
import org.jboss.messaging.core.remoting.wireformat.CreateDestinationResponse;
@@ -37,8 +35,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, CreateDestinationResponse response,
- IoBuffer out) throws Exception
+ protected void encodeBody(CreateDestinationResponse response, RemotingBuffer out) throws Exception
{
byte[] destination = encode(response.getDestination());
@@ -50,7 +47,7 @@
}
@Override
- protected CreateDestinationResponse decodeBody(IoSession session, IoBuffer in)
+ protected CreateDestinationResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateSessionRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateSessionRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateSessionRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_CREATESESSION;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.CreateSessionRequest;
/**
@@ -36,8 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, CreateSessionRequest request,
- IoBuffer out) throws Exception
+ protected void encodeBody(CreateSessionRequest request, RemotingBuffer out) throws Exception
{
boolean transacted = request.isTransacted();
int acknowledgementMode = request.getAcknowledgementMode();
@@ -46,13 +43,13 @@
int bodyLength = 1 + INT_LENGTH + 1;
out.putInt(bodyLength);
- putBoolean(out, transacted);
+ out.putBoolean(transacted);
out.putInt(acknowledgementMode);
- putBoolean(out, xa);
+ out.putBoolean(xa);
}
@Override
- protected CreateSessionRequest decodeBody(IoSession session, IoBuffer in)
+ protected CreateSessionRequest decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -61,9 +58,9 @@
return null;
}
- boolean transacted = getBoolean(in);
+ boolean transacted = in.getBoolean();
int acknowledgementMode = in.getInt();
- boolean xa = getBoolean(in);
+ boolean xa = in.getBoolean();
return new CreateSessionRequest(transacted, acknowledgementMode, xa);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateSessionResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateSessionResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/CreateSessionResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -6,8 +6,7 @@
*/
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.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.CreateSessionResponse;
import org.jboss.messaging.core.remoting.wireformat.PacketType;
@@ -35,8 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, CreateSessionResponse response,
- IoBuffer out) throws Exception
+ protected void encodeBody(CreateSessionResponse response, RemotingBuffer out) throws Exception
{
String sessionID = response.getSessionID();
int dupsOKBatchSize = response.getDupsOKBatchSize();
@@ -45,13 +43,13 @@
int bodyLength = sizeof(sessionID) + INT_LENGTH + 1;
out.putInt(bodyLength);
- putString(out, sessionID);
+ out.putNullableString(sessionID);
out.putInt(dupsOKBatchSize);
- putBoolean(out, strictTCK);
+ out.putBoolean(strictTCK);
}
@Override
- protected CreateSessionResponse decodeBody(IoSession session, IoBuffer in)
+ protected CreateSessionResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -60,9 +58,9 @@
return null;
}
- String sessionID = getString(in);
+ String sessionID = MinaPacketCodec.getString(in);
int dupsOKBatchSize = in.getInt();
- boolean strictTCK = getBoolean(in);
+ boolean strictTCK = in.getBoolean();
return new CreateSessionResponse(sessionID, dupsOKBatchSize, strictTCK);
}
Added: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DecoderStatus.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DecoderStatus.java (rev 0)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DecoderStatus.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -0,0 +1,20 @@
+/*
+ * 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.filter.codec.demux.MessageDecoder;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public enum DecoderStatus
+{
+ OK, NOT_OK, NEED_DATA
+}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DeleteTemporaryDestinationMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DeleteTemporaryDestinationMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DeleteTemporaryDestinationMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_DELETETEMPORARYDESTINATION;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.destination.JBossDestination;
import org.jboss.messaging.core.remoting.wireformat.DeleteTemporaryDestinationMessage;
@@ -37,8 +35,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, DeleteTemporaryDestinationMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(DeleteTemporaryDestinationMessage message,
+ RemotingBuffer out) throws Exception
{
byte[] destination = encode(message.getDestination());
@@ -50,7 +48,7 @@
}
@Override
- protected DeleteTemporaryDestinationMessage decodeBody(IoSession session, IoBuffer in)
+ protected DeleteTemporaryDestinationMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DeliverMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DeliverMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/DeliverMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,9 +8,8 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_DELIVERMESSAGE;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.contract.Message;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.DeliverMessage;
/**
@@ -36,8 +35,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, DeliverMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(DeliverMessage message, RemotingBuffer out) throws Exception
{
Message msg = message.getMessage();
byte[] encodedMsg = encode(message.getMessage());
@@ -52,13 +50,13 @@
out.put(msg.getType());
out.putInt(encodedMsg.length);
out.put(encodedMsg);
- putString(out, consumerID);
+ out.putNullableString(consumerID);
out.putLong(deliveryID);
out.putInt(deliveryCount);
}
@Override
- protected DeliverMessage decodeBody(IoSession session, IoBuffer in)
+ protected DeliverMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -72,7 +70,7 @@
byte[] encodedMsg = new byte[msgLength];
in.get(encodedMsg);
Message msg = decode(type, encodedMsg);
- String consumerID = getString(in);
+ String consumerID = MinaPacketCodec.getString(in);
long deliveryID = in.getLong();
int deliveryCount = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientAOPStackResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientAOPStackResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientAOPStackResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETCLIENTAOPSTACK;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.GetClientAOPStackResponse;
/**
@@ -36,8 +34,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- GetClientAOPStackResponse response, IoBuffer out) throws Exception
+ protected void encodeBody(GetClientAOPStackResponse response,
+ RemotingBuffer out) throws Exception
{
byte[] stack = response.getStack();
@@ -50,8 +48,7 @@
}
@Override
- protected GetClientAOPStackResponse decodeBody(IoSession session,
- IoBuffer in) throws Exception
+ protected GetClientAOPStackResponse decodeBody(RemotingBuffer in) throws Exception
{
int bodyLength = in.getInt();
if (in.remaining() < bodyLength)
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientIDResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientIDResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetClientIDResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_GETCLIENTID;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.GetClientIDResponse;
/**
@@ -38,17 +37,16 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, GetClientIDResponse response,
- IoBuffer out) throws Exception
+ protected void encodeBody(GetClientIDResponse response, RemotingBuffer out) throws Exception
{
String clientID = response.getClientID();
out.putInt(sizeof(clientID));
- putString(out, clientID);
+ out.putNullableString(clientID);
}
@Override
- protected GetClientIDResponse decodeBody(IoSession session, IoBuffer in)
+ protected GetClientIDResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -57,7 +55,7 @@
return null;
}
- String clientID = getString(in);
+ String clientID = MinaPacketCodec.getString(in);
return new GetClientIDResponse(clientID);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetPreparedTransactionsResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetPreparedTransactionsResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetPreparedTransactionsResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -13,8 +13,6 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.tx.MessagingXid;
import org.jboss.messaging.core.remoting.wireformat.GetPreparedTransactionsResponse;
@@ -42,8 +40,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- GetPreparedTransactionsResponse response, IoBuffer out) throws Exception
+ protected void encodeBody(GetPreparedTransactionsResponse response,
+ RemotingBuffer out) throws Exception
{
MessagingXid[] xids = response.getXids();
@@ -59,8 +57,7 @@
}
@Override
- protected GetPreparedTransactionsResponse decodeBody(IoSession session,
- IoBuffer in) throws Exception
+ protected GetPreparedTransactionsResponse decodeBody(RemotingBuffer in) throws Exception
{
int bodyLength = in.getInt();
if (in.remaining() < bodyLength)
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetTopologyResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetTopologyResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/GetTopologyResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -13,8 +13,6 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.delegate.TopologyResult;
import org.jboss.messaging.core.remoting.wireformat.GetTopologyResponse;
@@ -42,8 +40,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, GetTopologyResponse response,
- IoBuffer out) throws Exception
+ protected void encodeBody(GetTopologyResponse response, RemotingBuffer out) throws Exception
{
byte[] encodedTopology = encode(response.getTopology());
@@ -55,7 +52,7 @@
}
@Override
- protected GetTopologyResponse decodeBody(IoSession session, IoBuffer in)
+ protected GetTopologyResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/IDBlockRequestCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/IDBlockRequestCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/IDBlockRequestCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_IDBLOCK;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.IDBlockRequest;
/**
@@ -35,15 +33,14 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, IDBlockRequest request,
- IoBuffer out) throws Exception
+ protected void encodeBody(IDBlockRequest request, RemotingBuffer out) throws Exception
{
out.putInt(INT_LENGTH);
out.putInt(request.getSize());
}
@Override
- protected IDBlockRequest decodeBody(IoSession session, IoBuffer in)
+ protected IDBlockRequest decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/IDBlockResponseCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/IDBlockResponseCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/IDBlockResponseCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_IDBLOCK;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.IDBlockResponse;
/**
@@ -35,8 +33,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, IDBlockResponse response,
- IoBuffer out) throws Exception
+ protected void encodeBody(IDBlockResponse response, RemotingBuffer out) throws Exception
{
out.putInt(LONG_LENGTH * 2);
out.putLong(response.getLow());
@@ -44,7 +41,7 @@
}
@Override
- protected IDBlockResponse decodeBody(IoSession session, IoBuffer in)
+ protected IDBlockResponse decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/JMSExceptionMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/JMSExceptionMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/JMSExceptionMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -13,8 +13,6 @@
import javax.jms.JMSException;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.messaging.core.remoting.wireformat.JMSExceptionMessage;
import org.jboss.messaging.core.remoting.wireformat.PacketType;
@@ -46,8 +44,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, JMSExceptionMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(JMSExceptionMessage message, RemotingBuffer out) throws Exception
{
JMSException exception = message.getException();
@@ -65,7 +62,7 @@
}
@Override
- protected JMSExceptionMessage decodeBody(IoSession session, IoBuffer in)
+ protected JMSExceptionMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
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-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -6,26 +6,14 @@
*/
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_GETCLIENTAOPSTACK;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETCLIENTID;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETPREPAREDTRANSACTIONS;
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.REQ_GETTOPOLOGY;
-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.internal.MinaPacketCodec;
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;
-import org.jboss.messaging.core.remoting.wireformat.UpdateCallbackMessage;
import org.jboss.messaging.core.remoting.wireformat.AddTemporaryDestinationMessage;
import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageRequest;
import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageResponse;
@@ -73,6 +61,7 @@
import org.jboss.messaging.core.remoting.wireformat.StopConnectionMessage;
import org.jboss.messaging.core.remoting.wireformat.TextPacket;
import org.jboss.messaging.core.remoting.wireformat.UnsubscribeMessage;
+import org.jboss.messaging.core.remoting.wireformat.UpdateCallbackMessage;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
@@ -88,7 +77,7 @@
// Constructors --------------------------------------------------
// FIXME: split encoder/decoder required only on client and/or server sides
- public PacketCodecFactory()
+ public PacketCodecFactory() throws Exception
{
addCodecForEmptyPacket(NULL, NullPacket.class);
@@ -103,13 +92,15 @@
addCodec(CreateConnectionResponse.class,
ConnectionFactoryCreateConnectionResponseCodec.class);
- addCodecForEmptyPacket(REQ_GETCLIENTAOPSTACK, GetClientAOPStackRequest.class);
-
+ addCodecForEmptyPacket(PacketType.REQ_GETCLIENTAOPSTACK,
+ GetClientAOPStackRequest.class);
+
addCodec(GetClientAOPStackResponse.class,
GetClientAOPStackResponseCodec.class);
-
- addCodecForEmptyPacket(REQ_GETTOPOLOGY, GetTopologyRequest.class);
+ addCodecForEmptyPacket(PacketType.REQ_GETTOPOLOGY,
+ GetTopologyRequest.class);
+
addCodec(GetTopologyResponse.class, GetTopologyResponseCodec.class);
addCodec(UpdateCallbackMessage.class, AddCallbackMessageCodec.class);
@@ -122,7 +113,8 @@
addCodec(IDBlockResponse.class, IDBlockResponseCodec.class);
- addCodecForEmptyPacket(REQ_GETCLIENTID, GetClientIDRequest.class);
+ addCodecForEmptyPacket(PacketType.REQ_GETCLIENTID,
+ GetClientIDRequest.class);
addCodec(GetClientIDResponse.class, GetClientIDResponseCodec.class);
@@ -144,9 +136,11 @@
addCodec(CreateBrowserResponse.class, CreateBrowserResponseCodec.class);
- addCodecForEmptyPacket(MSG_STARTCONNECTION, StartConnectionMessage.class);
+ addCodecForEmptyPacket(PacketType.MSG_STARTCONNECTION,
+ StartConnectionMessage.class);
- addCodecForEmptyPacket(MSG_STOPCONNECTION, StopConnectionMessage.class);
+ addCodecForEmptyPacket(PacketType.MSG_STOPCONNECTION,
+ StopConnectionMessage.class);
addCodec(ChangeRateMessage.class, ChangeRateMessageCodec.class);
@@ -173,25 +167,26 @@
addCodec(ClosingResponse.class, ClosingResponseCodec.class);
- addCodecForEmptyPacket(MSG_CLOSE, CloseMessage.class);
+ addCodecForEmptyPacket(PacketType.MSG_CLOSE, CloseMessage.class);
addCodec(SendTransactionMessage.class, SendTransactionMessageCodec.class);
- addCodecForEmptyPacket(REQ_GETPREPAREDTRANSACTIONS,
+ addCodecForEmptyPacket(PacketType.REQ_GETPREPAREDTRANSACTIONS,
GetPreparedTransactionsRequest.class);
addCodec(GetPreparedTransactionsResponse.class,
GetPreparedTransactionsResponseCodec.class);
- addCodecForEmptyPacket(MSG_BROWSER_RESET, BrowserResetMessage.class);
+ addCodecForEmptyPacket(PacketType.MSG_BROWSER_RESET,
+ BrowserResetMessage.class);
- addCodecForEmptyPacket(REQ_BROWSER_HASNEXTMESSAGE,
+ addCodecForEmptyPacket(PacketType.REQ_BROWSER_HASNEXTMESSAGE,
BrowserHasNextMessageRequest.class);
addCodec(BrowserHasNextMessageResponse.class,
BrowserHasNextMessageResponseCodec.class);
- addCodecForEmptyPacket(REQ_BROWSER_NEXTMESSAGE,
+ addCodecForEmptyPacket(PacketType.REQ_BROWSER_NEXTMESSAGE,
BrowserNextMessageRequest.class);
addCodec(BrowserNextMessageResponse.class,
@@ -220,24 +215,30 @@
// Private -------------------------------------------------------
+ // FIXME generics definition should be in term of <P>...
private void addCodec(
Class<? extends AbstractPacket> packetClass,
- Class<? extends AbstractPacketCodec<? extends AbstractPacket>> codecClass)
+ Class<? extends AbstractPacketCodec<? extends AbstractPacket>> codecClass) throws Exception
{
- super.addMessageDecoder(codecClass);
- super.addMessageEncoder(packetClass, codecClass);
+ AbstractPacketCodec<? extends AbstractPacket> codec = codecClass
+ .newInstance();
+ MinaPacketCodec<AbstractPacket> minaCodec = new MinaPacketCodec(codec);
+ super.addMessageDecoder(minaCodec);
+ super.addMessageEncoder(packetClass, minaCodec);
}
private void addCodecForEmptyPacket(PacketType type,
- Class<? extends AbstractPacket> clazz)
+ Class<? extends AbstractPacket> packetClass)
{
AbstractPacketCodec<AbstractPacket> codec = createCodecForEmptyPacket(
- type, clazz);
- super.addMessageDecoder(codec);
- super.addMessageEncoder(clazz, codec);
+ type, packetClass);
+ MinaPacketCodec<AbstractPacket> minaCodec = new MinaPacketCodec<AbstractPacket>(
+ codec);
+ super.addMessageDecoder(minaCodec);
+ super.addMessageEncoder(packetClass, minaCodec);
}
- private AbstractPacketCodec<AbstractPacket> createCodecForEmptyPacket(
+ public static AbstractPacketCodec<AbstractPacket> createCodecForEmptyPacket(
PacketType type, final Class<? extends AbstractPacket> clazz)
{
return new CodecForEmptyPacket<AbstractPacket>(type)
@@ -258,7 +259,7 @@
// Inner classes -------------------------------------------------
- abstract class CodecForEmptyPacket<P extends AbstractPacket> extends
+ abstract static class CodecForEmptyPacket<P extends AbstractPacket> extends
AbstractPacketCodec<P>
{
@@ -268,21 +269,19 @@
}
@Override
- protected void encodeBody(IoSession session, P packet, IoBuffer out)
- throws Exception
+ protected void encodeBody(P packet, RemotingBuffer out) throws Exception
{
// no body
out.putInt(0);
}
@Override
- protected P decodeBody(IoSession session, IoBuffer in) throws Exception
+ protected P decodeBody(RemotingBuffer in) throws Exception
{
in.getInt(); // skip body length
return newPacket();
}
protected abstract P newPacket();
-
}
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/RecoverDeliveriesMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/RecoverDeliveriesMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/RecoverDeliveriesMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -13,9 +13,8 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.delegate.DeliveryRecovery;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.PacketType;
import org.jboss.messaging.core.remoting.wireformat.RecoverDeliveriesMessage;
@@ -46,8 +45,8 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session,
- RecoverDeliveriesMessage message, IoBuffer out) throws Exception
+ protected void encodeBody(RecoverDeliveriesMessage message,
+ RemotingBuffer out) throws Exception
{
List<DeliveryRecovery> deliveries = message.getDeliveries();
String sessionID = message.getSessionID();
@@ -60,11 +59,11 @@
out.putInt(deliveries.size());
out.putInt(encodedDeliveries.length);
out.put(encodedDeliveries);
- putString(out, sessionID);
+ out.putNullableString(sessionID);
}
@Override
- protected RecoverDeliveriesMessage decodeBody(IoSession session, IoBuffer in)
+ protected RecoverDeliveriesMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -79,7 +78,7 @@
in.get(encodedDeliveries);
List<DeliveryRecovery> deliveries = decode(deliveriesSize,
encodedDeliveries);
- String sessionID = getString(in);
+ String sessionID = MinaPacketCodec.getString(in);
return new RecoverDeliveriesMessage(deliveries, sessionID);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SendMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SendMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SendMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,6 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_SENDMESSAGE;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.message.JBossMessage;
import org.jboss.messaging.core.remoting.wireformat.SendMessage;
@@ -36,8 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, SendMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(SendMessage message, RemotingBuffer out) throws Exception
{
byte[] encodedMsg = encode(message.getMessage());
boolean checkForDuplicates = message.checkForDuplicates();
@@ -49,12 +46,12 @@
out.put(message.getMessage().getType());
out.putInt(encodedMsg.length);
out.put(encodedMsg);
- putBoolean(out, checkForDuplicates);
+ out.putBoolean(checkForDuplicates);
out.putLong(sequence);
}
@Override
- protected SendMessage decodeBody(IoSession session, IoBuffer in)
+ protected SendMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -68,7 +65,7 @@
byte[] encodedMsg = new byte[msgLength];
in.get(encodedMsg);
JBossMessage msg = (JBossMessage) decode(msgType, encodedMsg);
- boolean checkForDuplicates = getBoolean(in);
+ boolean checkForDuplicates = in.getBoolean();
long sequence = in.getLong();
return new SendMessage(msg, checkForDuplicates, sequence);
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SendTransactionMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SendTransactionMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SendTransactionMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -13,8 +13,6 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
import org.jboss.jms.tx.TransactionRequest;
import org.jboss.messaging.core.remoting.wireformat.SendTransactionMessage;
@@ -41,8 +39,7 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, SendTransactionMessage request,
- IoBuffer out) throws Exception
+ protected void encodeBody(SendTransactionMessage request, RemotingBuffer out) throws Exception
{
byte[] encodedTxReq = encodeTransactionRequest(request.getTransactionRequest());
boolean checkForDuplicates = request.checkForDuplicates();
@@ -52,11 +49,11 @@
out.putInt(bodyLength);
out.putInt(encodedTxReq.length);
out.put(encodedTxReq);
- putBoolean(out, checkForDuplicates);
+ out.putBoolean(checkForDuplicates);
}
@Override
- protected SendTransactionMessage decodeBody(IoSession session, IoBuffer in)
+ protected SendTransactionMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -69,7 +66,7 @@
byte[] encodedTxReq = new byte[txReqLength];
in.get(encodedTxReq);
TransactionRequest tr = decodeTransactionRequest(encodedTxReq);
- boolean checkForDuplicates = getBoolean(in);
+ boolean checkForDuplicates = in.getBoolean();
return new SendTransactionMessage(tr, checkForDuplicates);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SetClientIDMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SetClientIDMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/SetClientIDMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_SETCLIENTID;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.SetClientIDMessage;
/**
@@ -38,17 +37,16 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, SetClientIDMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(SetClientIDMessage message, RemotingBuffer out) throws Exception
{
String clientID = message.getClientID();
out.putInt(sizeof(clientID));
- putString(out, clientID);
+ out.putNullableString(clientID);
}
@Override
- protected SetClientIDMessage decodeBody(IoSession session, IoBuffer in)
+ protected SetClientIDMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -57,7 +55,7 @@
return null;
}
- String clientID = getString(in);
+ String clientID = MinaPacketCodec.getString(in);
return new SetClientIDMessage(clientID);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/TextPacketCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/TextPacketCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/TextPacketCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.TEXT;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.TextPacket;
/**
@@ -36,17 +35,17 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, TextPacket packet, IoBuffer out)
+ protected void encodeBody(TextPacket packet, RemotingBuffer out)
throws Exception
{
String text = packet.getText();
out.putInt(sizeof(text));
- putString(out, text);
+ out.putNullableString(text);
}
@Override
- protected TextPacket decodeBody(IoSession session, IoBuffer in)
+ protected TextPacket decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -54,7 +53,7 @@
{
return null;
}
- String text = getString(in);
+ String text = MinaPacketCodec.getString(in);
return new TextPacket(text);
}
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/UnsubscribeMessageCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/UnsubscribeMessageCodec.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/UnsubscribeMessageCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -8,8 +8,7 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.MSG_UNSUBSCRIBE;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
import org.jboss.messaging.core.remoting.wireformat.UnsubscribeMessage;
/**
@@ -36,17 +35,16 @@
// AbstractPacketCodec overrides ---------------------------------
@Override
- protected void encodeBody(IoSession session, UnsubscribeMessage message,
- IoBuffer out) throws Exception
+ protected void encodeBody(UnsubscribeMessage message, RemotingBuffer out) throws Exception
{
String subscriptionName = message.getSubscriptionName();
out.putInt(sizeof(subscriptionName));
- putString(out, subscriptionName);
+ out.putNullableString(subscriptionName);
}
@Override
- protected UnsubscribeMessage decodeBody(IoSession session, IoBuffer in)
+ protected UnsubscribeMessage decodeBody(RemotingBuffer in)
throws Exception
{
int bodyLength = in.getInt();
@@ -55,7 +53,7 @@
return null;
}
- String subscriptionName = getString(in);
+ String subscriptionName = MinaPacketCodec.getString(in);
return new UnsubscribeMessage(subscriptionName);
}
Added: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/internal/MinaPacketCodec.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/internal/MinaPacketCodec.java (rev 0)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/internal/MinaPacketCodec.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -0,0 +1,270 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.core.remoting.internal;
+
+import static org.jboss.messaging.core.remoting.codec.AbstractPacketCodec.UTF_8_DECODER;
+import static org.jboss.messaging.core.remoting.codec.AbstractPacketCodec.UTF_8_ENCODER;
+
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+
+import org.apache.mina.common.IoBuffer;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.filter.codec.ProtocolDecoderOutput;
+import org.apache.mina.filter.codec.ProtocolEncoderOutput;
+import org.apache.mina.filter.codec.demux.MessageDecoder;
+import org.apache.mina.filter.codec.demux.MessageDecoderResult;
+import org.apache.mina.filter.codec.demux.MessageEncoder;
+import org.jboss.messaging.core.remoting.codec.AbstractPacketCodec;
+import org.jboss.messaging.core.remoting.codec.DecoderStatus;
+import org.jboss.messaging.core.remoting.codec.RemotingBuffer;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public class MinaPacketCodec<P extends AbstractPacket> implements
+ MessageEncoder<P>, MessageDecoder
+{
+ // Constants -----------------------------------------------------
+
+ private static final byte TRUE = (byte) 0;
+
+ private static final byte FALSE = (byte) 1;
+
+ // used to terminate encoded Strings
+ public static final byte NULL_BYTE = (byte) 0;
+
+ public static final byte NULL_STRING = (byte) 0;
+
+ public static final byte NOT_NULL_STRING = (byte) 1;
+
+
+ // Attributes ----------------------------------------------------
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ private final AbstractPacketCodec<P> codec;
+
+ public MinaPacketCodec(Class<? extends AbstractPacketCodec<P>> codecClass)
+ throws Throwable
+ {
+ this.codec = (AbstractPacketCodec<P>) codecClass.newInstance();
+ }
+
+ public MinaPacketCodec(AbstractPacketCodec<P> codec)
+ {
+ this.codec = codec;
+ }
+
+ // Public --------------------------------------------------------
+
+ // MessageEncoder implementation ---------------------------------
+
+ public void encode(IoSession session, P packet, ProtocolEncoderOutput out)
+ throws Exception
+ {
+ final IoBuffer buffer = IoBuffer.allocate(256);
+ // Enable auto-expand for easier encoding
+ buffer.setAutoExpand(true);
+
+ RemotingBuffer wrapper = new BufferWrapper(buffer);
+
+ codec.encode(packet, wrapper);
+
+ buffer.flip();
+ out.write(buffer);
+ }
+
+ // MessageDecoder implementation ---------------------------------
+
+ public MessageDecoderResult decodable(IoSession session, IoBuffer in)
+ {
+ RemotingBuffer wrapper = new BufferWrapper(in);
+
+ DecoderStatus status = codec.decodable(wrapper);
+ return convertToMina(status);
+ }
+
+ public MessageDecoderResult decode(IoSession session, IoBuffer in,
+ ProtocolDecoderOutput out) throws Exception
+ {
+ RemotingBuffer wrapper = new BufferWrapper(in);
+
+ P packet = codec.decode(wrapper);
+
+ if (packet == null)
+ {
+ return MessageDecoder.NEED_DATA;
+ }
+
+ out.write(packet);
+
+ return MessageDecoder.OK;
+ }
+
+ private MessageDecoderResult convertToMina(DecoderStatus status)
+ {
+ if (status == DecoderStatus.OK)
+ {
+ return MessageDecoderResult.OK;
+ }
+ if (status == DecoderStatus.NEED_DATA)
+ {
+ return MessageDecoderResult.NEED_DATA;
+ }
+ return MessageDecoderResult.NOT_OK;
+ }
+
+ public void finishDecode(IoSession session, ProtocolDecoderOutput out)
+ throws Exception
+ {
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+
+ public static String getString(RemotingBuffer in) throws CharacterCodingException
+ {
+ return in.getNullableString();
+ }
+
+ public static final class BufferWrapper implements RemotingBuffer
+ {
+ private final IoBuffer buffer;
+
+ public BufferWrapper(IoBuffer buffer)
+ {
+ assert buffer != null;
+
+ this.buffer = buffer;
+ }
+
+ public int remaining()
+ {
+ return buffer.remaining();
+ }
+
+ public void put(byte byteValue)
+ {
+ buffer.put(byteValue);
+ }
+
+ public void put(byte[] byteArray)
+ {
+ buffer.put(byteArray);
+ }
+
+ public void putInt(int intValue)
+ {
+ buffer.putInt(intValue);
+ }
+
+ public void putLong(long longValue)
+ {
+ buffer.putLong(longValue);
+ }
+
+ public void putFloat(float floatValue)
+ {
+ buffer.putFloat(floatValue);
+ }
+
+ public void putString(String string, CharsetEncoder encoder)
+ throws CharacterCodingException
+ {
+ buffer.putString(string, encoder);
+ }
+
+ public byte get()
+ {
+ return buffer.get();
+ }
+
+ public void get(byte[] b)
+ {
+ buffer.get(b);
+ }
+
+ public int getInt()
+ {
+ return buffer.getInt();
+ }
+
+ public long getLong()
+ {
+ return buffer.getLong();
+ }
+
+ public float getFloat()
+ {
+ return buffer.getFloat();
+ }
+
+ public String getString(CharsetDecoder decoder)
+ throws CharacterCodingException
+ {
+ return buffer.getString(decoder);
+ }
+
+ public void putBoolean(boolean b)
+ {
+ if (b)
+ {
+ buffer.put(TRUE);
+ } else
+ {
+ buffer.put(FALSE);
+ }
+ }
+
+ public boolean getBoolean()
+ {
+ byte b = buffer.get();
+ return (b == TRUE);
+ }
+
+ public void putNullableString(String nullableString) throws CharacterCodingException
+ {
+
+ if (nullableString == null)
+ {
+ buffer.put(NULL_STRING);
+ } else
+ {
+ buffer.put(NOT_NULL_STRING);
+ buffer.putString(nullableString, UTF_8_ENCODER);
+ buffer.put(NULL_BYTE);
+ }
+ }
+
+ public String getNullableString() throws CharacterCodingException
+ {
+ byte check = buffer.get();
+ if (check == NULL_STRING)
+ {
+ return null;
+ } else
+ {
+ assert check == NOT_NULL_STRING;
+
+ return buffer.getString(UTF_8_DECODER);
+ }
+ }
+ }
+}
Added: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/internal/MinaRemotingBuffer.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/internal/MinaRemotingBuffer.java (rev 0)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/internal/MinaRemotingBuffer.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -0,0 +1,121 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.test.messaging.core.remoting.internal;
+
+import static java.util.UUID.randomUUID;
+import junit.framework.TestCase;
+
+import org.apache.mina.common.IoBuffer;
+import org.jboss.messaging.core.remoting.codec.AbstractPacketCodec;
+import org.jboss.messaging.core.remoting.codec.RemotingBuffer;
+import org.jboss.messaging.core.remoting.internal.MinaPacketCodec;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ *
+ * @version <tt>$Revision$</tt>
+ */
+public class MinaRemotingBuffer extends TestCase
+{
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ private RemotingBuffer wrapper;
+ private IoBuffer buffer;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ buffer = IoBuffer.allocate(256);
+ buffer.setAutoExpand(true);
+ wrapper = new MinaPacketCodec.BufferWrapper(buffer);
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ wrapper = null;
+ buffer = null;
+
+ }
+
+ public void testNullStringNotAllowedByPutString() throws Exception
+ {
+ try
+ {
+ wrapper.putString(null, AbstractPacketCodec.UTF_8_ENCODER);
+ fail("putString(String, CharsetEncoder) does not allow null String");
+ } catch (Exception e)
+ {
+
+ }
+ }
+
+ public void testNullString() throws Exception
+ {
+ assertNull(putAndGetNullableString(null));
+ }
+
+ public void testEmptyString() throws Exception
+ {
+ String result = putAndGetNullableString("");
+
+ assertNotNull(result);
+ assertEquals("", result);
+ }
+
+ public void testNonEmptyString() throws Exception
+ {
+ String junk = randomUUID().toString();
+
+ String result = putAndGetNullableString(junk);
+
+ assertNotNull(result);
+ assertEquals(junk, result);
+ }
+
+ public void testPutTrueBoolean() throws Exception
+ {
+ wrapper.putBoolean(true);
+
+ buffer.flip();
+
+ assertTrue(wrapper.getBoolean());
+ }
+
+ public void testPutFalseBoolean() throws Exception
+ {
+ wrapper.putBoolean(false);
+
+ buffer.flip();
+
+ assertFalse(wrapper.getBoolean());
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ private String putAndGetNullableString(String nullableString) throws Exception
+ {
+ wrapper.putNullableString(nullableString);
+
+ buffer.flip();
+
+ return wrapper.getNullableString();
+ }
+ // Inner classes -------------------------------------------------
+}
Deleted: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/AbstractPacketCodecTest.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/AbstractPacketCodecTest.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/AbstractPacketCodecTest.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -1,93 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting.wireformat;
-
-import static java.util.UUID.randomUUID;
-
-import java.nio.charset.CharacterCodingException;
-
-import junit.framework.TestCase;
-
-import org.apache.mina.common.IoBuffer;
-import org.jboss.messaging.core.remoting.codec.AbstractPacketCodec;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- *
- * @version <tt>$Revision$</tt>
- */
-public class AbstractPacketCodecTest extends TestCase
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void testNullString() throws Exception
- {
- String result = putAndGet(null);
-
- assertNull(result);
- }
-
- public void testEmptyString() throws Exception
- {
- String result = putAndGet("");
-
- assertNotNull(result);
- assertEquals("", result);
- }
-
- public void testNonEmptyString() throws Exception
- {
- String junk = randomUUID().toString();
-
- String result = putAndGet(junk);
-
- assertNotNull(result);
- assertEquals(junk, result);
- }
-
- public void testTrueBoolean() throws Exception
- {
- assertTrue(putAndGet(true));
- }
-
- public void testFalseBoolean() throws Exception
- {
- assertFalse(putAndGet(false));
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- private static String putAndGet(String s) throws CharacterCodingException
- {
- IoBuffer buffer = IoBuffer.allocate(256);
- AbstractPacketCodec.putString(buffer, s);
- buffer.flip();
- return AbstractPacketCodec.getString(buffer);
- }
-
- private static boolean putAndGet(boolean b) throws CharacterCodingException
- {
- IoBuffer buffer = IoBuffer.allocate(256);
- AbstractPacketCodec.putBoolean(buffer, b);
- buffer.flip();
- return AbstractPacketCodec.getBoolean(buffer);
- }
-
- // Inner classes -------------------------------------------------
-}
Modified: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java 2007-11-29 13:27:33 UTC (rev 3385)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java 2007-11-30 17:20:15 UTC (rev 3386)
@@ -57,6 +57,14 @@
import static org.jboss.messaging.core.remoting.wireformat.PacketType.RESP_IDBLOCK;
import static org.jboss.messaging.core.remoting.wireformat.PacketType.TEXT;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -68,10 +76,6 @@
import junit.framework.TestCase;
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.filter.codec.ProtocolCodecSession;
-import org.apache.mina.filter.codec.ProtocolDecoder;
-import org.apache.mina.filter.codec.ProtocolEncoder;
import org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate;
import org.jboss.jms.delegate.Ack;
import org.jboss.jms.delegate.Cancel;
@@ -87,7 +91,48 @@
import org.jboss.jms.tx.MessagingXid;
import org.jboss.jms.tx.TransactionRequest;
import org.jboss.messaging.core.contract.Message;
+import org.jboss.messaging.core.remoting.codec.AbstractPacketCodec;
+import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveriesRequestCodec;
+import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveryRequestCodec;
+import org.jboss.messaging.core.remoting.codec.AcknowledgeDeliveryResponseCodec;
+import org.jboss.messaging.core.remoting.codec.AddCallbackMessageCodec;
+import org.jboss.messaging.core.remoting.codec.AddTemporaryDestinationMessageCodec;
+import org.jboss.messaging.core.remoting.codec.BrowserHasNextMessageResponseCodec;
+import org.jboss.messaging.core.remoting.codec.BrowserNextMessageBlockRequestCodec;
+import org.jboss.messaging.core.remoting.codec.BrowserNextMessageBlockResponseCodec;
+import org.jboss.messaging.core.remoting.codec.BrowserNextMessageResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CancelDeliveriesMessageCodec;
+import org.jboss.messaging.core.remoting.codec.CancelDeliveryMessageCodec;
+import org.jboss.messaging.core.remoting.codec.ChangeRateMessageCodec;
+import org.jboss.messaging.core.remoting.codec.ClosingRequestCodec;
+import org.jboss.messaging.core.remoting.codec.ClosingResponseCodec;
+import org.jboss.messaging.core.remoting.codec.ConnectionFactoryCreateConnectionRequestCodec;
+import org.jboss.messaging.core.remoting.codec.ConnectionFactoryCreateConnectionResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CreateBrowserRequestCodec;
+import org.jboss.messaging.core.remoting.codec.CreateBrowserResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CreateConsumerRequestCodec;
+import org.jboss.messaging.core.remoting.codec.CreateConsumerResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CreateDestinationRequestCodec;
+import org.jboss.messaging.core.remoting.codec.CreateDestinationResponseCodec;
+import org.jboss.messaging.core.remoting.codec.CreateSessionRequestCodec;
+import org.jboss.messaging.core.remoting.codec.CreateSessionResponseCodec;
+import org.jboss.messaging.core.remoting.codec.DeleteTemporaryDestinationMessageCodec;
+import org.jboss.messaging.core.remoting.codec.DeliverMessageCodec;
+import org.jboss.messaging.core.remoting.codec.GetClientAOPStackResponseCodec;
+import org.jboss.messaging.core.remoting.codec.GetClientIDResponseCodec;
+import org.jboss.messaging.core.remoting.codec.GetPreparedTransactionsResponseCodec;
+import org.jboss.messaging.core.remoting.codec.GetTopologyResponseCodec;
+import org.jboss.messaging.core.remoting.codec.IDBlockRequestCodec;
+import org.jboss.messaging.core.remoting.codec.IDBlockResponseCodec;
+import org.jboss.messaging.core.remoting.codec.JMSExceptionMessageCodec;
import org.jboss.messaging.core.remoting.codec.PacketCodecFactory;
+import org.jboss.messaging.core.remoting.codec.RecoverDeliveriesMessageCodec;
+import org.jboss.messaging.core.remoting.codec.RemotingBuffer;
+import org.jboss.messaging.core.remoting.codec.SendMessageCodec;
+import org.jboss.messaging.core.remoting.codec.SendTransactionMessageCodec;
+import org.jboss.messaging.core.remoting.codec.SetClientIDMessageCodec;
+import org.jboss.messaging.core.remoting.codec.TextPacketCodec;
+import org.jboss.messaging.core.remoting.codec.UnsubscribeMessageCodec;
import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveriesMessage;
import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryRequest;
@@ -286,7 +331,9 @@
packet.setCorrelationID(randomLong());
packet.setTargetID(randomString());
- AbstractPacket decodedPacket = encodeAndDecode(packet);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ NULL, NullPacket.class);
+ AbstractPacket decodedPacket = encodeAndDecode(packet, codec);
assertTrue(decodedPacket instanceof NullPacket);
NullPacket p = (NullPacket) decodedPacket;
@@ -305,7 +352,8 @@
JMSExceptionMessage message = new JMSExceptionMessage(e);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new JMSExceptionMessageCodec());
assertTrue(decodedPacket instanceof JMSExceptionMessage);
JMSExceptionMessage decodedMessage = (JMSExceptionMessage) decodedPacket;
@@ -320,7 +368,8 @@
TextPacket packet = new TextPacket("testTextPacket");
addVersion(packet);
- AbstractPacket decodedPacket = encodeAndDecode(packet);
+ AbstractPacket decodedPacket = encodeAndDecode(packet,
+ new TextPacketCodec());
assertTrue(decodedPacket instanceof TextPacket);
TextPacket p = (TextPacket) decodedPacket;
@@ -342,7 +391,8 @@
remotingSessionID, clientVMID, failedNodeID, username, password);
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new ConnectionFactoryCreateConnectionRequestCodec());
assertTrue(decodedPacket instanceof CreateConnectionRequest);
CreateConnectionRequest decodedRequest = (CreateConnectionRequest) decodedPacket;
@@ -363,7 +413,8 @@
randomString(), 1234);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new ConnectionFactoryCreateConnectionResponseCodec());
assertTrue(decodedPacket instanceof CreateConnectionResponse);
@@ -379,7 +430,9 @@
GetClientAOPStackRequest request = new GetClientAOPStackRequest();
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ REQ_GETCLIENTAOPSTACK, GetClientAOPStackRequest.class);
+ AbstractPacket decodedPacket = encodeAndDecode(request, codec);
assertTrue(decodedPacket instanceof GetClientAOPStackRequest);
assertEquals(REQ_GETCLIENTAOPSTACK, decodedPacket.getType());
@@ -392,7 +445,8 @@
GetClientAOPStackResponse response = new GetClientAOPStackResponse(stack);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new GetClientAOPStackResponseCodec());
assertTrue(decodedPacket instanceof GetClientAOPStackResponse);
GetClientAOPStackResponse decodedResponse = (GetClientAOPStackResponse) decodedPacket;
@@ -405,8 +459,11 @@
GetTopologyRequest request = new GetTopologyRequest();
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ REQ_GETTOPOLOGY, GetTopologyRequest.class);
+ AbstractPacket decodedPacket = encodeAndDecode(request, codec);
+
assertTrue(decodedPacket instanceof GetTopologyRequest);
assertEquals(REQ_GETTOPOLOGY, decodedPacket.getType());
}
@@ -425,7 +482,8 @@
GetTopologyResponse response = new GetTopologyResponse(topology);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new GetTopologyResponseCodec());
assertTrue(decodedPacket instanceof GetTopologyResponse);
GetTopologyResponse decodedResponse = (GetTopologyResponse) decodedPacket;
@@ -435,26 +493,30 @@
public void testUpdateCallbackMessage() throws Exception
{
- UpdateCallbackMessage message = new UpdateCallbackMessage(randomString(), randomString(), true);
+ UpdateCallbackMessage message = new UpdateCallbackMessage(randomString(),
+ randomString(), true);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new AddCallbackMessageCodec());
assertTrue(decodedPacket instanceof UpdateCallbackMessage);
UpdateCallbackMessage decodedMessage = (UpdateCallbackMessage) decodedPacket;
assertEquals(MSG_UPDATECALLBACK, decodedMessage.getType());
- assertEquals(message.getRemotingSessionID(), decodedMessage.getRemotingSessionID());
+ assertEquals(message.getRemotingSessionID(), decodedMessage
+ .getRemotingSessionID());
assertEquals(message.getClientVMID(), decodedMessage.getClientVMID());
assertEquals(message.isAdd(), decodedMessage.isAdd());
}
-
+
public void testCreateSessionRequest() throws Exception
{
CreateSessionRequest request = new CreateSessionRequest(true, 0, false);
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new CreateSessionRequestCodec());
assertTrue(decodedPacket instanceof CreateSessionRequest);
@@ -472,7 +534,8 @@
randomString(), 23, false);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new CreateSessionResponseCodec());
assertTrue(decodedPacket instanceof CreateSessionResponse);
@@ -489,7 +552,8 @@
IDBlockRequest request = new IDBlockRequest(23);
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new IDBlockRequestCodec());
assertTrue(decodedPacket instanceof IDBlockRequest);
@@ -504,7 +568,8 @@
randomLong() * 2);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new IDBlockResponseCodec());
assertTrue(decodedPacket instanceof IDBlockResponse);
@@ -520,7 +585,7 @@
.currentTimeMillis()), true, randomLong());
addVersion(packet);
- AbstractPacket p = encodeAndDecode(packet);
+ AbstractPacket p = encodeAndDecode(packet, new SendMessageCodec());
assertTrue(p instanceof SendMessage);
@@ -538,10 +603,11 @@
JBossDestination destination = new JBossQueue(
"testCreateConsumerRequest", true);
CreateConsumerRequest request = new CreateConsumerRequest(destination,
- "color = 'red'", false, null, false, false);
+ "color = 'red'", false, "subscription", false, false);
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new CreateConsumerRequestCodec());
assertTrue(decodedPacket instanceof CreateConsumerRequest);
@@ -564,7 +630,8 @@
"testCreateDestinationRequest", false);
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new CreateDestinationRequestCodec());
assertTrue(decodedPacket instanceof CreateDestinationRequest);
@@ -582,7 +649,8 @@
destination);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new CreateDestinationResponseCodec());
assertTrue(decodedPacket instanceof CreateDestinationResponse);
@@ -600,7 +668,8 @@
destination);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new CreateDestinationResponseCodec());
assertTrue(decodedPacket instanceof CreateDestinationResponse);
@@ -617,7 +686,8 @@
randomString(), 23, 42, randomLong());
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new CreateConsumerResponseCodec());
assertTrue(decodedPacket instanceof CreateConsumerResponse);
@@ -635,8 +705,11 @@
StartConnectionMessage packet = new StartConnectionMessage();
addVersion(packet);
- AbstractPacket decodedPacket = encodeAndDecode(packet);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ MSG_STARTCONNECTION, StartConnectionMessage.class);
+ AbstractPacket decodedPacket = encodeAndDecode(packet, codec);
+
assertTrue(decodedPacket instanceof StartConnectionMessage);
assertEquals(MSG_STARTCONNECTION, decodedPacket.getType());
}
@@ -646,8 +719,11 @@
StopConnectionMessage packet = new StopConnectionMessage();
addVersion(packet);
- AbstractPacket decodedPacket = encodeAndDecode(packet);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ MSG_STOPCONNECTION, StopConnectionMessage.class);
+ AbstractPacket decodedPacket = encodeAndDecode(packet, codec);
+
assertTrue(decodedPacket instanceof StopConnectionMessage);
assertEquals(MSG_STOPCONNECTION, decodedPacket.getType());
}
@@ -657,7 +733,8 @@
ChangeRateMessage message = new ChangeRateMessage(0.63f);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new ChangeRateMessageCodec());
assertTrue(decodedPacket instanceof ChangeRateMessage);
ChangeRateMessage decodedMessage = (ChangeRateMessage) decodedPacket;
@@ -672,7 +749,8 @@
randomLong(), 23);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new DeliverMessageCodec());
assertTrue(decodedPacket instanceof DeliverMessage);
DeliverMessage decodedMessage = (DeliverMessage) decodedPacket;
@@ -691,7 +769,8 @@
randomLong());
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new AcknowledgeDeliveryRequestCodec());
assertTrue(decodedPacket instanceof AcknowledgeDeliveryRequest);
AcknowledgeDeliveryRequest decodedRequest = (AcknowledgeDeliveryRequest) decodedPacket;
@@ -710,7 +789,8 @@
acks);
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new AcknowledgeDeliveriesRequestCodec());
assertTrue(decodedPacket instanceof AcknowledgeDeliveriesMessage);
AcknowledgeDeliveriesMessage decodedRequest = (AcknowledgeDeliveriesMessage) decodedPacket;
@@ -724,7 +804,8 @@
true);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new AcknowledgeDeliveryResponseCodec());
assertTrue(decodedPacket instanceof AcknowledgeDeliveryResponse);
AcknowledgeDeliveryResponse decodedResponse = (AcknowledgeDeliveryResponse) decodedPacket;
@@ -738,7 +819,8 @@
ClosingRequest request = new ClosingRequest(randomLong());
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new ClosingRequestCodec());
assertTrue(decodedPacket instanceof ClosingRequest);
ClosingRequest decodedRequest = (ClosingRequest) decodedPacket;
@@ -751,7 +833,8 @@
ClosingResponse response = new ClosingResponse(System.currentTimeMillis());
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new ClosingResponseCodec());
assertTrue(decodedPacket instanceof ClosingResponse);
ClosingResponse decodedRequest = (ClosingResponse) decodedPacket;
@@ -764,8 +847,11 @@
CloseMessage message = new CloseMessage();
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ MSG_CLOSE, CloseMessage.class);
+ AbstractPacket decodedPacket = encodeAndDecode(message, codec);
+
assertTrue(decodedPacket instanceof CloseMessage);
CloseMessage decodedMessage = (CloseMessage) decodedPacket;
assertEquals(MSG_CLOSE, decodedMessage.getType());
@@ -781,7 +867,8 @@
SendTransactionMessage message = new SendTransactionMessage(tr, true);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new SendTransactionMessageCodec());
assertTrue(decodedPacket instanceof SendTransactionMessage);
SendTransactionMessage decodedMessage = (SendTransactionMessage) decodedPacket;
@@ -801,8 +888,11 @@
GetPreparedTransactionsRequest request = new GetPreparedTransactionsRequest();
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ REQ_GETPREPAREDTRANSACTIONS, GetPreparedTransactionsRequest.class);
+ AbstractPacket decodedPacket = encodeAndDecode(request, codec);
+
assertTrue(decodedPacket instanceof GetPreparedTransactionsRequest);
assertEquals(REQ_GETPREPAREDTRANSACTIONS, decodedPacket.getType());
}
@@ -817,7 +907,8 @@
xids);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new GetPreparedTransactionsResponseCodec());
assertTrue(decodedPacket instanceof GetPreparedTransactionsResponse);
GetPreparedTransactionsResponse decodedResponse = (GetPreparedTransactionsResponse) decodedPacket;
@@ -830,8 +921,11 @@
GetClientIDRequest request = new GetClientIDRequest();
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ REQ_GETCLIENTID, GetClientIDRequest.class);
+ AbstractPacket decodedPacket = encodeAndDecode(request, codec);
+
assertTrue(decodedPacket instanceof GetClientIDRequest);
assertEquals(REQ_GETCLIENTID, decodedPacket.getType());
}
@@ -841,7 +935,8 @@
GetClientIDResponse response = new GetClientIDResponse(randomString());
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new GetClientIDResponseCodec());
assertTrue(decodedPacket instanceof GetClientIDResponse);
GetClientIDResponse decodedResponse = (GetClientIDResponse) decodedPacket;
@@ -854,7 +949,8 @@
SetClientIDMessage message = new SetClientIDMessage(randomString());
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new SetClientIDMessageCodec());
assertTrue(decodedPacket instanceof SetClientIDMessage);
SetClientIDMessage decodedMessage = (SetClientIDMessage) decodedPacket;
@@ -876,7 +972,8 @@
deliveries, randomString());
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new RecoverDeliveriesMessageCodec());
assertTrue(decodedPacket instanceof RecoverDeliveriesMessage);
RecoverDeliveriesMessage decodedMessage = (RecoverDeliveriesMessage) decodedPacket;
@@ -892,7 +989,8 @@
CancelDeliveryMessage message = new CancelDeliveryMessage(cancel);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new CancelDeliveryMessageCodec());
assertTrue(decodedPacket instanceof CancelDeliveryMessage);
CancelDeliveryMessage decodedMessage = (CancelDeliveryMessage) decodedPacket;
@@ -915,7 +1013,8 @@
CancelDeliveriesMessage message = new CancelDeliveriesMessage(cancels);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new CancelDeliveriesMessageCodec());
assertTrue(decodedPacket instanceof CancelDeliveriesMessage);
CancelDeliveriesMessage decodedMessage = (CancelDeliveriesMessage) decodedPacket;
@@ -931,7 +1030,8 @@
"color = 'red'");
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacket decodedPacket = encodeAndDecode(request,
+ new CreateBrowserRequestCodec());
assertTrue(decodedPacket instanceof CreateBrowserRequest);
@@ -946,7 +1046,8 @@
CreateBrowserResponse response = new CreateBrowserResponse(randomString());
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new CreateBrowserResponseCodec());
assertTrue(decodedPacket instanceof CreateBrowserResponse);
@@ -960,8 +1061,11 @@
BrowserResetMessage message = new BrowserResetMessage();
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ MSG_BROWSER_RESET, BrowserResetMessage.class);
+ AbstractPacket decodedPacket = encodeAndDecode(message, codec);
+
assertTrue(decodedPacket instanceof BrowserResetMessage);
assertEquals(MSG_BROWSER_RESET, decodedPacket.getType());
}
@@ -971,8 +1075,11 @@
BrowserHasNextMessageRequest request = new BrowserHasNextMessageRequest();
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ REQ_BROWSER_HASNEXTMESSAGE, BrowserHasNextMessageRequest.class);
+ AbstractPacket decodedPacket = encodeAndDecode(request, codec);
+
assertTrue(decodedPacket instanceof BrowserHasNextMessageRequest);
assertEquals(REQ_BROWSER_HASNEXTMESSAGE, decodedPacket.getType());
}
@@ -983,7 +1090,8 @@
false);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new BrowserHasNextMessageResponseCodec());
assertTrue(decodedPacket instanceof BrowserHasNextMessageResponse);
@@ -997,8 +1105,11 @@
BrowserNextMessageRequest request = new BrowserNextMessageRequest();
addVersion(request);
- AbstractPacket decodedPacket = encodeAndDecode(request);
+ AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+ REQ_BROWSER_NEXTMESSAGE, BrowserNextMessageRequest.class);
+ AbstractPacket decodedPacket = encodeAndDecode(request, codec);
+
assertTrue(decodedPacket instanceof BrowserNextMessageRequest);
assertEquals(REQ_BROWSER_NEXTMESSAGE, decodedPacket.getType());
}
@@ -1009,7 +1120,8 @@
BrowserNextMessageResponse response = new BrowserNextMessageResponse(msg);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new BrowserNextMessageResponseCodec());
assertTrue(decodedPacket instanceof BrowserNextMessageResponse);
BrowserNextMessageResponse decodedResponse = (BrowserNextMessageResponse) decodedPacket;
@@ -1023,9 +1135,9 @@
BrowserNextMessageBlockRequest request = new BrowserNextMessageBlockRequest(
randomLong());
addVersion(request);
+
+ AbstractPacket decodedPacket = encodeAndDecode(request, new BrowserNextMessageBlockRequestCodec());
- AbstractPacket decodedPacket = encodeAndDecode(request);
-
assertTrue(decodedPacket instanceof BrowserNextMessageBlockRequest);
BrowserNextMessageBlockRequest decodedRequest = (BrowserNextMessageBlockRequest) decodedPacket;
assertEquals(REQ_BROWSER_NEXTMESSAGEBLOCK, decodedPacket.getType());
@@ -1041,7 +1153,8 @@
messages);
addVersion(response);
- AbstractPacket decodedPacket = encodeAndDecode(response);
+ AbstractPacket decodedPacket = encodeAndDecode(response,
+ new BrowserNextMessageBlockResponseCodec());
assertTrue(decodedPacket instanceof BrowserNextMessageBlockResponse);
BrowserNextMessageBlockResponse decodedResponse = (BrowserNextMessageBlockResponse) decodedPacket;
@@ -1058,7 +1171,8 @@
"testUnsubscribeMessage");
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new UnsubscribeMessageCodec());
assertTrue(decodedPacket instanceof UnsubscribeMessage);
UnsubscribeMessage decodedMessage = (UnsubscribeMessage) decodedPacket;
@@ -1075,7 +1189,8 @@
destination);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new AddTemporaryDestinationMessageCodec());
assertTrue(decodedPacket instanceof AddTemporaryDestinationMessage);
@@ -1092,7 +1207,8 @@
destination);
addVersion(message);
- AbstractPacket decodedPacket = encodeAndDecode(message);
+ AbstractPacket decodedPacket = encodeAndDecode(message,
+ new DeleteTemporaryDestinationMessageCodec());
assertTrue(decodedPacket instanceof DeleteTemporaryDestinationMessage);
@@ -1107,42 +1223,251 @@
// Private -------------------------------------------------------
- private AbstractPacket encodeAndDecode(AbstractPacket packet)
- throws Exception
+ private AbstractPacket encodeAndDecode(AbstractPacket packet,
+ AbstractPacketCodec codec) throws Exception
{
- IoBuffer buffer = encode(packet);
- return decode(buffer);
+ SimpleRemotingBuffer buf = new SimpleRemotingBuffer();
+ codec.encode(packet, buf);
+ buf.flip();
+
+ return decode(buf, codec);
}
- private IoBuffer encode(AbstractPacket packet) throws Exception
+ private AbstractPacket decode(SimpleRemotingBuffer buffer,
+ AbstractPacketCodec codec) throws Exception
{
- ProtocolCodecSession session = new ProtocolCodecSession();
- ProtocolEncoder encoder = new PacketCodecFactory().getEncoder(session);
- encoder.encode(session, packet, session.getEncoderOutput());
- IoBuffer buffer = session.getEncoderOutputQueue().poll();
+ return codec.decode(buffer);
+ }
- session.close();
+ // Inner classes -------------------------------------------------
- return buffer;
- }
-
- private AbstractPacket decode(IoBuffer buffer) throws Exception
+ private final class SimpleRemotingBuffer implements RemotingBuffer
{
- ProtocolCodecSession session = new ProtocolCodecSession();
- ProtocolDecoder decoder = new PacketCodecFactory().getDecoder(session);
- decoder.decode(session, buffer, session.getDecoderOutput());
+ private static final byte NON_NULL_STRING = (byte) 0;
+ private static final byte NULL_STRING = (byte) 1;
- session.getDecoderOutput().flush();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DataOutputStream dos = new DataOutputStream(baos);
- Object o = session.getDecoderOutputQueue().poll();
+ DataInputStream dais;
- assertNotNull(o);
- assertTrue(o instanceof AbstractPacket);
+ public void flip()
+ {
+ dais = new DataInputStream(
+ new ByteArrayInputStream(baos.toByteArray()));
+ }
- session.close();
+ public byte get()
+ {
+ try
+ {
+ return dais.readByte();
+ } catch (IOException e)
+ {
+ fail();
+ return -1;
+ }
+ }
- return (AbstractPacket) o;
+ public void get(byte[] b)
+ {
+ try
+ {
+ dais.readFully(b);
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public boolean getBoolean()
+ {
+ try
+ {
+ return dais.readBoolean();
+ } catch (IOException e)
+ {
+ fail();
+ return false;
+ }
+ }
+
+ public float getFloat()
+ {
+ try
+ {
+ return dais.readFloat();
+ } catch (IOException e)
+ {
+ fail();
+ return -1;
+ }
+ }
+
+ public int getInt()
+ {
+ try
+ {
+ return dais.readInt();
+ } catch (IOException e)
+ {
+ fail();
+ return -1;
+ }
+ }
+
+ public long getLong()
+ {
+ try
+ {
+ return dais.readLong();
+ } catch (IOException e)
+ {
+ fail();
+ return -1;
+ }
+ }
+
+ public String getNullableString() throws CharacterCodingException
+ {
+ try
+ {
+ byte check = dais.readByte();
+ if (check == NULL_STRING)
+ {
+ return null;
+ } else
+ {
+ return dais.readUTF();
+ }
+ } catch (IOException e)
+ {
+ fail();
+ return null;
+ }
+ }
+
+ public String getString(CharsetDecoder decoder)
+ throws CharacterCodingException
+ {
+ try
+ {
+ return dais.readUTF();
+ } catch (IOException e)
+ {
+ fail();
+ return null;
+ }
+ }
+
+ public void put(byte byteValue)
+ {
+ try
+ {
+ dos.writeByte(byteValue);
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public void put(byte[] bytes)
+ {
+ try
+ {
+ dos.write(bytes);
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public void putBoolean(boolean b)
+ {
+ try
+ {
+ dos.writeBoolean(b);
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public void putFloat(float floatValue)
+ {
+ try
+ {
+ dos.writeFloat(floatValue);
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public void putInt(int intValue)
+ {
+ try
+ {
+ dos.writeInt(intValue);
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public void putLong(long longValue)
+ {
+ try
+ {
+ dos.writeLong(longValue);
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public void putNullableString(String nullableString)
+ throws CharacterCodingException
+ {
+ try
+ {
+ if (nullableString == null)
+ {
+ dos.writeByte(NULL_STRING);
+ } else
+ {
+ dos.writeByte(NON_NULL_STRING);
+ dos.writeUTF(nullableString);
+ }
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public void putString(String string, CharsetEncoder encoder)
+ throws CharacterCodingException
+ {
+ try
+ {
+ dos.writeUTF(string);
+ } catch (IOException e)
+ {
+ fail();
+ }
+ }
+
+ public int remaining()
+ {
+ try
+ {
+ return dais.available();
+ } catch (IOException e)
+ {
+ fail();
+ return -1;
+ }
+ }
}
- // Inner classes -------------------------------------------------
}
More information about the jboss-cvs-commits
mailing list