[jboss-cvs] JBoss Messaging SVN: r4246 - in trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina: timing and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon May 19 20:59:10 EDT 2008


Author: clebert.suconic at jboss.com
Date: 2008-05-19 20:59:10 -0400 (Mon, 19 May 2008)
New Revision: 4246

Added:
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureBase.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureInVMTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureRemoteTest.java
Log:
Adding test I'm using to investigate an issue with remoting blocked calls

Added: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureBase.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureBase.java	2008-05-20 00:59:10 UTC (rev 4246)
@@ -0,0 +1,183 @@
+package org.jboss.messaging.tests.integration.core.remoting.mina.timing;
+
+import static org.jboss.messaging.core.remoting.TransportType.TCP;
+import junit.framework.TestCase;
+
+import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
+import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.client.impl.RemotingConnectionImpl;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.remoting.NIOConnector;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketHandler;
+import org.jboss.messaging.core.remoting.PacketReturner;
+import org.jboss.messaging.core.remoting.impl.mina.MinaService;
+import org.jboss.messaging.core.remoting.impl.wireformat.EmptyPacket;
+import org.jboss.messaging.tests.integration.core.remoting.mina.TestSupport;
+import org.jboss.messaging.tests.unit.core.remoting.impl.ConfigurationHelper;
+
+
+public abstract class MeasureBase extends TestCase
+{
+   protected MinaService service;
+   protected PacketDispatcher serverDispatcher;
+
+   public void setUp() throws Exception
+   {
+      super.setUp();
+      startServer();
+      serverDispatcher.register(new FakeHandler());
+   }
+   
+   public void tearDown() throws Exception
+   {
+      service.stop();
+   }
+   
+   
+   public void testMixingSends() throws Throwable
+   {
+      RemotingConnectionImpl remoting = new RemotingConnectionImpl(getLocation(), createParameters());
+      remoting.start();
+      
+      int NUMBER_OF_MESSAGES = 300;
+      
+      long start = System.currentTimeMillis();
+      
+      for (int i=0; i<NUMBER_OF_MESSAGES; i++)
+      {
+         if (i%2 == 0)
+         {
+            remoting.sendOneWay(10, 10, new EmptyPacket(EmptyPacket.CLOSE));
+         }
+         else
+         {
+            EmptyPacket ret = (EmptyPacket)remoting.sendBlocking(10, 0, new EmptyPacket(EmptyPacket.CLOSE));
+            assertTrue (ret instanceof EmptyPacket);
+            //assertEquals(EmptyPacket.EXCEPTION, ret.getType());
+         }
+      }
+      
+      long end = System.currentTimeMillis();
+      
+      
+      System.out.println("Messages / second = " + (NUMBER_OF_MESSAGES * 1000 / (end-start)));
+      Thread.sleep(1000);
+      
+      remoting.stop();
+      
+   }
+   
+   public void testBlockSends() throws Throwable
+   {
+       //NIOConnector connector = createNIOConnector(new PacketDispatcherImpl(null));
+      //NIOSession session = connector.connect();
+
+      
+      
+      RemotingConnectionImpl remoting = new RemotingConnectionImpl(getLocation(), createParameters());
+      remoting.start();
+      
+      int NUMBER_OF_MESSAGES = 100;
+      
+      long start = System.currentTimeMillis();
+      
+      for (int i=0; i<NUMBER_OF_MESSAGES; i++)
+      {
+         Object ret = remoting.sendBlocking(10, 10, new EmptyPacket(EmptyPacket.CLOSE));
+         assertTrue (ret instanceof EmptyPacket);
+      }
+      
+      long end = System.currentTimeMillis();
+      
+      
+      System.out.println("Messages / second = " + (NUMBER_OF_MESSAGES * 1000 / (end-start)));
+      Thread.sleep(1000);
+      
+      remoting.stop();
+      
+   }
+
+   public void testOneWaySends() throws Throwable
+   {
+       //NIOConnector connector = createNIOConnector(new PacketDispatcherImpl(null));
+      //NIOSession session = connector.connect();
+
+      
+      RemotingConnectionImpl remoting = new RemotingConnectionImpl(getLocation(), createParameters());
+      remoting.start();
+      
+      int NUMBER_OF_MESSAGES = 30000;
+      
+      long start = System.currentTimeMillis();
+      
+      for (int i=0; i<NUMBER_OF_MESSAGES; i++)
+      {
+         remoting.sendOneWay(10, 10, new EmptyPacket(EmptyPacket.CLOSE));
+      }
+
+      remoting.sendBlocking(10, 10, new EmptyPacket(EmptyPacket.CLOSE));
+      
+      long end = System.currentTimeMillis();
+      
+      
+      System.out.println("Messages / second = " + (NUMBER_OF_MESSAGES * 1000 / (end-start)));
+      
+      remoting.stop();
+      
+   }
+
+   protected abstract LocationImpl getLocation();
+
+   protected abstract ConfigurationImpl createConfiguration();
+
+   
+   
+   protected void startServer() throws Exception
+   {
+      service = new MinaService(createConfiguration());
+      service.start();
+      serverDispatcher = service.getDispatcher();
+      System.out.println("Server Dispatcher = " + serverDispatcher);
+   }
+
+   // Private
+   
+   protected ConnectionParamsImpl createParameters()
+   {
+      ConnectionParamsImpl param = new ConnectionParamsImpl();
+      param.setTimeout(50000);
+      return param;
+   }
+   
+
+   
+   // Inner Classes
+   
+   class FakeHandler implements PacketHandler
+   {
+
+      public long getID()
+      {
+         return 10;
+      }
+
+      public void handle(Packet packet, PacketReturner sender)
+      {
+         //System.out.println("Hello " + packet);
+         try
+         {
+            if (packet.getResponseTargetID() >= 0)
+            {
+               packet.setTargetID(packet.getResponseTargetID());
+               sender.send(packet);
+            }
+         } catch (Exception e)
+         {
+            e.printStackTrace();
+         }
+      }
+   }
+   
+}

