[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