[jboss-cvs] JBoss Messaging SVN: r3457 - in branches/Branch_JBMESSAGING-544: src/main/org/jboss/messaging/core/remoting/codec and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Dec 10 08:10:41 EST 2007
Author: jmesnil
Date: 2007-12-10 08:10:41 -0500 (Mon, 10 Dec 2007)
New Revision: 3457
Removed:
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/ReversePacketHandler.java
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/TargetHandlerTest.java
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/TestSupport.java
Modified:
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/Client.java
branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/NIOSession.java
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java
branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java
Log:
http://jira.jboss.org/jira/browse/JBMESSAGING-544 Replace client-server transport with NIO based transport
* refactoring + code clean up
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/Client.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/Client.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/Client.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -14,8 +14,6 @@
import javax.jms.IllegalStateException;
import javax.jms.JMSException;
-import org.apache.mina.filter.reqres.Request;
-import org.apache.mina.filter.reqres.Response;
import org.jboss.jms.client.remoting.ConsolidatedRemotingConnectionListener;
import org.jboss.jms.exception.MessagingNetworkFailureException;
import org.jboss.logging.Logger;
@@ -49,7 +47,7 @@
public Client(NIOConnector connector)
{
assert connector != null;
-
+
this.connector = connector;
}
@@ -73,6 +71,7 @@
public boolean disconnect() throws Exception
{
+ session = null;
return connector.disconnect();
}
@@ -101,14 +100,12 @@
packet.setCorrelationID(System.nanoTime());
- Request req = new Request(packet.getCorrelationID(), packet,
- blockingRequestTimeout, blockingRequestTimeUnit);
- session.write(req);
- Response response;
try
{
- response = req.awaitResponse();
- return (AbstractPacket) response.getMessage();
+ AbstractPacket response = (AbstractPacket) session.writeAndBlock(
+ packet.getCorrelationID(), packet, blockingRequestTimeout,
+ blockingRequestTimeUnit);
+ return response;
} catch (Throwable t)
{
IOException ioe = new IOException();
@@ -129,7 +126,8 @@
connector.addConnectionListener(listener);
}
- public void removeConnectionListener(ConsolidatedRemotingConnectionListener listener)
+ public void removeConnectionListener(
+ ConsolidatedRemotingConnectionListener listener)
{
connector.removeConnectionListener(listener);
}
@@ -159,7 +157,6 @@
// Private -------------------------------------------------------
-
private void checkConnected() throws JMSException
{
if (session == null)
Modified: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/NIOSession.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/NIOSession.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/NIOSession.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -6,19 +6,23 @@
*/
package org.jboss.messaging.core.remoting;
+import java.util.concurrent.TimeUnit;
+
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
+ *
* @version <tt>$Revision$</tt>
- *
+ *
*/
public interface NIOSession
{
- public abstract long getID();
+ long getID();
- public abstract void write(Object object);
+ void write(Object object);
- public abstract boolean isConnected();
+ Object writeAndBlock(long requestID, Object object, long timeout,
+ TimeUnit timeUnit) throws Throwable;
+ boolean isConnected();
}
\ No newline at end of file
Deleted: branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java
===================================================================
--- branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/src/main/org/jboss/messaging/core/remoting/codec/PacketCodecFactory.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -1,287 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.messaging.core.remoting.codec;
-
-import static org.jboss.messaging.core.remoting.wireformat.PacketType.NULL;
-
-import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory;
-import org.jboss.messaging.core.remoting.integration.MinaPacketCodec;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
-import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveriesMessage;
-import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryRequest;
-import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryResponse;
-import org.jboss.messaging.core.remoting.wireformat.AddTemporaryDestinationMessage;
-import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageRequest;
-import org.jboss.messaging.core.remoting.wireformat.BrowserHasNextMessageResponse;
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageBlockRequest;
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageBlockResponse;
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageRequest;
-import org.jboss.messaging.core.remoting.wireformat.BrowserNextMessageResponse;
-import org.jboss.messaging.core.remoting.wireformat.BrowserResetMessage;
-import org.jboss.messaging.core.remoting.wireformat.CancelDeliveriesMessage;
-import org.jboss.messaging.core.remoting.wireformat.CancelDeliveryMessage;
-import org.jboss.messaging.core.remoting.wireformat.ChangeRateMessage;
-import org.jboss.messaging.core.remoting.wireformat.CloseMessage;
-import org.jboss.messaging.core.remoting.wireformat.ClosingRequest;
-import org.jboss.messaging.core.remoting.wireformat.ClosingResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateBrowserRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateBrowserResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateConnectionRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateConnectionResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateConsumerRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateConsumerResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateDestinationRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateDestinationResponse;
-import org.jboss.messaging.core.remoting.wireformat.CreateSessionRequest;
-import org.jboss.messaging.core.remoting.wireformat.CreateSessionResponse;
-import org.jboss.messaging.core.remoting.wireformat.DeleteTemporaryDestinationMessage;
-import org.jboss.messaging.core.remoting.wireformat.DeliverMessage;
-import org.jboss.messaging.core.remoting.wireformat.GetClientAOPStackRequest;
-import org.jboss.messaging.core.remoting.wireformat.GetClientAOPStackResponse;
-import org.jboss.messaging.core.remoting.wireformat.GetClientIDRequest;
-import org.jboss.messaging.core.remoting.wireformat.GetClientIDResponse;
-import org.jboss.messaging.core.remoting.wireformat.GetPreparedTransactionsRequest;
-import org.jboss.messaging.core.remoting.wireformat.GetPreparedTransactionsResponse;
-import org.jboss.messaging.core.remoting.wireformat.GetTopologyRequest;
-import org.jboss.messaging.core.remoting.wireformat.GetTopologyResponse;
-import org.jboss.messaging.core.remoting.wireformat.IDBlockRequest;
-import org.jboss.messaging.core.remoting.wireformat.IDBlockResponse;
-import org.jboss.messaging.core.remoting.wireformat.JMSExceptionMessage;
-import org.jboss.messaging.core.remoting.wireformat.NullPacket;
-import org.jboss.messaging.core.remoting.wireformat.PacketType;
-import org.jboss.messaging.core.remoting.wireformat.RecoverDeliveriesMessage;
-import org.jboss.messaging.core.remoting.wireformat.SendMessage;
-import org.jboss.messaging.core.remoting.wireformat.SendTransactionMessage;
-import org.jboss.messaging.core.remoting.wireformat.SetClientIDMessage;
-import org.jboss.messaging.core.remoting.wireformat.StartConnectionMessage;
-import org.jboss.messaging.core.remoting.wireformat.StopConnectionMessage;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-import org.jboss.messaging.core.remoting.wireformat.UnsubscribeMessage;
-import org.jboss.messaging.core.remoting.wireformat.UpdateCallbackMessage;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- */
-public class PacketCodecFactory extends DemuxingProtocolCodecFactory
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // FIXME: split encoder/decoder required only on client and/or server sides
- public PacketCodecFactory() throws Exception
- {
- addCodecForEmptyPacket(NULL, NullPacket.class);
-
- addCodec(JMSExceptionMessage.class, JMSExceptionMessageCodec.class);
-
- // TextPacket are for testing purpose only!
- addCodec(TextPacket.class, TextPacketCodec.class);
-
- addCodec(CreateConnectionRequest.class,
- ConnectionFactoryCreateConnectionRequestCodec.class);
-
- addCodec(CreateConnectionResponse.class,
- ConnectionFactoryCreateConnectionResponseCodec.class);
-
- addCodecForEmptyPacket(PacketType.REQ_GETCLIENTAOPSTACK,
- GetClientAOPStackRequest.class);
-
- addCodec(GetClientAOPStackResponse.class,
- GetClientAOPStackResponseCodec.class);
-
- addCodecForEmptyPacket(PacketType.REQ_GETTOPOLOGY,
- GetTopologyRequest.class);
-
- addCodec(GetTopologyResponse.class, GetTopologyResponseCodec.class);
-
- addCodec(UpdateCallbackMessage.class, UpdateCallbackMessageCodec.class);
-
- addCodec(CreateSessionRequest.class, CreateSessionRequestCodec.class);
-
- addCodec(CreateSessionResponse.class, CreateSessionResponseCodec.class);
-
- addCodec(IDBlockRequest.class, IDBlockRequestCodec.class);
-
- addCodec(IDBlockResponse.class, IDBlockResponseCodec.class);
-
- addCodecForEmptyPacket(PacketType.REQ_GETCLIENTID,
- GetClientIDRequest.class);
-
- addCodec(GetClientIDResponse.class, GetClientIDResponseCodec.class);
-
- addCodec(SetClientIDMessage.class, SetClientIDMessageCodec.class);
-
- addCodec(SendMessage.class, SendMessageCodec.class);
-
- addCodec(CreateConsumerRequest.class, CreateConsumerRequestCodec.class);
-
- addCodec(CreateDestinationRequest.class,
- CreateDestinationRequestCodec.class);
-
- addCodec(CreateDestinationResponse.class,
- CreateDestinationResponseCodec.class);
-
- addCodec(CreateConsumerResponse.class, CreateConsumerResponseCodec.class);
-
- addCodec(CreateBrowserRequest.class, CreateBrowserRequestCodec.class);
-
- addCodec(CreateBrowserResponse.class, CreateBrowserResponseCodec.class);
-
- addCodecForEmptyPacket(PacketType.MSG_STARTCONNECTION,
- StartConnectionMessage.class);
-
- addCodecForEmptyPacket(PacketType.MSG_STOPCONNECTION,
- StopConnectionMessage.class);
-
- addCodec(ChangeRateMessage.class, ChangeRateMessageCodec.class);
-
- addCodec(DeliverMessage.class, DeliverMessageCodec.class);
-
- addCodec(AcknowledgeDeliveryRequest.class,
- AcknowledgeDeliveryRequestCodec.class);
-
- addCodec(AcknowledgeDeliveryResponse.class,
- AcknowledgeDeliveryResponseCodec.class);
-
- addCodec(AcknowledgeDeliveriesMessage.class,
- AcknowledgeDeliveriesRequestCodec.class);
-
- addCodec(RecoverDeliveriesMessage.class,
- RecoverDeliveriesMessageCodec.class);
-
- addCodec(CancelDeliveryMessage.class, CancelDeliveryMessageCodec.class);
-
- addCodec(CancelDeliveriesMessage.class,
- CancelDeliveriesMessageCodec.class);
-
- addCodec(ClosingRequest.class, ClosingRequestCodec.class);
-
- addCodec(ClosingResponse.class, ClosingResponseCodec.class);
-
- addCodecForEmptyPacket(PacketType.MSG_CLOSE, CloseMessage.class);
-
- addCodec(SendTransactionMessage.class, SendTransactionMessageCodec.class);
-
- addCodecForEmptyPacket(PacketType.REQ_GETPREPAREDTRANSACTIONS,
- GetPreparedTransactionsRequest.class);
-
- addCodec(GetPreparedTransactionsResponse.class,
- GetPreparedTransactionsResponseCodec.class);
-
- addCodecForEmptyPacket(PacketType.MSG_BROWSER_RESET,
- BrowserResetMessage.class);
-
- addCodecForEmptyPacket(PacketType.REQ_BROWSER_HASNEXTMESSAGE,
- BrowserHasNextMessageRequest.class);
-
- addCodec(BrowserHasNextMessageResponse.class,
- BrowserHasNextMessageResponseCodec.class);
-
- addCodecForEmptyPacket(PacketType.REQ_BROWSER_NEXTMESSAGE,
- BrowserNextMessageRequest.class);
-
- addCodec(BrowserNextMessageResponse.class,
- BrowserNextMessageResponseCodec.class);
-
- addCodec(BrowserNextMessageBlockRequest.class,
- BrowserNextMessageBlockRequestCodec.class);
-
- addCodec(BrowserNextMessageBlockResponse.class,
- BrowserNextMessageBlockResponseCodec.class);
-
- addCodec(UnsubscribeMessage.class, UnsubscribeMessageCodec.class);
-
- addCodec(AddTemporaryDestinationMessage.class,
- AddTemporaryDestinationMessageCodec.class);
-
- addCodec(DeleteTemporaryDestinationMessage.class,
- DeleteTemporaryDestinationMessageCodec.class);
- }
-
- // Public --------------------------------------------------------
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // FIXME generics definition should be in term of <P>...
- private void addCodec(
- Class<? extends AbstractPacket> packetClass,
- Class<? extends AbstractPacketCodec<? extends AbstractPacket>> codecClass) throws Exception
- {
- AbstractPacketCodec<? extends AbstractPacket> codec = codecClass
- .newInstance();
- MinaPacketCodec<AbstractPacket> minaCodec = new MinaPacketCodec(codec);
- super.addMessageDecoder(minaCodec);
- super.addMessageEncoder(packetClass, minaCodec);
- }
-
- private void addCodecForEmptyPacket(PacketType type,
- Class<? extends AbstractPacket> packetClass)
- {
- AbstractPacketCodec<AbstractPacket> codec = createCodecForEmptyPacket(
- type, packetClass);
- MinaPacketCodec<AbstractPacket> minaCodec = new MinaPacketCodec<AbstractPacket>(
- codec);
- super.addMessageDecoder(minaCodec);
- super.addMessageEncoder(packetClass, minaCodec);
- }
-
- public static AbstractPacketCodec<AbstractPacket> createCodecForEmptyPacket(
- PacketType type, final Class<? extends AbstractPacket> clazz)
- {
- return new CodecForEmptyPacket<AbstractPacket>(type)
- {
- @Override
- protected AbstractPacket newPacket()
- {
- try
- {
- return (AbstractPacket) clazz.newInstance();
- } catch (Throwable t)
- {
- return null;
- }
- }
- };
- }
-
- // Inner classes -------------------------------------------------
-
- abstract static class CodecForEmptyPacket<P extends AbstractPacket> extends
- AbstractPacketCodec<P>
- {
-
- public CodecForEmptyPacket(PacketType type)
- {
- super(type);
- }
-
- @Override
- protected void encodeBody(P packet, RemotingBuffer out) throws Exception
- {
- // no body
- out.putInt(0);
- }
-
- @Override
- protected P decodeBody(RemotingBuffer in) throws Exception
- {
- in.getInt(); // skip body length
- return newPacket();
- }
-
- protected abstract P newPacket();
- }
-}
Modified: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/ClientTest.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -6,33 +6,28 @@
*/
package org.jboss.test.messaging.core.remoting;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
import static org.jboss.messaging.core.remoting.TransportType.TCP;
+import static org.jboss.test.messaging.core.remoting.integration.TestSupport.PORT;
import java.io.IOException;
-import java.util.List;
import javax.jms.IllegalStateException;
+import junit.framework.TestCase;
+
import org.jboss.messaging.core.remoting.Client;
import org.jboss.messaging.core.remoting.NIOSession;
-import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.remoting.integration.MinaConnector;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
import org.jboss.messaging.core.remoting.wireformat.NullPacket;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
+import org.jboss.test.messaging.core.remoting.integration.TestSupport;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
*
* @version <tt>$Revision$</tt>
*/
-public class ClientTest extends TestSupport
+public class ClientTest extends TestCase
{
- private ReversePacketHandler serverPacketHandler;
-
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
@@ -45,50 +40,126 @@
public void testConnected() throws Exception
{
- Client client = new Client(new MinaConnector());
+ Client client = new Client(new NIOConnectorAdapter()
+ {
+ private boolean connected = false;
+ @Override
+ public NIOSession connect(String host, int port,
+ TransportType transport) throws IOException
+ {
+ connected = true;
+ return new NIOSessionAdapter()
+ {
+ @Override
+ public boolean isConnected()
+ {
+ return connected;
+ }
+ };
+ }
+
+ @Override
+ public boolean disconnect()
+ {
+ boolean wasConnected = connected;
+ connected = false;
+ return wasConnected;
+ }
+ });
+
assertFalse(client.isConnected());
- client.connect("localhost", PORT, TCP);
+ client.connect("localhost", TestSupport.PORT, TCP);
assertTrue(client.isConnected());
assertTrue(client.disconnect());
assertFalse(client.isConnected());
assertFalse(client.disconnect());
}
-
+
public void testConnectionFailure() throws Exception
{
- Client client = new Client(new NIOConnectorAdapter() {
+ Client client = new Client(new NIOConnectorAdapter()
+ {
@Override
public NIOSession connect(String host, int port,
TransportType transport) throws IOException
{
- throw new IOException("connection exception");
+ throw new IOException("connection exception");
}
});
-
- try {
+
+ try
+ {
client.connect("localhost", PORT, TCP);
fail("connection must fail");
} catch (IOException e)
{
}
}
-
+
public void testSessionID() throws Exception
{
- Client client = new Client(new MinaConnector());
+ Client client = new Client(new NIOConnectorAdapter()
+ {
+ @Override
+ public NIOSession connect(String host, int port,
+ TransportType transport) throws IOException
+ {
+ return new NIOSessionAdapter()
+ {
+ @Override
+ public long getID()
+ {
+ return System.currentTimeMillis();
+ }
+
+ @Override
+ public boolean isConnected()
+ {
+ return true;
+ }
+ };
+ }
+ });
assertNull(client.getSessionID());
client.connect("localhost", PORT, TCP);
assertNotNull(client.getSessionID());
client.disconnect();
assertNull(client.getSessionID());
}
-
+
public void testURI() throws Exception
{
- Client client = new Client(new MinaConnector());
+ Client client = new Client(new NIOConnectorAdapter()
+ {
+ private boolean connected = false;
+
+ @Override
+ public NIOSession connect(String host, int port,
+ TransportType transport) throws IOException
+ {
+ connected = true;
+ return super.connect(host, port, transport);
+ }
+
+ @Override
+ public boolean disconnect()
+ {
+ connected = false;
+ return true;
+ }
+
+ @Override
+ public String getServerURI()
+ {
+ if (!connected)
+ return null;
+ else
+ return "tcp://localhost:" + PORT;
+ }
+ });
assertNull(client.getURI());
client.connect("localhost", PORT, TCP);
assertNotNull(client.getURI());
@@ -98,7 +169,15 @@
public void testCanNotSendPacketIfNotConnected() throws Exception
{
- Client client = new Client(new MinaConnector());
+ Client client = new Client(new NIOConnectorAdapter()
+ {
+ @Override
+ public NIOSession connect(String host, int port,
+ TransportType transport) throws IOException
+ {
+ return null;
+ }
+ });
try
{
@@ -109,118 +188,4 @@
}
}
-
- public void testSendOneWay() throws Exception
- {
- serverPacketHandler.expectMessage(1);
-
- TextPacket packet = new TextPacket("testSendOneWay");
- packet.setVersion((byte) 1);
- packet.setTargetID(serverPacketHandler.getID());
- client.sendOneWay(packet);
-
- assertTrue(serverPacketHandler.await(2, SECONDS));
-
- List<TextPacket> messages = serverPacketHandler.getPackets();
- assertEquals(1, messages.size());
- String response = ((TextPacket) messages.get(0)).getText();
- assertEquals(packet.getText(), response);
- }
-
- public void testSendManyOneWay() throws Exception
- {
- serverPacketHandler.expectMessage(MANY_MESSAGES);
-
- TextPacket[] packets = new TextPacket[MANY_MESSAGES];
- for (int i = 0; i < MANY_MESSAGES; i++)
- {
- packets[i] = new TextPacket("testSendManyOneWay " + i);
- packets[i].setVersion((byte) 1);
- packets[i].setTargetID(serverPacketHandler.getID());
- client.sendOneWay(packets[i]);
- }
-
- assertTrue(serverPacketHandler.await(10, SECONDS));
-
- List<TextPacket> receivedPackets = serverPacketHandler.getPackets();
- assertEquals(MANY_MESSAGES, receivedPackets.size());
- for (int i = 0; i < MANY_MESSAGES; i++)
- {
- TextPacket receivedPacket = (TextPacket) receivedPackets.get(i);
- assertEquals(packets[i].getText(), receivedPacket.getText());
- }
- }
-
- public void testSendOneWayWithCallbackHandler() throws Exception
- {
- TestPacketHandler callbackHandler = new TestPacketHandler();
- callbackHandler.expectMessage(1);
-
- PacketDispatcher.client.register(callbackHandler);
-
- TextPacket packet = new TextPacket("testSendOneWayWithCallbackHandler");
- packet.setVersion((byte) 1);
- packet.setTargetID(serverPacketHandler.getID());
- packet.setCallbackID(callbackHandler.getID());
-
- client.sendOneWay(packet);
-
- assertTrue(callbackHandler.await(5, SECONDS));
-
- assertEquals(1, callbackHandler.getPackets().size());
- String response = callbackHandler.getPackets().get(0).getText();
- assertEquals(reverse(packet.getText()), response);
- }
-
- public void testSendBlocking() throws Exception
- {
- TextPacket request = new TextPacket("testSendBlocking");
- request.setVersion((byte) 1);
- request.setTargetID(serverPacketHandler.getID());
-
- AbstractPacket receivedPacket = client.sendBlocking(request);
-
- assertNotNull(receivedPacket);
- assertTrue(receivedPacket instanceof TextPacket);
- TextPacket response = (TextPacket) receivedPacket;
- assertEquals(reverse(request.getText()), response.getText());
- }
-
- public void testSendBlockingWithTimeout() throws Exception
- {
- client.setBlockingRequestTimeout(500, MILLISECONDS);
- serverPacketHandler.setSleepTime(1000, MILLISECONDS);
-
- AbstractPacket packet = new TextPacket("testSendBlockingWithTimeout");
- packet.setVersion((byte) 1);
-
- try
- {
- client.sendBlocking(packet);
- fail("a IOException should be thrown");
- } catch (IOException e)
- {
- }
- }
-
- // TestCase implementation ---------------------------------------
-
- @Override
- protected void setUp() throws Exception
- {
- startServer(TestSupport.PORT, TRANSPORT);
- startClient(TestSupport.PORT, TRANSPORT);
-
- serverPacketHandler = new ReversePacketHandler();
- PacketDispatcher.server.register(serverPacketHandler);
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- PacketDispatcher.server.unregister(serverPacketHandler.getID());
-
- client.disconnect();
- stopServer();
- }
}
Modified: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/NIOSessionAdapter.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -6,6 +6,8 @@
*/
package org.jboss.test.messaging.core.remoting;
+import java.util.concurrent.TimeUnit;
+
import org.jboss.messaging.core.remoting.NIOSession;
/**
@@ -41,6 +43,12 @@
public void write(Object object)
{
}
+
+ public Object writeAndBlock(long requestID, Object object, long timeout,
+ TimeUnit timeUnit) throws Throwable
+ {
+ return null;
+ }
// Package protected ---------------------------------------------
Deleted: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/ReversePacketHandler.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/ReversePacketHandler.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/ReversePacketHandler.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -1,91 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting;
-
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static junit.framework.Assert.fail;
-import static org.jboss.messaging.core.remoting.wireformat.AbstractPacket.NO_ID_SET;
-import static org.jboss.test.messaging.core.remoting.TestSupport.reverse;
-
-import java.util.concurrent.TimeUnit;
-
-import junit.framework.Assert;
-
-import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class ReversePacketHandler extends TestPacketHandler
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private int sleepTime;
- private TimeUnit timeUnit;
- private PacketSender lastSender;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void setSleepTime(int sleepTime, TimeUnit timeUnit)
- {
- this.sleepTime = sleepTime;
- this.timeUnit = timeUnit;
- }
-
- public PacketSender getLastSender()
- {
- return lastSender;
- }
-
- // TestPacketHandler overrides -----------------------------------
-
- @Override
- protected void doHandle(AbstractPacket packet, PacketSender sender)
- {
- Assert.assertTrue(packet instanceof TextPacket);
-
- lastSender = sender;
-
- if (sleepTime > 0)
- {
- try
- {
- Thread.sleep(MILLISECONDS.convert(sleepTime, timeUnit));
- } catch (InterruptedException e)
- {
- fail();
- }
- }
-
- TextPacket message = (TextPacket) packet;
- if (message.isRequest() || message.getCallbackID() != NO_ID_SET)
- {
- TextPacket response = new TextPacket(reverse(message.getText()));
- response.normalize(message);
- sender.send(response);
- }
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
Deleted: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/TargetHandlerTest.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/TargetHandlerTest.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/TargetHandlerTest.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -1,96 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-
-import java.util.List;
-
-import org.jboss.messaging.core.remoting.PacketDispatcher;
-import org.jboss.messaging.core.remoting.PacketSender;
-import org.jboss.messaging.core.remoting.wireformat.TextPacket;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- *
- * @version <tt>$Revision$</tt>
- */
-public class TargetHandlerTest extends TestSupport
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private ReversePacketHandler serverPacketHandler;
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void testClientHandlePacketSentByServer() throws Exception
- {
- TestPacketHandler clientHandler = new TestPacketHandler();
- PacketDispatcher.client.register(clientHandler);
-
- serverPacketHandler.expectMessage(1);
- clientHandler.expectMessage(1);
-
- TextPacket packet = new TextPacket(
- "testClientHandlePacketSentByServer from client");
- packet.setVersion((byte) 1);
- packet.setTargetID(serverPacketHandler.getID());
- // send a packet to create a sender when the server
- // handles the packet
- client.sendOneWay(packet);
-
- assertTrue(serverPacketHandler.await(2, SECONDS));
-
- assertNotNull(serverPacketHandler.getLastSender());
- PacketSender sender = serverPacketHandler.getLastSender();
- TextPacket packetFromServer = new TextPacket(
- "testClientHandlePacketSentByServer from server");
- packetFromServer.setVersion((byte) 1);
- packetFromServer.setTargetID(clientHandler.getID());
- sender.send(packetFromServer);
-
- assertTrue(clientHandler.await(2, SECONDS));
-
- List<TextPacket> packets = clientHandler.getPackets();
- assertEquals(1, packets.size());
- TextPacket packetReceivedByClient = (TextPacket) packets.get(0);
- assertEquals(packetFromServer.getText(), packetReceivedByClient.getText());
- }
-
- // TestCase overrides --------------------------------------------
-
- public void setUp() throws Exception
- {
- startServer(PORT, TRANSPORT);
- startClient(PORT, TRANSPORT);
-
- serverPacketHandler = new ReversePacketHandler();
- PacketDispatcher.server.register(serverPacketHandler);
- }
-
- public void tearDown() throws Exception
- {
- PacketDispatcher.server.unregister(serverPacketHandler.getID());
-
- client.disconnect();
- stopServer();
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
Deleted: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/TestSupport.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/TestSupport.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/TestSupport.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -1,109 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package org.jboss.test.messaging.core.remoting;
-
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
-import junit.framework.TestCase;
-
-import org.jboss.messaging.core.remoting.Client;
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.remoting.integration.MinaConnector;
-import org.jboss.messaging.core.remoting.integration.MinaService;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- *
- * @version <tt>$Revision$</tt>
- */
-public abstract class TestSupport extends TestCase
-{
- // Constants -----------------------------------------------------
-
- public static final int MANY_MESSAGES = 500;
-
- /**
- * Configurable by system property <code>transport.type</code>, default is
- * TCP
- */
- public final static TransportType TRANSPORT;
-
- // Attributes ----------------------------------------------------
-
- Client client;
-
- private MinaService service;
-
- public static final int PORT = 9090;
-
- // Static --------------------------------------------------------
-
- static
- {
- String transportType = System.getProperty("transport.type", TCP
- .toString());
- TRANSPORT = TransportType.valueOf(transportType);
- info("Default transport is " + TRANSPORT);
- }
-
- static String reverse(String text)
- {
- // Reverse text
- StringBuffer buf = new StringBuffer(text.length());
- for (int i = text.length() - 1; i >= 0; i--)
- {
- buf.append(text.charAt(i));
- }
- return buf.toString();
- }
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- void startServer(int port, TransportType transport) throws Exception
- {
- startServer(port, transport, false);
- }
-
- void startServer(int port, TransportType transport, boolean useSSL)
- throws Exception
- {
- service = new MinaService();
- service.setPort(port);
- service.start();
- }
-
- void stopServer()
- {
- service.stop();
- }
-
- void startClient(int port, TransportType transport) throws Exception
- {
- startClient(port, transport, false);
- }
-
- void startClient(int port, TransportType transport, boolean useSSL)
- throws Exception
- {
- client = new Client(new MinaConnector());
- client.connect("localhost", port, transport, useSSL);
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- private static void info(String info)
- {
- System.out.format("### %-50s ###\n", info);
- }
-
- // Inner classes -------------------------------------------------
-}
Modified: branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java
===================================================================
--- branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java 2007-12-10 12:53:34 UTC (rev 3456)
+++ branches/Branch_JBMESSAGING-544/tests/src/org/jboss/test/messaging/core/remoting/wireformat/PacketTypeTest.java 2007-12-10 13:10:41 UTC (rev 3457)
@@ -124,7 +124,6 @@
import org.jboss.messaging.core.remoting.codec.IDBlockRequestCodec;
import org.jboss.messaging.core.remoting.codec.IDBlockResponseCodec;
import org.jboss.messaging.core.remoting.codec.JMSExceptionMessageCodec;
-import org.jboss.messaging.core.remoting.codec.PacketCodecFactory;
import org.jboss.messaging.core.remoting.codec.RecoverDeliveriesMessageCodec;
import org.jboss.messaging.core.remoting.codec.RemotingBuffer;
import org.jboss.messaging.core.remoting.codec.SendMessageCodec;
@@ -133,6 +132,7 @@
import org.jboss.messaging.core.remoting.codec.TextPacketCodec;
import org.jboss.messaging.core.remoting.codec.UnsubscribeMessageCodec;
import org.jboss.messaging.core.remoting.codec.UpdateCallbackMessageCodec;
+import org.jboss.messaging.core.remoting.integration.PacketCodecFactory;
import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveriesMessage;
import org.jboss.messaging.core.remoting.wireformat.AcknowledgeDeliveryRequest;
More information about the jboss-cvs-commits
mailing list