Added: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureInVMTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureInVMTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureInVMTest.java	2008-05-20 00:59:10 UTC (rev 4246)
@@ -0,0 +1,26 @@
+package org.jboss.messaging.tests.integration.core.remoting.mina.timing;
+
+import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.tests.unit.core.remoting.impl.ConfigurationHelper;
+
+
+/** This test was added to compare InVM calls against MINA calls */
+public class MeasureInVMTest extends MeasureBase
+{
+
+   @Override
+   protected LocationImpl getLocation()
+   {
+      return new LocationImpl(0);
+      
+   }
+
+   protected ConfigurationImpl createConfiguration()
+   {
+      return ConfigurationHelper.newInVMConfig();
+   }
+
+   
+
+}

Added: trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureRemoteTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureRemoteTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/core/remoting/mina/timing/MeasureRemoteTest.java	2008-05-20 00:59:10 UTC (rev 4246)
@@ -0,0 +1,27 @@
+package org.jboss.messaging.tests.integration.core.remoting.mina.timing;
+
+import static org.jboss.messaging.core.remoting.TransportType.TCP;
+
+import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.tests.integration.core.remoting.mina.TestSupport;
+import org.jboss.messaging.tests.unit.core.remoting.impl.ConfigurationHelper;
+
+public class MeasureRemoteTest extends MeasureBase
+{
+
+   @Override
+   protected LocationImpl getLocation()
+   {
+      return new LocationImpl(TCP, "localhost", TestSupport.PORT);
+   }
+   
+   @Override
+   protected ConfigurationImpl createConfiguration()
+   {
+      return ConfigurationHelper.newTCPConfiguration("localhost", TestSupport.PORT);
+   }
+
+
+
+}




More information about the jboss-cvs-commits mailing list