[jboss-cvs] JBoss Messaging SVN: r4058 - in trunk: src/main/org/jboss/messaging/core/remoting/impl/mina and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 15 09:12:38 EDT 2008
Author: timfox
Date: 2008-04-15 09:12:37 -0400 (Tue, 15 Apr 2008)
New Revision: 4058
Removed:
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/DecoderStatus.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java
Modified:
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAForgetMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAJoinMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAPrepareMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResumeMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXARollbackMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAStartMessageCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/TextPacketCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
Log:
Fix remoting layer to use protocol encoder / decoder
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -6,21 +6,20 @@
*/
package org.jboss.messaging.core.remoting.impl.codec;
-import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.NEED_DATA;
-import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.NOT_OK;
-import static org.jboss.messaging.core.remoting.impl.codec.DecoderStatus.OK;
-
-import java.nio.charset.CharacterCodingException;
-
import javax.transaction.xa.Xid;
+import org.apache.mina.common.IoBuffer;
+import org.apache.mina.filter.codec.ProtocolDecoderOutput;
+import org.apache.mina.filter.codec.ProtocolEncoderOutput;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.impl.mina.BufferWrapper;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
import org.jboss.messaging.core.transaction.impl.XidImpl;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public abstract class AbstractPacketCodec<P extends Packet>
{
@@ -31,6 +30,8 @@
public static final byte FALSE = (byte) 1;
public static final int BOOLEAN_LENGTH = 1;
+
+ public static final int BYTE_LENGTH = 1;
public static final int INT_LENGTH = 4;
@@ -38,7 +39,8 @@
public static final int LONG_LENGTH = 8;
- private static final int HEADER_LENGTH = LONG_LENGTH + LONG_LENGTH + LONG_LENGTH + BOOLEAN_LENGTH;
+ public static final int HEADER_LENGTH =
+ BYTE_LENGTH + LONG_LENGTH + LONG_LENGTH + LONG_LENGTH + BOOLEAN_LENGTH;
private static final Logger log = Logger.getLogger(AbstractPacketCodec.class);
@@ -59,12 +61,23 @@
// Public --------------------------------------------------------
- public void encode(P packet, RemotingBuffer buf) throws Exception
+ public void encode(final P packet, final ProtocolEncoderOutput out) throws Exception
{
long correlationID = packet.getCorrelationID();
long targetID = packet.getTargetID();
long executorID = packet.getExecutorID();
-
+
+ IoBuffer iobuf = IoBuffer.allocate(1024, false);
+ iobuf.setAutoExpand(true);
+
+ RemotingBuffer buf = new BufferWrapper(iobuf);
+
+ int messageLength = getBodyLength(packet) + HEADER_LENGTH;
+
+ log.info("Message length is " + messageLength);
+
+ //The standard header fields
+ buf.putInt(messageLength);
buf.put(packet.getType().byteValue());
buf.putLong(correlationID);
buf.putLong(targetID);
@@ -72,9 +85,13 @@
buf.putBoolean(packet.isOneWay());
encodeBody(packet, buf);
+
+ //for now
+ iobuf.flip();
+ out.write(iobuf);
}
- public static int sizeof(String nullableString)
+ public static int sizeof(final String nullableString)
{
if (nullableString == null)
{
@@ -87,63 +104,44 @@
}
}
- public static int getXidLength(Xid xid)
+ public static int getXidLength(final Xid xid)
{
return 1 + 1 + xid.getBranchQualifier().length + 1 + xid.getGlobalTransactionId().length;
}
- // MessageDecoder implementation ---------------------------------
-
- public DecoderStatus decodable(RemotingBuffer buffer)
- {
- if (buffer.remaining() < HEADER_LENGTH + INT_LENGTH)
- {
- return NEED_DATA;
- }
-
- buffer.getLong();
- buffer.getLong();
- buffer.getLong();
- buffer.getBoolean();
- int bodyLength = buffer.getInt();
- if (buffer.remaining() < bodyLength)
- {
- return NEED_DATA;
- }
- return OK;
- }
-
- public Packet decode(RemotingBuffer wrapper) throws Exception
- {
- wrapper.get(); // skip message type
- long correlationID = wrapper.getLong();
- long targetID = wrapper.getLong();
- long executorID = wrapper.getLong();
- boolean oneWay = wrapper.getBoolean();
+ public boolean decode(final RemotingBuffer buffer, final ProtocolDecoderOutput out) throws Exception
+ {
+ long correlationID = buffer.getLong();
+ long targetID = buffer.getLong();
+ long executorID = buffer.getLong();
+ boolean oneWay = buffer.getBoolean();
- Packet packet = decodeBody(wrapper);
+ Packet packet = decodeBody(buffer);
- if (packet == null)
- {
- return null;
- }
-
packet.setCorrelationID(correlationID);
packet.setTargetID(targetID);
packet.setExecutorID(executorID);
packet.setOneWay(oneWay);
+
+ out.write(packet);
- return packet;
+ return false;
}
+ public PacketType getType()
+ {
+ return type;
+ }
+
// Protected -----------------------------------------------------
- protected abstract void encodeBody(P packet, RemotingBuffer buf)
- throws Exception;
+ protected abstract int getBodyLength(P packet) throws Exception;
+
+ protected abstract void encodeBody(P packet, RemotingBuffer buf) throws Exception;
protected abstract Packet decodeBody(RemotingBuffer buffer) throws Exception;
- protected static void encodeXid(Xid xid, RemotingBuffer out)
+ protected static void encodeXid(final Xid xid, final RemotingBuffer out)
{
out.putInt(xid.getFormatId());
out.putInt(xid.getBranchQualifier().length);
@@ -152,7 +150,7 @@
out.put(xid.getGlobalTransactionId());
}
- protected static Xid decodeXid(RemotingBuffer in)
+ protected static Xid decodeXid(final RemotingBuffer in)
{
int formatID = in.getInt();
byte[] bq = new byte[in.getInt()];
@@ -162,9 +160,7 @@
Xid xid = new XidImpl(bq, formatID, gtxid);
return xid;
}
-
-
-
+
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.BytesPacket;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class BytesPacketCodec extends AbstractPacketCodec<BytesPacket>
{
@@ -33,30 +34,28 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final BytesPacket packet)
+ {
+ return INT_LENGTH + packet.getBytes().length;
+ }
+
@Override
- protected void encodeBody(BytesPacket packet, RemotingBuffer out)
- throws Exception
+ protected void encodeBody(final BytesPacket packet, final RemotingBuffer out) throws Exception
{
byte[] bytes = packet.getBytes();
- int bodyLength = INT_LENGTH + bytes.length;
-
- out.putInt(bodyLength);
out.putInt(bytes.length);
+
out.put(bytes);
}
@Override
- protected BytesPacket decodeBody(RemotingBuffer in)
- throws Exception
+ protected BytesPacket decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (bodyLength > in.remaining())
- {
- return null;
- }
int byteLength = in.getInt();
+
byte[] bytes = new byte[byteLength];
+
in.get(bytes);
return new BytesPacket(bytes);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class ConnectionCreateSessionMessageCodec extends
AbstractPacketCodec<ConnectionCreateSessionMessage>
@@ -33,39 +34,23 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final ConnectionCreateSessionMessage packet)
+ {
+ return 3 * BOOLEAN_LENGTH;
+ }
+
@Override
- protected void encodeBody(ConnectionCreateSessionMessage request, RemotingBuffer out) throws Exception
+ protected void encodeBody(final ConnectionCreateSessionMessage request, final RemotingBuffer out) throws Exception
{
- boolean xa = request.isXA();
- boolean autoCommitSends = request.isAutoCommitSends();
- boolean autoCommitAcks = request.isAutoCommitAcks();
-
-
- int bodyLength = 3;
-
- out.putInt(bodyLength);
-
- out.putBoolean(xa);
- out.putBoolean(autoCommitSends);
- out.putBoolean(autoCommitAcks);
-
+ out.putBoolean(request.isXA());
+ out.putBoolean(request.isAutoCommitSends());
+ out.putBoolean(request.isAutoCommitAcks());
}
@Override
- protected ConnectionCreateSessionMessage decodeBody(RemotingBuffer in)
- throws Exception
+ protected ConnectionCreateSessionMessage decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
- boolean xa = in.getBoolean();
- boolean autoCommitSends = in.getBoolean();
- boolean autoCommitAcks = in.getBoolean();
-
- return new ConnectionCreateSessionMessage(xa, autoCommitSends, autoCommitAcks);
+ return new ConnectionCreateSessionMessage(in.getBoolean(), in.getBoolean(), in.getBoolean());
}
// Package protected ---------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -10,7 +10,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class ConnectionCreateSessionResponseMessageCodec extends
AbstractPacketCodec<ConnectionCreateSessionResponseMessage>
@@ -32,29 +33,22 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final ConnectionCreateSessionResponseMessage packet)
+ {
+ return LONG_LENGTH;
+ }
+
@Override
- protected void encodeBody(ConnectionCreateSessionResponseMessage response, RemotingBuffer out) throws Exception
+ protected void encodeBody(final ConnectionCreateSessionResponseMessage response, final RemotingBuffer out) throws Exception
{
- long sessionID = response.getSessionID();
-
- out.putInt(LONG_LENGTH);
-
- out.putLong(sessionID);
+ out.putLong(response.getSessionID());
}
@Override
- protected ConnectionCreateSessionResponseMessage decodeBody(RemotingBuffer in)
+ protected ConnectionCreateSessionResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
- long sessionID = in.getLong();
-
- return new ConnectionCreateSessionResponseMessage(sessionID);
+ return new ConnectionCreateSessionResponseMessage(in.getLong());
}
// Package protected ---------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -14,7 +14,8 @@
import org.jboss.messaging.util.StreamUtils;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class ConsumerDeliverMessageCodec extends AbstractPacketCodec<ConsumerDeliverMessage>
{
@@ -35,31 +36,29 @@
// AbstractPacketCodec overrides ---------------------------------
+ //TODO - remove this when in next stage of refactoring
+ private byte[] encodedMsg;
+
+ protected int getBodyLength(final ConsumerDeliverMessage packet) throws Exception
+ {
+ encodedMsg = StreamUtils.toBytes(packet.getMessage());
+
+ return INT_LENGTH + encodedMsg.length + LONG_LENGTH;
+ }
+
@Override
- protected void encodeBody(ConsumerDeliverMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final ConsumerDeliverMessage message, final RemotingBuffer out) throws Exception
{
- byte[] encodedMsg = StreamUtils.toBytes(message.getMessage());
- long deliveryID = message.getDeliveryID();
-
- int bodyLength = encodedMsg.length
- + LONG_LENGTH + INT_LENGTH;
- out.putInt(bodyLength);
-
out.putInt(encodedMsg.length);
out.put(encodedMsg);
- out.putLong(deliveryID);
+ out.putLong(message.getDeliveryID());
+ encodedMsg = null;
}
@Override
- protected ConsumerDeliverMessage decodeBody(RemotingBuffer in)
+ protected ConsumerDeliverMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
int msgLength = in.getInt();
byte[] encodedMsg = new byte[msgLength];
in.get(encodedMsg);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -32,24 +32,21 @@
// Public --------------------------------------------------------
// AbstractPacketCodec overrides ---------------------------------
+
+ protected int getBodyLength(final ConsumerFlowTokenMessage packet) throws Exception
+ {
+ return INT_LENGTH;
+ }
@Override
- protected void encodeBody(ConsumerFlowTokenMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final ConsumerFlowTokenMessage message, final RemotingBuffer out) throws Exception
{
- out.putInt(INT_LENGTH);
out.putInt(message.getTokens());
}
@Override
- protected ConsumerFlowTokenMessage decodeBody(RemotingBuffer in)
- throws Exception
+ protected ConsumerFlowTokenMessage decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
return new ConsumerFlowTokenMessage(in.getInt());
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,10 +11,10 @@
import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
-public class CreateConnectionMessageCodec extends
- AbstractPacketCodec<CreateConnectionRequest>
+public class CreateConnectionMessageCodec extends AbstractPacketCodec<CreateConnectionRequest>
{
// Constants -----------------------------------------------------
@@ -33,9 +33,18 @@
// AbstractPackedCodec overrides----------------------------------
+ protected int getBodyLength(final CreateConnectionRequest packet) throws Exception
+ {
+ int bodyLength = INT_LENGTH // version
+ + LONG_LENGTH +
+ + sizeof(packet.getClientVMID())
+ + sizeof(packet.getUsername())
+ + sizeof(packet.getPassword());
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(CreateConnectionRequest request,
- RemotingBuffer out)
+ protected void encodeBody(final CreateConnectionRequest request, final RemotingBuffer out)
throws Exception
{
int version = request.getVersion();
@@ -44,13 +53,6 @@
String username = request.getUsername();
String password = request.getPassword();
- int bodyLength = INT_LENGTH // version
- + LONG_LENGTH +
- + sizeof(clientVMID)
- + sizeof(username)
- + sizeof(password);
-
- out.putInt(bodyLength);
out.putInt(version);
out.putLong(remotingSessionID);
out.putNullableString(clientVMID);
@@ -59,14 +61,8 @@
}
@Override
- protected CreateConnectionRequest decodeBody(
- RemotingBuffer in) throws Exception
+ protected CreateConnectionRequest decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
int version = in.getInt();
long remotingSessionID = in.getLong();
String clientVMID = in.getNullableString();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,10 +11,10 @@
import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
-public class CreateConnectionResponseMessageCodec extends
- AbstractPacketCodec<CreateConnectionResponse>
+public class CreateConnectionResponseMessageCodec extends AbstractPacketCodec<CreateConnectionResponse>
{
// Constants -----------------------------------------------------
@@ -32,30 +32,23 @@
}
// AbstractPackedCodec overrides----------------------------------
+
+ protected int getBodyLength(final CreateConnectionResponse packet) throws Exception
+ {
+ return LONG_LENGTH;
+ }
@Override
- protected void encodeBody(CreateConnectionResponse response,
- RemotingBuffer out)
+ protected void encodeBody(final CreateConnectionResponse response, final RemotingBuffer out)
throws Exception
{
- long id = response.getConnectionTargetID();
-
- out.putInt(LONG_LENGTH);
- out.putLong(id);
+ out.putLong(response.getConnectionTargetID());
}
@Override
- protected CreateConnectionResponse decodeBody(
- RemotingBuffer in) throws Exception
+ protected CreateConnectionResponse decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (bodyLength > in.remaining())
- {
- return null;
- }
- long id = in.getLong();
-
- return new CreateConnectionResponse(id);
+ return new CreateConnectionResponse(in.getLong());
}
// Package protected ---------------------------------------------
Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/DecoderStatus.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/DecoderStatus.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/DecoderStatus.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -1,19 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.core.remoting.impl.codec;
-
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public enum DecoderStatus
-{
- OK, NOT_OK, NEED_DATA
-}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -12,7 +12,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class MessagingExceptionMessageCodec extends AbstractPacketCodec<MessagingExceptionMessage>
{
@@ -33,29 +34,21 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final MessagingExceptionMessage packet) throws Exception
+ {
+ return INT_LENGTH + sizeof(packet.getException().getMessage());
+ }
+
@Override
- protected void encodeBody(MessagingExceptionMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final MessagingExceptionMessage message, final RemotingBuffer out) throws Exception
{
- int code = message.getException().getCode();
- String msg = message.getException().getMessage();
-
- int bodyLength = INT_LENGTH + sizeof(msg);
-
- out.putInt(bodyLength);
- out.putInt(code);
- out.putNullableString(msg);
+ out.putInt(message.getException().getCode());
+ out.putNullableString(message.getException().getMessage());
}
@Override
- protected MessagingExceptionMessage decodeBody(RemotingBuffer in)
- throws Exception
+ protected MessagingExceptionMessage decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
int code = in.getInt();
String msg = in.getNullableString();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class PingCodec extends AbstractPacketCodec<Ping>
{
@@ -33,25 +34,22 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final Ping packet) throws Exception
+ {
+ return LONG_LENGTH;
+ }
+
@Override
- protected void encodeBody(Ping packet, RemotingBuffer out)
- throws Exception
+ protected void encodeBody(final Ping packet, final RemotingBuffer out) throws Exception
{
long clientSessionID = packet.getSessionID();
- out.putInt(LONG_LENGTH);
out.putLong(clientSessionID);
}
@Override
- protected Ping decodeBody(RemotingBuffer in)
- throws Exception
+ protected Ping decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (bodyLength > in.remaining())
- {
- return null;
- }
long clientSessionID = in.getLong();
return new Ping(clientSessionID);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class PongCodec extends AbstractPacketCodec<Pong>
{
@@ -32,28 +33,25 @@
// Public --------------------------------------------------------
// AbstractPacketCodec overrides ---------------------------------
+
+ protected int getBodyLength(final Pong packet) throws Exception
+ {
+ return LONG_LENGTH + BOOLEAN_LENGTH;
+ }
@Override
- protected void encodeBody(Pong packet, RemotingBuffer out) throws Exception
+ protected void encodeBody(final Pong packet, final RemotingBuffer out) throws Exception
{
long sessionID = packet.getSessionID();
boolean sessionFailed = packet.isSessionFailed();
- int bodyLength = LONG_LENGTH + BOOLEAN_LENGTH;
-
- out.putInt(bodyLength);
out.putLong(sessionID);
out.putBoolean(sessionFailed);
}
@Override
- protected Pong decodeBody(RemotingBuffer in) throws Exception
+ protected Pong decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (bodyLength > in.remaining())
- {
- return null;
- }
long sessionID = in.getLong();
boolean sessionFailed = in.getBoolean();
return new Pong(sessionID, sessionFailed);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,23 +36,21 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final ProducerReceiveTokensMessage packet) throws Exception
+ {
+ return INT_LENGTH;
+ }
+
@Override
- protected void encodeBody(ProducerReceiveTokensMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final ProducerReceiveTokensMessage message, final RemotingBuffer out) throws Exception
{
- out.putInt(INT_LENGTH);
out.putInt(message.getTokens());
}
@Override
- protected ProducerReceiveTokensMessage decodeBody(RemotingBuffer in)
+ protected ProducerReceiveTokensMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
return new ProducerReceiveTokensMessage(in.getInt());
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -38,30 +38,32 @@
// Public --------------------------------------------------------
// AbstractPacketCodec overrides ---------------------------------
+
+ //TOD remove this in next stage of refactoring
+ private byte[] encodedMsg;
+
+ protected int getBodyLength(final ProducerSendMessage packet) throws Exception
+ {
+ encodedMsg = StreamUtils.toBytes(packet.getMessage());
+ int bodyLength = sizeof(packet.getAddress()) + INT_LENGTH + encodedMsg.length;
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(ProducerSendMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final ProducerSendMessage message, final RemotingBuffer out) throws Exception
{
- byte[] encodedMsg = StreamUtils.toBytes(message.getMessage());
-
- int bodyLength = INT_LENGTH + sizeof(message.getAddress()) + encodedMsg.length;
-
- out.putInt(bodyLength);
out.putNullableString(message.getAddress());
out.putInt(encodedMsg.length);
out.put(encodedMsg);
+ encodedMsg = null;
}
@Override
- protected ProducerSendMessage decodeBody(RemotingBuffer in)
+ protected ProducerSendMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String address = in.getNullableString();
int msgLength = in.getInt();
byte[] encodedMsg = new byte[msgLength];
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -46,5 +46,7 @@
throws CharacterCodingException;
String getNullableString() throws CharacterCodingException;
+
+ void rewind();
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -7,13 +7,16 @@
package org.jboss.messaging.core.remoting.impl.codec;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
+import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
+import org.jboss.messaging.util.StreamUtils;
/**
*
* A SessionAcknowledgeMessageCodec
*
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*
*/
public class SessionAcknowledgeMessageCodec extends AbstractPacketCodec<SessionAcknowledgeMessage>
@@ -35,26 +38,22 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionAcknowledgeMessage packet) throws Exception
+ {
+ return LONG_LENGTH + 1;
+ }
+
@Override
- protected void encodeBody(SessionAcknowledgeMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionAcknowledgeMessage message, final RemotingBuffer out) throws Exception
{
- int bodyLength = LONG_LENGTH + 1;
-
- out.putInt(bodyLength);
out.putLong(message.getDeliveryID());
out.putBoolean(message.isAllUpTo());
}
@Override
- protected SessionAcknowledgeMessage decodeBody(RemotingBuffer in)
+ protected SessionAcknowledgeMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
long deliveryID = in.getLong();
boolean isAllUpTo = in.getBoolean();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,31 +36,24 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionAddDestinationMessage packet) throws Exception
+ {
+ return sizeof(packet.getAddress()) + BOOLEAN_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionAddDestinationMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionAddDestinationMessage message, final RemotingBuffer out) throws Exception
{
- String address = message.getAddress();
-
- int bodyLength = sizeof(address);
-
- out.putInt(bodyLength);
- out.putNullableString(address);
+ out.putNullableString(message.getAddress());
out.putBoolean(message.isTemporary());
}
@Override
- protected SessionAddDestinationMessage decodeBody(RemotingBuffer in)
+ protected SessionAddDestinationMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String address = in.getNullableString();
- boolean temp = in.getBoolean();
-
+ boolean temp = in.getBoolean();
return new SessionAddDestinationMessage(address, temp);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,27 +36,23 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionBindingQueryMessage packet) throws Exception
+ {
+ return sizeof(packet.getAddress());
+ }
+
@Override
- protected void encodeBody(SessionBindingQueryMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionBindingQueryMessage message, final RemotingBuffer out) throws Exception
{
String address = message.getAddress();
- int bodyLength = sizeof(address);
-
- out.putInt(bodyLength);
out.putNullableString(address);
}
@Override
- protected SessionBindingQueryMessage decodeBody(RemotingBuffer in)
+ protected SessionBindingQueryMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String address = in.getNullableString();
return new SessionBindingQueryMessage(address);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -39,21 +39,26 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionBindingQueryResponseMessage packet) throws Exception
+ {
+ List<String> queueNames = packet.getQueueNames();
- @Override
- protected void encodeBody(SessionBindingQueryResponseMessage message, RemotingBuffer out) throws Exception
- {
- boolean exists = message.isExists();
- List<String> queueNames = message.getQueueNames();
-
- int bodyLength = 1 + INT_LENGTH;
+ int bodyLength = BOOLEAN_LENGTH + INT_LENGTH;
for (String queueName: queueNames)
{
bodyLength += sizeof(queueName);
}
- out.putInt(bodyLength);
+ return bodyLength;
+ }
+
+ @Override
+ protected void encodeBody(final SessionBindingQueryResponseMessage message, final RemotingBuffer out) throws Exception
+ {
+ boolean exists = message.isExists();
+ List<String> queueNames = message.getQueueNames();
+
out.putBoolean(exists);
out.putInt(queueNames.size());
@@ -64,15 +69,9 @@
}
@Override
- protected SessionBindingQueryResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionBindingQueryResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
boolean exists = in.getBoolean();
int numQueues = in.getInt();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class SessionBrowserHasNextMessageResponseMessageCodec extends
AbstractPacketCodec<SessionBrowserHasNextMessageResponseMessage>
@@ -33,23 +34,21 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionBrowserHasNextMessageResponseMessage packet) throws Exception
+ {
+ return BOOLEAN_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionBrowserHasNextMessageResponseMessage response,
- RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionBrowserHasNextMessageResponseMessage response,
+ final RemotingBuffer out) throws Exception
{
- out.putInt(1); //body length
out.putBoolean(response.hasNext());
}
@Override
- protected SessionBrowserHasNextMessageResponseMessage decodeBody(RemotingBuffer in) throws Exception
+ protected SessionBrowserHasNextMessageResponseMessage decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
boolean hasNext = in.getBoolean();
return new SessionBrowserHasNextMessageResponseMessage(hasNext);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageBlockMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class SessionBrowserNextMessageBlockMessageCodec extends AbstractPacketCodec<SessionBrowserNextMessageBlockMessage>
{
@@ -32,23 +33,21 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionBrowserNextMessageBlockMessage packet) throws Exception
+ {
+ return LONG_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionBrowserNextMessageBlockMessage request, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionBrowserNextMessageBlockMessage request, final RemotingBuffer out) throws Exception
{
- out.putInt(LONG_LENGTH);
out.putLong(request.getMaxMessages());
}
@Override
- protected SessionBrowserNextMessageBlockMessage decodeBody(RemotingBuffer in)
+ protected SessionBrowserNextMessageBlockMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
long maxMessages = in.getLong();
return new SessionBrowserNextMessageBlockMessage(maxMessages);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -18,7 +18,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageBlockResponseMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class SessionBrowserNextMessageBlockResponseMessageCodec extends AbstractPacketCodec<SessionBrowserNextMessageBlockResponseMessage>
{
@@ -28,11 +29,13 @@
// Static --------------------------------------------------------
- public static byte[] encode(Message[] messages) throws Exception
+ public static byte[] encode(final Message[] messages) throws Exception
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream daos = new DataOutputStream(baos);
+ daos.writeInt(messages.length);
+
for (int i = 0; i < messages.length; i++)
{
Message message = messages[i];
@@ -52,36 +55,36 @@
// AbstractPacketCodec overrides ---------------------------------
+ //TODO remove this in next refactoring
+ private byte[] encodedMsgs;
+
+ protected int getBodyLength(final SessionBrowserNextMessageBlockResponseMessage packet) throws Exception
+ {
+ Message[] messages = packet.getMessages();
+
+ encodedMsgs = encode(messages);
+
+ int bodyLength = INT_LENGTH + encodedMsgs.length;
+
+ return bodyLength;
+ }
+
@Override
protected void encodeBody(SessionBrowserNextMessageBlockResponseMessage response, RemotingBuffer out) throws Exception
{
- Message[] messages = response.getMessages();
-
- byte[] encodedMessages = encode(messages);
-
- int bodyLength = INT_LENGTH + INT_LENGTH + encodedMessages.length;
-
- out.putInt(bodyLength);
- out.putInt(messages.length);
- out.putInt(encodedMessages.length);
- out.put(encodedMessages);
+ out.putInt(encodedMsgs.length);
+ out.put(encodedMsgs);
+ encodedMsgs = null;
}
@Override
- protected SessionBrowserNextMessageBlockResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionBrowserNextMessageBlockResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
- int numOfMessages = in.getInt();
int encodedMessagesLength = in.getInt();
byte[] encodedMessages = new byte[encodedMessagesLength];
in.get(encodedMessages);
- Message[] messages = decode(numOfMessages, encodedMessages);
+ Message[] messages = decode(encodedMessages);
return new SessionBrowserNextMessageBlockResponseMessage(messages);
}
@@ -92,12 +95,15 @@
// Private ----------------------------------------------------
- private Message[] decode(int numOfMessages, byte[] encodedMessages) throws Exception
+ private Message[] decode(final byte[] encodedMessages) throws Exception
{
- Message[] messages = new Message[numOfMessages];
+
ByteArrayInputStream bais = new ByteArrayInputStream(encodedMessages);
DataInputStream dais = new DataInputStream(bais);
+ int numOfMessages = dais.readInt();
+ Message[] messages = new Message[numOfMessages];
+
for (int i = 0; i < messages.length; i++)
{
Message message = new MessageImpl();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -14,7 +14,8 @@
import org.jboss.messaging.util.StreamUtils;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class SessionBrowserNextMessageResponseMessageCodec extends AbstractPacketCodec<SessionBrowserNextMessageResponseMessage>
{
@@ -35,28 +36,30 @@
// AbstractPacketCodec overrides ---------------------------------
- @Override
- protected void encodeBody(SessionBrowserNextMessageResponseMessage response, RemotingBuffer out) throws Exception
- {
- byte[] encodedMsg = StreamUtils.toBytes(response.getMessage());
+ //TODO remove this in next refactoring
+ private byte[] encodedMsg;
+
+ protected int getBodyLength(final SessionBrowserNextMessageResponseMessage packet) throws Exception
+ {
+ byte[] encodedMsg = StreamUtils.toBytes(packet.getMessage());
int bodyLength = INT_LENGTH + encodedMsg.length;
-
- out.putInt(bodyLength);
+
+ return bodyLength;
+ }
+
+ @Override
+ protected void encodeBody(final SessionBrowserNextMessageResponseMessage response, final RemotingBuffer out) throws Exception
+ {
out.putInt(encodedMsg.length);
out.put(encodedMsg);
+ encodedMsg = null;
}
@Override
- protected SessionBrowserNextMessageResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionBrowserNextMessageResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
int msgLength = in.getInt();
byte[] encodedMsg = new byte[msgLength];
in.get(encodedMsg);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -35,26 +35,22 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionCancelMessage packet) throws Exception
+ {
+ return LONG_LENGTH + 1;
+ }
+
@Override
- protected void encodeBody(SessionCancelMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionCancelMessage message, final RemotingBuffer out) throws Exception
{
- int bodyLength = LONG_LENGTH + 1;
-
- out.putInt(bodyLength);
out.putLong(message.getDeliveryID());
out.putBoolean(message.isExpired());
}
@Override
- protected SessionCancelMessage decodeBody(RemotingBuffer in)
+ protected SessionCancelMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
long deliveryID = in.getLong();
boolean expired = in.getBoolean();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class SessionCreateBrowserMessageCodec extends
AbstractPacketCodec<SessionCreateBrowserMessage>
@@ -33,29 +34,30 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionCreateBrowserMessage packet) throws Exception
+ {
+ String queueName = packet.getQueueName();
+ String filterString = packet.getFilterString();
+
+ int bodyLength = sizeof(queueName) + sizeof(filterString);
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionCreateBrowserMessage request, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionCreateBrowserMessage request, final RemotingBuffer out) throws Exception
{
String queueName = request.getQueueName();
String filterString = request.getFilterString();
- int bodyLength = sizeof(queueName) + sizeof(filterString);
-
- out.putInt(bodyLength);
out.putNullableString(queueName);
out.putNullableString(filterString);
}
@Override
- protected SessionCreateBrowserMessage decodeBody(RemotingBuffer in)
+ protected SessionCreateBrowserMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String queueName = in.getNullableString();
String filterString = in.getNullableString();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserResponseMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class SessionCreateBrowserResponseMessageCodec extends
AbstractPacketCodec<SessionCreateBrowserResponseMessage>
@@ -33,26 +34,24 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionCreateBrowserResponseMessage packet) throws Exception
+ {
+ return LONG_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionCreateBrowserResponseMessage response,
- RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionCreateBrowserResponseMessage response,
+ final RemotingBuffer out) throws Exception
{
long browserID = response.getBrowserTargetID();
- out.putInt(LONG_LENGTH);
out.putLong(browserID);
}
@Override
- protected SessionCreateBrowserResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionCreateBrowserResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
long browserID = in.getLong();
return new SessionCreateBrowserResponseMessage(browserID);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class SessionCreateConsumerMessageCodec extends
AbstractPacketCodec<SessionCreateConsumerMessage>
@@ -33,8 +34,16 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionCreateConsumerMessage packet) throws Exception
+ {
+ int bodyLength = sizeof(packet.getQueueName()) +
+ sizeof(packet.getFilterString()) + 2 * BOOLEAN_LENGTH + 2 * INT_LENGTH;
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionCreateConsumerMessage request, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionCreateConsumerMessage request, final RemotingBuffer out) throws Exception
{
String queueName = request.getQueueName();
String filterString = request.getFilterString();
@@ -43,9 +52,6 @@
int windowSize = request.getWindowSize();
int maxRate = request.getMaxRate();
- int bodyLength = sizeof(queueName) + sizeof(filterString) + 2 + 2 * INT_LENGTH;
-
- out.putInt(bodyLength);
out.putNullableString(queueName);
out.putNullableString(filterString);
out.putBoolean(noLocal);
@@ -55,15 +61,9 @@
}
@Override
- protected SessionCreateConsumerMessage decodeBody(RemotingBuffer in)
+ protected SessionCreateConsumerMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String queueName = in.getNullableString();
String filterString = in.getNullableString();
boolean noLocal = in.getBoolean();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerResponseMessage;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class SessionCreateConsumerResponseMessageCodec extends
AbstractPacketCodec<SessionCreateConsumerResponseMessage>
@@ -33,31 +34,27 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionCreateConsumerResponseMessage packet) throws Exception
+ {
+ return LONG_LENGTH + INT_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionCreateConsumerResponseMessage response,
- RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionCreateConsumerResponseMessage response,
+ final RemotingBuffer out) throws Exception
{
long consumerID = response.getConsumerTargetID();
int windowSize = response.getWindowSize();
- int bodyLength = LONG_LENGTH + INT_LENGTH;
-
- out.putInt(bodyLength);
out.putLong(consumerID);
out.putInt(windowSize);
}
@Override
- protected SessionCreateConsumerResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionCreateConsumerResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
long consumerID = in.getLong();
int windowSize = in.getInt();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,29 +37,29 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionCreateProducerMessage packet) throws Exception
+ {
+ String address = packet.getAddress();
+
+ int bodyLength = sizeof(address) + 2 * INT_LENGTH;
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionCreateProducerMessage request, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionCreateProducerMessage request, final RemotingBuffer out) throws Exception
{
String address = request.getAddress();
- int bodyLength = sizeof(address) + 2 * INT_LENGTH;
-
- out.putInt(bodyLength);
out.putNullableString(address);
out.putInt(request.getWindowSize());
out.putInt(request.getMaxRate());
}
@Override
- protected SessionCreateProducerMessage decodeBody(RemotingBuffer in)
+ protected SessionCreateProducerMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String address = in.getNullableString();
int windowSize = in.getInt();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,30 +37,26 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionCreateProducerResponseMessage packet) throws Exception
+ {
+ return LONG_LENGTH + 2 * INT_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionCreateProducerResponseMessage response,
- RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionCreateProducerResponseMessage response,
+ final RemotingBuffer out) throws Exception
{
long producerID = response.getProducerTargetID();
- int bodyLength = LONG_LENGTH + 2 * INT_LENGTH;
-
- out.putInt(bodyLength);
out.putLong(producerID);
out.putInt(response.getWindowSize());
out.putInt(response.getMaxRate());
}
@Override
- protected SessionCreateProducerResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionCreateProducerResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
long producerID = in.getLong();
int windowSize = in.getInt();
int maxRate = in.getInt();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,8 +36,17 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionCreateQueueMessage packet) throws Exception
+ {
+ String address = packet.getAddress();
+ String queueName = packet.getQueueName();
+ String filterString = packet.getFilterString();
+ int bodyLength = sizeof(address) + sizeof(queueName) + sizeof(filterString) + 2;
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionCreateQueueMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionCreateQueueMessage message, final RemotingBuffer out) throws Exception
{
String address = message.getAddress();
String queueName = message.getQueueName();
@@ -45,9 +54,6 @@
boolean durable = message.isDurable();
boolean temporary = message.isTemporary();
- int bodyLength = sizeof(address) + sizeof(queueName) + sizeof(filterString) + 2;
-
- out.putInt(bodyLength);
out.putNullableString(address);
out.putNullableString(queueName);
out.putNullableString(filterString);
@@ -56,15 +62,9 @@
}
@Override
- protected SessionCreateQueueMessage decodeBody(RemotingBuffer in)
+ protected SessionCreateQueueMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String address = in.getNullableString();
String queueName = in.getNullableString();
String filterString = in.getNullableString();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,27 +36,24 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionDeleteQueueMessage packet) throws Exception
+ {
+ String queueName = packet.getQueueName();
+ int bodyLength = sizeof(queueName);
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionDeleteQueueMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionDeleteQueueMessage message, final RemotingBuffer out) throws Exception
{
- String queueName = message.getQueueName();
-
- int bodyLength = sizeof(queueName);
-
- out.putInt(bodyLength);
+ String queueName = message.getQueueName();
out.putNullableString(queueName);
}
@Override
- protected SessionDeleteQueueMessage decodeBody(RemotingBuffer in)
+ protected SessionDeleteQueueMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String queueName = in.getNullableString();
return new SessionDeleteQueueMessage(queueName);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,29 +36,25 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionQueueQueryMessage packet) throws Exception
+ {
+ String queueName = packet.getQueueName();
+ int bodyLength = sizeof(queueName);
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionQueueQueryMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionQueueQueryMessage message, final RemotingBuffer out) throws Exception
{
String queueName = message.getQueueName();
-
- int bodyLength = sizeof(queueName);
-
- out.putInt(bodyLength);
out.putNullableString(queueName);
}
@Override
- protected SessionQueueQueryMessage decodeBody(RemotingBuffer in)
+ protected SessionQueueQueryMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
- String queueName = in.getNullableString();
-
+ String queueName = in.getNullableString();
return new SessionQueueQueryMessage(queueName);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,8 +36,16 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionQueueQueryResponseMessage packet) throws Exception
+ {
+ String filterString = packet.getFilterString();
+ String address = packet.getAddress();
+ int bodyLength = 3 * BOOLEAN_LENGTH + 3 * INT_LENGTH + sizeof(filterString) + sizeof(address);
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionQueueQueryResponseMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionQueueQueryResponseMessage message, final RemotingBuffer out) throws Exception
{
boolean exists = message.isExists();
boolean durable = message.isDurable();
@@ -48,9 +56,6 @@
String filterString = message.getFilterString();
String address = message.getAddress();
- int bodyLength = 1 + 1 + 1 + INT_LENGTH + INT_LENGTH + INT_LENGTH + sizeof(filterString) + sizeof(address);
-
- out.putInt(bodyLength);
out.putBoolean(exists);
out.putBoolean(durable);
out.putBoolean(temporary);
@@ -62,15 +67,9 @@
}
@Override
- protected SessionQueueQueryResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionQueueQueryResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
boolean exists = in.getBoolean();
boolean durable = in.getBoolean();
boolean temporary = in.getBoolean();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,28 +36,26 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionRemoveDestinationMessage packet) throws Exception
+ {
+ String address = packet.getAddress();
+ int bodyLength = sizeof(address) + BOOLEAN_LENGTH;
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionRemoveDestinationMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionRemoveDestinationMessage message, final RemotingBuffer out) throws Exception
{
String address = message.getAddress();
- int bodyLength = sizeof(address);
-
- out.putInt(bodyLength);
out.putNullableString(address);
out.putBoolean(message.isTemporary());
}
@Override
- protected SessionRemoveDestinationMessage decodeBody(RemotingBuffer in)
+ protected SessionRemoveDestinationMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
String address = in.getNullableString();
return new SessionRemoveDestinationMessage(address, in.getBoolean());
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,31 +37,23 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXACommitMessage packet) throws Exception
+ {
+ int bodyLength = BOOLEAN_LENGTH + getXidLength(packet.getXid());
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXACommitMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXACommitMessage message, final RemotingBuffer out) throws Exception
{
- Xid xid = message.getXid();
-
- int bodyLength = 1 + getXidLength(xid);
-
- out.putInt(bodyLength);
-
- out.putBoolean(message.isOnePhase());
-
- encodeXid(xid, out);
+ out.putBoolean(message.isOnePhase());
+ encodeXid(message.getXid(), out);
}
@Override
- protected SessionXACommitMessage decodeBody(RemotingBuffer in)
+ protected SessionXACommitMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
boolean onePhase = in.getBoolean();
Xid xid = decodeXid(in);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,31 +37,25 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXAEndMessage packet) throws Exception
+ {
+ int bodyLength = BOOLEAN_LENGTH + getXidLength(packet.getXid());
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXAEndMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXAEndMessage message, final RemotingBuffer out) throws Exception
{
Xid xid = message.getXid();
- int bodyLength = 1 + getXidLength(xid);
-
- out.putInt(bodyLength);
-
out.putBoolean(message.isFailed());
encodeXid(xid, out);
}
@Override
- protected SessionXAEndMessage decodeBody(RemotingBuffer in)
- throws Exception
+ protected SessionXAEndMessage decodeBody(final RemotingBuffer in) throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
boolean failed = in.getBoolean();
Xid xid = decodeXid(in);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAForgetMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAForgetMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAForgetMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,29 +37,24 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXAForgetMessage packet) throws Exception
+ {
+ int bodyLength = getXidLength(packet.getXid());
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXAForgetMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXAForgetMessage message, final RemotingBuffer out) throws Exception
{
Xid xid = message.getXid();
- int bodyLength = getXidLength(xid);
-
- out.putInt(bodyLength);
-
encodeXid(xid, out);
}
@Override
- protected SessionXAForgetMessage decodeBody(RemotingBuffer in)
+ protected SessionXAForgetMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
Xid xid = decodeXid(in);
return new SessionXAForgetMessage(xid);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -41,38 +41,32 @@
// AbstractPacketCodec overrides ---------------------------------
- @Override
- protected void encodeBody(SessionXAGetInDoubtXidsResponseMessage message, RemotingBuffer out) throws Exception
- {
- int bodyLength = 1;
+ protected int getBodyLength(final SessionXAGetInDoubtXidsResponseMessage packet) throws Exception
+ {
+ int bodyLength = INT_LENGTH;
- for (Xid xid: message.getXids())
+ for (Xid xid: packet.getXids())
{
bodyLength += getXidLength(xid);
}
-
- out.putInt(bodyLength);
-
+ return bodyLength;
+ }
+
+ @Override
+ protected void encodeBody(final SessionXAGetInDoubtXidsResponseMessage message, final RemotingBuffer out) throws Exception
+ {
out.putInt(message.getXids().size());
for (Xid xid: message.getXids())
{
encodeXid(xid, out);
- }
-
+ }
}
@Override
- protected SessionXAGetInDoubtXidsResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionXAGetInDoubtXidsResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
int size = in.getInt();
List<Xid> xids = new ArrayList<Xid>(size);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,27 +36,21 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXAGetTimeoutResponseMessage packet) throws Exception
+ {
+ return INT_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionXAGetTimeoutResponseMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXAGetTimeoutResponseMessage message, final RemotingBuffer out) throws Exception
{
- int bodyLength = INT_LENGTH;
-
- out.putInt(bodyLength);
-
out.putInt(message.getTimeoutSeconds());
}
@Override
- protected SessionXAGetTimeoutResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionXAGetTimeoutResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
int timeout = in.getInt();
return new SessionXAGetTimeoutResponseMessage(timeout);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAJoinMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAJoinMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAJoinMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,29 +37,27 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXAJoinMessage packet) throws Exception
+ {
+ Xid xid = packet.getXid();
+
+ int bodyLength = getXidLength(xid);
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXAJoinMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXAJoinMessage message, final RemotingBuffer out) throws Exception
{
Xid xid = message.getXid();
- int bodyLength = getXidLength(xid);
-
- out.putInt(bodyLength);
-
encodeXid(xid, out);
}
@Override
- protected SessionXAJoinMessage decodeBody(RemotingBuffer in)
+ protected SessionXAJoinMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
Xid xid = decodeXid(in);
return new SessionXAJoinMessage(xid);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAPrepareMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAPrepareMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAPrepareMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,29 +37,27 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXAPrepareMessage packet) throws Exception
+ {
+ Xid xid = packet.getXid();
+
+ int bodyLength = getXidLength(xid);
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXAPrepareMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXAPrepareMessage message, final RemotingBuffer out) throws Exception
{
Xid xid = message.getXid();
- int bodyLength = getXidLength(xid);
-
- out.putInt(bodyLength);
-
encodeXid(xid, out);
}
@Override
- protected SessionXAPrepareMessage decodeBody(RemotingBuffer in)
+ protected SessionXAPrepareMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
Xid xid = decodeXid(in);
return new SessionXAPrepareMessage(xid);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -36,13 +36,16 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXAResponseMessage packet) throws Exception
+ {
+ int bodyLength = BOOLEAN_LENGTH + INT_LENGTH + sizeof(packet.getMessage());
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXAResponseMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXAResponseMessage message, final RemotingBuffer out) throws Exception
{
- int bodyLength = 1 + INT_LENGTH + sizeof(message.getMessage());
-
- out.putInt(bodyLength);
-
out.putBoolean(message.isError());
out.putInt(message.getResponseCode());
@@ -51,16 +54,9 @@
}
@Override
- protected SessionXAResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionXAResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
boolean isError = in.getBoolean();
int responseCode = in.getInt();
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResumeMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResumeMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResumeMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,29 +37,27 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXAResumeMessage packet) throws Exception
+ {
+ Xid xid = packet.getXid();
+
+ int bodyLength = getXidLength(xid);
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXAResumeMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXAResumeMessage message, final RemotingBuffer out) throws Exception
{
Xid xid = message.getXid();
- int bodyLength = getXidLength(xid);
-
- out.putInt(bodyLength);
-
encodeXid(xid, out);
}
@Override
- protected SessionXAResumeMessage decodeBody(RemotingBuffer in)
+ protected SessionXAResumeMessage decodeBody(final RemotingBuffer in)
throws Exception
- {
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
+ {
Xid xid = decodeXid(in);
return new SessionXAResumeMessage(xid);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXARollbackMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXARollbackMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXARollbackMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -30,29 +30,27 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXARollbackMessage packet) throws Exception
+ {
+ Xid xid = packet.getXid();
+
+ int bodyLength = getXidLength(xid);
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXARollbackMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXARollbackMessage message, final RemotingBuffer out) throws Exception
{
Xid xid = message.getXid();
- int bodyLength = getXidLength(xid);
-
- out.putInt(bodyLength);
-
encodeXid(xid, out);
}
@Override
- protected SessionXARollbackMessage decodeBody(RemotingBuffer in)
+ protected SessionXARollbackMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
Xid xid = decodeXid(in);
return new SessionXARollbackMessage(xid);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -35,27 +35,21 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXASetTimeoutMessage packet) throws Exception
+ {
+ return INT_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionXASetTimeoutMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXASetTimeoutMessage message, final RemotingBuffer out) throws Exception
{
- int bodyLength = INT_LENGTH;
-
- out.putInt(bodyLength);
-
out.putInt(message.getTimeoutSeconds());
}
@Override
- protected SessionXASetTimeoutMessage decodeBody(RemotingBuffer in)
+ protected SessionXASetTimeoutMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
int timeout = in.getInt();
return new SessionXASetTimeoutMessage(timeout);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -35,27 +35,21 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXASetTimeoutResponseMessage packet) throws Exception
+ {
+ return BOOLEAN_LENGTH;
+ }
+
@Override
- protected void encodeBody(SessionXASetTimeoutResponseMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXASetTimeoutResponseMessage message, final RemotingBuffer out) throws Exception
{
- int bodyLength = 1;
-
- out.putInt(bodyLength);
-
out.putBoolean(message.isOK());
}
@Override
- protected SessionXASetTimeoutResponseMessage decodeBody(RemotingBuffer in)
+ protected SessionXASetTimeoutResponseMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
boolean ok = in.getBoolean();
return new SessionXASetTimeoutResponseMessage(ok);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAStartMessageCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAStartMessageCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAStartMessageCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -37,29 +37,27 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final SessionXAStartMessage packet) throws Exception
+ {
+ Xid xid = packet.getXid();
+
+ int bodyLength = getXidLength(xid);
+
+ return bodyLength;
+ }
+
@Override
- protected void encodeBody(SessionXAStartMessage message, RemotingBuffer out) throws Exception
+ protected void encodeBody(final SessionXAStartMessage message, final RemotingBuffer out) throws Exception
{
Xid xid = message.getXid();
- int bodyLength = getXidLength(xid);
-
- out.putInt(bodyLength);
-
encodeXid(xid, out);
}
@Override
- protected SessionXAStartMessage decodeBody(RemotingBuffer in)
+ protected SessionXAStartMessage decodeBody(final RemotingBuffer in)
throws Exception
- {
- int bodyLength = in.getInt();
-
- if (in.remaining() < bodyLength)
- {
- return null;
- }
-
+ {
Xid xid = decodeXid(in);
return new SessionXAStartMessage(xid);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/TextPacketCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/TextPacketCodec.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/TextPacketCodec.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -11,7 +11,8 @@
import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
public class TextPacketCodec extends AbstractPacketCodec<TextPacket>
{
@@ -33,13 +34,16 @@
// AbstractPacketCodec overrides ---------------------------------
+ protected int getBodyLength(final TextPacket packet) throws Exception
+ {
+ return sizeof(packet.getText());
+ }
+
@Override
protected void encodeBody(TextPacket packet, RemotingBuffer out)
throws Exception
{
String text = packet.getText();
-
- out.putInt(sizeof(text));
out.putNullableString(text);
}
@@ -47,11 +51,6 @@
protected TextPacket decodeBody(RemotingBuffer in)
throws Exception
{
- int bodyLength = in.getInt();
- if (bodyLength > in.remaining())
- {
- return null;
- }
String text = in.getNullableString();
return new TextPacket(text);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -154,6 +154,11 @@
}
}
+ public void rewind()
+ {
+ buffer.rewind();
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -29,6 +29,7 @@
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*
* @version <tt>$Revision$</tt>
*
@@ -47,16 +48,16 @@
// Public --------------------------------------------------------
- public static void addCodecFilter(DefaultIoFilterChainBuilder filterChain)
+ public static void addCodecFilter(final DefaultIoFilterChainBuilder filterChain)
{
assert filterChain != null;
- filterChain.addLast("codec", new ProtocolCodecFilter(
- new PacketCodecFactory()));
+ filterChain.addLast("codec", new ProtocolCodecFilter(new PacketCodecFactory()));
}
- public static void addKeepAliveFilter(DefaultIoFilterChainBuilder filterChain,
- KeepAliveFactory factory, int keepAliveInterval, int keepAliveTimeout, FailureNotifier notifier)
+ public static void addKeepAliveFilter(final DefaultIoFilterChainBuilder filterChain,
+ final KeepAliveFactory factory, final int keepAliveInterval,
+ final int keepAliveTimeout, final FailureNotifier notifier)
{
assert filterChain != null;
assert factory != null;
@@ -75,8 +76,9 @@
}
public static void addSSLFilter(
- DefaultIoFilterChainBuilder filterChain, boolean client,
- String keystorePath, String keystorePassword, String trustStorePath, String trustStorePassword) throws Exception
+ final DefaultIoFilterChainBuilder filterChain, final boolean client,
+ final String keystorePath, final String keystorePassword, final String trustStorePath,
+ final String trustStorePassword) throws Exception
{
SSLContext context = SSLSupport.getInstance(client, keystorePath, keystorePassword,
trustStorePath, trustStorePassword);
@@ -93,7 +95,7 @@
// Package protected ---------------------------------------------
- static void addMDCFilter(DefaultIoFilterChainBuilder filterChain)
+ static void addMDCFilter(final DefaultIoFilterChainBuilder filterChain)
{
assert filterChain != null;
@@ -101,7 +103,7 @@
filterChain.addLast("mdc", mdcInjectionFilter);
}
- static void addLoggingFilter(DefaultIoFilterChainBuilder filterChain)
+ static void addLoggingFilter(final DefaultIoFilterChainBuilder filterChain)
{
assert filterChain != null;
@@ -121,7 +123,7 @@
}
static ScheduledExecutorService addBlockingRequestResponseFilter(
- DefaultIoFilterChainBuilder filterChain)
+ final DefaultIoFilterChainBuilder filterChain)
{
assert filterChain != null;
Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaDecoder.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -1,109 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.core.remoting.impl.mina;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.codec.ProtocolDecoderOutput;
-import org.apache.mina.filter.codec.demux.MessageDecoder;
-import org.apache.mina.filter.codec.demux.MessageDecoderResult;
-import org.jboss.messaging.core.remoting.Packet;
-import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
-import org.jboss.messaging.core.remoting.impl.codec.DecoderStatus;
-import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class MinaDecoder implements MessageDecoder
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private final Map<PacketType, AbstractPacketCodec> codecs;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- public MinaDecoder()
- {
- codecs = new HashMap<PacketType, AbstractPacketCodec>();
- }
-
- // Public --------------------------------------------------------
-
- public void put(PacketType type, AbstractPacketCodec codec)
- {
- codecs.put(type, codec);
- }
-
- // MessageDecoder implementation ---------------------------------
-
- public MessageDecoderResult decodable(IoSession session, IoBuffer in)
- {
- byte byteValue = in.get();
- PacketType type = PacketType.from(byteValue);
- if (!codecs.containsKey(type))
- return MessageDecoderResult.NOT_OK;
-
- AbstractPacketCodec codec = codecs.get(type);
- RemotingBuffer wrapper = new BufferWrapper(in);
-
- DecoderStatus status = codec.decodable(wrapper);
- return convertToMina(status);
- }
-
- public MessageDecoderResult decode(IoSession session, IoBuffer in,
- ProtocolDecoderOutput out) throws Exception
- {
- byte byteValue = in.get();
- PacketType type = PacketType.from(byteValue);
- AbstractPacketCodec codec = codecs.get(type);
- // rewind from 1
- in.position(in.position() -1);
- Packet packet = codec.decode(new BufferWrapper(in));
- if (packet == null)
- return MessageDecoderResult.NEED_DATA;
-
- out.write(packet);
- return MessageDecoderResult.OK;
- }
-
- public void finishDecode(IoSession session, ProtocolDecoderOutput out)
- throws Exception
- {
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- 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;
- }
- // Inner classes -------------------------------------------------
-}
Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaEncoder.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -1,79 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.core.remoting.impl.mina;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.mina.common.IoBuffer;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.codec.ProtocolEncoderOutput;
-import org.apache.mina.filter.codec.demux.MessageEncoder;
-import org.jboss.messaging.core.remoting.Packet;
-import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
-import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class MinaEncoder implements MessageEncoder<Packet>
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private final Map<PacketType, AbstractPacketCodec> codecs;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- MinaEncoder()
- {
- codecs = new HashMap<PacketType, AbstractPacketCodec>();
- }
- // Public --------------------------------------------------------
-
- public void put(PacketType type, AbstractPacketCodec codec)
- {
- codecs.put(type, codec);
- }
-
- // MessageEncoder implementation --------------------------------
-
- public void encode(IoSession session, Packet packet,
- ProtocolEncoderOutput out) throws Exception
- {
- final IoBuffer buffer = IoBuffer.allocate(1024);
- // Enable auto-expand for easier encoding
- buffer.setAutoExpand(true);
-
- RemotingBuffer wrapper = new BufferWrapper(buffer);
-
- AbstractPacketCodec codec = codecs.get(packet.getType());
- if (codec == null)
- {
- throw new IllegalStateException("no encoder has been registered for " + packet);
- }
- codec.encode(packet, wrapper);
-
- buffer.flip();
- out.write(buffer);
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/PacketCodecFactory.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -66,7 +66,10 @@
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SUSPEND;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.TEXT;
-import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.filter.codec.ProtocolCodecFactory;
+import org.apache.mina.filter.codec.ProtocolDecoder;
+import org.apache.mina.filter.codec.ProtocolEncoder;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
@@ -77,12 +80,12 @@
import org.jboss.messaging.core.remoting.impl.codec.ConsumerFlowTokenMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.CreateConnectionMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.CreateConnectionResponseMessageCodec;
+import org.jboss.messaging.core.remoting.impl.codec.EmptyPacketCodec;
import org.jboss.messaging.core.remoting.impl.codec.MessagingExceptionMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.PingCodec;
import org.jboss.messaging.core.remoting.impl.codec.PongCodec;
import org.jboss.messaging.core.remoting.impl.codec.ProducerReceiveTokensMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.ProducerSendMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
import org.jboss.messaging.core.remoting.impl.codec.SessionAcknowledgeMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.SessionAddDestinationMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.SessionBindingQueryMessageCodec;
@@ -117,19 +120,19 @@
import org.jboss.messaging.core.remoting.impl.codec.SessionXASetTimeoutResponseMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.SessionXAStartMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.TextPacketCodec;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*/
-public class PacketCodecFactory extends DemuxingProtocolCodecFactory
+public class PacketCodecFactory implements ProtocolCodecFactory
{
// Constants -----------------------------------------------------
- private final Logger log = Logger.getLogger(PacketCodecFactory.class);
- private final MinaEncoder encoder;
- private final MinaDecoder decoder;
+ private final Logger log = Logger.getLogger(PacketCodecFactory.class);
+
+ private final MessagingCodec codec;
// Attributes ----------------------------------------------------
@@ -140,174 +143,141 @@
// FIXME: split encoder/decoder required only on client and/or server sides
public PacketCodecFactory()
{
+ codec = new MessagingCodec();
- decoder = new MinaDecoder();
- encoder = new MinaEncoder();
- addMessageDecoder(decoder);
- addMessageEncoder(Packet.class, encoder);
+ addCodecForEmptyPacket(NULL);
- addCodecForEmptyPacket(encoder, decoder, NULL);
- addCodec(encoder, decoder, PROD_SEND,
- new ProducerSendMessageCodec());
- addCodec(encoder, decoder, CONS_DELIVER,
- new ConsumerDeliverMessageCodec());
+ addCodec(PROD_SEND, new ProducerSendMessageCodec());
+
+ addCodec(CONS_DELIVER, new ConsumerDeliverMessageCodec());
// TextPacket are for testing purpose only!
- addCodec(encoder, decoder, TEXT, new TextPacketCodec());
- addCodec(encoder, decoder, BYTES, new BytesPacketCodec());
+ addCodec(TEXT, new TextPacketCodec());
+ addCodec(BYTES, new BytesPacketCodec());
- addCodec(encoder, decoder, PING, new PingCodec());
- addCodec(encoder, decoder, PONG, new PongCodec());
+ addCodec(PING, new PingCodec());
+ addCodec(PONG, new PongCodec());
- addCodec(encoder, decoder, EXCEPTION,
- new MessagingExceptionMessageCodec());
+ addCodec(EXCEPTION, new MessagingExceptionMessageCodec());
- addCodec(encoder, decoder, CREATECONNECTION,
- new CreateConnectionMessageCodec());
+ addCodec(CREATECONNECTION, new CreateConnectionMessageCodec());
- addCodec(encoder, decoder, CREATECONNECTION_RESP,
- new CreateConnectionResponseMessageCodec());
+ addCodec(CREATECONNECTION_RESP, new CreateConnectionResponseMessageCodec());
- addCodec(encoder, decoder, CONN_CREATESESSION,
- new ConnectionCreateSessionMessageCodec());
+ addCodec(CONN_CREATESESSION, new ConnectionCreateSessionMessageCodec());
- addCodec(encoder, decoder, CONN_CREATESESSION_RESP,
- new ConnectionCreateSessionResponseMessageCodec());
+ addCodec(CONN_CREATESESSION_RESP, new ConnectionCreateSessionResponseMessageCodec());
- addCodec(encoder, decoder, SESS_CREATECONSUMER,
- new SessionCreateConsumerMessageCodec());
+ addCodec(SESS_CREATECONSUMER, new SessionCreateConsumerMessageCodec());
- addCodec(encoder, decoder, SESS_CREATECONSUMER_RESP,
- new SessionCreateConsumerResponseMessageCodec());
+ addCodec(SESS_CREATECONSUMER_RESP, new SessionCreateConsumerResponseMessageCodec());
- addCodec(encoder, decoder, SESS_CREATEPRODUCER,
- new SessionCreateProducerMessageCodec());
+ addCodec(SESS_CREATEPRODUCER, new SessionCreateProducerMessageCodec());
- addCodec(encoder, decoder, SESS_CREATEPRODUCER_RESP,
- new SessionCreateProducerResponseMessageCodec());
+ addCodec(SESS_CREATEPRODUCER_RESP, new SessionCreateProducerResponseMessageCodec());
- addCodec(encoder, decoder, SESS_CREATEBROWSER,
- new SessionCreateBrowserMessageCodec());
+ addCodec(SESS_CREATEBROWSER, new SessionCreateBrowserMessageCodec());
- addCodec(encoder, decoder, SESS_CREATEBROWSER_RESP,
- new SessionCreateBrowserResponseMessageCodec());
+ addCodec(SESS_CREATEBROWSER_RESP, new SessionCreateBrowserResponseMessageCodec());
- addCodecForEmptyPacket(encoder, decoder, CONN_START);
+ addCodecForEmptyPacket(CONN_START);
- addCodecForEmptyPacket(encoder, decoder, CONN_STOP);
+ addCodecForEmptyPacket(CONN_STOP);
- addCodec(encoder, decoder, CONS_FLOWTOKEN,
- new ConsumerFlowTokenMessageCodec());
+ addCodec(CONS_FLOWTOKEN, new ConsumerFlowTokenMessageCodec());
- addCodec(encoder, decoder, SESS_ACKNOWLEDGE,
- new SessionAcknowledgeMessageCodec());
+ addCodec(SESS_ACKNOWLEDGE, new SessionAcknowledgeMessageCodec());
- addCodec(encoder, decoder, SESS_CANCEL, new SessionCancelMessageCodec());
+ addCodec(SESS_CANCEL, new SessionCancelMessageCodec());
- addCodecForEmptyPacket(encoder, decoder, SESS_COMMIT);
+ addCodecForEmptyPacket(SESS_COMMIT);
- addCodecForEmptyPacket(encoder, decoder, SESS_ROLLBACK);
+ addCodecForEmptyPacket(SESS_ROLLBACK);
- addCodecForEmptyPacket(encoder, decoder, CLOSE);
+ addCodecForEmptyPacket(CLOSE);
- addCodecForEmptyPacket(encoder, decoder, SESS_RECOVER);
+ addCodecForEmptyPacket(SESS_RECOVER);
- addCodecForEmptyPacket(encoder, decoder, SESS_BROWSER_RESET);
+ addCodecForEmptyPacket(SESS_BROWSER_RESET);
- addCodecForEmptyPacket(encoder, decoder, SESS_BROWSER_HASNEXTMESSAGE);
+ addCodecForEmptyPacket(SESS_BROWSER_HASNEXTMESSAGE);
- addCodec(encoder, decoder, SESS_BROWSER_HASNEXTMESSAGE_RESP,
- new SessionBrowserHasNextMessageResponseMessageCodec());
+ addCodec(SESS_BROWSER_HASNEXTMESSAGE_RESP, new SessionBrowserHasNextMessageResponseMessageCodec());
- addCodecForEmptyPacket(encoder, decoder, SESS_BROWSER_NEXTMESSAGE);
+ addCodecForEmptyPacket(SESS_BROWSER_NEXTMESSAGE);
- addCodec(encoder, decoder, SESS_BROWSER_NEXTMESSAGE_RESP,
- new SessionBrowserNextMessageResponseMessageCodec());
+ addCodec(SESS_BROWSER_NEXTMESSAGE_RESP, new SessionBrowserNextMessageResponseMessageCodec());
- addCodec(encoder, decoder, SESS_BROWSER_NEXTMESSAGEBLOCK,
- new SessionBrowserNextMessageBlockMessageCodec());
+ addCodec(SESS_BROWSER_NEXTMESSAGEBLOCK, new SessionBrowserNextMessageBlockMessageCodec());
- addCodec(encoder, decoder, SESS_BROWSER_NEXTMESSAGEBLOCK_RESP,
- new SessionBrowserNextMessageBlockResponseMessageCodec());
+ addCodec(SESS_BROWSER_NEXTMESSAGEBLOCK_RESP, new SessionBrowserNextMessageBlockResponseMessageCodec());
- addCodec(encoder, decoder, SESS_XA_COMMIT,
- new SessionXACommitMessageCodec());
+ addCodec(SESS_XA_COMMIT, new SessionXACommitMessageCodec());
- addCodec(encoder, decoder, SESS_XA_END, new SessionXAEndMessageCodec());
+ addCodec(SESS_XA_END, new SessionXAEndMessageCodec());
- addCodec(encoder, decoder, SESS_XA_FORGET,
- new SessionXAForgetMessageCodec());
+ addCodec(SESS_XA_FORGET, new SessionXAForgetMessageCodec());
- addCodecForEmptyPacket(encoder, decoder, SESS_XA_INDOUBT_XIDS);
+ addCodecForEmptyPacket(SESS_XA_INDOUBT_XIDS);
- addCodec(encoder, decoder, SESS_XA_INDOUBT_XIDS_RESP,
- new SessionXAGetInDoubtXidsResponseMessageCodec());
+ addCodec(SESS_XA_INDOUBT_XIDS_RESP, new SessionXAGetInDoubtXidsResponseMessageCodec());
- addCodecForEmptyPacket(encoder, decoder, SESS_XA_GET_TIMEOUT);
+ addCodecForEmptyPacket(SESS_XA_GET_TIMEOUT);
- addCodec(encoder, decoder, SESS_XA_GET_TIMEOUT_RESP,
- new SessionXAGetTimeoutResponseMessageCodec());
+ addCodec(SESS_XA_GET_TIMEOUT_RESP, new SessionXAGetTimeoutResponseMessageCodec());
- addCodec(encoder, decoder, SESS_XA_JOIN, new SessionXAJoinMessageCodec());
+ addCodec(SESS_XA_JOIN, new SessionXAJoinMessageCodec());
- addCodec(encoder, decoder, SESS_XA_PREPARE,
- new SessionXAPrepareMessageCodec());
+ addCodec(SESS_XA_PREPARE, new SessionXAPrepareMessageCodec());
- addCodec(encoder, decoder, SESS_XA_RESP,
- new SessionXAResponseMessageCodec());
+ addCodec(SESS_XA_RESP, new SessionXAResponseMessageCodec());
- addCodec(encoder, decoder, SESS_XA_RESUME,
- new SessionXAResumeMessageCodec());
+ addCodec(SESS_XA_RESUME, new SessionXAResumeMessageCodec());
- addCodec(encoder, decoder, SESS_XA_ROLLBACK,
- new SessionXARollbackMessageCodec());
+ addCodec(SESS_XA_ROLLBACK, new SessionXARollbackMessageCodec());
- addCodec(encoder, decoder, SESS_XA_SET_TIMEOUT,
- new SessionXASetTimeoutMessageCodec());
+ addCodec(SESS_XA_SET_TIMEOUT, new SessionXASetTimeoutMessageCodec());
- addCodec(encoder, decoder, SESS_XA_SET_TIMEOUT_RESP,
- new SessionXASetTimeoutResponseMessageCodec());
+ addCodec(SESS_XA_SET_TIMEOUT_RESP, new SessionXASetTimeoutResponseMessageCodec());
- addCodec(encoder, decoder, SESS_XA_START,
- new SessionXAStartMessageCodec());
+ addCodec(SESS_XA_START, new SessionXAStartMessageCodec());
- addCodecForEmptyPacket(encoder, decoder, SESS_XA_SUSPEND);
+ addCodecForEmptyPacket(SESS_XA_SUSPEND);
- addCodec(encoder, decoder, SESS_REMOVE_DESTINATION,
- new SessionRemoveDestinationMessageCodec());
+ addCodec(SESS_REMOVE_DESTINATION, new SessionRemoveDestinationMessageCodec());
- addCodec(encoder, decoder, SESS_CREATEQUEUE,
- new SessionCreateQueueMessageCodec());
+ addCodec(SESS_CREATEQUEUE, new SessionCreateQueueMessageCodec());
- addCodec(encoder, decoder, SESS_QUEUEQUERY,
- new SessionQueueQueryMessageCodec());
+ addCodec(SESS_QUEUEQUERY, new SessionQueueQueryMessageCodec());
- addCodec(encoder, decoder, SESS_QUEUEQUERY_RESP,
- new SessionQueueQueryResponseMessageCodec());
+ addCodec(SESS_QUEUEQUERY_RESP, new SessionQueueQueryResponseMessageCodec());
- addCodec(encoder, decoder, SESS_ADD_DESTINATION,
- new SessionAddDestinationMessageCodec());
+ addCodec(SESS_ADD_DESTINATION, new SessionAddDestinationMessageCodec());
- addCodec(encoder, decoder, SESS_BINDINGQUERY,
- new SessionBindingQueryMessageCodec());
+ addCodec(SESS_BINDINGQUERY, new SessionBindingQueryMessageCodec());
- addCodec(encoder, decoder, SESS_BINDINGQUERY_RESP,
- new SessionBindingQueryResponseMessageCodec());
+ addCodec(SESS_BINDINGQUERY_RESP, new SessionBindingQueryResponseMessageCodec());
- addCodec(encoder, decoder, SESS_DELETE_QUEUE,
- new SessionDeleteQueueMessageCodec());
+ addCodec(SESS_DELETE_QUEUE, new SessionDeleteQueueMessageCodec());
- addCodec(encoder, decoder, PROD_RECEIVETOKENS,
- new ProducerReceiveTokensMessageCodec());
-
+ addCodec(PROD_RECEIVETOKENS, new ProducerReceiveTokensMessageCodec());
}
+
+ public ProtocolDecoder getDecoder(IoSession session) throws Exception
+ {
+ return codec;
+ }
+ public ProtocolEncoder getEncoder(IoSession session) throws Exception
+ {
+ return codec;
+ }
+
// Public --------------------------------------------------------
- public static AbstractPacketCodec<Packet> createCodecForEmptyPacket(
- final PacketType type)
+ public static AbstractPacketCodec<?> createCodecForEmptyPacket(final PacketType type)
{
- return new CodecForEmptyPacket<Packet>(type);
+ return new EmptyPacketCodec(type);
}
// Package protected ---------------------------------------------
@@ -316,51 +286,15 @@
// Private -------------------------------------------------------
- // FIXME generics definition should be in term of <P>...
- private void addCodec(MinaEncoder encoder, MinaDecoder decoder,
- PacketType type, AbstractPacketCodec<? extends Packet> codec)
+ private void addCodec(final PacketType type, final AbstractPacketCodec<? extends Packet> c)
{
- try
- {
- decoder.put(type, codec);
- encoder.put(type, codec);
- } catch (Exception e)
- {
- log.error("Unable to add codec for packet " + type, e);
- }
+ codec.put(type, c);
}
- private void addCodecForEmptyPacket(MinaEncoder encoder,
- MinaDecoder decoder, PacketType type)
+ private void addCodecForEmptyPacket(final PacketType type)
{
- AbstractPacketCodec<Packet> codec = createCodecForEmptyPacket(
- type);
- addCodec(encoder, decoder, type, codec);
+ AbstractPacketCodec<?> c = createCodecForEmptyPacket(type);
+ addCodec(type, c);
}
- // Inner classes -------------------------------------------------
-
- static class CodecForEmptyPacket<P extends Packet> extends
- AbstractPacketCodec<P>
- {
-
- public CodecForEmptyPacket(PacketType type)
- {
- super(type);
- }
-
- @Override
- protected void encodeBody(P packet, RemotingBuffer out) throws Exception
- {
- // no body
- out.putInt(0);
- }
-
- @Override
- protected Packet decodeBody(RemotingBuffer in) throws Exception
- {
- in.getInt(); // skip body length
- return new PacketImpl(type);
- }
- }
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java 2008-04-15 09:54:15 UTC (rev 4057)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java 2008-04-15 13:12:37 UTC (rev 4058)
@@ -7,189 +7,35 @@
package org.jboss.messaging.tests.unit.core.remoting.impl.wireformat;
import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.FALSE;
+import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.HEADER_LENGTH;
import static org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec.TRUE;
import static org.jboss.messaging.core.remoting.impl.mina.BufferWrapper.NOT_NULL_STRING;
import static org.jboss.messaging.core.remoting.impl.mina.BufferWrapper.NULL_BYTE;
import static org.jboss.messaging.core.remoting.impl.mina.BufferWrapper.NULL_STRING;
import static org.jboss.messaging.core.remoting.impl.mina.BufferWrapper.UTF_8_ENCODER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.BYTES;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_CREATESESSION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_CREATESESSION_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_START;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_STOP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_DELIVER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_FLOWTOKEN;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CREATECONNECTION_RESP;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.NULL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PING;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PONG;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_SEND;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ACKNOWLEDGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ADD_DESTINATION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BINDINGQUERY_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_HASNEXTMESSAGE_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGEBLOCK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGEBLOCK_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_NEXTMESSAGE_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_BROWSER_RESET;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CANCEL;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEBROWSER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATECONSUMER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEQUEUE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_DELETE_QUEUE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_RECOVER;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_REMOVE_DESTINATION;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_COMMIT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_END;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_FORGET;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_JOIN;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_PREPARE;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_RESUME;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_ROLLBACK;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SET_TIMEOUT;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SET_TIMEOUT_RESP;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_START;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SUSPEND;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.TEXT;
import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertEqualsByteArrays;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBytes;
-import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
-import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
-import java.util.ArrayList;
-import java.util.List;
-import javax.transaction.xa.Xid;
-
import org.apache.mina.common.IoBuffer;
+import org.apache.mina.common.WriteFuture;
+import org.apache.mina.filter.codec.ProtocolDecoderOutput;
+import org.apache.mina.filter.codec.ProtocolEncoderOutput;
import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.message.impl.MessageImpl;
import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
-import org.jboss.messaging.core.remoting.impl.codec.BytesPacketCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ConnectionCreateSessionMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ConnectionCreateSessionResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ConsumerDeliverMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ConsumerFlowTokenMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.CreateConnectionMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.CreateConnectionResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.PingCodec;
-import org.jboss.messaging.core.remoting.impl.codec.PongCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ProducerReceiveTokensMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.ProducerSendMessageCodec;
import org.jboss.messaging.core.remoting.impl.codec.RemotingBuffer;
-import org.jboss.messaging.core.remoting.impl.codec.SessionAcknowledgeMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionAddDestinationMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBindingQueryMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBindingQueryResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBrowserHasNextMessageResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBrowserNextMessageBlockMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBrowserNextMessageBlockResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionBrowserNextMessageResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCancelMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateBrowserMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateBrowserResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateConsumerMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateConsumerResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateProducerMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateProducerResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionCreateQueueMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionDeleteQueueMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionQueueQueryMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionQueueQueryResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionRemoveDestinationMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXACommitMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAEndMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAForgetMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAGetInDoubtXidsResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAGetTimeoutResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAJoinMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAPrepareMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAResumeMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXARollbackMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXASetTimeoutMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXASetTimeoutResponseMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.SessionXAStartMessageCodec;
-import org.jboss.messaging.core.remoting.impl.codec.TextPacketCodec;
import org.jboss.messaging.core.remoting.impl.mina.BufferWrapper;
import org.jboss.messaging.core.remoting.impl.mina.PacketCodecFactory;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
-import org.jboss.messaging.core.remoting.impl.wireformat.BytesPacket;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConnectionCreateSessionResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerDeliverMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowTokenMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionRequest;
-import org.jboss.messaging.core.remoting.impl.wireformat.CreateConnectionResponse;
-import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
-import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
-import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
-import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionAddDestinationMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBindingQueryResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserHasNextMessageResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageBlockMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageBlockResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionBrowserNextMessageResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCancelMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateBrowserResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateConsumerResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateProducerResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionCreateQueueMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionDeleteQueueMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionQueueQueryResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionRemoveDestinationMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXACommitMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAEndMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAForgetMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetInDoubtXidsResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAGetTimeoutResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAJoinMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAPrepareMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAResumeMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXARollbackMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXASetTimeoutResponseMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.SessionXAStartMessage;
-import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
-import org.jboss.messaging.tests.util.RandomUtil;
import org.jboss.messaging.tests.util.UnitTestCase;
-import org.jboss.messaging.util.StreamUtils;
/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*
* FIXME - tidy up tests so test names match the actual packets
*
@@ -262,9 +108,13 @@
}
}
- private static void checkHeader(SimpleRemotingBuffer buffer,
- PacketImpl packet) throws Exception
+ private static void checkHeader(final RemotingBuffer buffer,
+ final PacketImpl packet,
+ final int bodyLength) throws Exception
{
+ buffer.rewind();
+ assertEquals(AbstractPacketCodec.HEADER_LENGTH + bodyLength, buffer.getInt());
+
assertEquals(buffer.get(), packet.getType().byteValue());
long correlationID = buffer.getLong();
@@ -280,8 +130,6 @@
private static void checkBodyIsEmpty(RemotingBuffer buffer)
{
- assertEquals(0, buffer.getInt());
- // check the buffer has been wholly read
assertEquals(0, buffer.remaining());
}
@@ -290,7 +138,7 @@
byte[] actualBody = new byte[buffer.getInt()];
buffer.get(actualBody);
ByteBuffer expectedBody = encode(actualBody.length, bodyObjects);
- CodecAssert.assertEqualsByteArrays(expectedBody.array(), actualBody);
+ assertEqualsByteArrays(expectedBody.array(), actualBody);
// check the buffer has been wholly read
assertEquals(0, buffer.remaining());
}
@@ -302,1198 +150,1274 @@
public void testNullPacket() throws Exception
{
PacketImpl packet = new PacketImpl(NULL);
- packet.setCorrelationID(randomLong());
+ long cid = randomLong();
+ packet.setCorrelationID(cid);
packet.setTargetID(randomLong());
packet.setExecutorID(randomLong());
- AbstractPacketCodec<Packet> codec = PacketCodecFactory
+ AbstractPacketCodec<?> codec = PacketCodecFactory
.createCodecForEmptyPacket(NULL);
- SimpleRemotingBuffer buffer = encode(packet, codec);
- checkHeader(buffer, packet);
+ RemotingBuffer buffer = encode(packet, codec);
+ checkHeader(buffer, packet, 0);
checkBodyIsEmpty(buffer);
buffer.rewind();
- Packet decodedPacket = codec.decode(buffer);
-
+ Packet decodedPacket = decode(buffer, codec, 0);
+ assertTrue(decodedPacket instanceof PacketImpl);
+
assertEquals(NULL, decodedPacket.getType());
assertEquals(packet.getCorrelationID(), decodedPacket.getCorrelationID());
assertEquals(packet.getTargetID(), decodedPacket.getTargetID());
+ assertEquals(packet.getExecutorID(), decodedPacket.getExecutorID());
}
- public void testPing() throws Exception
- {
- Ping ping = new Ping(randomLong());
- AbstractPacketCodec<Ping> codec = new PingCodec();
-
- SimpleRemotingBuffer buffer = encode(ping, codec);
- checkHeader(buffer, ping);
- checkBody(buffer, ping.getSessionID());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof Ping);
- Ping decodedPing = (Ping) decodedPacket;
- assertEquals(PING, decodedPing.getType());
- assertEquals(ping.getSessionID(), decodedPing.getSessionID());
- }
-
- public void testPong() throws Exception
- {
- Pong pong = new Pong(randomLong(), true);
- AbstractPacketCodec<Pong> codec = new PongCodec();
-
- SimpleRemotingBuffer buffer = encode(pong, codec);
- checkHeader(buffer, pong);
- checkBody(buffer, pong.getSessionID(), pong.isSessionFailed());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof Pong);
- Pong decodedPong = (Pong) decodedPacket;
- assertEquals(PONG, decodedPong.getType());
- assertEquals(pong.getSessionID(), decodedPong.getSessionID());
- assertEquals(pong.isSessionFailed(), decodedPong.isSessionFailed());
- }
-
- public void testTextPacket() throws Exception
- {
- TextPacket packet = new TextPacket("testTextPacket");
- AbstractPacketCodec<TextPacket> codec = new TextPacketCodec();
-
- SimpleRemotingBuffer buffer = encode(packet, codec);
- checkHeader(buffer, packet);
- checkBody(buffer, packet.getText());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof TextPacket);
- TextPacket p = (TextPacket) decodedPacket;
-
- assertEquals(TEXT, p.getType());
- assertEquals(packet.getText(), p.getText());
- }
+// public void testPing() throws Exception
+// {
+// Ping ping = new Ping(randomLong());
+// AbstractPacketCodec<Ping> codec = new PingCodec();
+//
+// RemotingBuffer buffer = encode(ping, codec);
+// checkHeader(buffer, ping, AbstractPacketCodec.LONG_LENGTH);
+// checkBody(buffer, ping.getSessionID());
+// buffer.rewind();
+//
+// Packet decodedPacket = decode(buffer, codec, AbstractPacketCodec.LONG_LENGTH);
+//
+// assertTrue(decodedPacket instanceof Ping);
+// Ping decodedPing = (Ping) decodedPacket;
+// assertEquals(PING, decodedPing.getType());
+// assertEquals(ping.getCorrelationID(), decodedPacket.getCorrelationID());
+// assertEquals(ping.getTargetID(), decodedPacket.getTargetID());
+// assertEquals(ping.getExecutorID(), decodedPacket.getExecutorID());
+// }
+//
+// public void testPong() throws Exception
+// {
+// Pong pong = new Pong(randomLong(), true);
+// AbstractPacketCodec<Pong> codec = new PongCodec();
+//
+// SimpleRemotingBuffer buffer = encode(pong, codec);
+// checkHeader(buffer, pong);
+// checkBody(buffer, pong.getSessionID(), pong.isSessionFailed());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof Pong);
+// Pong decodedPong = (Pong) decodedPacket;
+// assertEquals(PONG, decodedPong.getType());
+// assertEquals(pong.getSessionID(), decodedPong.getSessionID());
+// assertEquals(pong.isSessionFailed(), decodedPong.isSessionFailed());
+// }
+//
+// public void testTextPacket() throws Exception
+// {
+// TextPacket packet = new TextPacket("testTextPacket");
+// AbstractPacketCodec<TextPacket> codec = new TextPacketCodec();
+//
+// SimpleRemotingBuffer buffer = encode(packet, codec);
+// checkHeader(buffer, packet);
+// checkBody(buffer, packet.getText());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof TextPacket);
+// TextPacket p = (TextPacket) decodedPacket;
+//
+// assertEquals(TEXT, p.getType());
+// assertEquals(packet.getText(), p.getText());
+// }
+//
+// public void testBytesPacket() throws Exception
+// {
+// BytesPacket packet = new BytesPacket(randomBytes());
+//
+// AbstractPacketCodec codec = new BytesPacketCodec();
+// SimpleRemotingBuffer buffer = encode(packet, codec);
+// checkHeader(buffer, packet);
+// checkBody(buffer, packet.getBytes());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof BytesPacket);
+// BytesPacket p = (BytesPacket) decodedPacket;
+//
+// assertEquals(BYTES, p.getType());
+// assertEqualsByteArrays(packet.getBytes(), p.getBytes());
+// }
+//
+// public void testCreateConnectionRequest() throws Exception
+// {
+// int version = randomInt();
+// long remotingSessionID = randomLong();
+// String clientVMID = randomString();
+// String username = null;
+// String password = null;
+//
+// CreateConnectionRequest request = new CreateConnectionRequest(version,
+// remotingSessionID, clientVMID, username, password);
+//
+// AbstractPacketCodec<CreateConnectionRequest> codec = new CreateConnectionMessageCodec();
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBody(buffer, version, remotingSessionID, clientVMID, username, password);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof CreateConnectionRequest);
+// CreateConnectionRequest decodedRequest = (CreateConnectionRequest) decodedPacket;
+//
+// assertEquals(CREATECONNECTION, decodedPacket.getType());
+// assertEquals(request.getVersion(), decodedRequest.getVersion());
+// assertEquals(request.getRemotingSessionID(), decodedRequest
+// .getRemotingSessionID());
+// assertEquals(request.getClientVMID(), decodedRequest.getClientVMID());
+// assertEquals(request.getUsername(), decodedRequest.getUsername());
+// assertEquals(request.getPassword(), decodedRequest.getPassword());
+// }
+//
+// public void testCreateConnectionResponse() throws Exception
+// {
+// CreateConnectionResponse response = new CreateConnectionResponse(randomLong());
+//
+// AbstractPacketCodec<CreateConnectionResponse> codec = new CreateConnectionResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(response, codec);
+// checkHeader(buffer, response);
+// checkBody(buffer, response.getConnectionTargetID());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof CreateConnectionResponse);
+// CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
+// assertEquals(CREATECONNECTION_RESP, decodedResponse.getType());
+// assertEquals(response.getConnectionTargetID(), decodedResponse.getConnectionTargetID());
+// }
+//
+// public void testCreateSessionRequest() throws Exception
+// {
+// //TODO test this more thoroughly
+//
+// ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(true, true, true);
+//
+// AbstractPacketCodec codec = new ConnectionCreateSessionMessageCodec();
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBody(buffer, request.isXA(), request.isAutoCommitSends(), request.isAutoCommitAcks());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof ConnectionCreateSessionMessage);
+// ConnectionCreateSessionMessage decodedRequest = (ConnectionCreateSessionMessage) decodedPacket;
+// assertEquals(CONN_CREATESESSION, decodedRequest.getType());
+// assertEquals(request.isXA(), decodedRequest.isXA());
+// assertEquals(request.isAutoCommitSends(), decodedRequest.isAutoCommitSends());
+// assertEquals(request.isAutoCommitAcks(), decodedRequest.isAutoCommitAcks());
+// assertEquals(request.isXA(), decodedRequest.isXA());
+// }
+//
+// public void testCreateSessionResponse() throws Exception
+// {
+// ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(randomLong());
+//
+// AbstractPacketCodec codec = new ConnectionCreateSessionResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(response, codec);
+// checkHeader(buffer, response);
+// checkBody(buffer, response.getSessionID());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof ConnectionCreateSessionResponseMessage);
+// ConnectionCreateSessionResponseMessage decodedResponse = (ConnectionCreateSessionResponseMessage) decodedPacket;
+// assertEquals(CONN_CREATESESSION_RESP, decodedResponse.getType());
+// assertEquals(response.getSessionID(), decodedResponse.getSessionID());
+// }
+//
+// public void testSendMessage() throws Exception
+// {
+// ProducerSendMessage packet = new ProducerSendMessage(randomString(), new MessageImpl());
+//
+// AbstractPacketCodec codec = new ProducerSendMessageCodec();
+// SimpleRemotingBuffer buffer = encode(packet, codec);
+// checkHeader(buffer, packet);
+// checkBody(buffer, packet.getAddress(), StreamUtils.toBytes(packet.getMessage()));
+// buffer.rewind();
+//
+// Packet p = codec.decode(buffer);
+//
+// assertTrue(p instanceof ProducerSendMessage);
+// ProducerSendMessage decodedPacket = (ProducerSendMessage) p;
+// assertEquals(PROD_SEND, decodedPacket.getType());
+// assertEquals(packet.getAddress(), decodedPacket.getAddress());
+// assertEquals(packet.getMessage().getMessageID(), decodedPacket
+// .getMessage().getMessageID());
+// }
+//
+// public void testCreateConsumerRequest() throws Exception
+// {
+// String destination = "queue.testCreateConsumerRequest";
+// SessionCreateConsumerMessage request = new SessionCreateConsumerMessage(destination,
+// "color = 'red'", false, false, randomInt(), randomInt());
+//
+// AbstractPacketCodec codec = new SessionCreateConsumerMessageCodec();
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBody(buffer, request.getQueueName(), request
+// .getFilterString(), request.isNoLocal(), request.isAutoDeleteQueue(), request.getWindowSize(), request.getMaxRate());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionCreateConsumerMessage);
+// SessionCreateConsumerMessage decodedRequest = (SessionCreateConsumerMessage) decodedPacket;
+// assertEquals(SESS_CREATECONSUMER, decodedRequest.getType());
+// assertEquals(request.getQueueName(), decodedRequest.getQueueName());
+// assertEquals(request.getFilterString(), decodedRequest.getFilterString());
+// assertEquals(request.isNoLocal(), decodedRequest.isNoLocal());
+// assertEquals(request.isAutoDeleteQueue(), decodedRequest.isAutoDeleteQueue());
+// assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
+// assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
+// }
+//
+// public void testCreateConsumerResponse() throws Exception
+// {
+// SessionCreateConsumerResponseMessage response =
+// new SessionCreateConsumerResponseMessage(randomLong(), randomInt());
+//
+// AbstractPacketCodec codec = new SessionCreateConsumerResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(response, codec);
+// checkHeader(buffer, response);
+// checkBody(buffer, response.getConsumerTargetID(), response.getWindowSize());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionCreateConsumerResponseMessage);
+// SessionCreateConsumerResponseMessage decodedResponse = (SessionCreateConsumerResponseMessage) decodedPacket;
+// assertEquals(SESS_CREATECONSUMER_RESP, decodedResponse.getType());
+//
+// assertEquals(response.getConsumerTargetID(), decodedResponse.getConsumerTargetID());
+// assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
+// }
+//
+// public void testCreateProducerRequest() throws Exception
+// {
+// String destination = "queue.testCreateProducerRequest";
+// int windowSize = randomInt();
+// int maxRate = randomInt();
+// SessionCreateProducerMessage request = new SessionCreateProducerMessage(destination, windowSize, maxRate);
+//
+// AbstractPacketCodec codec = new SessionCreateProducerMessageCodec();
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBody(buffer, request.getAddress(), request.getWindowSize(), request.getMaxRate());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionCreateProducerMessage);
+// SessionCreateProducerMessage decodedRequest = (SessionCreateProducerMessage) decodedPacket;
+// assertEquals(SESS_CREATEPRODUCER, decodedRequest.getType());
+// assertEquals(request.getAddress(), decodedRequest.getAddress());
+// assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
+// assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
+// }
+//
+// public void testCreateProducerResponse() throws Exception
+// {
+// SessionCreateProducerResponseMessage response =
+// new SessionCreateProducerResponseMessage(randomLong(), randomInt(), randomInt());
+//
+// AbstractPacketCodec codec = new SessionCreateProducerResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(response, codec);
+// checkHeader(buffer, response);
+// checkBody(buffer, response.getProducerTargetID(), response.getWindowSize(), response.getMaxRate());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionCreateProducerResponseMessage);
+// SessionCreateProducerResponseMessage decodedResponse = (SessionCreateProducerResponseMessage) decodedPacket;
+// assertEquals(SESS_CREATEPRODUCER_RESP, decodedResponse.getType());
+// assertEquals(response.getProducerTargetID(), decodedResponse.getProducerTargetID());
+// assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
+// assertEquals(response.getMaxRate(), decodedResponse.getMaxRate());
+// }
+//
+// public void testStartConnectionMessage() throws Exception
+// {
+// PacketImpl packet = new PacketImpl(CONN_START);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// CONN_START);
+// SimpleRemotingBuffer buffer = encode(packet, codec);
+// checkHeader(buffer, packet);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(CONN_START, decodedPacket.getType());
+// }
+//
+// public void testStopConnectionMessage() throws Exception
+// {
+// PacketImpl packet = new PacketImpl(CONN_STOP);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// CONN_STOP);
+// SimpleRemotingBuffer buffer = encode(packet, codec);
+// checkHeader(buffer, packet);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(CONN_STOP, decodedPacket.getType());
+// }
+//
+// public void testConsumerFlowTokenMessage() throws Exception
+// {
+// ConsumerFlowTokenMessage message = new ConsumerFlowTokenMessage(10);
+// AbstractPacketCodec codec = new ConsumerFlowTokenMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBody(buffer, message.getTokens());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof ConsumerFlowTokenMessage);
+// ConsumerFlowTokenMessage decodedMessage = (ConsumerFlowTokenMessage) decodedPacket;
+// assertEquals(CONS_FLOWTOKEN, decodedMessage.getType());
+// assertEquals(message.getTokens(), decodedMessage.getTokens());
+// }
+//
+// public void testProducerReceiveTokensMessage() throws Exception
+// {
+// ProducerReceiveTokensMessage message = new ProducerReceiveTokensMessage(10);
+// AbstractPacketCodec codec = new ProducerReceiveTokensMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBody(buffer, message.getTokens());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof ProducerReceiveTokensMessage);
+// ProducerReceiveTokensMessage decodedMessage = (ProducerReceiveTokensMessage) decodedPacket;
+// assertEquals(PacketType.PROD_RECEIVETOKENS, decodedMessage.getType());
+// assertEquals(message.getTokens(), decodedMessage.getTokens());
+// }
+//
+// public void testDeliverMessage() throws Exception
+// {
+// Message msg = new MessageImpl();
+// ConsumerDeliverMessage message = new ConsumerDeliverMessage(msg, randomLong());
+//
+// AbstractPacketCodec codec = new ConsumerDeliverMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBody(buffer, StreamUtils.toBytes(msg), message.getDeliveryID());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof ConsumerDeliverMessage);
+// ConsumerDeliverMessage decodedMessage = (ConsumerDeliverMessage) decodedPacket;
+// assertEquals(CONS_DELIVER, decodedMessage.getType());
+// assertEquals(message.getMessage().getMessageID(), decodedMessage
+// .getMessage().getMessageID());
+// assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
+// }
+//
+// public void testSessionAcknowledgeMessage() throws Exception
+// {
+// SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(
+// randomLong(), true);
+//
+// AbstractPacketCodec codec = new SessionAcknowledgeMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBody(buffer, message.getDeliveryID(), message.isAllUpTo());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionAcknowledgeMessage);
+// SessionAcknowledgeMessage decodedMessage = (SessionAcknowledgeMessage) decodedPacket;
+// assertEquals(SESS_ACKNOWLEDGE, decodedMessage.getType());
+// assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
+// assertEquals(message.isAllUpTo(), decodedMessage.isAllUpTo());
+// }
+//
+// public void testSessionCancelMessage() throws Exception
+// {
+// SessionCancelMessage message = new SessionCancelMessage(randomLong(),
+// true);
+//
+// AbstractPacketCodec codec = new SessionCancelMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBody(buffer, message.getDeliveryID(), message.isExpired());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionCancelMessage);
+// SessionCancelMessage decodedMessage = (SessionCancelMessage) decodedPacket;
+// assertEquals(SESS_CANCEL, decodedMessage.getType());
+// assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
+// assertEquals(message.isExpired(), decodedMessage.isExpired());
+// }
+//
+// public void testSessionCommitMessage() throws Exception
+// {
+// PacketImpl message = new PacketImpl(SESS_COMMIT);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// SESS_COMMIT);
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBodyIsEmpty(buffer);
+//
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_COMMIT, decodedPacket.getType());
+// }
+//
+// public void testSessionRollbackMessage() throws Exception
+// {
+// PacketImpl message = new PacketImpl(SESS_ROLLBACK);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// SESS_ROLLBACK);
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBodyIsEmpty(buffer);
+//
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_ROLLBACK, decodedPacket.getType());
+// }
+//
+// public void testSessionRecoverMessage() throws Exception
+// {
+// PacketImpl message = new PacketImpl(SESS_RECOVER);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// SESS_RECOVER);
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBodyIsEmpty(buffer);
+//
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_RECOVER, decodedPacket.getType());
+// }
+//
+// public void testCloseMessage() throws Exception
+// {
+// PacketImpl message = new PacketImpl(CLOSE);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// CLOSE);
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(CLOSE, decodedPacket.getType());
+// }
+//
+//
+// public void testCreateBrowserRequest() throws Exception
+// {
+// String destination = "queue.testCreateBrowserRequest";
+// SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(destination,
+// "color = 'red'");
+//
+// AbstractPacketCodec codec = new SessionCreateBrowserMessageCodec();
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBody(buffer, request.getQueueName(), request.getFilterString());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionCreateBrowserMessage);
+// SessionCreateBrowserMessage decodedRequest = (SessionCreateBrowserMessage) decodedPacket;
+// assertEquals(SESS_CREATEBROWSER, decodedRequest.getType());
+// assertEquals(request.getQueueName(), decodedRequest.getQueueName());
+// assertEquals(request.getFilterString(), decodedRequest.getFilterString());
+// }
+//
+// public void testCreateBrowserResponse() throws Exception
+// {
+// SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(randomLong());
+//
+// AbstractPacketCodec codec = new SessionCreateBrowserResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(response, codec);
+// checkHeader(buffer, response);
+// checkBody(buffer, response.getBrowserTargetID());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionCreateBrowserResponseMessage);
+// SessionCreateBrowserResponseMessage decodedResponse = (SessionCreateBrowserResponseMessage) decodedPacket;
+// assertEquals(SESS_CREATEBROWSER_RESP, decodedResponse.getType());
+// assertEquals(response.getBrowserTargetID(), decodedResponse.getBrowserTargetID());
+// }
+//
+// public void testBrowserResetMessage() throws Exception
+// {
+// PacketImpl message = new PacketImpl(SESS_BROWSER_RESET);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// SESS_BROWSER_RESET);
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_BROWSER_RESET, decodedPacket.getType());
+// }
+//
+// public void testBrowserHasNextMessageRequest() throws Exception
+// {
+// PacketImpl request = new PacketImpl(SESS_BROWSER_HASNEXTMESSAGE);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// SESS_BROWSER_HASNEXTMESSAGE);
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_BROWSER_HASNEXTMESSAGE, decodedPacket.getType());
+// }
+//
+// public void testBrowserHasNextMessageResponse() throws Exception
+// {
+// SessionBrowserHasNextMessageResponseMessage response = new SessionBrowserHasNextMessageResponseMessage(
+// false);
+// AbstractPacketCodec codec = new SessionBrowserHasNextMessageResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(response, codec);
+// checkHeader(buffer, response);
+// checkBody(buffer, response.hasNext());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionBrowserHasNextMessageResponseMessage);
+// SessionBrowserHasNextMessageResponseMessage decodedResponse = (SessionBrowserHasNextMessageResponseMessage) decodedPacket;
+// assertEquals(SESS_BROWSER_HASNEXTMESSAGE_RESP, decodedResponse.getType());
+// assertEquals(response.hasNext(), decodedResponse.hasNext());
+// }
+//
+// public void testBrowserNextMessageRequest() throws Exception
+// {
+// PacketImpl request = new PacketImpl(SESS_BROWSER_NEXTMESSAGE);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// SESS_BROWSER_NEXTMESSAGE);
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_BROWSER_NEXTMESSAGE, decodedPacket.getType());
+// }
+//
+// public void testBrowserNextMessageResponse() throws Exception
+// {
+// Message msg = new MessageImpl();
+// SessionBrowserNextMessageResponseMessage response = new SessionBrowserNextMessageResponseMessage(msg);
+//
+// AbstractPacketCodec codec = new SessionBrowserNextMessageResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(response, codec);
+// checkHeader(buffer, response);
+// checkBody(buffer, StreamUtils.toBytes(msg));
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionBrowserNextMessageResponseMessage);
+// SessionBrowserNextMessageResponseMessage decodedResponse = (SessionBrowserNextMessageResponseMessage) decodedPacket;
+// assertEquals(SESS_BROWSER_NEXTMESSAGE_RESP, decodedResponse.getType());
+// assertEquals(response.getMessage().getMessageID(), decodedResponse
+// .getMessage().getMessageID());
+// }
+//
+// public void testBrowserNextMessageBlockRequest() throws Exception
+// {
+// SessionBrowserNextMessageBlockMessage request = new SessionBrowserNextMessageBlockMessage(
+// randomLong());
+//
+// AbstractPacketCodec codec = new SessionBrowserNextMessageBlockMessageCodec();
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBody(buffer, request.getMaxMessages());
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionBrowserNextMessageBlockMessage);
+// SessionBrowserNextMessageBlockMessage decodedRequest = (SessionBrowserNextMessageBlockMessage) decodedPacket;
+// assertEquals(SESS_BROWSER_NEXTMESSAGEBLOCK, decodedPacket.getType());
+// assertEquals(request.getMaxMessages(), decodedRequest.getMaxMessages());
+// }
+//
+// public void testBrowserNextMessageBlockResponse() throws Exception
+// {
+// Message[] messages = new Message[] { new MessageImpl(), new MessageImpl() };
+// SessionBrowserNextMessageBlockResponseMessage response = new SessionBrowserNextMessageBlockResponseMessage(
+// messages);
+//
+// AbstractPacketCodec codec = new SessionBrowserNextMessageBlockResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(response, codec);
+// checkHeader(buffer, response);
+// checkBody(buffer, messages.length, SessionBrowserNextMessageBlockResponseMessageCodec
+// .encode(messages));
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionBrowserNextMessageBlockResponseMessage);
+// SessionBrowserNextMessageBlockResponseMessage decodedResponse = (SessionBrowserNextMessageBlockResponseMessage) decodedPacket;
+// assertEquals(SESS_BROWSER_NEXTMESSAGEBLOCK_RESP, decodedResponse.getType());
+// assertEquals(response.getMessages()[0].getMessageID(), decodedResponse
+// .getMessages()[0].getMessageID());
+// assertEquals(response.getMessages()[1].getMessageID(), decodedResponse
+// .getMessages()[1].getMessageID());
+// }
+//
+//
+// public void testSesssionXACommitMessageOnePhase() throws Exception
+// {
+// this.testSessionXACommitMessage(true);
+// }
+//
+// public void testSessionXACommitMessageNotOnePhase() throws Exception
+// {
+// this.testSessionXACommitMessage(false);
+// }
+//
+// private void testSessionXACommitMessage(boolean onePhase) throws Exception
+// {
+// Xid xid = this.generateXid();
+// SessionXACommitMessage message = new SessionXACommitMessage(xid, onePhase);
+// AbstractPacketCodec codec = new SessionXACommitMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXACommitMessage);
+// SessionXACommitMessage decodedMessage = (SessionXACommitMessage)decodedPacket;
+// assertEquals(SESS_XA_COMMIT, decodedMessage.getType());
+// assertEquals(xid, decodedMessage.getXid());
+// assertEquals(onePhase, decodedMessage.isOnePhase());
+// }
+//
+// public void testSessionXAEndMessageFailed() throws Exception
+// {
+// this.testSessionXAEndMessage(true);
+// }
+//
+// public void testSessionXAEndMessageNotFailed() throws Exception
+// {
+// this.testSessionXACommitMessage(false);
+// }
+//
+// private void testSessionXAEndMessage(boolean failed) throws Exception
+// {
+// Xid xid = this.generateXid();
+// SessionXAEndMessage message = new SessionXAEndMessage(xid, failed);
+// AbstractPacketCodec codec = new SessionXAEndMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAEndMessage);
+// SessionXAEndMessage decodedMessage = (SessionXAEndMessage)decodedPacket;
+// assertEquals(SESS_XA_END, decodedMessage.getType());
+// assertEquals(xid, decodedMessage.getXid());
+// assertEquals(failed, decodedMessage.isFailed());
+// }
+//
+// public void testSessionXAForgetMessage() throws Exception
+// {
+// Xid xid = this.generateXid();
+// SessionXAForgetMessage message = new SessionXAForgetMessage(xid);
+// AbstractPacketCodec codec = new SessionXAForgetMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAForgetMessage);
+// SessionXAForgetMessage decodedMessage = (SessionXAForgetMessage)decodedPacket;
+// assertEquals(SESS_XA_FORGET, decodedMessage.getType());
+// assertEquals(xid, decodedMessage.getXid());
+// }
+//
+// public void testSessionXAGetInDoubtXidsMessage() throws Exception
+// {
+// PacketImpl request = new PacketImpl(SESS_XA_INDOUBT_XIDS);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// SESS_XA_INDOUBT_XIDS);
+// SimpleRemotingBuffer buffer = encode(request, codec);
+// checkHeader(buffer, request);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_XA_INDOUBT_XIDS, decodedPacket.getType());
+// }
+//
+// public void testSessionGetInDoubtXidsResponse() throws Exception
+// {
+// final int numXids = 10;
+// List<Xid> xids = new ArrayList<Xid>();
+// for (int i = 0; i < numXids; i++)
+// {
+// xids.add(generateXid());
+// }
+//
+// SessionXAGetInDoubtXidsResponseMessage message = new SessionXAGetInDoubtXidsResponseMessage(xids);
+// AbstractPacketCodec codec = new SessionXAGetInDoubtXidsResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAGetInDoubtXidsResponseMessage);
+// SessionXAGetInDoubtXidsResponseMessage decodedMessage = (SessionXAGetInDoubtXidsResponseMessage)decodedPacket;
+// assertEquals(SESS_XA_INDOUBT_XIDS_RESP, decodedMessage.getType());
+//
+// List<Xid> decodedXids = decodedMessage.getXids();
+// assertNotNull(decodedXids);
+// assertEquals(xids.size(), decodedXids.size());
+//
+// for (int i = 0; i < numXids; i++)
+// {
+// assertEquals(xids.get(i), decodedXids.get(i));
+// }
+// }
+//
+// public void testSessionXAGetTimeoutMessage() throws Exception
+// {
+// PacketImpl message = new PacketImpl(SESS_XA_GET_TIMEOUT);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// PacketType.SESS_XA_GET_TIMEOUT);
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_XA_GET_TIMEOUT, decodedPacket.getType());
+// }
+//
+// public void testSessionXAGetTimeoutResponse() throws Exception
+// {
+// final int timeout = RandomUtil.randomInt();
+//
+// SessionXAGetTimeoutResponseMessage message = new SessionXAGetTimeoutResponseMessage(timeout);
+// AbstractPacketCodec codec = new SessionXAGetTimeoutResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAGetTimeoutResponseMessage);
+// SessionXAGetTimeoutResponseMessage decodedMessage = (SessionXAGetTimeoutResponseMessage)decodedPacket;
+// assertEquals(SESS_XA_GET_TIMEOUT_RESP, decodedMessage.getType());
+//
+// assertEquals(timeout, decodedMessage.getTimeoutSeconds());
+// }
+//
+// public void testSessionXAJoinMessage() throws Exception
+// {
+// Xid xid = this.generateXid();
+// SessionXAJoinMessage message = new SessionXAJoinMessage(xid);
+// AbstractPacketCodec codec = new SessionXAJoinMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAJoinMessage);
+// SessionXAJoinMessage decodedMessage = (SessionXAJoinMessage)decodedPacket;
+// assertEquals(SESS_XA_JOIN, decodedMessage.getType());
+// assertEquals(xid, decodedMessage.getXid());
+// }
+//
+// public void testSessionXAPrepareMessage() throws Exception
+// {
+// Xid xid = this.generateXid();
+// SessionXAPrepareMessage message = new SessionXAPrepareMessage(xid);
+// AbstractPacketCodec codec = new SessionXAPrepareMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAPrepareMessage);
+// SessionXAPrepareMessage decodedMessage = (SessionXAPrepareMessage)decodedPacket;
+// assertEquals(SESS_XA_PREPARE, decodedMessage.getType());
+// assertEquals(xid, decodedMessage.getXid());
+// }
+//
+// public void testSessionXAResponseErrorNullString() throws Exception
+// {
+// testSessionXAResponse(true, true);
+// }
+//
+// public void testSessionXAResponseErrorNotNullString() throws Exception
+// {
+// testSessionXAResponse(true, false);
+// }
+//
+// public void testSessionXAResponseNoErrorNullString() throws Exception
+// {
+// testSessionXAResponse(false, true);
+// }
+//
+// public void testSessionXAResponseNoErrorNotNullString() throws Exception
+// {
+// testSessionXAResponse(false, false);
+// }
+//
+// private void testSessionXAResponse(boolean error, boolean nullString) throws Exception
+// {
+// int responseCode = RandomUtil.randomInt();
+//
+// String str = nullString ? null : RandomUtil.randomString();
+//
+// SessionXAResponseMessage message = new SessionXAResponseMessage(error, responseCode, str);
+// AbstractPacketCodec codec = new SessionXAResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAResponseMessage);
+// SessionXAResponseMessage decodedMessage = (SessionXAResponseMessage)decodedPacket;
+// assertEquals(SESS_XA_RESP, decodedMessage.getType());
+// assertEquals(error, decodedMessage.isError());
+// assertEquals(responseCode, decodedMessage.getResponseCode());
+// assertEquals(str, decodedMessage.getMessage());
+// }
+//
+// public void testSessionXAResumeMessage() throws Exception
+// {
+// Xid xid = this.generateXid();
+// SessionXAResumeMessage message = new SessionXAResumeMessage(xid);
+// AbstractPacketCodec codec = new SessionXAResumeMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAResumeMessage);
+// SessionXAResumeMessage decodedMessage = (SessionXAResumeMessage)decodedPacket;
+// assertEquals(SESS_XA_RESUME, decodedMessage.getType());
+// assertEquals(xid, decodedMessage.getXid());
+// }
+//
+// public void testSessionXARollbackMessage() throws Exception
+// {
+// Xid xid = this.generateXid();
+// SessionXARollbackMessage message = new SessionXARollbackMessage(xid);
+// AbstractPacketCodec codec = new SessionXARollbackMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXARollbackMessage);
+// SessionXARollbackMessage decodedMessage = (SessionXARollbackMessage)decodedPacket;
+// assertEquals(SESS_XA_ROLLBACK, decodedMessage.getType());
+// assertEquals(xid, decodedMessage.getXid());
+// }
+//
+// public void testSessionXASetTimeoutMessage() throws Exception
+// {
+// final int timeout = RandomUtil.randomInt();
+// SessionXASetTimeoutMessage message = new SessionXASetTimeoutMessage(timeout);
+// AbstractPacketCodec codec = new SessionXASetTimeoutMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXASetTimeoutMessage);
+// SessionXASetTimeoutMessage decodedMessage = (SessionXASetTimeoutMessage)decodedPacket;
+// assertEquals(SESS_XA_SET_TIMEOUT, decodedMessage.getType());
+// assertEquals(timeout, decodedMessage.getTimeoutSeconds());
+// }
+//
+// public void testSessionXASetTimeoutResponseMessageOK() throws Exception
+// {
+// testSessionXASetTimeoutResponseMessage(true);
+// }
+//
+// public void testSessionXASetTimeoutResponseMessageNotOK() throws Exception
+// {
+// testSessionXASetTimeoutResponseMessage(false);
+// }
+//
+// private void testSessionXASetTimeoutResponseMessage(boolean ok) throws Exception
+// {
+// final int timeout = RandomUtil.randomInt();
+// SessionXASetTimeoutResponseMessage message = new SessionXASetTimeoutResponseMessage(ok);
+// AbstractPacketCodec codec = new SessionXASetTimeoutResponseMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXASetTimeoutResponseMessage);
+// SessionXASetTimeoutResponseMessage decodedMessage = (SessionXASetTimeoutResponseMessage)decodedPacket;
+// assertEquals(SESS_XA_SET_TIMEOUT_RESP, decodedMessage.getType());
+// assertEquals(ok, decodedMessage.isOK());
+// }
+//
+// public void testSessionXAStartMessage() throws Exception
+// {
+// Xid xid = this.generateXid();
+// SessionXAStartMessage message = new SessionXAStartMessage(xid);
+// AbstractPacketCodec codec = new SessionXAStartMessageCodec();
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+// assertTrue(decodedPacket instanceof SessionXAStartMessage);
+// SessionXAStartMessage decodedMessage = (SessionXAStartMessage)decodedPacket;
+// assertEquals(SESS_XA_START, decodedMessage.getType());
+// assertEquals(xid, decodedMessage.getXid());
+// }
+//
+// public void testSessionXASuspendMessage() throws Exception
+// {
+// PacketImpl message = new PacketImpl(SESS_XA_SUSPEND);
+//
+// AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
+// PacketType.SESS_XA_SUSPEND);
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// checkBodyIsEmpty(buffer);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertEquals(SESS_XA_SUSPEND, decodedPacket.getType());
+// }
+//
+//
+// public void testSessionRemoveAddressMessage() throws Exception
+// {
+// SessionRemoveDestinationMessage message = new SessionRemoveDestinationMessage(randomString(), true);
+//
+// AbstractPacketCodec codec = new SessionRemoveDestinationMessageCodec();
+//
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionRemoveDestinationMessage);
+// SessionRemoveDestinationMessage decodedMessage = (SessionRemoveDestinationMessage)decodedPacket;
+// assertEquals(SESS_REMOVE_DESTINATION, decodedMessage.getType());
+//
+// assertEquals(message.getAddress(), decodedMessage.getAddress());
+// assertEquals(message.isTemporary(), decodedMessage.isTemporary());
+//
+// }
+//
+// public void testSessionCreateQueueRequest() throws Exception
+// {
+// SessionCreateQueueMessage message = new SessionCreateQueueMessage(randomString(), randomString(), randomString(), true, true);
+//
+// AbstractPacketCodec codec = new SessionCreateQueueMessageCodec();
+//
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionCreateQueueMessage);
+// SessionCreateQueueMessage decodedMessage = (SessionCreateQueueMessage)decodedPacket;
+// assertEquals(SESS_CREATEQUEUE, decodedMessage.getType());
+//
+// assertEquals(message.getAddress(), decodedMessage.getAddress());
+// assertEquals(message.getQueueName(), decodedMessage.getQueueName());
+// assertEquals(message.getFilterString(), decodedMessage.getFilterString());
+// assertEquals(message.isDurable(), decodedMessage.isDurable());
+// assertEquals(message.isTemporary(), decodedMessage.isDurable());
+//
+// }
+//
+// public void testSessionQueueQueryRequest() throws Exception
+// {
+// SessionQueueQueryMessage message = new SessionQueueQueryMessage(randomString());
+//
+// AbstractPacketCodec codec = new SessionQueueQueryMessageCodec();
+//
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionQueueQueryMessage);
+// SessionQueueQueryMessage decodedMessage = (SessionQueueQueryMessage)decodedPacket;
+// assertEquals(SESS_QUEUEQUERY, decodedMessage.getType());
+//
+// assertEquals(message.getQueueName(), decodedMessage.getQueueName());
+// }
+//
+// public void testSessionQueueQueryResponse() throws Exception
+// {
+// SessionQueueQueryResponseMessage message = new SessionQueueQueryResponseMessage(true, true, randomInt(), randomInt(), randomInt(),
+// randomString(), randomString());
+//
+// AbstractPacketCodec codec = new SessionQueueQueryResponseMessageCodec();
+//
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionQueueQueryResponseMessage);
+// SessionQueueQueryResponseMessage decodedMessage = (SessionQueueQueryResponseMessage)decodedPacket;
+// assertEquals(SESS_QUEUEQUERY_RESP, decodedMessage.getType());
+//
+// assertEquals(message.isExists(), decodedMessage.isExists());
+// assertEquals(message.isDurable(), decodedMessage.isDurable());
+// assertEquals(message.isTemporary(), decodedMessage.isTemporary());
+// assertEquals(message.getConsumerCount(), decodedMessage.getConsumerCount());
+// assertEquals(message.getMessageCount(), decodedMessage.getMessageCount());
+// assertEquals(message.getFilterString(), decodedMessage.getFilterString());
+// assertEquals(message.getAddress(), decodedMessage.getAddress());
+// }
+//
+// public void testSessionAddAddressMessage() throws Exception
+// {
+// SessionAddDestinationMessage message = new SessionAddDestinationMessage(randomString(), true);
+//
+// AbstractPacketCodec<SessionAddDestinationMessage> codec = new SessionAddDestinationMessageCodec();
+//
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionAddDestinationMessage);
+// SessionAddDestinationMessage decodedMessage = (SessionAddDestinationMessage)decodedPacket;
+// assertEquals(SESS_ADD_DESTINATION, decodedMessage.getType());
+//
+// assertEquals(message.getAddress(), decodedMessage.getAddress());
+// assertEquals(message.isTemporary(), decodedMessage.isTemporary());
+// }
+//
+// public void testSessionBindingQueryMessage() throws Exception
+// {
+// SessionBindingQueryMessage message = new SessionBindingQueryMessage(randomString());
+//
+// AbstractPacketCodec codec = new SessionBindingQueryMessageCodec();
+//
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionBindingQueryMessage);
+// SessionBindingQueryMessage decodedMessage = (SessionBindingQueryMessage)decodedPacket;
+// assertEquals(SESS_BINDINGQUERY, decodedMessage.getType());
+//
+// assertEquals(message.getAddress(), decodedMessage.getAddress());
+// }
+//
+// public void testSessionBindingQueryResponseMessage() throws Exception
+// {
+// boolean exists = true;
+// List<String> queueNames = new ArrayList<String>();
+// queueNames.add(randomString());
+// queueNames.add(randomString());
+// queueNames.add(randomString());
+// SessionBindingQueryResponseMessage message = new SessionBindingQueryResponseMessage(exists, queueNames);
+//
+// AbstractPacketCodec codec = new SessionBindingQueryResponseMessageCodec();
+//
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionBindingQueryResponseMessage);
+// SessionBindingQueryResponseMessage decodedMessage = (SessionBindingQueryResponseMessage)decodedPacket;
+// assertEquals(SESS_BINDINGQUERY_RESP, decodedMessage.getType());
+//
+// assertEquals(message.isExists(), decodedMessage.isExists());
+//
+// List<String> decodedNames = decodedMessage.getQueueNames();
+// assertEquals(queueNames.size(), decodedNames.size());
+// for (int i = 0; i < queueNames.size(); i++)
+// {
+// assertEquals(queueNames.get(i), decodedNames.get(i));
+// }
+// }
+//
+//
+// public void testDeleteQueueRequest() throws Exception
+// {
+// SessionDeleteQueueMessage message = new SessionDeleteQueueMessage(randomString());
+//
+// AbstractPacketCodec codec = new SessionDeleteQueueMessageCodec();
+//
+// SimpleRemotingBuffer buffer = encode(message, codec);
+// checkHeader(buffer, message);
+// buffer.rewind();
+//
+// Packet decodedPacket = codec.decode(buffer);
+//
+// assertTrue(decodedPacket instanceof SessionDeleteQueueMessage);
+// SessionDeleteQueueMessage decodedMessage = (SessionDeleteQueueMessage)decodedPacket;
+// assertEquals(SESS_DELETE_QUEUE, decodedMessage.getType());
+//
+// assertEquals(message.getQueueName(), decodedMessage.getQueueName());
+// }
+//
+//
- public void testBytesPacket() throws Exception
- {
- BytesPacket packet = new BytesPacket(randomBytes());
+ // Package protected ---------------------------------------------
- AbstractPacketCodec codec = new BytesPacketCodec();
- SimpleRemotingBuffer buffer = encode(packet, codec);
- checkHeader(buffer, packet);
- checkBody(buffer, packet.getBytes());
- buffer.rewind();
+ // Protected -----------------------------------------------------
- Packet decodedPacket = codec.decode(buffer);
+ // Private -------------------------------------------------------
- assertTrue(decodedPacket instanceof BytesPacket);
- BytesPacket p = (BytesPacket) decodedPacket;
-
- assertEquals(BYTES, p.getType());
- CodecAssert.assertEqualsByteArrays(packet.getBytes(), p.getBytes());
- }
-
- public void testCreateConnectionRequest() throws Exception
+ private RemotingBuffer encode(final Packet packet, final AbstractPacketCodec codec) throws Exception
{
- int version = randomInt();
- long remotingSessionID = randomLong();
- String clientVMID = randomString();
- String username = null;
- String password = null;
-
- CreateConnectionRequest request = new CreateConnectionRequest(version,
- remotingSessionID, clientVMID, username, password);
-
- AbstractPacketCodec<CreateConnectionRequest> codec = new CreateConnectionMessageCodec();
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBody(buffer, version, remotingSessionID, clientVMID, username, password);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof CreateConnectionRequest);
- CreateConnectionRequest decodedRequest = (CreateConnectionRequest) decodedPacket;
-
- assertEquals(CREATECONNECTION, decodedPacket.getType());
- assertEquals(request.getVersion(), decodedRequest.getVersion());
- assertEquals(request.getRemotingSessionID(), decodedRequest
- .getRemotingSessionID());
- assertEquals(request.getClientVMID(), decodedRequest.getClientVMID());
- assertEquals(request.getUsername(), decodedRequest.getUsername());
- assertEquals(request.getPassword(), decodedRequest.getPassword());
+ SimpleProtocolEncoderOutput out = new SimpleProtocolEncoderOutput();
+
+ codec.encode(packet, out);
+
+ Object encodedMessage = out.getEncodedMessage();
+
+ assertNotNull(encodedMessage);
+
+ log.info("encoded message is " + encodedMessage);
+
+ assertTrue(encodedMessage instanceof IoBuffer);
+
+ RemotingBuffer buff = new BufferWrapper((IoBuffer)encodedMessage);
+
+ return buff;
}
-
- public void testCreateConnectionResponse() throws Exception
- {
- CreateConnectionResponse response = new CreateConnectionResponse(randomLong());
-
- AbstractPacketCodec<CreateConnectionResponse> codec = new CreateConnectionResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(response, codec);
- checkHeader(buffer, response);
- checkBody(buffer, response.getConnectionTargetID());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof CreateConnectionResponse);
- CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
- assertEquals(CREATECONNECTION_RESP, decodedResponse.getType());
- assertEquals(response.getConnectionTargetID(), decodedResponse.getConnectionTargetID());
- }
-
- public void testCreateSessionRequest() throws Exception
- {
- //TODO test this more thoroughly
-
- ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(true, true, true);
-
- AbstractPacketCodec codec = new ConnectionCreateSessionMessageCodec();
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBody(buffer, request.isXA(), request.isAutoCommitSends(), request.isAutoCommitAcks());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof ConnectionCreateSessionMessage);
- ConnectionCreateSessionMessage decodedRequest = (ConnectionCreateSessionMessage) decodedPacket;
- assertEquals(CONN_CREATESESSION, decodedRequest.getType());
- assertEquals(request.isXA(), decodedRequest.isXA());
- assertEquals(request.isAutoCommitSends(), decodedRequest.isAutoCommitSends());
- assertEquals(request.isAutoCommitAcks(), decodedRequest.isAutoCommitAcks());
- assertEquals(request.isXA(), decodedRequest.isXA());
- }
-
- public void testCreateSessionResponse() throws Exception
- {
- ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(randomLong());
-
- AbstractPacketCodec codec = new ConnectionCreateSessionResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(response, codec);
- checkHeader(buffer, response);
- checkBody(buffer, response.getSessionID());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof ConnectionCreateSessionResponseMessage);
- ConnectionCreateSessionResponseMessage decodedResponse = (ConnectionCreateSessionResponseMessage) decodedPacket;
- assertEquals(CONN_CREATESESSION_RESP, decodedResponse.getType());
- assertEquals(response.getSessionID(), decodedResponse.getSessionID());
- }
-
- public void testSendMessage() throws Exception
- {
- ProducerSendMessage packet = new ProducerSendMessage(randomString(), new MessageImpl());
-
- AbstractPacketCodec codec = new ProducerSendMessageCodec();
- SimpleRemotingBuffer buffer = encode(packet, codec);
- checkHeader(buffer, packet);
- checkBody(buffer, packet.getAddress(), StreamUtils.toBytes(packet.getMessage()));
- buffer.rewind();
-
- Packet p = codec.decode(buffer);
-
- assertTrue(p instanceof ProducerSendMessage);
- ProducerSendMessage decodedPacket = (ProducerSendMessage) p;
- assertEquals(PROD_SEND, decodedPacket.getType());
- assertEquals(packet.getAddress(), decodedPacket.getAddress());
- assertEquals(packet.getMessage().getMessageID(), decodedPacket
- .getMessage().getMessageID());
- }
-
- public void testCreateConsumerRequest() throws Exception
- {
- String destination = "queue.testCreateConsumerRequest";
- SessionCreateConsumerMessage request = new SessionCreateConsumerMessage(destination,
- "color = 'red'", false, false, randomInt(), randomInt());
-
- AbstractPacketCodec codec = new SessionCreateConsumerMessageCodec();
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBody(buffer, request.getQueueName(), request
- .getFilterString(), request.isNoLocal(), request.isAutoDeleteQueue(), request.getWindowSize(), request.getMaxRate());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionCreateConsumerMessage);
- SessionCreateConsumerMessage decodedRequest = (SessionCreateConsumerMessage) decodedPacket;
- assertEquals(SESS_CREATECONSUMER, decodedRequest.getType());
- assertEquals(request.getQueueName(), decodedRequest.getQueueName());
- assertEquals(request.getFilterString(), decodedRequest.getFilterString());
- assertEquals(request.isNoLocal(), decodedRequest.isNoLocal());
- assertEquals(request.isAutoDeleteQueue(), decodedRequest.isAutoDeleteQueue());
- assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
- assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
- }
-
- public void testCreateConsumerResponse() throws Exception
- {
- SessionCreateConsumerResponseMessage response =
- new SessionCreateConsumerResponseMessage(randomLong(), randomInt());
-
- AbstractPacketCodec codec = new SessionCreateConsumerResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(response, codec);
- checkHeader(buffer, response);
- checkBody(buffer, response.getConsumerTargetID(), response.getWindowSize());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionCreateConsumerResponseMessage);
- SessionCreateConsumerResponseMessage decodedResponse = (SessionCreateConsumerResponseMessage) decodedPacket;
- assertEquals(SESS_CREATECONSUMER_RESP, decodedResponse.getType());
-
- assertEquals(response.getConsumerTargetID(), decodedResponse.getConsumerTargetID());
- assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
- }
- public void testCreateProducerRequest() throws Exception
- {
- String destination = "queue.testCreateProducerRequest";
- int windowSize = randomInt();
- int maxRate = randomInt();
- SessionCreateProducerMessage request = new SessionCreateProducerMessage(destination, windowSize, maxRate);
-
- AbstractPacketCodec codec = new SessionCreateProducerMessageCodec();
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBody(buffer, request.getAddress(), request.getWindowSize(), request.getMaxRate());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionCreateProducerMessage);
- SessionCreateProducerMessage decodedRequest = (SessionCreateProducerMessage) decodedPacket;
- assertEquals(SESS_CREATEPRODUCER, decodedRequest.getType());
- assertEquals(request.getAddress(), decodedRequest.getAddress());
- assertEquals(request.getWindowSize(), decodedRequest.getWindowSize());
- assertEquals(request.getMaxRate(), decodedRequest.getMaxRate());
- }
-
- public void testCreateProducerResponse() throws Exception
+ private Packet decode(final RemotingBuffer buffer, final AbstractPacketCodec codec, final int len) throws Exception
{
- SessionCreateProducerResponseMessage response =
- new SessionCreateProducerResponseMessage(randomLong(), randomInt(), randomInt());
-
- AbstractPacketCodec codec = new SessionCreateProducerResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(response, codec);
- checkHeader(buffer, response);
- checkBody(buffer, response.getProducerTargetID(), response.getWindowSize(), response.getMaxRate());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionCreateProducerResponseMessage);
- SessionCreateProducerResponseMessage decodedResponse = (SessionCreateProducerResponseMessage) decodedPacket;
- assertEquals(SESS_CREATEPRODUCER_RESP, decodedResponse.getType());
- assertEquals(response.getProducerTargetID(), decodedResponse.getProducerTargetID());
- assertEquals(response.getWindowSize(), decodedResponse.getWindowSize());
- assertEquals(response.getMaxRate(), decodedResponse.getMaxRate());
+ SimpleProtocolDencoderOutput out = new SimpleProtocolDencoderOutput();
+
+ int length = buffer.getInt();
+
+ assertEquals(len + HEADER_LENGTH, length);
+
+ byte type = buffer.get();
+
+ assertEquals(codec.getType().byteValue(), type);
+
+ codec.decode(buffer, out);
+
+ Object message = out.getMessage();
+
+ assertNotNull(message);
+
+ assertTrue(message instanceof Packet);
+
+ return (Packet)message;
}
-
- public void testStartConnectionMessage() throws Exception
- {
- PacketImpl packet = new PacketImpl(CONN_START);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- CONN_START);
- SimpleRemotingBuffer buffer = encode(packet, codec);
- checkHeader(buffer, packet);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(CONN_START, decodedPacket.getType());
- }
-
- public void testStopConnectionMessage() throws Exception
- {
- PacketImpl packet = new PacketImpl(CONN_STOP);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- CONN_STOP);
- SimpleRemotingBuffer buffer = encode(packet, codec);
- checkHeader(buffer, packet);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(CONN_STOP, decodedPacket.getType());
- }
-
- public void testConsumerFlowTokenMessage() throws Exception
- {
- ConsumerFlowTokenMessage message = new ConsumerFlowTokenMessage(10);
- AbstractPacketCodec codec = new ConsumerFlowTokenMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBody(buffer, message.getTokens());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof ConsumerFlowTokenMessage);
- ConsumerFlowTokenMessage decodedMessage = (ConsumerFlowTokenMessage) decodedPacket;
- assertEquals(CONS_FLOWTOKEN, decodedMessage.getType());
- assertEquals(message.getTokens(), decodedMessage.getTokens());
- }
- public void testProducerReceiveTokensMessage() throws Exception
+ private class SimpleProtocolEncoderOutput implements ProtocolEncoderOutput
{
- ProducerReceiveTokensMessage message = new ProducerReceiveTokensMessage(10);
- AbstractPacketCodec codec = new ProducerReceiveTokensMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBody(buffer, message.getTokens());
- buffer.rewind();
+ private Object encodedMessage;
+
+ public WriteFuture flush()
+ {
+ return null;
+ }
- Packet decodedPacket = codec.decode(buffer);
+ public void mergeAll()
+ {
+ }
- assertTrue(decodedPacket instanceof ProducerReceiveTokensMessage);
- ProducerReceiveTokensMessage decodedMessage = (ProducerReceiveTokensMessage) decodedPacket;
- assertEquals(PacketType.PROD_RECEIVETOKENS, decodedMessage.getType());
- assertEquals(message.getTokens(), decodedMessage.getTokens());
+ public void write(Object encodedMessage)
+ {
+ this.encodedMessage = encodedMessage;
+ }
+
+ public Object getEncodedMessage()
+ {
+ return this.encodedMessage;
+ }
+
}
-
- public void testDeliverMessage() throws Exception
- {
- Message msg = new MessageImpl();
- ConsumerDeliverMessage message = new ConsumerDeliverMessage(msg, randomLong());
-
- AbstractPacketCodec codec = new ConsumerDeliverMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBody(buffer, StreamUtils.toBytes(msg), message.getDeliveryID());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof ConsumerDeliverMessage);
- ConsumerDeliverMessage decodedMessage = (ConsumerDeliverMessage) decodedPacket;
- assertEquals(CONS_DELIVER, decodedMessage.getType());
- assertEquals(message.getMessage().getMessageID(), decodedMessage
- .getMessage().getMessageID());
- assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
- }
-
- public void testSessionAcknowledgeMessage() throws Exception
- {
- SessionAcknowledgeMessage message = new SessionAcknowledgeMessage(
- randomLong(), true);
-
- AbstractPacketCodec codec = new SessionAcknowledgeMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBody(buffer, message.getDeliveryID(), message.isAllUpTo());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionAcknowledgeMessage);
- SessionAcknowledgeMessage decodedMessage = (SessionAcknowledgeMessage) decodedPacket;
- assertEquals(SESS_ACKNOWLEDGE, decodedMessage.getType());
- assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
- assertEquals(message.isAllUpTo(), decodedMessage.isAllUpTo());
- }
-
- public void testSessionCancelMessage() throws Exception
- {
- SessionCancelMessage message = new SessionCancelMessage(randomLong(),
- true);
-
- AbstractPacketCodec codec = new SessionCancelMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBody(buffer, message.getDeliveryID(), message.isExpired());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionCancelMessage);
- SessionCancelMessage decodedMessage = (SessionCancelMessage) decodedPacket;
- assertEquals(SESS_CANCEL, decodedMessage.getType());
- assertEquals(message.getDeliveryID(), decodedMessage.getDeliveryID());
- assertEquals(message.isExpired(), decodedMessage.isExpired());
- }
-
- public void testSessionCommitMessage() throws Exception
- {
- PacketImpl message = new PacketImpl(SESS_COMMIT);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- SESS_COMMIT);
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBodyIsEmpty(buffer);
-
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_COMMIT, decodedPacket.getType());
- }
-
- public void testSessionRollbackMessage() throws Exception
- {
- PacketImpl message = new PacketImpl(SESS_ROLLBACK);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- SESS_ROLLBACK);
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBodyIsEmpty(buffer);
-
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_ROLLBACK, decodedPacket.getType());
- }
- public void testSessionRecoverMessage() throws Exception
+ private class SimpleProtocolDencoderOutput implements ProtocolDecoderOutput
{
- PacketImpl message = new PacketImpl(SESS_RECOVER);
+ private Object message;
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- SESS_RECOVER);
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBodyIsEmpty(buffer);
+ public void flush()
+ {
+ }
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_RECOVER, decodedPacket.getType());
+ public void write(Object message)
+ {
+ this.message = message;
+ }
+
+ public Object getMessage()
+ {
+ return message;
+ }
+
}
- public void testCloseMessage() throws Exception
- {
- PacketImpl message = new PacketImpl(CLOSE);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- CLOSE);
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(CLOSE, decodedPacket.getType());
- }
-
-
- public void testCreateBrowserRequest() throws Exception
- {
- String destination = "queue.testCreateBrowserRequest";
- SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(destination,
- "color = 'red'");
-
- AbstractPacketCodec codec = new SessionCreateBrowserMessageCodec();
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBody(buffer, request.getQueueName(), request.getFilterString());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionCreateBrowserMessage);
- SessionCreateBrowserMessage decodedRequest = (SessionCreateBrowserMessage) decodedPacket;
- assertEquals(SESS_CREATEBROWSER, decodedRequest.getType());
- assertEquals(request.getQueueName(), decodedRequest.getQueueName());
- assertEquals(request.getFilterString(), decodedRequest.getFilterString());
- }
-
- public void testCreateBrowserResponse() throws Exception
- {
- SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(randomLong());
-
- AbstractPacketCodec codec = new SessionCreateBrowserResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(response, codec);
- checkHeader(buffer, response);
- checkBody(buffer, response.getBrowserTargetID());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionCreateBrowserResponseMessage);
- SessionCreateBrowserResponseMessage decodedResponse = (SessionCreateBrowserResponseMessage) decodedPacket;
- assertEquals(SESS_CREATEBROWSER_RESP, decodedResponse.getType());
- assertEquals(response.getBrowserTargetID(), decodedResponse.getBrowserTargetID());
- }
-
- public void testBrowserResetMessage() throws Exception
- {
- PacketImpl message = new PacketImpl(SESS_BROWSER_RESET);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- SESS_BROWSER_RESET);
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_BROWSER_RESET, decodedPacket.getType());
- }
-
- public void testBrowserHasNextMessageRequest() throws Exception
- {
- PacketImpl request = new PacketImpl(SESS_BROWSER_HASNEXTMESSAGE);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- SESS_BROWSER_HASNEXTMESSAGE);
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_BROWSER_HASNEXTMESSAGE, decodedPacket.getType());
- }
-
- public void testBrowserHasNextMessageResponse() throws Exception
- {
- SessionBrowserHasNextMessageResponseMessage response = new SessionBrowserHasNextMessageResponseMessage(
- false);
- AbstractPacketCodec codec = new SessionBrowserHasNextMessageResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(response, codec);
- checkHeader(buffer, response);
- checkBody(buffer, response.hasNext());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionBrowserHasNextMessageResponseMessage);
- SessionBrowserHasNextMessageResponseMessage decodedResponse = (SessionBrowserHasNextMessageResponseMessage) decodedPacket;
- assertEquals(SESS_BROWSER_HASNEXTMESSAGE_RESP, decodedResponse.getType());
- assertEquals(response.hasNext(), decodedResponse.hasNext());
- }
-
- public void testBrowserNextMessageRequest() throws Exception
- {
- PacketImpl request = new PacketImpl(SESS_BROWSER_NEXTMESSAGE);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- SESS_BROWSER_NEXTMESSAGE);
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_BROWSER_NEXTMESSAGE, decodedPacket.getType());
- }
-
- public void testBrowserNextMessageResponse() throws Exception
- {
- Message msg = new MessageImpl();
- SessionBrowserNextMessageResponseMessage response = new SessionBrowserNextMessageResponseMessage(msg);
-
- AbstractPacketCodec codec = new SessionBrowserNextMessageResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(response, codec);
- checkHeader(buffer, response);
- checkBody(buffer, StreamUtils.toBytes(msg));
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionBrowserNextMessageResponseMessage);
- SessionBrowserNextMessageResponseMessage decodedResponse = (SessionBrowserNextMessageResponseMessage) decodedPacket;
- assertEquals(SESS_BROWSER_NEXTMESSAGE_RESP, decodedResponse.getType());
- assertEquals(response.getMessage().getMessageID(), decodedResponse
- .getMessage().getMessageID());
- }
-
- public void testBrowserNextMessageBlockRequest() throws Exception
- {
- SessionBrowserNextMessageBlockMessage request = new SessionBrowserNextMessageBlockMessage(
- randomLong());
-
- AbstractPacketCodec codec = new SessionBrowserNextMessageBlockMessageCodec();
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBody(buffer, request.getMaxMessages());
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionBrowserNextMessageBlockMessage);
- SessionBrowserNextMessageBlockMessage decodedRequest = (SessionBrowserNextMessageBlockMessage) decodedPacket;
- assertEquals(SESS_BROWSER_NEXTMESSAGEBLOCK, decodedPacket.getType());
- assertEquals(request.getMaxMessages(), decodedRequest.getMaxMessages());
- }
-
- public void testBrowserNextMessageBlockResponse() throws Exception
- {
- Message[] messages = new Message[] { new MessageImpl(), new MessageImpl() };
- SessionBrowserNextMessageBlockResponseMessage response = new SessionBrowserNextMessageBlockResponseMessage(
- messages);
-
- AbstractPacketCodec codec = new SessionBrowserNextMessageBlockResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(response, codec);
- checkHeader(buffer, response);
- checkBody(buffer, messages.length, SessionBrowserNextMessageBlockResponseMessageCodec
- .encode(messages));
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionBrowserNextMessageBlockResponseMessage);
- SessionBrowserNextMessageBlockResponseMessage decodedResponse = (SessionBrowserNextMessageBlockResponseMessage) decodedPacket;
- assertEquals(SESS_BROWSER_NEXTMESSAGEBLOCK_RESP, decodedResponse.getType());
- assertEquals(response.getMessages()[0].getMessageID(), decodedResponse
- .getMessages()[0].getMessageID());
- assertEquals(response.getMessages()[1].getMessageID(), decodedResponse
- .getMessages()[1].getMessageID());
- }
-
-
- public void testSesssionXACommitMessageOnePhase() throws Exception
- {
- this.testSessionXACommitMessage(true);
- }
-
- public void testSessionXACommitMessageNotOnePhase() throws Exception
- {
- this.testSessionXACommitMessage(false);
- }
-
- private void testSessionXACommitMessage(boolean onePhase) throws Exception
- {
- Xid xid = this.generateXid();
- SessionXACommitMessage message = new SessionXACommitMessage(xid, onePhase);
- AbstractPacketCodec codec = new SessionXACommitMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXACommitMessage);
- SessionXACommitMessage decodedMessage = (SessionXACommitMessage)decodedPacket;
- assertEquals(SESS_XA_COMMIT, decodedMessage.getType());
- assertEquals(xid, decodedMessage.getXid());
- assertEquals(onePhase, decodedMessage.isOnePhase());
- }
-
- public void testSessionXAEndMessageFailed() throws Exception
- {
- this.testSessionXAEndMessage(true);
- }
-
- public void testSessionXAEndMessageNotFailed() throws Exception
- {
- this.testSessionXACommitMessage(false);
- }
-
- private void testSessionXAEndMessage(boolean failed) throws Exception
- {
- Xid xid = this.generateXid();
- SessionXAEndMessage message = new SessionXAEndMessage(xid, failed);
- AbstractPacketCodec codec = new SessionXAEndMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAEndMessage);
- SessionXAEndMessage decodedMessage = (SessionXAEndMessage)decodedPacket;
- assertEquals(SESS_XA_END, decodedMessage.getType());
- assertEquals(xid, decodedMessage.getXid());
- assertEquals(failed, decodedMessage.isFailed());
- }
-
- public void testSessionXAForgetMessage() throws Exception
- {
- Xid xid = this.generateXid();
- SessionXAForgetMessage message = new SessionXAForgetMessage(xid);
- AbstractPacketCodec codec = new SessionXAForgetMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAForgetMessage);
- SessionXAForgetMessage decodedMessage = (SessionXAForgetMessage)decodedPacket;
- assertEquals(SESS_XA_FORGET, decodedMessage.getType());
- assertEquals(xid, decodedMessage.getXid());
- }
-
- public void testSessionXAGetInDoubtXidsMessage() throws Exception
- {
- PacketImpl request = new PacketImpl(SESS_XA_INDOUBT_XIDS);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- SESS_XA_INDOUBT_XIDS);
- SimpleRemotingBuffer buffer = encode(request, codec);
- checkHeader(buffer, request);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_XA_INDOUBT_XIDS, decodedPacket.getType());
- }
-
- public void testSessionGetInDoubtXidsResponse() throws Exception
- {
- final int numXids = 10;
- List<Xid> xids = new ArrayList<Xid>();
- for (int i = 0; i < numXids; i++)
- {
- xids.add(generateXid());
- }
-
- SessionXAGetInDoubtXidsResponseMessage message = new SessionXAGetInDoubtXidsResponseMessage(xids);
- AbstractPacketCodec codec = new SessionXAGetInDoubtXidsResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAGetInDoubtXidsResponseMessage);
- SessionXAGetInDoubtXidsResponseMessage decodedMessage = (SessionXAGetInDoubtXidsResponseMessage)decodedPacket;
- assertEquals(SESS_XA_INDOUBT_XIDS_RESP, decodedMessage.getType());
-
- List<Xid> decodedXids = decodedMessage.getXids();
- assertNotNull(decodedXids);
- assertEquals(xids.size(), decodedXids.size());
-
- for (int i = 0; i < numXids; i++)
- {
- assertEquals(xids.get(i), decodedXids.get(i));
- }
- }
-
- public void testSessionXAGetTimeoutMessage() throws Exception
- {
- PacketImpl message = new PacketImpl(SESS_XA_GET_TIMEOUT);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- PacketType.SESS_XA_GET_TIMEOUT);
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_XA_GET_TIMEOUT, decodedPacket.getType());
- }
-
- public void testSessionXAGetTimeoutResponse() throws Exception
- {
- final int timeout = RandomUtil.randomInt();
-
- SessionXAGetTimeoutResponseMessage message = new SessionXAGetTimeoutResponseMessage(timeout);
- AbstractPacketCodec codec = new SessionXAGetTimeoutResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAGetTimeoutResponseMessage);
- SessionXAGetTimeoutResponseMessage decodedMessage = (SessionXAGetTimeoutResponseMessage)decodedPacket;
- assertEquals(SESS_XA_GET_TIMEOUT_RESP, decodedMessage.getType());
-
- assertEquals(timeout, decodedMessage.getTimeoutSeconds());
- }
-
- public void testSessionXAJoinMessage() throws Exception
- {
- Xid xid = this.generateXid();
- SessionXAJoinMessage message = new SessionXAJoinMessage(xid);
- AbstractPacketCodec codec = new SessionXAJoinMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAJoinMessage);
- SessionXAJoinMessage decodedMessage = (SessionXAJoinMessage)decodedPacket;
- assertEquals(SESS_XA_JOIN, decodedMessage.getType());
- assertEquals(xid, decodedMessage.getXid());
- }
-
- public void testSessionXAPrepareMessage() throws Exception
- {
- Xid xid = this.generateXid();
- SessionXAPrepareMessage message = new SessionXAPrepareMessage(xid);
- AbstractPacketCodec codec = new SessionXAPrepareMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAPrepareMessage);
- SessionXAPrepareMessage decodedMessage = (SessionXAPrepareMessage)decodedPacket;
- assertEquals(SESS_XA_PREPARE, decodedMessage.getType());
- assertEquals(xid, decodedMessage.getXid());
- }
-
- public void testSessionXAResponseErrorNullString() throws Exception
- {
- testSessionXAResponse(true, true);
- }
-
- public void testSessionXAResponseErrorNotNullString() throws Exception
- {
- testSessionXAResponse(true, false);
- }
-
- public void testSessionXAResponseNoErrorNullString() throws Exception
- {
- testSessionXAResponse(false, true);
- }
-
- public void testSessionXAResponseNoErrorNotNullString() throws Exception
- {
- testSessionXAResponse(false, false);
- }
-
- private void testSessionXAResponse(boolean error, boolean nullString) throws Exception
- {
- int responseCode = RandomUtil.randomInt();
-
- String str = nullString ? null : RandomUtil.randomString();
-
- SessionXAResponseMessage message = new SessionXAResponseMessage(error, responseCode, str);
- AbstractPacketCodec codec = new SessionXAResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAResponseMessage);
- SessionXAResponseMessage decodedMessage = (SessionXAResponseMessage)decodedPacket;
- assertEquals(SESS_XA_RESP, decodedMessage.getType());
- assertEquals(error, decodedMessage.isError());
- assertEquals(responseCode, decodedMessage.getResponseCode());
- assertEquals(str, decodedMessage.getMessage());
- }
-
- public void testSessionXAResumeMessage() throws Exception
- {
- Xid xid = this.generateXid();
- SessionXAResumeMessage message = new SessionXAResumeMessage(xid);
- AbstractPacketCodec codec = new SessionXAResumeMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAResumeMessage);
- SessionXAResumeMessage decodedMessage = (SessionXAResumeMessage)decodedPacket;
- assertEquals(SESS_XA_RESUME, decodedMessage.getType());
- assertEquals(xid, decodedMessage.getXid());
- }
-
- public void testSessionXARollbackMessage() throws Exception
- {
- Xid xid = this.generateXid();
- SessionXARollbackMessage message = new SessionXARollbackMessage(xid);
- AbstractPacketCodec codec = new SessionXARollbackMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXARollbackMessage);
- SessionXARollbackMessage decodedMessage = (SessionXARollbackMessage)decodedPacket;
- assertEquals(SESS_XA_ROLLBACK, decodedMessage.getType());
- assertEquals(xid, decodedMessage.getXid());
- }
-
- public void testSessionXASetTimeoutMessage() throws Exception
- {
- final int timeout = RandomUtil.randomInt();
- SessionXASetTimeoutMessage message = new SessionXASetTimeoutMessage(timeout);
- AbstractPacketCodec codec = new SessionXASetTimeoutMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXASetTimeoutMessage);
- SessionXASetTimeoutMessage decodedMessage = (SessionXASetTimeoutMessage)decodedPacket;
- assertEquals(SESS_XA_SET_TIMEOUT, decodedMessage.getType());
- assertEquals(timeout, decodedMessage.getTimeoutSeconds());
- }
-
- public void testSessionXASetTimeoutResponseMessageOK() throws Exception
- {
- testSessionXASetTimeoutResponseMessage(true);
- }
-
- public void testSessionXASetTimeoutResponseMessageNotOK() throws Exception
- {
- testSessionXASetTimeoutResponseMessage(false);
- }
-
- private void testSessionXASetTimeoutResponseMessage(boolean ok) throws Exception
- {
- final int timeout = RandomUtil.randomInt();
- SessionXASetTimeoutResponseMessage message = new SessionXASetTimeoutResponseMessage(ok);
- AbstractPacketCodec codec = new SessionXASetTimeoutResponseMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXASetTimeoutResponseMessage);
- SessionXASetTimeoutResponseMessage decodedMessage = (SessionXASetTimeoutResponseMessage)decodedPacket;
- assertEquals(SESS_XA_SET_TIMEOUT_RESP, decodedMessage.getType());
- assertEquals(ok, decodedMessage.isOK());
- }
-
- public void testSessionXAStartMessage() throws Exception
- {
- Xid xid = this.generateXid();
- SessionXAStartMessage message = new SessionXAStartMessage(xid);
- AbstractPacketCodec codec = new SessionXAStartMessageCodec();
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
- assertTrue(decodedPacket instanceof SessionXAStartMessage);
- SessionXAStartMessage decodedMessage = (SessionXAStartMessage)decodedPacket;
- assertEquals(SESS_XA_START, decodedMessage.getType());
- assertEquals(xid, decodedMessage.getXid());
- }
-
- public void testSessionXASuspendMessage() throws Exception
- {
- PacketImpl message = new PacketImpl(SESS_XA_SUSPEND);
-
- AbstractPacketCodec codec = PacketCodecFactory.createCodecForEmptyPacket(
- PacketType.SESS_XA_SUSPEND);
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertEquals(SESS_XA_SUSPEND, decodedPacket.getType());
- }
-
-
- public void testSessionRemoveAddressMessage() throws Exception
- {
- SessionRemoveDestinationMessage message = new SessionRemoveDestinationMessage(randomString(), true);
-
- AbstractPacketCodec codec = new SessionRemoveDestinationMessageCodec();
-
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionRemoveDestinationMessage);
- SessionRemoveDestinationMessage decodedMessage = (SessionRemoveDestinationMessage)decodedPacket;
- assertEquals(SESS_REMOVE_DESTINATION, decodedMessage.getType());
-
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- assertEquals(message.isTemporary(), decodedMessage.isTemporary());
-
- }
-
- public void testSessionCreateQueueRequest() throws Exception
- {
- SessionCreateQueueMessage message = new SessionCreateQueueMessage(randomString(), randomString(), randomString(), true, true);
-
- AbstractPacketCodec codec = new SessionCreateQueueMessageCodec();
-
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionCreateQueueMessage);
- SessionCreateQueueMessage decodedMessage = (SessionCreateQueueMessage)decodedPacket;
- assertEquals(SESS_CREATEQUEUE, decodedMessage.getType());
-
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- assertEquals(message.getQueueName(), decodedMessage.getQueueName());
- assertEquals(message.getFilterString(), decodedMessage.getFilterString());
- assertEquals(message.isDurable(), decodedMessage.isDurable());
- assertEquals(message.isTemporary(), decodedMessage.isDurable());
-
- }
-
- public void testSessionQueueQueryRequest() throws Exception
- {
- SessionQueueQueryMessage message = new SessionQueueQueryMessage(randomString());
-
- AbstractPacketCodec codec = new SessionQueueQueryMessageCodec();
-
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionQueueQueryMessage);
- SessionQueueQueryMessage decodedMessage = (SessionQueueQueryMessage)decodedPacket;
- assertEquals(SESS_QUEUEQUERY, decodedMessage.getType());
-
- assertEquals(message.getQueueName(), decodedMessage.getQueueName());
- }
-
- public void testSessionQueueQueryResponse() throws Exception
- {
- SessionQueueQueryResponseMessage message = new SessionQueueQueryResponseMessage(true, true, randomInt(), randomInt(), randomInt(),
- randomString(), randomString());
-
- AbstractPacketCodec codec = new SessionQueueQueryResponseMessageCodec();
-
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionQueueQueryResponseMessage);
- SessionQueueQueryResponseMessage decodedMessage = (SessionQueueQueryResponseMessage)decodedPacket;
- assertEquals(SESS_QUEUEQUERY_RESP, decodedMessage.getType());
-
- assertEquals(message.isExists(), decodedMessage.isExists());
- assertEquals(message.isDurable(), decodedMessage.isDurable());
- assertEquals(message.isTemporary(), decodedMessage.isTemporary());
- assertEquals(message.getConsumerCount(), decodedMessage.getConsumerCount());
- assertEquals(message.getMessageCount(), decodedMessage.getMessageCount());
- assertEquals(message.getFilterString(), decodedMessage.getFilterString());
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- }
-
- public void testSessionAddAddressMessage() throws Exception
- {
- SessionAddDestinationMessage message = new SessionAddDestinationMessage(randomString(), true);
-
- AbstractPacketCodec<SessionAddDestinationMessage> codec = new SessionAddDestinationMessageCodec();
-
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionAddDestinationMessage);
- SessionAddDestinationMessage decodedMessage = (SessionAddDestinationMessage)decodedPacket;
- assertEquals(SESS_ADD_DESTINATION, decodedMessage.getType());
-
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- assertEquals(message.isTemporary(), decodedMessage.isTemporary());
- }
-
- public void testSessionBindingQueryMessage() throws Exception
- {
- SessionBindingQueryMessage message = new SessionBindingQueryMessage(randomString());
-
- AbstractPacketCodec codec = new SessionBindingQueryMessageCodec();
-
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionBindingQueryMessage);
- SessionBindingQueryMessage decodedMessage = (SessionBindingQueryMessage)decodedPacket;
- assertEquals(SESS_BINDINGQUERY, decodedMessage.getType());
-
- assertEquals(message.getAddress(), decodedMessage.getAddress());
- }
-
- public void testSessionBindingQueryResponseMessage() throws Exception
- {
- boolean exists = true;
- List<String> queueNames = new ArrayList<String>();
- queueNames.add(randomString());
- queueNames.add(randomString());
- queueNames.add(randomString());
- SessionBindingQueryResponseMessage message = new SessionBindingQueryResponseMessage(exists, queueNames);
-
- AbstractPacketCodec codec = new SessionBindingQueryResponseMessageCodec();
-
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionBindingQueryResponseMessage);
- SessionBindingQueryResponseMessage decodedMessage = (SessionBindingQueryResponseMessage)decodedPacket;
- assertEquals(SESS_BINDINGQUERY_RESP, decodedMessage.getType());
-
- assertEquals(message.isExists(), decodedMessage.isExists());
-
- List<String> decodedNames = decodedMessage.getQueueNames();
- assertEquals(queueNames.size(), decodedNames.size());
- for (int i = 0; i < queueNames.size(); i++)
- {
- assertEquals(queueNames.get(i), decodedNames.get(i));
- }
- }
-
-
- public void testDeleteQueueRequest() throws Exception
- {
- SessionDeleteQueueMessage message = new SessionDeleteQueueMessage(randomString());
-
- AbstractPacketCodec codec = new SessionDeleteQueueMessageCodec();
-
- SimpleRemotingBuffer buffer = encode(message, codec);
- checkHeader(buffer, message);
- buffer.rewind();
-
- Packet decodedPacket = codec.decode(buffer);
-
- assertTrue(decodedPacket instanceof SessionDeleteQueueMessage);
- SessionDeleteQueueMessage decodedMessage = (SessionDeleteQueueMessage)decodedPacket;
- assertEquals(SESS_DELETE_QUEUE, decodedMessage.getType());
-
- assertEquals(message.getQueueName(), decodedMessage.getQueueName());
- }
-
-
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- private SimpleRemotingBuffer encode(PacketImpl packet,
- AbstractPacketCodec codec) throws Exception
- {
- log.debug("encode " + packet);
-
- IoBuffer b = IoBuffer.allocate(256);
- b.setAutoExpand(true);
-
- SimpleRemotingBuffer buf = new SimpleRemotingBuffer(b);
-
- codec.encode(packet, buf);
- buf.flip();
-
- return buf;
- }
-
private final class SimpleRemotingBuffer extends BufferWrapper
{
@@ -1512,7 +1436,7 @@
buffer.flip();
}
- public void rewind() throws IOException
+ public void rewind()
{
buffer.rewind();
}
More information about the jboss-cvs-commits
mailing list