[jboss-cvs] JBoss Messaging SVN: r4220 - in trunk: src/config and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri May 16 10:05:29 EDT 2008


Author: ataylor
Date: 2008-05-16 10:05:29 -0400 (Fri, 16 May 2008)
New Revision: 4220

Modified:
   trunk/build-messaging.xml
   trunk/src/config/jbm-configuration.xml
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java
   trunk/src/main/org/jboss/messaging/core/remoting/NIOConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
   trunk/tests/src/org/jboss/messaging/tests/integration/CoreClientTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectorRegistryTest.java
Log:
fixed bug with multiple connections. we were creating multiple dispatchers for each connector instead of reusing the same one. also changed journal dir to be 'data'

Modified: trunk/build-messaging.xml
===================================================================
--- trunk/build-messaging.xml	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/build-messaging.xml	2008-05-16 14:05:29 UTC (rev 4220)
@@ -488,14 +488,6 @@
             <include name="messaging.truststore"/>
          </fileset>
       </copy>
-      <replace file="${build.distro.config.dir}/jbm-configuration.xml">
-         <replacetoken id="token"><![CDATA[${user.home}/jbm-test/data/bindings]]></replacetoken>
-         <replacevalue id="value">../data/bindings</replacevalue>
-      </replace>
-      <replace file="${build.distro.config.dir}/jbm-configuration.xml">
-         <replacetoken id="token"><![CDATA[${user.home}/jbm-test/data/journal]]></replacetoken>
-         <replacevalue id="value">../data/journal</replacevalue>
-      </replace>
       <copy todir="${build.distro.bin.dir}">
          <fileset dir="${src.bin.dir}">
             <include name="run.sh"/>

Modified: trunk/src/config/jbm-configuration.xml
===================================================================
--- trunk/src/config/jbm-configuration.xml	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/src/config/jbm-configuration.xml	2008-05-16 14:05:29 UTC (rev 4220)
@@ -22,7 +22,7 @@
       <remoting-host>localhost</remoting-host>
 
       <!--  timeout in seconds -->
-      <remoting-timeout>5</remoting-timeout>
+      <remoting-timeout>50000</remoting-timeout>
       
       <!-- true to disable invm communication when the client and the server are in the same JVM.     -->
       <!-- it is not allowed to disable invm communication when the remoting-transport is set to INVM -->
@@ -61,11 +61,11 @@
       
       <!-- Storage configuration -->
                  
-      <bindings-directory>${user.home}/jbm-test/data/bindings</bindings-directory>
+      <bindings-directory>data/bindings</bindings-directory>
       
       <create-bindings-dir>true</create-bindings-dir>
       
-      <journal-directory>${user.home}/jbm-test/data/journal</journal-directory>
+      <journal-directory>data/journal</journal-directory>
       
       <create-journal-dir>true</create-journal-dir>
       

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientConnectionFactoryImpl.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -65,8 +65,6 @@
    private final Location location;
 
    private final ConnectionParams connectionParams;
-   
-   private final PacketDispatcher dispatcher;
  
    private final boolean strictTck;
       
@@ -94,7 +92,6 @@
       this.defaultConsumerMaxRate = defaultConsumerMaxRate;
       this.defaultProducerWindowSize = defaultProducerWindowSize;
       this.defaultProducerMaxRate = defaultProducerMaxRate;
-      this.dispatcher = new PacketDispatcherImpl(null);
       this.connectionParams = connectionParams;
    }
    
@@ -115,7 +112,6 @@
       this.defaultConsumerMaxRate = -1;
       this.defaultProducerWindowSize = 1000;
       this.defaultProducerMaxRate = -1;
-      this.dispatcher = new PacketDispatcherImpl(null);
       this.location = location;
       this.connectionParams = connectionParams;
    }
