[jboss-cvs] JBoss Messaging SVN: r4066 - in trunk: src/main/org/jboss/messaging/core/remoting/impl/mina and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Apr 16 11:15:09 EDT 2008
Author: jmesnil
Date: 2008-04-16 11:15:09 -0400 (Wed, 16 Apr 2008)
New Revision: 4066
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/EmptyPacketCodec.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/MessagingCodec.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/SessionTestBase.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/transaction/impl/TransactionTest.java
trunk/tests/src/org/jboss/messaging/tests/util/RandomUtil.java
trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java
Log:
fixed MessagingCodec doDecode() method
uncommented and refactored PacketTypeTest tests
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/AbstractPacketCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -74,8 +74,6 @@
int messageLength = getBodyLength(packet) + HEADER_LENGTH;
- log.info("Message length is " + messageLength);
-
//The standard header fields
buf.putInt(messageLength);
buf.put(packet.getType().byteValue());
@@ -106,14 +104,16 @@
public static int getXidLength(final Xid xid)
{
- return 1 + 1 + xid.getBranchQualifier().length + 1 + xid.getGlobalTransactionId().length;
+ return INT_LENGTH + INT_LENGTH + xid.getBranchQualifier().length + INT_LENGTH + xid.getGlobalTransactionId().length;
}
- public boolean decode(final RemotingBuffer buffer, final ProtocolDecoderOutput out) throws Exception
+ public void decode(final RemotingBuffer buffer, final ProtocolDecoderOutput out) throws Exception
{
long correlationID = buffer.getLong();
long targetID = buffer.getLong();
long executorID = buffer.getLong();
+ if (executorID == -1)
+ executorID = targetID;
boolean oneWay = buffer.getBoolean();
Packet packet = decodeBody(buffer);
@@ -124,24 +124,22 @@
packet.setOneWay(oneWay);
out.write(packet);
-
- return false;
}
public PacketType getType()
{
return type;
}
-
- // Protected -----------------------------------------------------
- protected abstract int getBodyLength(P packet) throws Exception;
+ public abstract int getBodyLength(P packet) throws Exception;
+
+ // Protected -----------------------------------------------------
protected abstract void encodeBody(P packet, RemotingBuffer buf) throws Exception;
protected abstract Packet decodeBody(RemotingBuffer buffer) throws Exception;
- protected static void encodeXid(final Xid xid, final RemotingBuffer out)
+ public static void encodeXid(final Xid xid, final RemotingBuffer out)
{
out.putInt(xid.getFormatId());
out.putInt(xid.getBranchQualifier().length);
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/BytesPacketCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final BytesPacket packet)
+ public int getBodyLength(final BytesPacket packet)
{
return INT_LENGTH + packet.getBytes().length;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final ConnectionCreateSessionMessage packet)
+ public int getBodyLength(final ConnectionCreateSessionMessage packet)
{
return 3 * BOOLEAN_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConnectionCreateSessionResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -33,7 +33,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final ConnectionCreateSessionResponseMessage packet)
+ public int getBodyLength(final ConnectionCreateSessionResponseMessage packet)
{
return LONG_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerDeliverMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -39,7 +39,7 @@
//TODO - remove this when in next stage of refactoring
private byte[] encodedMsg;
- protected int getBodyLength(final ConsumerDeliverMessage packet) throws Exception
+ public int getBodyLength(final ConsumerDeliverMessage packet) throws Exception
{
encodedMsg = StreamUtils.toBytes(packet.getMessage());
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ConsumerFlowTokenMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -33,7 +33,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final ConsumerFlowTokenMessage packet) throws Exception
+ public int getBodyLength(final ConsumerFlowTokenMessage packet) throws Exception
{
return INT_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -33,7 +33,7 @@
// AbstractPackedCodec overrides----------------------------------
- protected int getBodyLength(final CreateConnectionRequest packet) throws Exception
+ public int getBodyLength(final CreateConnectionRequest packet) throws Exception
{
int bodyLength = INT_LENGTH // version
+ LONG_LENGTH +
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/CreateConnectionResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -33,7 +33,7 @@
// AbstractPackedCodec overrides----------------------------------
- protected int getBodyLength(final CreateConnectionResponse packet) throws Exception
+ public int getBodyLength(final CreateConnectionResponse packet) throws Exception
{
return LONG_LENGTH;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/EmptyPacketCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/EmptyPacketCodec.java 2008-04-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/EmptyPacketCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -33,7 +33,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final PacketImpl packet)
+ public int getBodyLength(final PacketImpl packet)
{
return 0;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/MessagingExceptionMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final MessagingExceptionMessage packet) throws Exception
+ public int getBodyLength(final MessagingExceptionMessage packet) throws Exception
{
return INT_LENGTH + sizeof(packet.getException().getMessage());
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PingCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final Ping packet) throws Exception
+ public int getBodyLength(final Ping packet) throws Exception
{
return LONG_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/PongCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final Pong packet) throws Exception
+ public int getBodyLength(final Pong packet) throws Exception
{
return LONG_LENGTH + BOOLEAN_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerReceiveTokensMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final ProducerReceiveTokensMessage packet) throws Exception
+ public int getBodyLength(final ProducerReceiveTokensMessage packet) throws Exception
{
return INT_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/ProducerSendMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -42,7 +42,7 @@
//TOD remove this in next stage of refactoring
private byte[] encodedMsg;
- protected int getBodyLength(final ProducerSendMessage packet) throws Exception
+ public int getBodyLength(final ProducerSendMessage packet) throws Exception
{
encodedMsg = StreamUtils.toBytes(packet.getMessage());
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/RemotingBuffer.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -49,4 +49,6 @@
void rewind();
+ byte[] array();
+
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAcknowledgeMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -7,9 +7,7 @@
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;
/**
*
@@ -38,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionAcknowledgeMessage packet) throws Exception
+ public int getBodyLength(final SessionAcknowledgeMessage packet) throws Exception
{
return LONG_LENGTH + 1;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionAddDestinationMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionAddDestinationMessage packet) throws Exception
+ public int getBodyLength(final SessionAddDestinationMessage packet) throws Exception
{
return sizeof(packet.getAddress()) + BOOLEAN_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionBindingQueryMessage packet) throws Exception
+ public int getBodyLength(final SessionBindingQueryMessage packet) throws Exception
{
return sizeof(packet.getAddress());
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBindingQueryResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -39,7 +39,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionBindingQueryResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionBindingQueryResponseMessage packet) throws Exception
{
List<String> queueNames = packet.getQueueNames();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserHasNextMessageResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionBrowserHasNextMessageResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionBrowserHasNextMessageResponseMessage packet) throws Exception
{
return BOOLEAN_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -33,7 +33,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionBrowserNextMessageBlockMessage packet) throws Exception
+ public int getBodyLength(final SessionBrowserNextMessageBlockMessage packet) throws Exception
{
return LONG_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageBlockResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -58,7 +58,7 @@
//TODO remove this in next refactoring
private byte[] encodedMsgs;
- protected int getBodyLength(final SessionBrowserNextMessageBlockResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionBrowserNextMessageBlockResponseMessage packet) throws Exception
{
Message[] messages = packet.getMessages();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionBrowserNextMessageResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -39,9 +39,9 @@
//TODO remove this in next refactoring
private byte[] encodedMsg;
- protected int getBodyLength(final SessionBrowserNextMessageResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionBrowserNextMessageResponseMessage packet) throws Exception
{
- byte[] encodedMsg = StreamUtils.toBytes(packet.getMessage());
+ encodedMsg = StreamUtils.toBytes(packet.getMessage());
int bodyLength = INT_LENGTH + encodedMsg.length;
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCancelMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -35,7 +35,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionCancelMessage packet) throws Exception
+ public int getBodyLength(final SessionCancelMessage packet) throws Exception
{
return LONG_LENGTH + 1;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionCreateBrowserMessage packet) throws Exception
+ public int getBodyLength(final SessionCreateBrowserMessage packet) throws Exception
{
String queueName = packet.getQueueName();
String filterString = packet.getFilterString();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateBrowserResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionCreateBrowserResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionCreateBrowserResponseMessage packet) throws Exception
{
return LONG_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionCreateConsumerMessage packet) throws Exception
+ public int getBodyLength(final SessionCreateConsumerMessage packet) throws Exception
{
int bodyLength = sizeof(packet.getQueueName()) +
sizeof(packet.getFilterString()) + 2 * BOOLEAN_LENGTH + 2 * INT_LENGTH;
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateConsumerResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionCreateConsumerResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionCreateConsumerResponseMessage packet) throws Exception
{
return LONG_LENGTH + INT_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,7 +37,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionCreateProducerMessage packet) throws Exception
+ public int getBodyLength(final SessionCreateProducerMessage packet) throws Exception
{
String address = packet.getAddress();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateProducerResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,7 +37,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionCreateProducerResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionCreateProducerResponseMessage packet) throws Exception
{
return LONG_LENGTH + 2 * INT_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionCreateQueueMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionCreateQueueMessage packet) throws Exception
+ public int getBodyLength(final SessionCreateQueueMessage packet) throws Exception
{
String address = packet.getAddress();
String queueName = packet.getQueueName();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionDeleteQueueMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionDeleteQueueMessage packet) throws Exception
+ public int getBodyLength(final SessionDeleteQueueMessage packet) throws Exception
{
String queueName = packet.getQueueName();
int bodyLength = sizeof(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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionQueueQueryMessage packet) throws Exception
+ public int getBodyLength(final SessionQueueQueryMessage packet) throws Exception
{
String queueName = packet.getQueueName();
int bodyLength = sizeof(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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionQueueQueryResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionQueueQueryResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionQueueQueryResponseMessage packet) throws Exception
{
String filterString = packet.getFilterString();
String address = packet.getAddress();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionRemoveDestinationMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionRemoveDestinationMessage packet) throws Exception
+ public int getBodyLength(final SessionRemoveDestinationMessage packet) throws Exception
{
String address = packet.getAddress();
int bodyLength = sizeof(address) + BOOLEAN_LENGTH;
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXACommitMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,27 +37,26 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXACommitMessage packet) throws Exception
+ public int getBodyLength(final SessionXACommitMessage packet) throws Exception
{
- int bodyLength = BOOLEAN_LENGTH + getXidLength(packet.getXid());
+ int bodyLength = getXidLength(packet.getXid()) + BOOLEAN_LENGTH;
return bodyLength;
}
@Override
protected void encodeBody(final SessionXACommitMessage message, final RemotingBuffer out) throws Exception
{
- out.putBoolean(message.isOnePhase());
encodeXid(message.getXid(), out);
+ out.putBoolean(message.isOnePhase());
}
@Override
protected SessionXACommitMessage decodeBody(final RemotingBuffer in)
throws Exception
{
- boolean onePhase = in.getBoolean();
-
Xid xid = decodeXid(in);
-
+ boolean onePhase = in.getBoolean();
+
return new SessionXACommitMessage(xid, onePhase);
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAEndMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,9 +37,9 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAEndMessage packet) throws Exception
+ public int getBodyLength(final SessionXAEndMessage packet) throws Exception
{
- int bodyLength = BOOLEAN_LENGTH + getXidLength(packet.getXid());
+ int bodyLength = getXidLength(packet.getXid()) + BOOLEAN_LENGTH;
return bodyLength;
}
@@ -48,18 +48,16 @@
{
Xid xid = message.getXid();
+ encodeXid(xid, out);
out.putBoolean(message.isFailed());
-
- encodeXid(xid, out);
}
@Override
protected SessionXAEndMessage decodeBody(final RemotingBuffer in) throws Exception
{
+ Xid xid = decodeXid(in);
boolean failed = in.getBoolean();
- Xid xid = decodeXid(in);
-
return new SessionXAEndMessage(xid, failed);
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAForgetMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,7 +37,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAForgetMessage packet) throws Exception
+ public int getBodyLength(final SessionXAForgetMessage packet) throws Exception
{
int bodyLength = getXidLength(packet.getXid());
return bodyLength;
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetInDoubtXidsResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,14 +34,14 @@
public SessionXAGetInDoubtXidsResponseMessageCodec()
{
- super(PacketType.SESS_XA_INDOUBT_XIDS);
+ super(PacketType.SESS_XA_INDOUBT_XIDS_RESP);
}
// Public --------------------------------------------------------
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAGetInDoubtXidsResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionXAGetInDoubtXidsResponseMessage packet) throws Exception
{
int bodyLength = INT_LENGTH;
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAGetTimeoutResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAGetTimeoutResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionXAGetTimeoutResponseMessage packet) throws Exception
{
return INT_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAJoinMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,7 +37,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAJoinMessage packet) throws Exception
+ public int getBodyLength(final SessionXAJoinMessage packet) throws Exception
{
Xid xid = packet.getXid();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAPrepareMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,7 +37,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAPrepareMessage packet) throws Exception
+ public int getBodyLength(final SessionXAPrepareMessage packet) throws Exception
{
Xid xid = packet.getXid();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -36,7 +36,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionXAResponseMessage packet) throws Exception
{
int bodyLength = BOOLEAN_LENGTH + INT_LENGTH + sizeof(packet.getMessage());
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAResumeMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,7 +37,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAResumeMessage packet) throws Exception
+ public int getBodyLength(final SessionXAResumeMessage packet) throws Exception
{
Xid xid = packet.getXid();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXARollbackMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -30,7 +30,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXARollbackMessage packet) throws Exception
+ public int getBodyLength(final SessionXARollbackMessage packet) throws Exception
{
Xid xid = packet.getXid();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -35,7 +35,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXASetTimeoutMessage packet) throws Exception
+ public int getBodyLength(final SessionXASetTimeoutMessage packet) throws Exception
{
return INT_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXASetTimeoutResponseMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -35,7 +35,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXASetTimeoutResponseMessage packet) throws Exception
+ public int getBodyLength(final SessionXASetTimeoutResponseMessage packet) throws Exception
{
return BOOLEAN_LENGTH;
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/SessionXAStartMessageCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -37,7 +37,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final SessionXAStartMessage packet) throws Exception
+ public int getBodyLength(final SessionXAStartMessage packet) throws Exception
{
Xid xid = packet.getXid();
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/codec/TextPacketCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -34,7 +34,7 @@
// AbstractPacketCodec overrides ---------------------------------
- protected int getBodyLength(final TextPacket packet) throws Exception
+ public int getBodyLength(final TextPacket packet) throws Exception
{
return sizeof(packet.getText());
}
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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/BufferWrapper.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -53,6 +53,11 @@
// RemotingBuffer implementation ----------------------------------------------
+ public byte[] array()
+ {
+ return buffer.array();
+ }
+
public int remaining()
{
return buffer.remaining();
@@ -158,6 +163,11 @@
{
buffer.rewind();
}
+
+ public void flip()
+ {
+ buffer.flip();
+ }
// Package 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-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/FilterChainSupport.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -7,6 +7,7 @@
package org.jboss.messaging.core.remoting.impl.mina;
import static org.apache.mina.common.IdleStatus.BOTH_IDLE;
+import static org.apache.mina.common.IdleStatus.READER_IDLE;
import static org.apache.mina.filter.keepalive.KeepAliveRequestTimeoutHandler.EXCEPTION;
import static org.apache.mina.filter.logging.LogLevel.TRACE;
import static org.apache.mina.filter.logging.LogLevel.WARN;
@@ -17,6 +18,7 @@
import javax.net.ssl.SSLContext;
import org.apache.mina.common.DefaultIoFilterChainBuilder;
+import org.apache.mina.common.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.keepalive.KeepAliveFilter;
import org.apache.mina.filter.logging.LoggingFilter;
@@ -70,9 +72,12 @@
+ ", keepAliveInterval=" + keepAliveInterval);
}
- filterChain.addLast("keep-alive", new KeepAliveFilter(
- new MinaKeepAliveFactory(factory, notifier), BOTH_IDLE, EXCEPTION, keepAliveInterval,
- keepAliveTimeout));
+ // FIXME: IdleStatus.BOTH_IDLE should be used but it is buggy: https://issues.apache.org/jira/browse/DIRMINA-569
+ KeepAliveFilter filter = new KeepAliveFilter(
+ new MinaKeepAliveFactory(factory, notifier), READER_IDLE, EXCEPTION, keepAliveInterval,
+ keepAliveTimeout);
+ filter.setForwardEvent(true);
+ filterChain.addLast("keep-alive", filter);
}
public static void addSSLFilter(
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java 2008-04-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MessagingCodec.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -59,36 +59,44 @@
protected boolean doDecode(final IoSession session, final IoBuffer in, final ProtocolDecoderOutput out) throws Exception
{
- if (in.remaining() > AbstractPacketCodec.INT_LENGTH)
+ int start = in.position();
+
+ if (in.remaining() <= AbstractPacketCodec.INT_LENGTH)
{
- int length = in.getInt();
-
- log.info("length is " + length);
-
- if (in.remaining() < length)
- {
- //Need more data
- return true;
- }
+ in.position(start);
+ return false;
}
- else
+
+ int length = in.getInt();
+
+ if (in.remaining() < length)
{
- //Need more data
- return true;
+ in.position(start);
+ return false;
}
-
- byte packetType = in.get();
- log.info("packet type is " + packetType);
+ int limit = in.limit();
+ in.limit(in.position() + length);
+ byte byteType = in.get();
+ PacketType packetType = PacketType.from(byteType);
- AbstractPacketCodec codec = codecs.get(packetType);
-
- if (codec == null)
- {
- throw new IllegalStateException("no encoder has been registered for " + packetType);
- }
-
- return codec.decode(new BufferWrapper(in), out);
+ try
+ {
+ AbstractPacketCodec codec = codecs.get(packetType);
+
+ if (codec == null)
+ {
+ throw new IllegalStateException("no encoder has been registered for " + packetType);
+ }
+
+ codec.decode(new BufferWrapper(in.slice()), out);
+ return true;
+ } finally
+ {
+ in.position(in.limit());
+ in.limit(limit);
+ }
+
}
// Public --------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java 2008-04-16 09:23:02 UTC (rev 4065)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/SessionXACommitMessage.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -33,7 +33,6 @@
super(PacketType.SESS_XA_COMMIT);
this.xid = xid;
-
this.onePhase = onePhase;
}
@@ -48,6 +47,12 @@
{
return onePhase;
}
+
+ @Override
+ public String toString()
+ {
+ return getParentString() + ", xid=" + xid + ", onePhae=" + onePhase + "]";
+ }
// Package protected ---------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/SessionTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/SessionTestBase.java 2008-04-16 09:23:02 UTC (rev 4065)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/SessionTestBase.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -17,12 +17,14 @@
import junit.framework.TestCase;
import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.NIOConnector;
import org.jboss.messaging.core.remoting.NIOSession;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.PacketSender;
import org.jboss.messaging.tests.integration.core.remoting.mina.ReversePacketHandler;
import org.jboss.messaging.tests.unit.core.remoting.TestPacketHandler;
+import org.jboss.messaging.core.remoting.impl.codec.AbstractPacketCodec;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.TextPacket;
import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
@@ -36,6 +38,8 @@
{
// Constants -----------------------------------------------------
+ private static final Logger log = Logger.getLogger(SessionTestBase.class);
+
// Attributes ----------------------------------------------------
protected ReversePacketHandler serverPacketHandler;
@@ -69,7 +73,7 @@
{
serverPacketHandler.expectMessage(1);
- TextPacket packet = new TextPacket("testSendOneWay");
+ TextPacket packet = new TextPacket("testWrite");
packet.setTargetID(serverPacketHandler.getID());
session.write(packet);
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java 2008-04-16 09:23:02 UTC (rev 4065)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/CodecAssert.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -6,10 +6,12 @@
*/
package org.jboss.messaging.tests.unit.core.remoting.impl.wireformat;
+import java.util.List;
+
+import javax.transaction.xa.Xid;
+
import junit.framework.Assert;
-import org.jboss.messaging.core.transaction.impl.XidImpl;
-
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
*
@@ -24,13 +26,16 @@
// Static --------------------------------------------------------
- static void assertSameXids(XidImpl[] expected, XidImpl[] actual)
+ static void assertSameXids(List<Xid> expected, List<Xid> actual)
{
- assertEquals(expected.length, actual.length);
- for (int i = 0; i < expected.length; i++)
+ assertNotNull(expected);
+ assertNotNull(actual);
+ assertEquals(expected.size(), actual.size());
+
+ for (int i = 0; i < expected.size(); i++)
{
- XidImpl expectedXid = expected[i];
- XidImpl actualXid = actual[i];
+ Xid expectedXid = expected.get(i);
+ Xid actualXid = actual.get(i);
assertEqualsByteArrays(expectedXid.getBranchQualifier(), actualXid
.getBranchQualifier());
assertEquals(expectedXid.getFormatId(), actualXid.getFormatId());
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-16 09:23:02 UTC (rev 4065)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/wireformat/PacketTypeTest.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -8,30 +8,183 @@
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.LONG_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.codec.AbstractPacketCodec.encodeXid;
+import static org.jboss.messaging.core.remoting.impl.mina.PacketCodecFactory.createCodecForEmptyPacket;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.BYTES;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CLOSE;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_START;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONN_STOP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.CONS_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.NULL;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PING;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PONG;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.PROD_RECEIVETOKENS;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.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_RESP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEPRODUCER_RESP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_CREATEQUEUE;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_DELETE_QUEUE;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_QUEUEQUERY_RESP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_RECOVER;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_REMOVE_DESTINATION;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_ROLLBACK;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_COMMIT;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_END;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_FORGET;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_GET_TIMEOUT_RESP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_INDOUBT_XIDS_RESP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_JOIN;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_PREPARE;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_RESP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_RESUME;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_ROLLBACK;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SET_TIMEOUT;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SET_TIMEOUT_RESP;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_START;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.SESS_XA_SUSPEND;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketType.TEXT;
import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertEqualsByteArrays;
+import static org.jboss.messaging.tests.unit.core.remoting.impl.wireformat.CodecAssert.assertSameXids;
+import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
+import static org.jboss.messaging.tests.util.RandomUtil.randomBytes;
+import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+import static org.jboss.messaging.tests.util.RandomUtil.randomXid;
-import 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.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.PacketImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketType;
+import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
+import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
+import org.jboss.messaging.core.remoting.impl.wireformat.ProducerReceiveTokensMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.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.UnitTestCase;
+import org.jboss.messaging.util.StreamUtils;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -52,9 +205,10 @@
// Static --------------------------------------------------------
- private static ByteBuffer encode(int length, Object... args)
+ private static RemotingBuffer encode(int length, Object... args)
+ throws Exception
{
- ByteBuffer buffer = ByteBuffer.allocate(length);
+ BufferWrapper buffer = new BufferWrapper(IoBuffer.allocate(length));
for (Object arg : args)
{
if (arg instanceof Byte)
@@ -70,9 +224,9 @@
else if (arg instanceof Float)
buffer.putFloat(((Float) arg).floatValue());
else if (arg instanceof String)
- putNullableString((String) arg, buffer);
+ buffer.putNullableString((String) arg);
else if (arg == null)
- putNullableString(null, buffer);
+ buffer.putNullableString(null);
else if (arg instanceof byte[])
{
byte[] b = (byte[]) arg;
@@ -85,6 +239,23 @@
{
buffer.putLong(l);
}
+ } else if (arg instanceof List)
+ {
+ List argsInList = (List) arg;
+ buffer.putInt(argsInList.size());
+ for (Object argInList : argsInList)
+ {
+ if (argInList instanceof String)
+ buffer.putNullableString((String) argInList);
+ else if (argInList instanceof Xid)
+ encodeXid((Xid)argInList, buffer);
+ else
+ fail ("no encoding defined for " + arg + " in List");
+ }
+ } else if (arg instanceof Xid)
+ {
+ Xid xid = (Xid) arg;
+ encodeXid(xid, buffer);
} else
{
fail("no encoding defined for " + arg);
@@ -94,27 +265,14 @@
return buffer;
}
- private static void putNullableString(String string, ByteBuffer buffer)
- {
- if (string == null)
- {
- buffer.put(NULL_STRING);
- } else
- {
- buffer.put(NOT_NULL_STRING);
- UTF_8_ENCODER.reset();
- UTF_8_ENCODER.encode(CharBuffer.wrap(string), buffer, true);
- buffer.put(NULL_BYTE);
- }
- }
-
private static void checkHeader(final RemotingBuffer buffer,
- final PacketImpl packet,
- final int bodyLength) throws Exception
+ final Packet packet, final int bodyLength) throws Exception
{
- buffer.rewind();
- assertEquals(AbstractPacketCodec.HEADER_LENGTH + bodyLength, buffer.getInt());
-
+ buffer.rewind();
+ int messageLength = buffer.getInt();
+ assertEquals(AbstractPacketCodec.HEADER_LENGTH + bodyLength,
+ messageLength);
+
assertEquals(buffer.get(), packet.getType().byteValue());
long correlationID = buffer.getLong();
@@ -128,21 +286,75 @@
assertEquals(oneWay, packet.isOneWay());
}
- private static void checkBodyIsEmpty(RemotingBuffer buffer)
+ private static void checkBody(RemotingBuffer buffer, int bodyLength,
+ Object... bodyObjects) throws Exception
{
- assertEquals(0, buffer.remaining());
- }
-
- private static void checkBody(RemotingBuffer buffer, Object... bodyObjects)
- {
- byte[] actualBody = new byte[buffer.getInt()];
+ byte[] actualBody = new byte[bodyLength];
buffer.get(actualBody);
- ByteBuffer expectedBody = encode(actualBody.length, bodyObjects);
+ RemotingBuffer expectedBody = encode(actualBody.length, bodyObjects);
assertEqualsByteArrays(expectedBody.array(), actualBody);
// check the buffer has been wholly read
assertEquals(0, buffer.remaining());
}
+ private static Packet encodeAndCheckBytesAndDecode(Packet packet,
+ AbstractPacketCodec codec, Object... bodyObjects) throws Exception
+ {
+ RemotingBuffer buffer = encode(packet, codec);
+ int bodyLength = codec.getBodyLength(packet);
+ checkHeader(buffer, packet, bodyLength);
+ checkBody(buffer, bodyLength, bodyObjects);
+ buffer.rewind();
+
+ Packet decodedPacket = decode(buffer, codec, bodyLength);
+ return decodedPacket;
+ }
+
+ private static RemotingBuffer encode(final Packet packet,
+ final AbstractPacketCodec<Packet> codec) throws Exception
+ {
+ 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;
+ }
+
+ private static Packet decode(final RemotingBuffer buffer,
+ final AbstractPacketCodec<Packet> codec, final int len)
+ throws Exception
+ {
+ SimpleProtocolDencoderOutput out = new SimpleProtocolDencoderOutput();
+
+ int length = buffer.getInt();
+
+ assertEquals(len + HEADER_LENGTH, length);
+
+ byte type = buffer.get();
+
+ assertEquals(codec.getType().byteValue(), type);
+
+ codec.decode(buffer, out);
+
+ Object message = out.getMessage();
+
+ assertNotNull(message);
+
+ assertTrue(message instanceof Packet);
+
+ return (Packet) message;
+ }
+
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
@@ -154,1296 +366,977 @@
packet.setCorrelationID(cid);
packet.setTargetID(randomLong());
packet.setExecutorID(randomLong());
-
- AbstractPacketCodec<?> codec = PacketCodecFactory
+ AbstractPacketCodec codec = PacketCodecFactory
.createCodecForEmptyPacket(NULL);
- RemotingBuffer buffer = encode(packet, codec);
- checkHeader(buffer, packet, 0);
- checkBodyIsEmpty(buffer);
- buffer.rewind();
- Packet decodedPacket = decode(buffer, codec, 0);
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec);
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();
-//
-// 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());
-// }
-//
-//
-
- // Package protected ---------------------------------------------
+ public void testPing() throws Exception
+ {
+ Ping ping = new Ping(randomLong());
+ int bodyLength = LONG_LENGTH;
+ AbstractPacketCodec<Ping> codec = new PingCodec();
- // Protected -----------------------------------------------------
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(ping, codec, ping
+ .getSessionID());
- // Private -------------------------------------------------------
+ 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());
+ }
- private RemotingBuffer encode(final Packet packet, final AbstractPacketCodec codec) throws Exception
+ public void testPong() throws Exception
{
- 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;
+ Pong pong = new Pong(randomLong(), true);
+ AbstractPacketCodec<Pong> codec = new PongCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(pong, codec, pong
+ .getSessionID(), pong.isSessionFailed());
+
+ assertTrue(decodedPacket instanceof Pong);
+ Pong decodedPong = (Pong) decodedPacket;
+ assertEquals(PONG, decodedPong.getType());
+ assertEquals(pong.getSessionID(), decodedPong.getSessionID());
+ assertEquals(pong.isSessionFailed(), decodedPong.isSessionFailed());
}
-
- private Packet decode(final RemotingBuffer buffer, final AbstractPacketCodec codec, final int len) throws Exception
+
+ public void testTextPacket() throws Exception
{
- 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;
+ TextPacket packet = new TextPacket("testTextPacket");
+ AbstractPacketCodec<TextPacket> codec = new TextPacketCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec, packet
+ .getText());
+
+ assertTrue(decodedPacket instanceof TextPacket);
+ TextPacket p = (TextPacket) decodedPacket;
+
+ assertEquals(TEXT, p.getType());
+ assertEquals(packet.getText(), p.getText());
}
-
- private class SimpleProtocolEncoderOutput implements ProtocolEncoderOutput
+
+ public void testBytesPacket() throws Exception
{
- private Object encodedMessage;
-
- public WriteFuture flush()
- {
- return null;
- }
+ BytesPacket packet = new BytesPacket(randomBytes());
+ AbstractPacketCodec<BytesPacket> codec = new BytesPacketCodec();
- public void mergeAll()
- {
- }
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec, packet
+ .getBytes());
- public void write(Object encodedMessage)
- {
- this.encodedMessage = encodedMessage;
- }
-
- public Object getEncodedMessage()
- {
- return this.encodedMessage;
- }
-
+ assertTrue(decodedPacket instanceof BytesPacket);
+ BytesPacket p = (BytesPacket) decodedPacket;
+
+ assertEquals(BYTES, p.getType());
+ assertEqualsByteArrays(packet.getBytes(), p.getBytes());
}
-
- private class SimpleProtocolDencoderOutput implements ProtocolDecoderOutput
+
+ public void testCreateConnectionRequest() throws Exception
{
- private Object message;
+ 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();
- public void flush()
- {
- }
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec,
+ version, remotingSessionID, clientVMID, username, password);
- public void write(Object message)
- {
- this.message = message;
- }
-
- public Object getMessage()
- {
- return message;
- }
-
+ 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());
}
- private final class SimpleRemotingBuffer extends BufferWrapper
+ public void testCreateConnectionResponse() throws Exception
{
+ CreateConnectionResponse response = new CreateConnectionResponse(
+ randomLong());
+ AbstractPacketCodec<CreateConnectionResponse> codec = new CreateConnectionResponseMessageCodec();
- public SimpleRemotingBuffer(IoBuffer buffer)
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, codec,
+ response.getConnectionTargetID());
+
+ assertTrue(decodedPacket instanceof CreateConnectionResponse);
+ CreateConnectionResponse decodedResponse = (CreateConnectionResponse) decodedPacket;
+ assertEquals(PacketType.CREATECONNECTION_RESP, decodedResponse.getType());
+ assertEquals(response.getConnectionTargetID(), decodedResponse
+ .getConnectionTargetID());
+ }
+
+ public void testConnectionCreateSessionMessage() throws Exception
+ {
+ ConnectionCreateSessionMessage request = new ConnectionCreateSessionMessage(
+ randomBoolean(), randomBoolean(), randomBoolean());
+ AbstractPacketCodec<ConnectionCreateSessionMessage> codec = new ConnectionCreateSessionMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec,
+ request.isXA(), request.isAutoCommitSends(), request
+ .isAutoCommitAcks());
+
+ assertTrue(decodedPacket instanceof ConnectionCreateSessionMessage);
+ ConnectionCreateSessionMessage decodedRequest = (ConnectionCreateSessionMessage) decodedPacket;
+ assertEquals(PacketType.CONN_CREATESESSION, decodedRequest.getType());
+ assertEquals(request.isXA(), decodedRequest.isXA());
+ assertEquals(request.isAutoCommitSends(), decodedRequest
+ .isAutoCommitSends());
+ assertEquals(request.isAutoCommitAcks(), decodedRequest
+ .isAutoCommitAcks());
+ }
+
+ public void testConnectionCreateSessionResponseMessage() throws Exception
+ {
+ ConnectionCreateSessionResponseMessage response = new ConnectionCreateSessionResponseMessage(
+ randomLong());
+ AbstractPacketCodec<ConnectionCreateSessionResponseMessage> codec = new ConnectionCreateSessionResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, codec,
+ response.getSessionID());
+
+ assertTrue(decodedPacket instanceof ConnectionCreateSessionResponseMessage);
+ ConnectionCreateSessionResponseMessage decodedResponse = (ConnectionCreateSessionResponseMessage) decodedPacket;
+ assertEquals(PacketType.CONN_CREATESESSION_RESP, decodedResponse
+ .getType());
+ assertEquals(response.getSessionID(), decodedResponse.getSessionID());
+ }
+
+ public void testProducerSendMessage() throws Exception
+ {
+ ProducerSendMessage packet = new ProducerSendMessage(randomString(),
+ new MessageImpl());
+ byte[] messageBytes = StreamUtils.toBytes(packet.getMessage());
+ AbstractPacketCodec codec = new ProducerSendMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec, packet
+ .getAddress(), StreamUtils.toBytes(packet.getMessage()));
+
+ assertTrue(decodedPacket instanceof ProducerSendMessage);
+ ProducerSendMessage decodedMessage = (ProducerSendMessage) decodedPacket;
+ assertEquals(PacketType.PROD_SEND, decodedPacket.getType());
+ assertEquals(packet.getAddress(), decodedMessage.getAddress());
+ assertEquals(packet.getMessage().getMessageID(), decodedMessage
+ .getMessage().getMessageID());
+ }
+
+ public void testSessionCreateConsumerMessage() throws Exception
+ {
+ String destination = "queue.SessionCreateConsumerMessage";
+ SessionCreateConsumerMessage request = new SessionCreateConsumerMessage(
+ destination, "color = 'red'", false, false, randomInt(),
+ randomInt());
+ AbstractPacketCodec codec = new SessionCreateConsumerMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec,
+ request.getQueueName(), request.getFilterString(), request
+ .isNoLocal(), request.isAutoDeleteQueue(), request
+ .getWindowSize(), request.getMaxRate());
+
+ assertTrue(decodedPacket instanceof SessionCreateConsumerMessage);
+ SessionCreateConsumerMessage decodedRequest = (SessionCreateConsumerMessage) decodedPacket;
+ assertEquals(PacketType.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 testSessionCreateConsumerResponseMessage() throws Exception
+ {
+ SessionCreateConsumerResponseMessage response = new SessionCreateConsumerResponseMessage(
+ randomLong(), randomInt());
+ AbstractPacketCodec codec = new SessionCreateConsumerResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, codec,
+ response.getConsumerTargetID(), response.getWindowSize());
+
+ 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 testSessionCreateProducerMessage() throws Exception
+ {
+ String destination = "queue.testSessionCreateProducerMessage";
+ int windowSize = randomInt();
+ int maxRate = randomInt();
+ SessionCreateProducerMessage request = new SessionCreateProducerMessage(
+ destination, windowSize, maxRate);
+ AbstractPacketCodec codec = new SessionCreateProducerMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec,
+ request.getAddress(), request.getWindowSize(), request.getMaxRate());
+
+ 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 testSessionCreateProducerResponseMessage() throws Exception
+ {
+ SessionCreateProducerResponseMessage response = new SessionCreateProducerResponseMessage(
+ randomLong(), randomInt(), randomInt());
+ AbstractPacketCodec codec = new SessionCreateProducerResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, codec,
+ response.getProducerTargetID(), response.getWindowSize(), response
+ .getMaxRate());
+
+ 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);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec);
+
+ assertEquals(CONN_START, decodedPacket.getType());
+ }
+
+ public void testStopConnectionMessage() throws Exception
+ {
+ PacketImpl packet = new PacketImpl(CONN_STOP);
+ AbstractPacketCodec codec = PacketCodecFactory
+ .createCodecForEmptyPacket(CONN_STOP);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(packet, codec);
+
+ assertEquals(CONN_STOP, decodedPacket.getType());
+ }
+
+ public void testConsumerFlowTokenMessage() throws Exception
+ {
+ ConsumerFlowTokenMessage message = new ConsumerFlowTokenMessage(
+ randomInt());
+ AbstractPacketCodec codec = new ConsumerFlowTokenMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getTokens());
+
+ 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(
+ randomInt());
+ AbstractPacketCodec codec = new ProducerReceiveTokensMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getTokens());
+
+ assertTrue(decodedPacket instanceof ProducerReceiveTokensMessage);
+ ProducerReceiveTokensMessage decodedMessage = (ProducerReceiveTokensMessage) decodedPacket;
+ assertEquals(PROD_RECEIVETOKENS, decodedMessage.getType());
+ assertEquals(message.getTokens(), decodedMessage.getTokens());
+ }
+
+ public void testConsumerDeliverMessage() throws Exception
+ {
+ Message msg = new MessageImpl();
+ ConsumerDeliverMessage message = new ConsumerDeliverMessage(msg,
+ randomLong());
+ AbstractPacketCodec codec = new ConsumerDeliverMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ StreamUtils.toBytes(msg), message.getDeliveryID());
+
+ 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(), randomBoolean());
+ AbstractPacketCodec codec = new SessionAcknowledgeMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getDeliveryID(), message.isAllUpTo());
+
+ 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(),
+ randomBoolean());
+ AbstractPacketCodec codec = new SessionCancelMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getDeliveryID(), message.isExpired());
+
+ 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);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec);
+
+ assertEquals(SESS_COMMIT, decodedPacket.getType());
+ }
+
+ public void testSessionRollbackMessage() throws Exception
+ {
+ PacketImpl message = new PacketImpl(SESS_ROLLBACK);
+ AbstractPacketCodec codec = PacketCodecFactory
+ .createCodecForEmptyPacket(SESS_ROLLBACK);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec);
+
+ assertEquals(SESS_ROLLBACK, decodedPacket.getType());
+ }
+
+ public void testSessionRecoverMessage() throws Exception
+ {
+ PacketImpl message = new PacketImpl(SESS_RECOVER);
+ AbstractPacketCodec codec = PacketCodecFactory
+ .createCodecForEmptyPacket(SESS_RECOVER);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec);
+
+ assertEquals(SESS_RECOVER, decodedPacket.getType());
+ }
+
+ public void testCloseMessage() throws Exception
+ {
+ PacketImpl message = new PacketImpl(CLOSE);
+ AbstractPacketCodec codec = PacketCodecFactory
+ .createCodecForEmptyPacket(CLOSE);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec);
+
+ assertEquals(CLOSE, decodedPacket.getType());
+ }
+
+ public void testSessionCreateBrowserMessage() throws Exception
+ {
+ String destination = "queue.testCreateBrowserRequest";
+ SessionCreateBrowserMessage request = new SessionCreateBrowserMessage(
+ destination, "color = 'red'");
+ AbstractPacketCodec codec = new SessionCreateBrowserMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec,
+ request.getQueueName(), request.getFilterString());
+
+ 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 testSessionCreateBrowserResponseMessage() throws Exception
+ {
+ SessionCreateBrowserResponseMessage response = new SessionCreateBrowserResponseMessage(
+ randomLong());
+ AbstractPacketCodec codec = new SessionCreateBrowserResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, codec,
+ response.getBrowserTargetID());
+
+ 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);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec);
+
+ 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);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec);
+
+ assertEquals(SESS_BROWSER_HASNEXTMESSAGE, decodedPacket.getType());
+ }
+
+ public void testSessionBrowserHasNextMessageResponseMessage()
+ throws Exception
+ {
+ SessionBrowserHasNextMessageResponseMessage response = new SessionBrowserHasNextMessageResponseMessage(
+ randomBoolean());
+ AbstractPacketCodec codec = new SessionBrowserHasNextMessageResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, codec,
+ response.hasNext());
+
+ 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);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec);
+
+ assertEquals(SESS_BROWSER_NEXTMESSAGE, decodedPacket.getType());
+ }
+
+ public void testSessionBrowserNextMessageResponseMessage() throws Exception
+ {
+ SessionBrowserNextMessageResponseMessage response = new SessionBrowserNextMessageResponseMessage(
+ new MessageImpl());
+ AbstractPacketCodec codec = new SessionBrowserNextMessageResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, codec,
+ StreamUtils.toBytes(response.getMessage()));
+
+ assertTrue(decodedPacket instanceof SessionBrowserNextMessageResponseMessage);
+ SessionBrowserNextMessageResponseMessage decodedResponse = (SessionBrowserNextMessageResponseMessage) decodedPacket;
+ assertEquals(SESS_BROWSER_NEXTMESSAGE_RESP, decodedResponse.getType());
+ assertEquals(response.getMessage().getMessageID(), decodedResponse
+ .getMessage().getMessageID());
+ }
+
+ public void testSessionBrowserNextMessageBlockMessage() throws Exception
+ {
+ SessionBrowserNextMessageBlockMessage request = new SessionBrowserNextMessageBlockMessage(
+ randomLong());
+ AbstractPacketCodec codec = new SessionBrowserNextMessageBlockMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec,
+ request.getMaxMessages());
+
+ assertTrue(decodedPacket instanceof SessionBrowserNextMessageBlockMessage);
+ SessionBrowserNextMessageBlockMessage decodedRequest = (SessionBrowserNextMessageBlockMessage) decodedPacket;
+ assertEquals(SESS_BROWSER_NEXTMESSAGEBLOCK, decodedPacket.getType());
+ assertEquals(request.getMaxMessages(), decodedRequest.getMaxMessages());
+ }
+
+ public void testSessionBrowserNextMessageBlockResponseMessage()
+ throws Exception
+ {
+ Message[] messages = new Message[] { new MessageImpl(), new MessageImpl() };
+ SessionBrowserNextMessageBlockResponseMessage response = new SessionBrowserNextMessageBlockResponseMessage(
+ messages);
+ AbstractPacketCodec codec = new SessionBrowserNextMessageBlockResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(response, codec,
+ SessionBrowserNextMessageBlockResponseMessageCodec.encode(messages));
+
+ 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 testSessionXACommitMessage() throws Exception
+ {
+ SessionXACommitMessage message = new SessionXACommitMessage(randomXid(),
+ randomBoolean());
+ AbstractPacketCodec codec = new SessionXACommitMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getXid(), message.isOnePhase());
+
+ assertTrue(decodedPacket instanceof SessionXACommitMessage);
+ SessionXACommitMessage decodedMessage = (SessionXACommitMessage) decodedPacket;
+ assertEquals(SESS_XA_COMMIT, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ assertEquals(message.isOnePhase(), decodedMessage.isOnePhase());
+ }
+
+ public void testSessionXAEndMessage() throws Exception
+ {
+ SessionXAEndMessage message = new SessionXAEndMessage(randomXid(),
+ randomBoolean());
+ AbstractPacketCodec codec = new SessionXAEndMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getXid(), message.isFailed());
+
+ assertTrue(decodedPacket instanceof SessionXAEndMessage);
+ SessionXAEndMessage decodedMessage = (SessionXAEndMessage) decodedPacket;
+ assertEquals(SESS_XA_END, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ assertEquals(message.isFailed(), decodedMessage.isFailed());
+ }
+
+ public void testSessionXAForgetMessage() throws Exception
+ {
+ SessionXAForgetMessage message = new SessionXAForgetMessage(randomXid());
+ AbstractPacketCodec codec = new SessionXAForgetMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAForgetMessage);
+ SessionXAForgetMessage decodedMessage = (SessionXAForgetMessage) decodedPacket;
+ assertEquals(SESS_XA_FORGET, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXAGetInDoubtXidsMessage() throws Exception
+ {
+ PacketImpl request = new PacketImpl(SESS_XA_INDOUBT_XIDS);
+ AbstractPacketCodec codec = createCodecForEmptyPacket(SESS_XA_INDOUBT_XIDS);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(request, codec);
+
+ assertEquals(SESS_XA_INDOUBT_XIDS, decodedPacket.getType());
+ }
+
+ public void testSessionXAGetInDoubtXidsResponseMessage() throws Exception
+ {
+ final int numXids = 10;
+ List<Xid> xids = new ArrayList<Xid>();
+ for (int i = 0; i < numXids; i++)
{
- super(buffer);
+ xids.add(randomXid());
}
+ SessionXAGetInDoubtXidsResponseMessage message = new SessionXAGetInDoubtXidsResponseMessage(
+ xids);
+ AbstractPacketCodec codec = new SessionXAGetInDoubtXidsResponseMessageCodec();
- IoBuffer buffer()
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec, xids);
+
+ assertTrue(decodedPacket instanceof SessionXAGetInDoubtXidsResponseMessage);
+ SessionXAGetInDoubtXidsResponseMessage decodedMessage = (SessionXAGetInDoubtXidsResponseMessage) decodedPacket;
+ assertEquals(SESS_XA_INDOUBT_XIDS_RESP, decodedMessage.getType());
+
+ assertSameXids(message.getXids(), decodedMessage.getXids());
+ }
+
+ public void testSessionXAGetTimeoutMessage() throws Exception
+ {
+ PacketImpl message = new PacketImpl(SESS_XA_GET_TIMEOUT);
+ AbstractPacketCodec codec = createCodecForEmptyPacket(PacketType.SESS_XA_GET_TIMEOUT);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec);
+
+ assertEquals(SESS_XA_GET_TIMEOUT, decodedPacket.getType());
+ }
+
+ public void testSessionXAGetTimeoutResponseMessage() throws Exception
+ {
+ SessionXAGetTimeoutResponseMessage message = new SessionXAGetTimeoutResponseMessage(
+ randomInt());
+ AbstractPacketCodec codec = new SessionXAGetTimeoutResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getTimeoutSeconds());
+
+ assertTrue(decodedPacket instanceof SessionXAGetTimeoutResponseMessage);
+ SessionXAGetTimeoutResponseMessage decodedMessage = (SessionXAGetTimeoutResponseMessage) decodedPacket;
+ assertEquals(SESS_XA_GET_TIMEOUT_RESP, decodedMessage.getType());
+ assertEquals(message.getTimeoutSeconds(), decodedMessage
+ .getTimeoutSeconds());
+ }
+
+ public void testSessionXAJoinMessage() throws Exception
+ {
+ SessionXAJoinMessage message = new SessionXAJoinMessage(randomXid());
+ AbstractPacketCodec codec = new SessionXAJoinMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAJoinMessage);
+ SessionXAJoinMessage decodedMessage = (SessionXAJoinMessage) decodedPacket;
+ assertEquals(SESS_XA_JOIN, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXAPrepareMessage() throws Exception
+ {
+ SessionXAPrepareMessage message = new SessionXAPrepareMessage(randomXid());
+ AbstractPacketCodec codec = new SessionXAPrepareMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAPrepareMessage);
+ SessionXAPrepareMessage decodedMessage = (SessionXAPrepareMessage) decodedPacket;
+ assertEquals(SESS_XA_PREPARE, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXAResponseMessage() throws Exception
+ {
+ SessionXAResponseMessage message = new SessionXAResponseMessage(
+ randomBoolean(), randomInt(), randomString());
+ AbstractPacketCodec codec = new SessionXAResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.isError(), message.getResponseCode(), message.getMessage());
+
+ assertTrue(decodedPacket instanceof SessionXAResponseMessage);
+ SessionXAResponseMessage decodedMessage = (SessionXAResponseMessage) decodedPacket;
+ assertEquals(SESS_XA_RESP, decodedMessage.getType());
+ assertEquals(message.isError(), decodedMessage.isError());
+ assertEquals(message.getResponseCode(), decodedMessage.getResponseCode());
+ assertEquals(message.getMessage(), decodedMessage.getMessage());
+ }
+
+ public void testSessionXAResumeMessage() throws Exception
+ {
+ SessionXAResumeMessage message = new SessionXAResumeMessage(randomXid());
+ AbstractPacketCodec codec = new SessionXAResumeMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAResumeMessage);
+ SessionXAResumeMessage decodedMessage = (SessionXAResumeMessage) decodedPacket;
+ assertEquals(SESS_XA_RESUME, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXARollbackMessage() throws Exception
+ {
+ SessionXARollbackMessage message = new SessionXARollbackMessage(
+ randomXid());
+ AbstractPacketCodec codec = new SessionXARollbackMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getXid());
+
+ assertTrue(decodedPacket instanceof SessionXARollbackMessage);
+ SessionXARollbackMessage decodedMessage = (SessionXARollbackMessage) decodedPacket;
+ assertEquals(SESS_XA_ROLLBACK, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXASetTimeoutMessage() throws Exception
+ {
+ SessionXASetTimeoutMessage message = new SessionXASetTimeoutMessage(
+ randomInt());
+ AbstractPacketCodec codec = new SessionXASetTimeoutMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getTimeoutSeconds());
+
+ assertTrue(decodedPacket instanceof SessionXASetTimeoutMessage);
+ SessionXASetTimeoutMessage decodedMessage = (SessionXASetTimeoutMessage) decodedPacket;
+ assertEquals(SESS_XA_SET_TIMEOUT, decodedMessage.getType());
+ assertEquals(message.getTimeoutSeconds(), decodedMessage
+ .getTimeoutSeconds());
+ }
+
+ public void testSessionXASetTimeoutResponseMessage() throws Exception
+ {
+ SessionXASetTimeoutResponseMessage message = new SessionXASetTimeoutResponseMessage(
+ randomBoolean());
+ AbstractPacketCodec codec = new SessionXASetTimeoutResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.isOK());
+
+ assertTrue(decodedPacket instanceof SessionXASetTimeoutResponseMessage);
+ SessionXASetTimeoutResponseMessage decodedMessage = (SessionXASetTimeoutResponseMessage) decodedPacket;
+ assertEquals(SESS_XA_SET_TIMEOUT_RESP, decodedMessage.getType());
+ assertEquals(message.isOK(), decodedMessage.isOK());
+ }
+
+ public void testSessionXAStartMessage() throws Exception
+ {
+ SessionXAStartMessage message = new SessionXAStartMessage(randomXid());
+ AbstractPacketCodec codec = new SessionXAStartMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getXid());
+
+ assertTrue(decodedPacket instanceof SessionXAStartMessage);
+ SessionXAStartMessage decodedMessage = (SessionXAStartMessage) decodedPacket;
+ assertEquals(SESS_XA_START, decodedMessage.getType());
+ assertEquals(message.getXid(), decodedMessage.getXid());
+ }
+
+ public void testSessionXASuspendMessage() throws Exception
+ {
+ PacketImpl message = new PacketImpl(SESS_XA_SUSPEND);
+ AbstractPacketCodec codec = PacketCodecFactory
+ .createCodecForEmptyPacket(PacketType.SESS_XA_SUSPEND);
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec);
+
+ assertEquals(SESS_XA_SUSPEND, decodedPacket.getType());
+ }
+
+ public void testSessionRemoveDestinationMessage() throws Exception
+ {
+ SessionRemoveDestinationMessage message = new SessionRemoveDestinationMessage(
+ randomString(), randomBoolean());
+ AbstractPacketCodec codec = new SessionRemoveDestinationMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getAddress(), message.isTemporary());
+
+ 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 testSessionCreateQueueMessage() throws Exception
+ {
+ SessionCreateQueueMessage message = new SessionCreateQueueMessage(
+ randomString(), randomString(), randomString(), randomBoolean(),
+ randomBoolean());
+ AbstractPacketCodec codec = new SessionCreateQueueMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getAddress(), message.getQueueName(), message
+ .getFilterString(), message.isDurable(), message
+ .isTemporary());
+
+ 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.isTemporary());
+
+ }
+
+ public void testSessionQueueQueryMessage() throws Exception
+ {
+ SessionQueueQueryMessage message = new SessionQueueQueryMessage(
+ randomString());
+ AbstractPacketCodec codec = new SessionQueueQueryMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getQueueName());
+
+ assertTrue(decodedPacket instanceof SessionQueueQueryMessage);
+ SessionQueueQueryMessage decodedMessage = (SessionQueueQueryMessage) decodedPacket;
+ assertEquals(SESS_QUEUEQUERY, decodedMessage.getType());
+ assertEquals(message.getQueueName(), decodedMessage.getQueueName());
+ }
+
+ public void testSessionQueueQueryResponseMessage() throws Exception
+ {
+ SessionQueueQueryResponseMessage message = new SessionQueueQueryResponseMessage(
+ randomBoolean(), randomBoolean(), randomInt(), randomInt(),
+ randomInt(), randomString(), randomString());
+ AbstractPacketCodec codec = new SessionQueueQueryResponseMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.isExists(), message.isDurable(), message.isTemporary(),
+ message.getMaxSize(), message.getConsumerCount(), message
+ .getMessageCount(), message.getFilterString(), message
+ .getAddress());
+
+ 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(), randomBoolean());
+ AbstractPacketCodec<SessionAddDestinationMessage> codec = new SessionAddDestinationMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getAddress(), message.isTemporary());
+
+ 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();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getAddress());
+
+ 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();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.isExists(), message.getQueueNames());
+
+ 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++)
{
- return buffer;
+ assertEquals(queueNames.get(i), decodedNames.get(i));
}
+ }
- public void flip()
+ public void testDeleteQueueRequest() throws Exception
+ {
+ SessionDeleteQueueMessage message = new SessionDeleteQueueMessage(
+ randomString());
+ AbstractPacketCodec codec = new SessionDeleteQueueMessageCodec();
+
+ Packet decodedPacket = encodeAndCheckBytesAndDecode(message, codec,
+ message.getQueueName());
+
+ assertTrue(decodedPacket instanceof SessionDeleteQueueMessage);
+ SessionDeleteQueueMessage decodedMessage = (SessionDeleteQueueMessage) decodedPacket;
+ assertEquals(SESS_DELETE_QUEUE, decodedMessage.getType());
+ assertEquals(message.getQueueName(), decodedMessage.getQueueName());
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ private static class SimpleProtocolEncoderOutput implements
+ ProtocolEncoderOutput
+ {
+ private Object encodedMessage;
+
+ public WriteFuture flush()
{
- buffer.flip();
+ return null;
}
- public void rewind()
+ public void mergeAll()
{
- buffer.rewind();
}
- public int remaining()
+ public void write(Object encodedMessage)
{
- return buffer.remaining();
+ this.encodedMessage = encodedMessage;
}
+
+ public Object getEncodedMessage()
+ {
+ return this.encodedMessage;
+ }
+
}
+
+ private static class SimpleProtocolDencoderOutput implements
+ ProtocolDecoderOutput
+ {
+ private Object message;
+
+ public void flush()
+ {
+ }
+
+ public void write(Object message)
+ {
+ this.message = message;
+ }
+
+ public Object getMessage()
+ {
+ return message;
+ }
+
+ }
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/transaction/impl/TransactionTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/transaction/impl/TransactionTest.java 2008-04-16 09:23:02 UTC (rev 4065)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/transaction/impl/TransactionTest.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -1,5 +1,7 @@
package org.jboss.messaging.tests.unit.core.transaction.impl;
+import static org.jboss.messaging.tests.util.RandomUtil.randomXid;
+
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
@@ -81,7 +83,7 @@
EasyMock.replay(sm);
- Xid xid = generateXid();
+ Xid xid = randomXid();
Transaction tx = new TransactionImpl(xid, sm, po);
@@ -627,7 +629,7 @@
EasyMock.replay(sm);
- Xid xid = this.generateXid();
+ Xid xid = randomXid();
Transaction tx = new TransactionImpl(xid, sm, po);
Modified: trunk/tests/src/org/jboss/messaging/tests/util/RandomUtil.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/util/RandomUtil.java 2008-04-16 09:23:02 UTC (rev 4065)
+++ trunk/tests/src/org/jboss/messaging/tests/util/RandomUtil.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -10,6 +10,10 @@
import java.util.Random;
+import javax.transaction.xa.Xid;
+
+import org.jboss.messaging.core.transaction.impl.XidImpl;
+
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
*
@@ -45,11 +49,22 @@
{
return Integer.valueOf(random.nextInt()).byteValue();
}
+
+ public static boolean randomBoolean()
+ {
+ return random.nextBoolean();
+ }
public static byte[] randomBytes()
{
return randomString().getBytes();
}
+
+
+ public static Xid randomXid()
+ {
+ return new XidImpl(randomBytes(), randomInt(), randomBytes());
+ }
// Constructors --------------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java 2008-04-16 09:23:02 UTC (rev 4065)
+++ trunk/tests/src/org/jboss/messaging/tests/util/UnitTestCase.java 2008-04-16 15:15:09 UTC (rev 4066)
@@ -264,19 +264,7 @@
assertEquals(entry.getValue(), headers2.get(entry.getKey()));
}
}
+
- protected XidImpl generateXid()
- {
- String id1 = java.util.UUID.randomUUID().toString();
-
- String id2 = java.util.UUID.randomUUID().toString();
-
- int id = (int)(Math.random() * 100);
-
- XidImpl xid = new XidImpl(id1.getBytes(), id, id2.getBytes());
-
- return xid;
- }
-
}
More information about the jboss-cvs-commits
mailing list