[jboss-cvs] JBoss Messaging SVN: r3562 - in trunk: tests/src/org/jboss/messaging/core/remoting/impl and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jan 14 11:54:33 EST 2008
Author: jmesnil
Date: 2008-01-14 11:54:33 -0500 (Mon, 14 Jan 2008)
New Revision: 3562
Modified:
trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/ClientTestBase.java
trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaClientTest.java
Log:
* when using the in-vm optimization, the code is executed on the server-side in the same thread than on the client-side. The timeout parameters are ignored
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java 2008-01-14 10:01:10 UTC (rev 3561)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMSession.java 2008-01-14 16:54:33 UTC (rev 3562)
@@ -8,11 +8,6 @@
import static java.util.UUID.randomUUID;
-import java.util.concurrent.Callable;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.jboss.messaging.core.remoting.NIOSession;
@@ -33,7 +28,6 @@
// Attributes ----------------------------------------------------
private String id;
- private ExecutorService executor;
private long correlationCounter;
private PacketDispatcher serverDispatcher;
@@ -46,7 +40,6 @@
assert serverDispatcher != null;
this.id = randomUUID().toString();
- this.executor = Executors.newSingleThreadExecutor();
this.correlationCounter = 0;
this.serverDispatcher = serverDispatcher;
}
@@ -55,9 +48,6 @@
public boolean close()
{
- if (executor.isShutdown())
- return true;
- executor.shutdown();
return true;
}
@@ -92,9 +82,20 @@
long timeout, TimeUnit timeUnit) throws Throwable
{
request.setCorrelationID(correlationCounter++);
- Future<AbstractPacket> future = executor
- .submit(new PacketDispatcherCallable(request));
- return future.get(timeout, timeUnit);
+ final AbstractPacket[] responses = new AbstractPacket[1];
+
+ serverDispatcher.dispatch(request,
+ new PacketSender()
+ {
+ public void send(AbstractPacket response)
+ {
+ responses[0] = response;
+ }
+ });
+
+ assert responses[0] != null;
+
+ return responses[0];
}
// Package protected ---------------------------------------------
@@ -104,37 +105,4 @@
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
-
- private final class PacketDispatcherCallable implements
- Callable<AbstractPacket>
- {
- private final AbstractPacket packet;
-
- private PacketDispatcherCallable(AbstractPacket packet)
- {
- this.packet = packet;
- }
-
- public AbstractPacket call() throws Exception
- {
- final CountDownLatch latch = new CountDownLatch(1);
- final AbstractPacket[] responses = new AbstractPacket[1];
-
- serverDispatcher.dispatch((AbstractPacket) packet,
- new PacketSender()
- {
- public void send(AbstractPacket response)
- {
- responses[0] = response;
- latch.countDown();
- }
- });
-
- latch.await();
-
- assert responses[0] != null;
-
- return responses[0];
- }
- }
}
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/ClientTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/ClientTestBase.java 2008-01-14 10:01:10 UTC (rev 3561)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/ClientTestBase.java 2008-01-14 16:54:33 UTC (rev 3562)
@@ -6,12 +6,10 @@
*/
package org.jboss.messaging.core.remoting.impl;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.MANY_MESSAGES;
import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.reverse;
-import java.io.IOException;
import java.util.List;
import junit.framework.TestCase;
@@ -37,11 +35,11 @@
// Attributes ----------------------------------------------------
- private Client client;
+ protected Client client;
- private ReversePacketHandler serverPacketHandler;
+ protected ReversePacketHandler serverPacketHandler;
- private PacketDispatcher serverDispatcher;
+ protected PacketDispatcher serverDispatcher;
// Static --------------------------------------------------------
@@ -62,7 +60,19 @@
assertFalse(client.isConnected());
assertFalse(client.disconnect());
}
+
+ public void testConnectIsIdempotent() throws Exception
+ {
+ Client client = new ClientImpl(createNIOConnector(), createServerLocator());
+ assertFalse(client.isConnected());
+
+ client.connect();
+ String sessionID = client.getSessionID();
+ client.connect();
+ assertEquals(sessionID, client.getSessionID());
+ }
+
public void testSendOneWay() throws Exception
{
serverPacketHandler.expectMessage(1);
@@ -138,25 +148,6 @@
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.setTargetID(serverPacketHandler.getID());
-
- packet.setVersion((byte) 1);
-
- try
- {
- client.sendBlocking(packet);
- fail("a IOException should be thrown");
- } catch (IOException e)
- {
- }
- }
public void testCorrelationCounter() throws Exception
{
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaClientTest.java 2008-01-14 10:01:10 UTC (rev 3561)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/impl/mina/integration/test/MinaClientTest.java 2008-01-14 16:54:33 UTC (rev 3562)
@@ -6,15 +6,20 @@
*/
package org.jboss.messaging.core.remoting.impl.mina.integration.test;
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static org.jboss.messaging.core.remoting.TransportType.TCP;
import static org.jboss.messaging.core.remoting.impl.mina.integration.test.TestSupport.PORT;
+import java.io.IOException;
+
import org.jboss.messaging.core.remoting.NIOConnector;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.ServerLocator;
import org.jboss.messaging.core.remoting.impl.ClientTestBase;
import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
import org.jboss.messaging.core.remoting.impl.mina.MinaService;
+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>
@@ -37,6 +42,25 @@
// Public --------------------------------------------------------
+ public void testSendBlockingWithTimeout() throws Exception
+ {
+ client.setBlockingRequestTimeout(500, MILLISECONDS);
+ serverPacketHandler.setSleepTime(1000, MILLISECONDS);
+
+ AbstractPacket packet = new TextPacket("testSendBlockingWithTimeout");
+ packet.setTargetID(serverPacketHandler.getID());
+
+ packet.setVersion((byte) 1);
+
+ try
+ {
+ client.sendBlocking(packet);
+ fail("a IOException should be thrown");
+ } catch (IOException e)
+ {
+ }
+ }
+
// ClientTestBase overrides --------------------------------------
@Override
More information about the jboss-cvs-commits
mailing list