@@ -132,7 +128,7 @@
       RemotingConnection remotingConnection = null;
       try
       {
-         remotingConnection = new RemotingConnectionImpl(location, connectionParams,  dispatcher);
+         remotingConnection = new RemotingConnectionImpl(location, connectionParams);
        
          remotingConnection.start();
          

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/RemotingConnectionImpl.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -68,19 +68,17 @@
    
    private RemotingSessionListener listener;
 
-   private transient PacketDispatcher dispatcher;
+   //private transient PacketDispatcher dispatcher;
    
    // Constructors ---------------------------------------------------------------------------------
 
-   public RemotingConnectionImpl(final Location location, ConnectionParams connectionParams, final PacketDispatcher dispatcher) throws Exception
+   public RemotingConnectionImpl(final Location location, ConnectionParams connectionParams) throws Exception
    {
       assert location != null;
-      assert dispatcher != null;
       assert connectionParams != null;
       
       this.location = location;
       this.connectionParams = connectionParams;
-      this.dispatcher = dispatcher;
       
       log.trace(this + " created with configuration " + location);
    }
@@ -93,7 +91,7 @@
    {
       if (log.isTraceEnabled()) { log.trace(this + " started remoting connection"); }
 
-      connector = REGISTRY.getConnector(location, connectionParams, dispatcher);
+      connector = REGISTRY.getConnector(location, connectionParams);
       session = connector.connect();
 
       if (log.isDebugEnabled())
@@ -143,11 +141,11 @@
    {
       checkConnected();
       
-      long handlerID = dispatcher.generateID();
+      long handlerID = connector.getDispatcher().generateID();
       
       ResponseHandler handler = new ResponseHandler(handlerID);
       
-      dispatcher.register(handler);
+      connector.getDispatcher().register(handler);
       
       try
       {  
@@ -186,7 +184,7 @@
       }
       finally
       {
-         dispatcher.unregister(handlerID);
+         connector.getDispatcher().unregister(handlerID);
       }           
    }
    
@@ -229,7 +227,7 @@
    
    public PacketDispatcher getPacketDispatcher()
    {
-      return dispatcher;
+      return connector.getDispatcher();
    }
    
    public Location getLocation()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -45,7 +45,7 @@
     */
    boolean unregister(Location location);
 
-   NIOConnector getConnector(Location location, ConnectionParams connectionParams, PacketDispatcher dispatcher);
+   NIOConnector getConnector(Location location, ConnectionParams connectionParams);
 
    /**
     * Decrement the number of references on the NIOConnector corresponding to

Modified: trunk/src/main/org/jboss/messaging/core/remoting/NIOConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/NIOConnector.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/src/main/org/jboss/messaging/core/remoting/NIOConnector.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -27,4 +27,6 @@
    void removeSessionListener(RemotingSessionListener listener);
 
    String getServerURI();
+
+   PacketDispatcher getDispatcher();
 }
\ No newline at end of file

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectorRegistryImpl.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -84,7 +84,7 @@
        return (dispatcher != null);
    }
 
-   public synchronized NIOConnector getConnector(Location location, ConnectionParams connectionParams,  PacketDispatcher dispatcher)
+   public synchronized NIOConnector getConnector(Location location, ConnectionParams connectionParams)
    {
       assert location != null;
       String key = location.getLocation();
@@ -125,12 +125,12 @@
 
       if (transport == TCP)
       {
-         connector = new MinaConnector(location, connectionParams, dispatcher);
+         connector = new MinaConnector(location, connectionParams, new PacketDispatcherImpl(null));
       }
       else if (transport == INVM)
       {
          PacketDispatcher localDispatcher = localDispatchers.get(key);
-         connector = new INVMConnector(idCounter.getAndIncrement(), dispatcher, localDispatcher);
+         connector = new INVMConnector(idCounter.getAndIncrement(), new PacketDispatcherImpl(null), localDispatcher);
       }
 
       if (connector == null)

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/INVMConnector.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -73,7 +73,12 @@
    {
       return INVM + "://localhost";
    }
-   
+
+   public PacketDispatcher getDispatcher()
+   {
+      return clientDispatcher;
+   }
+
    public void addSessionListener(RemotingSessionListener listener)
    {      
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -238,7 +238,12 @@
    { 
       return location.getLocation() + connectionParams.getURI();
    }
-   
+
+   public PacketDispatcher getDispatcher()
+   {
+      return dispatcher;
+   }
+
    // FailureNotifier implementation -------------------------------
    
    public synchronized void fireCleanup(long sessionID, MessagingException me)

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/CoreClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/CoreClientTest.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/CoreClientTest.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -4,17 +4,11 @@
 
 import junit.framework.TestCase;
 
-import org.jboss.messaging.core.client.ClientConnection;
-import org.jboss.messaging.core.client.ClientConnectionFactory;
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.MessageHandler;
+import org.jboss.messaging.core.client.*;
 import org.jboss.messaging.core.client.impl.ClientConnectionFactoryImpl;
 import org.jboss.messaging.core.client.impl.ClientMessageImpl;
 import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.remoting.TransportType;
 import org.jboss.messaging.core.server.impl.MessagingServerImpl;
@@ -85,7 +79,37 @@
       
       conn.close();
    }
-   
+
+   public void testCoreClientMultipleConnections() throws Exception
+   {
+      Location location = new LocationImpl(TransportType.TCP, "localhost", ConfigurationImpl.DEFAULT_REMOTING_PORT);
+      ConnectionParams connectionParams = new ConnectionParamsImpl();
+      connectionParams.setTimeout(500000);
+      ClientConnectionFactory cf = new ClientConnectionFactoryImpl(location, connectionParams);
+      ClientConnection conn = cf.createConnection();
+
+      ClientConnectionFactory cf2 = new ClientConnectionFactoryImpl(location, connectionParams);
+      ClientConnection conn2 = cf2.createConnection();
+
+      ClientSession session = conn.createClientSession(false, true, true, -1, false, false);
+      session.createQueue(QUEUE, QUEUE, null, false, false);
+
+      ClientProducer producer = session.createProducer(QUEUE);
+
+      ClientMessage message = new ClientMessageImpl(JBossTextMessage.TYPE, false, 0,
+            System.currentTimeMillis(), (byte) 1);
+      message.getBody().putString("testINVMCoreClient");
+      producer.send(message);
+
+      ClientConsumer consumer = session.createConsumer(QUEUE);
+      conn.start();
+
+      message = consumer.receive(1000);
+
+      assertEquals("testINVMCoreClient", message.getBody().getString());
+
+      conn.close();
+   }
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectorRegistryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectorRegistryTest.java	2008-05-16 14:04:36 UTC (rev 4219)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectorRegistryTest.java	2008-05-16 14:05:29 UTC (rev 4220)
@@ -82,7 +82,7 @@
       assertTrue(registry.unregister(config_1.getLocation()));
       assertTrue(registry.unregister(config_2.getLocation()));
    }
-   
+
    public void testINVMConnectorFromTCPConfiguration() throws Exception
    {
       Configuration config = ConfigurationHelper.newTCPConfiguration("localhost", PORT);
@@ -90,7 +90,7 @@
       // config is registered -> client and server are in the same vm
       assertTrue(registry.register(config.getLocation(), dispatcher));
       
-      NIOConnector connector = registry.getConnector(config.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector = registry.getConnector(config.getLocation(), new ConnectionParamsImpl());
       
       assertTrue(connector.getServerURI().startsWith(INVM.toString()));
       
@@ -106,7 +106,7 @@
       
       // config is not registered -> client and server are not in the same vm
       
-      NIOConnector connector = registry.getConnector(config.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector = registry.getConnector(config.getLocation(), new ConnectionParamsImpl());
       
       assertNotNull(connector);
       assertEquals(config.getURI(), connector.getServerURI());
@@ -119,10 +119,10 @@
       Configuration config = ConfigurationHelper.newTCPConfiguration("localhost", PORT);
       assertEquals(0, registry.getConnectorCount(config.getLocation()));
 
-      NIOConnector connector1 = registry.getConnector(config.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector1 = registry.getConnector(config.getLocation(), new ConnectionParamsImpl());
       assertEquals(1, registry.getConnectorCount(config.getLocation()));
 
-      NIOConnector connector2 = registry.getConnector(config.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector2 = registry.getConnector(config.getLocation(), new ConnectionParamsImpl());
       assertEquals(2, registry.getConnectorCount(config.getLocation()));
 
       assertSame(connector1, connector2);
@@ -130,7 +130,7 @@
       assertNull(registry.removeConnector(config.getLocation()));
       assertEquals(1, registry.getConnectorCount(config.getLocation()));
 
-      NIOConnector connector3 = registry.getConnector(config.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector3 = registry.getConnector(config.getLocation(), new ConnectionParamsImpl());
       assertEquals(2, registry.getConnectorCount(config.getLocation()));
 
       assertSame(connector1, connector3);
@@ -150,10 +150,10 @@
       assertEquals(0, registry.getConnectorCount(config1.getLocation()));
       assertEquals(0, registry.getConnectorCount(config2.getLocation()));
 
-      NIOConnector connector1 = registry.getConnector(config1.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector1 = registry.getConnector(config1.getLocation(), new ConnectionParamsImpl());
       assertEquals(1, registry.getConnectorCount(config1.getLocation()));
 
-      NIOConnector connector2 = registry.getConnector(config2.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector2 = registry.getConnector(config2.getLocation(), new ConnectionParamsImpl());
       assertEquals(1, registry.getConnectorCount(config2.getLocation()));
       
       assertNotSame(connector1, connector2);
@@ -173,10 +173,10 @@
 
       assertNotSame(config1, config2);
 
-      NIOConnector connector1 = registry.getConnector(config1.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector1 = registry.getConnector(config1.getLocation(), new ConnectionParamsImpl());
       assertEquals(1, registry.getConnectorCount(config1.getLocation()));
 
-      NIOConnector connector2 = registry.getConnector(config2.getLocation(), new ConnectionParamsImpl(), dispatcher);
+      NIOConnector connector2 = registry.getConnector(config2.getLocation(), new ConnectionParamsImpl());
       assertEquals(2, registry.getConnectorCount(config2.getLocation()));
 
       assertSame(connector1, connector2);




More information about the jboss-cvs-commits mailing list