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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Aug 29 10:48:39 EDT 2008


Author: timfox
Date: 2008-08-29 10:48:38 -0400 (Fri, 29 Aug 2008)
New Revision: 4896

Added:
   trunk/src/main/org/jboss/messaging/core/config/TransportConfiguration.java
Removed:
   trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java
   trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistryLocator.java
Modified:
   trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java
   trunk/src/config/jbm-configuration.xml
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
   trunk/src/main/org/jboss/messaging/core/config/Configuration.java
   trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
   trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectionRegistryImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingServiceImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptor.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/TransportConstants.java
   trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java
   trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
   trunk/tests/config/ConfigurationTest-config.xml
   trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/remoting/PingTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSLTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest2.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectionRegistryLocatorTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingServiceImplTest.java
Log:
Added nio/oio param to netty transport, plus some work on replicating connection


Modified: trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -27,7 +27,7 @@
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.message.Message;
@@ -54,7 +54,7 @@
          //create a new server with an TCP transport
          ConfigurationImpl configuration = new ConfigurationImpl();
          configuration.setSecurityEnabled(false);
-         configuration.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
+         configuration.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
          messagingService = MessagingServiceImpl.newNullStorageMessagingServer(configuration);
          //start the server
          messagingService.start();

Modified: trunk/src/config/jbm-configuration.xml
===================================================================
--- trunk/src/config/jbm-configuration.xml	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/config/jbm-configuration.xml	2008-08-29 14:48:38 UTC (rev 4896)
@@ -29,6 +29,18 @@
       </remoting-interceptors>
       -->
       
+      <backup>false</backup>
+      
+      <!--
+      <backup-connector>
+         <factory-class>org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+         <params>
+            <param key="jbm.remoting.netty.host" value="localhost" type="String"/>
+            <param key="jbm.remoting.netty.port" value="6400" type="Integer"/>
+         </params>
+      </backup-connector>
+      -->
+      
       <remoting-acceptors>
          <!-- In VM acceptor -->
          <acceptor>
@@ -45,8 +57,9 @@
 	            <param key="jbm.remoting.netty.port" value="5400" type="Integer"/>	            
 	            <param key="jbm.remoting.netty.tcpnodelay" value="true" type="Boolean"/>
 	            <param key="jbm.remoting.netty.tcpsendbuffersize" value="32768" type="Integer"/>
-	            <param key="jbm.remoting.netty.tcpreceivebuffersize" value="32768" type="Integer"/>	            
-	            <param key="jbm.remoting.netty.sslenabled" value="false" type="Boolean"/>
+	            <param key="jbm.remoting.netty.tcpreceivebuffersize" value="32768" type="Integer"/>
+	            <param key="jbm.remoting.netty.usenio" value="true" type="Boolean"/>	            
+	            <param key="jbm.remoting.netty.sslenabled" value="false" type="Boolean"/>	            
             </params>
          </acceptor>   
          <!-- Netty SSL Acceptor
@@ -57,7 +70,8 @@
 	            <param key="jbm.remoting.netty.port" value="5500" type="Integer"/>	            
 	            <param key="jbm.remoting.netty.tcpnodelay" value="true" type="Boolean"/>
 	            <param key="jbm.remoting.netty.tcpsendbuffersize" value="32768" type="Integer"/>
-	            <param key="jbm.remoting.netty.tcpreceivebuffersize" value="32768" type="Integer"/>	            
+	            <param key="jbm.remoting.netty.tcpreceivebuffersize" value="32768" type="Integer"/>	 
+	            <param key="jbm.remoting.netty.usenio" value="true" type="Boolean"/>           
 	            <param key="jbm.remoting.netty.sslenabled" value="true" type="Boolean"/>
 	            <param key="jbm.remoting.netty.keystorepath" value="messaging.keystore" type="String"/>
 	            <param key="jbm.remoting.netty.keystorepassword" value="secureexample" type="String"/>

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -30,11 +30,11 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.CommandManager;
 import org.jboss.messaging.core.remoting.ConnectionRegistry;
-import org.jboss.messaging.core.remoting.ConnectionRegistryLocator;
 import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.RemotingConnection;
 import org.jboss.messaging.core.remoting.impl.CommandManagerImpl;
+import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
 import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateSessionMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateSessionResponseMessage;
@@ -137,7 +137,7 @@
       this.blockOnAcknowledge = blockOnAcknowledge;
       this.blockOnNonPersistentSend = blockOnNonPersistentSend;
       this.blockOnPersistentSend = blockOnPersistentSend;
-      this.connectionRegistry = ConnectionRegistryLocator.getRegistry();
+      this.connectionRegistry = ConnectionRegistryImpl.instance;
    }
    
    /**
@@ -156,7 +156,7 @@
       blockOnAcknowledge = DEFAULT_BLOCK_ON_ACKNOWLEDGE;
       blockOnPersistentSend = DEFAULT_BLOCK_ON_PERSISTENT_SEND;
       blockOnNonPersistentSend = DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND;      
-      this.connectionRegistry = ConnectionRegistryLocator.getRegistry();
+      this.connectionRegistry = ConnectionRegistryImpl.instance;
    }
          
    // ClientSessionFactory implementation ---------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -42,11 +42,11 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.CommandManager;
 import org.jboss.messaging.core.remoting.ConnectionRegistry;
-import org.jboss.messaging.core.remoting.ConnectionRegistryLocator;
 import org.jboss.messaging.core.remoting.FailureListener;
 import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.RemotingConnection;
+import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowCreditMessage;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
@@ -227,7 +227,7 @@
       
       this.version = version;
       
-      this.connectionRegistry = ConnectionRegistryLocator.getRegistry();
+      this.connectionRegistry = ConnectionRegistryImpl.instance;
    }
 
    // ClientSession implementation

Deleted: trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -1,76 +0,0 @@
-/*
-  * JBoss, Home of Professional Open Source
-  * Copyright 2005, JBoss Inc., and individual contributors as indicated
-  * by the @authors tag. See the copyright.txt in the distribution for a
-  * full listing of individual contributors.
-  *
-  * This is free software; you can redistribute it and/or modify it
-  * under the terms of the GNU Lesser General Public License as
-  * published by the Free Software Foundation; either version 2.1 of
-  * the License, or (at your option) any later version.
-  *
-  * This software is distributed in the hope that it will be useful,
-  * but WITHOUT ANY WARRANTY; without even the implied warranty of
-  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  * Lesser General Public License for more details.
-  *
-  * You should have received a copy of the GNU Lesser General Public
-  * License along with this software; if not, write to the Free
-  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-  */
-package org.jboss.messaging.core.config;
-
-import java.io.Serializable;
-import java.util.Map;
-
-/**
- * An AcceptorInfo
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public class AcceptorInfo implements Serializable
-{
-   private static final long serialVersionUID = -3994528421527392679L;
-
-   private final String factoryClassName;
-   
-   private final Map<String, Object> params;
-   
-   public AcceptorInfo(final String className, final Map<String, Object> params)
-   {
-      this.factoryClassName = className;
-      
-      this.params = params;
-   }
-   
-   public AcceptorInfo(final String className)
-   {
-      this.factoryClassName = className;
-      
-      this.params = null;
-   }
-   
-   public String getFactoryClassName()
-   {
-      return factoryClassName;
-   }
-   
-   public Map<String, Object> getParams()
-   {
-      return params;
-   }
-   
-   public boolean equals(Object other)
-   {
-      if (other instanceof AcceptorInfo == false)
-      {
-         return false;
-      }
-      
-      AcceptorInfo ai = (AcceptorInfo)other;
-      
-      return this.factoryClassName.equals(ai.factoryClassName);
-   }
-}

Modified: trunk/src/main/org/jboss/messaging/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/Configuration.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/config/Configuration.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -82,12 +82,14 @@
    long getConnectionScanPeriod();
    
    void setConnectionScanPeriod(long scanPeriod);
+     
+   Set<TransportConfiguration> getAcceptorConfigurations();
    
-   // Remoting related attributes ----------------------------------------------------------
-        
-   Set<AcceptorInfo> getAcceptorInfos();
+   void setAcceptorConfigurations(Set<TransportConfiguration> infos);   
    
-   void setAcceptorInfos(Set<AcceptorInfo> infos);   
+   TransportConfiguration getBackupConnectorConfiguration();
+   
+   void setBackupConnectorConfiguration(TransportConfiguration config);
       
    // Journal related attributes ------------------------------------------------------------
    

Copied: trunk/src/main/org/jboss/messaging/core/config/TransportConfiguration.java (from rev 4888, trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java)
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/TransportConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/config/TransportConfiguration.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -0,0 +1,76 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.messaging.core.config;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * A TransportConfiguration
+ * 
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class TransportConfiguration implements Serializable
+{
+   private static final long serialVersionUID = -3994528421527392679L;
+
+   private final String factoryClassName;
+   
+   private final Map<String, Object> params;
+   
+   public TransportConfiguration(final String className, final Map<String, Object> params)
+   {
+      this.factoryClassName = className;
+      
+      this.params = params;
+   }
+   
+   public TransportConfiguration(final String className)
+   {
+      this.factoryClassName = className;
+      
+      this.params = null;
+   }
+   
+   public String getFactoryClassName()
+   {
+      return factoryClassName;
+   }
+   
+   public Map<String, Object> getParams()
+   {
+      return params;
+   }
+   
+   public boolean equals(Object other)
+   {
+      if (other instanceof TransportConfiguration == false)
+      {
+         return false;
+      }
+      
+      TransportConfiguration ai = (TransportConfiguration)other;
+      
+      return this.factoryClassName.equals(ai.factoryClassName);
+   }
+}

Modified: trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -27,7 +27,7 @@
 import java.util.List;
 import java.util.Set;
 
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.server.JournalType;
 
@@ -105,7 +105,13 @@
    
    protected long connectionScanPeriod = DEFAULT_CONNECTION_SCAN_PERIOD;
    
+   protected List<String> interceptorClassNames = new ArrayList<String>();
+
+   protected Set<TransportConfiguration> acceptorConfigs = new HashSet<TransportConfiguration>();
          
+   protected TransportConfiguration backupConnectorConfig;
+   
+         
    // Journal related attributes
    
    protected String bindingsDirectory = DEFAULT_BINDINGS_DIRECTORY;
@@ -128,10 +134,7 @@
    
    protected int journalMaxAIO = DEFAULT_JOURNAL_MAX_AIO;
    
-   protected List<String> interceptorClassNames = new ArrayList<String>();
-
-   protected Set<AcceptorInfo> acceptorInfos = new HashSet<AcceptorInfo>();
-         
+   
    public boolean isClustered()
    {
       return clustered;
@@ -222,15 +225,25 @@
       this.interceptorClassNames = interceptors;
    }
    
-   public Set<AcceptorInfo> getAcceptorInfos()
+   public Set<TransportConfiguration> getAcceptorConfigurations()
    {
-      return this.acceptorInfos;
+      return this.acceptorConfigs;
    }
    
-   public void setAcceptorInfos(Set<AcceptorInfo> infos)
+   public void setAcceptorConfigurations(Set<TransportConfiguration> infos)
    {
-      this.acceptorInfos = infos;
+      this.acceptorConfigs = infos;
    }
+   
+   public TransportConfiguration getBackupConnectorConfiguration()
+   {
+      return backupConnectorConfig;
+   }
+   
+   public void setBackupConnectorConfiguration(TransportConfiguration config)
+   {
+      this.backupConnectorConfig = config;
+   }
   
 	public String getBindingsDirectory()
 	{

Modified: trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -29,7 +29,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.server.JournalType;
 import org.jboss.messaging.util.XMLUtil;
@@ -110,6 +110,100 @@
       }
       this.interceptorClassNames = interceptorList;
       
+      NodeList backups = e.getElementsByTagName("backup-connector");
+      
+      //TODO  combine all these duplicated transport config parsing code - it's messy!
+      if (backups.getLength() > 0)
+      {
+         Node backup = backups.item(0);
+         
+         NodeList children = backup.getChildNodes();
+         
+         String clazz = null;
+         
+         Map<String, Object> params = new HashMap<String, Object>();
+                        
+         for (int l = 0; l < children.getLength(); l++)
+         {                                  
+            String nodeName = children.item(l).getNodeName();
+            
+            if ("factory-class".equalsIgnoreCase(nodeName))
+            {                    
+               clazz = children.item(l).getTextContent();
+            }
+            else if ("params".equalsIgnoreCase(nodeName))
+            {                                                             
+               NodeList nlParams = children.item(l).getChildNodes();
+               
+               for (int m = 0; m < nlParams.getLength(); m++)
+               {
+                  if ("param".equalsIgnoreCase(nlParams.item(m).getNodeName()))
+                  {
+                     Node paramNode = nlParams.item(m);
+                     
+                     NamedNodeMap attributes = paramNode.getAttributes();
+                     
+                     Node nkey = attributes.getNamedItem("key");
+                     
+                     String key = nkey.getTextContent();
+                     
+                     Node nValue = attributes.getNamedItem("value");
+                     
+                     String value = nValue.getTextContent();
+                     
+                     Node nType = attributes.getNamedItem("type");
+                     
+                     String type = nType.getTextContent();
+                     
+                     if (type.equalsIgnoreCase("Integer"))
+                     {
+                        try
+                        {
+                           Integer iVal = Integer.parseInt(value);
+                           
+                           params.put(key, iVal);
+                        }
+                        catch (NumberFormatException e2)
+                        {
+                           throw new IllegalArgumentException("Remoting acceptor parameter " + value + " is not a valid Integer");
+                        }
+                     }
+                     else if (type.equalsIgnoreCase("Long"))
+                     {
+                        try
+                        {
+                           Long lVal = Long.parseLong(value);
+                           
+                           params.put(key, lVal);
+                        }
+                        catch (NumberFormatException e2)
+                        {
+                           throw new IllegalArgumentException("Remoting acceptor parameter " + value + " is not a valid Long");
+                        }
+                     }
+                     else if (type.equalsIgnoreCase("String"))
+                     {
+                        params.put(key, value);                             
+                     }
+                     else if (type.equalsIgnoreCase("Boolean"))
+                     {
+                        Boolean lVal = Boolean.parseBoolean(value);
+                           
+                        params.put(key, lVal);                              
+                     }
+                     else
+                     {
+                        throw new IllegalArgumentException("Invalid parameter type " + type);
+                     }
+                  }
+               }
+            }
+            
+            this.backupConnectorConfig = new TransportConfiguration(clazz, params);
+         }
+
+      }
+      
       NodeList acceptorNodes = e.getElementsByTagName("remoting-acceptors");
       
       if (acceptorNodes.getLength() > 0)
@@ -203,9 +297,9 @@
                   }                                                                  
                }
       
-               AcceptorInfo info = new AcceptorInfo(clazz, params);
+               TransportConfiguration info = new TransportConfiguration(clazz, params);
                
-               acceptorInfos.add(info);    
+               acceptorConfigs.add(info);    
             }
          }
       }

Deleted: trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistryLocator.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistryLocator.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistryLocator.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -1,46 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.messaging.core.remoting;
-
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
-
-/**
- * 
- * A ConnectionRegistryLocator
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public class ConnectionRegistryLocator
-{
-   private static final Logger log = Logger.getLogger(ConnectionRegistryLocator.class);
-   
-   public static final String CONNECTOR_FACTORIES_PROPS_FILE_NAME = "jbm-connector-factories.properties";
-   
-   private static final ConnectionRegistry registry = new ConnectionRegistryImpl();
-   
-   public static ConnectionRegistry getRegistry()
-   {
-      return registry;
-   }
-}

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectionRegistryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectionRegistryImpl.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectionRegistryImpl.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -61,6 +61,8 @@
       new ScheduledThreadPoolExecutor(10, new JBMThreadFactory("jbm-pinger-threads"));
 
    // Static --------------------------------------------------------
+   
+   public static ConnectionRegistry instance = new ConnectionRegistryImpl();
 
    // ConnectionRegistry implementation -----------------------------
       

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingServiceImpl.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingServiceImpl.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -31,7 +31,7 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
@@ -63,7 +63,7 @@
 
    private volatile boolean started = false;
 
-   private final Set<AcceptorInfo> acceptorInfos;
+   private final Set<TransportConfiguration> transportConfigs;
    
    private Set<Acceptor> acceptors = new HashSet<Acceptor>();
 
@@ -97,7 +97,7 @@
       
       final long callTimeout = config.getCallTimeout();
       
-      this.acceptorInfos = config.getAcceptorInfos();
+      this.transportConfigs = config.getAcceptorConfigurations();
       
       ClassLoader loader = Thread.currentThread().getContextClassLoader();
       for (String interceptorClass : config.getInterceptorClassNames())
@@ -129,7 +129,7 @@
       
       ClassLoader loader = Thread.currentThread().getContextClassLoader();
       
-      for (AcceptorInfo info: acceptorInfos)
+      for (TransportConfiguration info: transportConfigs)
       {
          try
          {

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptor.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptor.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptor.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -32,6 +32,7 @@
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_SENDBUFFER_SIZE;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TRUSTSTORE_PASSWORD;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TRUSTSTORE_PATH;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_USE_NIO;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.HOST_PROP_NAME;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.KEYSTORE_PASSWORD_PROP_NAME;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.KEYSTORE_PATH_PROP_NAME;
@@ -42,6 +43,7 @@
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TRUSTSTORE_PATH_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.USE_NIO_PROP_NAME;
 import static org.jboss.netty.channel.Channels.pipeline;
 
 import java.net.InetSocketAddress;
@@ -70,6 +72,7 @@
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.channel.ChannelStateEvent;
 import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
+import org.jboss.netty.channel.socket.oio.OioServerSocketChannelFactory;
 import org.jboss.netty.handler.ssl.SslHandler;
 
 /**
@@ -97,6 +100,8 @@
    
    private final boolean sslEnabled;
    
+   private final boolean useNio;
+   
    private final String host;
 
    private final int port;
@@ -124,6 +129,8 @@
       
       this.sslEnabled =
          ConfigurationHelper.getBooleanProperty(SSL_ENABLED_PROP_NAME, DEFAULT_SSL_ENABLED, configuration);
+      this.useNio = 
+         ConfigurationHelper.getBooleanProperty(USE_NIO_PROP_NAME, DEFAULT_USE_NIO, configuration);
       this.host =
          ConfigurationHelper.getStringProperty(HOST_PROP_NAME, DEFAULT_HOST, configuration);
       this.port =
@@ -166,7 +173,14 @@
 
       bossExecutor = Executors.newCachedThreadPool();
       workerExecutor = Executors.newCachedThreadPool();
-      channelFactory = new NioServerSocketChannelFactory(bossExecutor, workerExecutor);
+      if (useNio)
+      {
+         channelFactory = new NioServerSocketChannelFactory(bossExecutor, workerExecutor);
+      }
+      else
+      {
+         channelFactory = new OioServerSocketChannelFactory(bossExecutor, workerExecutor);
+      }
       bootstrap = new ServerBootstrap(channelFactory);
 
       final SSLContext context;

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnector.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnector.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -29,6 +29,7 @@
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_NODELAY;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_RECEIVEBUFFER_SIZE;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_SENDBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_USE_NIO;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.HOST_PROP_NAME;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.KEYSTORE_PASSWORD_PROP_NAME;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.KEYSTORE_PATH_PROP_NAME;
@@ -37,6 +38,7 @@
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_NODELAY_PROPNAME;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME;
 import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.USE_NIO_PROP_NAME;
 import static org.jboss.netty.channel.Channels.pipeline;
 
 import java.net.InetSocketAddress;
@@ -63,6 +65,7 @@
 import org.jboss.netty.channel.ChannelPipelineCoverage;
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
+import org.jboss.netty.channel.socket.oio.OioClientSocketChannelFactory;
 import org.jboss.netty.handler.ssl.SslHandler;
 
 /**
@@ -91,6 +94,8 @@
    
    private final boolean sslEnabled;
    
+   private final boolean useNio;   
+   
    private final String host;
 
    private final int port;
@@ -130,6 +135,8 @@
       
       this.sslEnabled =
          ConfigurationHelper.getBooleanProperty(SSL_ENABLED_PROP_NAME, DEFAULT_SSL_ENABLED, configuration);
+      this.useNio = 
+         ConfigurationHelper.getBooleanProperty(USE_NIO_PROP_NAME, DEFAULT_USE_NIO, configuration);
       this.host =
          ConfigurationHelper.getStringProperty(HOST_PROP_NAME, DEFAULT_HOST, configuration);
       this.port =
@@ -163,9 +170,16 @@
          return;
       }
 
-      bossExecutor = Executors.newCachedThreadPool();
       workerExecutor = Executors.newCachedThreadPool();
-      channelFactory = new NioClientSocketChannelFactory(bossExecutor, workerExecutor);
+      if (useNio)
+      {
+         bossExecutor = Executors.newCachedThreadPool();      
+         channelFactory = new NioClientSocketChannelFactory(bossExecutor, workerExecutor);
+      }
+      else
+      {
+         channelFactory = new OioClientSocketChannelFactory(workerExecutor);
+      }
       bootstrap = new ClientBootstrap(channelFactory);
 
       bootstrap.setOption("tcpNoDelay", tcpNoDelay);
@@ -225,23 +239,28 @@
 
       bootstrap = null;
       channelFactory = null;
-      bossExecutor.shutdown();
+      if (bossExecutor != null)
+      {
+         bossExecutor.shutdown();        
+      }
       workerExecutor.shutdown();
-
-      for (;;)
+      if (bossExecutor != null)
       {
-         try
+         for (;;)
          {
-            if (bossExecutor.awaitTermination(1, TimeUnit.SECONDS))
+            try
             {
-               break;
+               if (bossExecutor.awaitTermination(1, TimeUnit.SECONDS))
+               {
+                  break;
+               }
             }
+            catch (InterruptedException e)
+            {
+               // Ignore
+            }
          }
-         catch (InterruptedException e)
-         {
-            // Ignore
-         }
-      }
+      }     
    }
 
    public Connection createConnection()

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/TransportConstants.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/TransportConstants.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/TransportConstants.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -31,6 +31,8 @@
 {
    public static final String SSL_ENABLED_PROP_NAME = "jbm.remoting.netty.sslenabled";
    
+   public static final String USE_NIO_PROP_NAME = "jbm.remoting.netty.usenio";
+   
    public static final String HOST_PROP_NAME = "jbm.remoting.netty.host";
    
    public static final String PORT_PROP_NAME = "jbm.remoting.netty.port";
@@ -51,6 +53,8 @@
    
    public static final boolean DEFAULT_SSL_ENABLED = false;
    
+   public static final boolean DEFAULT_USE_NIO = true;
+   
    public static final String DEFAULT_HOST = "localhost";
    
    public static final int DEFAULT_PORT = 5400;

Modified: trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/server/MessagingServer.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -96,4 +96,6 @@
    int getConnectionCount();
    
    PostOffice getPostOffice();
+   
+   RemotingConnection getReplicatingConnection();
 }

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -32,6 +32,7 @@
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 
 import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.management.ManagementService;
@@ -40,11 +41,14 @@
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.postoffice.impl.PostOfficeImpl;
 import org.jboss.messaging.core.remoting.CommandManager;
+import org.jboss.messaging.core.remoting.ConnectionRegistry;
 import org.jboss.messaging.core.remoting.PacketDispatcher;
 import org.jboss.messaging.core.remoting.RemotingConnection;
 import org.jboss.messaging.core.remoting.RemotingService;
 import org.jboss.messaging.core.remoting.impl.CommandManagerImpl;
+import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
 import org.jboss.messaging.core.remoting.impl.wireformat.CreateSessionResponseMessage;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
 import org.jboss.messaging.core.security.JBMSecurityManager;
 import org.jboss.messaging.core.security.Role;
 import org.jboss.messaging.core.security.SecurityStore;
@@ -100,6 +104,7 @@
    private MessagingServerPacketHandler serverPacketHandler;
    private MessagingServerControlMBean serverManagement;
    private PacketDispatcher dispatcher;
+   private RemotingConnection replicatingConnection;
 
    // plugins
 
@@ -194,7 +199,28 @@
 
       postOffice.start();
       postOffice.setBackup(configuration.isBackup());
-      serverPacketHandler = new MessagingServerPacketHandler(this, remotingService);          
+      serverPacketHandler = new MessagingServerPacketHandler(this, remotingService); 
+      
+      TransportConfiguration backupConnector = configuration.getBackupConnectorConfiguration();
+      
+      if (backupConnector != null)
+      {
+         ClassLoader loader = Thread.currentThread().getContextClassLoader();
+         try
+         {
+            Class<?> clz = loader.loadClass(backupConnector.getFactoryClassName());
+            ConnectorFactory connectorFactory = (ConnectorFactory) clz.newInstance();
+            ConnectionRegistry registry = ConnectionRegistryImpl.instance;
+            //TODO don't hardcode ping interval and call timeout here
+            this.replicatingConnection =
+               registry.getConnection(connectorFactory, backupConnector.getParams(),
+                                      5000, 30000);
+         }
+         catch (Exception e)
+         {
+            throw new IllegalArgumentException("Error instantiating interceptor \"" + backupConnector.getFactoryClassName() + "\"", e);
+         }  
+      }
      
       //Register the handler as the last thing - since after that users will be able to connect
       started = true;
@@ -208,7 +234,11 @@
          return;
       }
       
-      dispatcher.unregister(serverPacketHandler.getID());       
+      dispatcher.unregister(serverPacketHandler.getID());      
+      if (this.replicatingConnection != null)
+      {
+         ConnectionRegistryImpl.instance.returnConnection(replicatingConnection.getID());
+      }
       securityStore = null;
       postOffice.stop();
       postOffice = null;
@@ -405,6 +435,11 @@
    {
       return postOffice;
    }
+   
+   public RemotingConnection getReplicatingConnection()
+   {
+      return replicatingConnection;
+   }
 
    // Public ---------------------------------------------------------------------------------------
    

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -76,6 +76,7 @@
       {
          if (type == PING)
          {
+            //The pong param is left as a placeholder
             response = new Pong(-1);
          }
          else if (type == PacketImpl.CREATESESSION)

Modified: trunk/tests/config/ConfigurationTest-config.xml
===================================================================
--- trunk/tests/config/ConfigurationTest-config.xml	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/config/ConfigurationTest-config.xml	2008-08-29 14:48:38 UTC (rev 4896)
@@ -13,6 +13,15 @@
          <class-name>org.jboss.messaging.tests.unit.core.config.impl.TestInterceptor1</class-name>
          <class-name>org.jboss.messaging.tests.unit.core.config.impl.TestInterceptor2</class-name>
       </remoting-interceptors>
+      <backup-connector>
+         <factory-class>org.jboss.messaging.tests.unit.core.config.impl.TestConnectorFactory1</factory-class>
+         <params>
+            <param key="c_mykey1" value="c_foovalue1" type="String"/>
+            <param key="c_mykey2" value="6000" type="Long"/>
+            <param key="c_mykey3" value="60" type="Integer"/>
+            <param key="c_mykey4" value="c_foovalue4" type="String"/>
+         </params>            
+      </backup-connector>
       <remoting-acceptors>
          <acceptor>
             <factory-class>org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory1</factory-class>

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -30,7 +30,7 @@
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.logging.Logger;
@@ -74,7 +74,7 @@
       
       conf.setSecurityEnabled(false);   
       
-      conf.getAcceptorInfos().add(new AcceptorInfo(acceptorFactoryClassName));
+      conf.getAcceptorConfigurations().add(new TransportConfiguration(acceptorFactoryClassName));
             
       MessagingService messagingService = MessagingServiceImpl.newNullStorageMessagingServer(conf);   
            

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -30,7 +30,7 @@
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
@@ -140,7 +140,7 @@
 
       ConfigurationImpl config = new ConfigurationImpl();
       config.setSecurityEnabled(false);
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
       messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
       messagingService.start();
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -28,7 +28,7 @@
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
@@ -101,7 +101,7 @@
    {
       ConfigurationImpl config = new ConfigurationImpl();
       config.setSecurityEnabled(false);
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
       messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
       messagingService.start();
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/remoting/PingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/remoting/PingTest.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/remoting/PingTest.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -28,16 +28,16 @@
 
 import junit.framework.TestCase;
 
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.ConnectionRegistry;
-import org.jboss.messaging.core.remoting.ConnectionRegistryLocator;
 import org.jboss.messaging.core.remoting.FailureListener;
 import org.jboss.messaging.core.remoting.Interceptor;
 import org.jboss.messaging.core.remoting.Packet;
 import org.jboss.messaging.core.remoting.RemotingConnection;
+import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
 import org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl;
 import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
 import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
@@ -74,7 +74,7 @@
    protected void setUp() throws Exception
    {
       ConfigurationImpl config = new ConfigurationImpl();
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
       messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
       messagingService.start();
    }
@@ -108,7 +108,7 @@
       ConnectorFactory cf = new NettyConnectorFactory();
       Map<String, Object> params = new HashMap<String, Object>();
       
-      ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
+      ConnectionRegistry registry = ConnectionRegistryImpl.instance;
       
       RemotingConnection conn = registry.getConnection(cf, params, PING_INTERVAL, 5000);
       assertNotNull(conn);
@@ -149,7 +149,7 @@
       ConnectorFactory cf = new NettyConnectorFactory();
       Map<String, Object> params = new HashMap<String, Object>();
       
-      ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
+      ConnectionRegistry registry = ConnectionRegistryImpl.instance;
       
       RemotingConnection conn = registry.getConnection(cf, params, -1, 5000);
       assertNotNull(conn);
@@ -189,7 +189,7 @@
       ConnectorFactory cf = new NettyConnectorFactory();
       Map<String, Object> params = new HashMap<String, Object>();
       
-      ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
+      ConnectionRegistry registry = ConnectionRegistryImpl.instance;
       
       RemotingConnectionImpl conn = (RemotingConnectionImpl)registry.getConnection(cf, params, PING_INTERVAL, 5000);
       assertEquals(1, registry.getCount(cf, params));
@@ -268,7 +268,7 @@
      ConnectorFactory cf = new NettyConnectorFactory();
      Map<String, Object> params = new HashMap<String, Object>();
      
-     ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
+     ConnectionRegistry registry = ConnectionRegistryImpl.instance;
      
      RemotingConnection conn = registry.getConnection(cf, params, PING_INTERVAL, 5000);
      assertNotNull(conn);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSLTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSLTest.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSLTest.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -33,7 +33,7 @@
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.Message;
@@ -132,7 +132,7 @@
 //      config.setSecurityEnabled(false);
 //      Map<String, Object> params = new HashMap<String, Object>();
 //      params.put(TransportConstants.SSL_ENABLED_PROP_NAME, true);
-//      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory", params));
+//      config.getAcceptorInfos().add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory", params));
 //      messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);      
 //      messagingService.start();
 //      ConnectorFactory cf = new NettyConnectorFactory();

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -24,7 +24,7 @@
 
 import java.util.Map;
 
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.impl.FileConfiguration;
 
@@ -60,14 +60,51 @@
       assertEquals(2, conf.getInterceptorClassNames().size());
       assertTrue(conf.getInterceptorClassNames().contains("org.jboss.messaging.tests.unit.core.config.impl.TestInterceptor1"));
       assertTrue(conf.getInterceptorClassNames().contains("org.jboss.messaging.tests.unit.core.config.impl.TestInterceptor2"));
-      assertEquals(2, conf.getAcceptorInfos().size());
-      for (AcceptorInfo info: conf.getAcceptorInfos())
+      
+      assertNotNull(conf.getBackupConnectorConfiguration());
+      assertEquals("org.jboss.messaging.tests.unit.core.config.impl.TestConnectorFactory1", conf.getBackupConnectorConfiguration().getFactoryClassName());
+      Map<String, Object> params = conf.getBackupConnectorConfiguration().getParams();
+      assertNotNull(params);
+      Object obj = params.get("c_mykey1");
+      assertNotNull(obj);
+      assertTrue(obj instanceof String);
       {
+         String s = (String)obj;
+         assertEquals("c_foovalue1", s);
+      }
+      
+      obj = params.get("c_mykey2");
+      assertNotNull(obj);
+      assertTrue(obj instanceof Long);
+      {
+         Long l = (Long)obj;
+         assertEquals(6000l, l.longValue());
+      }
+      
+      obj = params.get("c_mykey3");
+      assertNotNull(obj);
+      assertTrue(obj instanceof Integer);
+      {
+         Integer i = (Integer)obj;
+         assertEquals(60, i.intValue());
+      }
+      
+      obj = params.get("c_mykey4");
+      assertNotNull(obj);
+      assertTrue(obj instanceof String);
+      {
+         String s = (String)obj;
+         assertEquals("c_foovalue4", s);
+      }
+      
+      assertEquals(2, conf.getAcceptorConfigurations().size());
+      for (TransportConfiguration info: conf.getAcceptorConfigurations())
+      {
          if (info.getFactoryClassName().equals("org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory1"))
          {
-            Map<String, Object> params = info.getParams();
+            params = info.getParams();
             
-            Object obj = params.get("a_mykey1");
+            obj = params.get("a_mykey1");
             assertNotNull(obj);
             assertTrue(obj instanceof String);
             {
@@ -101,9 +138,9 @@
          }
          else if (info.getFactoryClassName().equals("org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory2"))
          {
-            Map<String, Object> params = info.getParams();
+            params = info.getParams();
             
-            Object obj = params.get("b_mykey1");
+            obj = params.get("b_mykey1");
             assertNotNull(obj);
             assertTrue(obj instanceof String);
             {

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest2.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest2.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest2.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -58,7 +58,7 @@
       assertEquals(ConfigurationImpl.DEFAULT_JOURNAL_MAX_AIO, conf.getJournalMaxAIO());
       
       assertEquals(0, conf.getInterceptorClassNames().size());
-      assertEquals(0, conf.getAcceptorInfos().size());      
+      assertEquals(0, conf.getAcceptorConfigurations().size());      
    }
    
    // Protected ---------------------------------------------------------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectionRegistryLocatorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectionRegistryLocatorTest.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectionRegistryLocatorTest.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -22,7 +22,6 @@
 package org.jboss.messaging.tests.unit.core.remoting;
 
 import org.jboss.messaging.core.remoting.ConnectionRegistry;
-import org.jboss.messaging.core.remoting.ConnectionRegistryLocator;
 import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
 import org.jboss.messaging.tests.util.UnitTestCase;
 
@@ -37,9 +36,9 @@
 {
    public void testSingleton()
    {
-      ConnectionRegistry reg1 = ConnectionRegistryLocator.getRegistry();
+      ConnectionRegistry reg1 = ConnectionRegistryImpl.instance;
       
-      ConnectionRegistry reg2 = ConnectionRegistryLocator.getRegistry();
+      ConnectionRegistry reg2 = ConnectionRegistryImpl.instance;
       
       assertTrue(reg1 == reg2);
       

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingServiceImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingServiceImplTest.java	2008-08-29 10:06:45 UTC (rev 4895)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingServiceImplTest.java	2008-08-29 14:48:38 UTC (rev 4896)
@@ -25,7 +25,7 @@
 import java.util.List;
 
 import org.easymock.EasyMock;
-import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.exception.MessagingException;
@@ -50,7 +50,7 @@
    {
       final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
       ConfigurationImpl config = new ConfigurationImpl();      
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
       TestAcceptorFactory1.acceptor = acceptor;
       RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
                   
@@ -68,7 +68,7 @@
       final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
       ConfigurationImpl config = new ConfigurationImpl();
       RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
       TestAcceptorFactory1.acceptor = acceptor;
       acceptor.start();
       EasyMock.replay(acceptor);
@@ -85,7 +85,7 @@
       final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
       ConfigurationImpl config = new ConfigurationImpl();
       RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
       TestAcceptorFactory1.acceptor = acceptor;
       acceptor.start();
       acceptor.stop();
@@ -105,11 +105,11 @@
       final Acceptor acceptor3 = EasyMock.createStrictMock(Acceptor.class);
       ConfigurationImpl config = new ConfigurationImpl();
       RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
       TestAcceptorFactory1.acceptor = acceptor1;
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
       TestAcceptorFactory2.acceptor = acceptor2;
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
       TestAcceptorFactory3.acceptor = acceptor3;
             
       acceptor1.start();
@@ -132,11 +132,11 @@
       final Acceptor acceptor3 = EasyMock.createStrictMock(Acceptor.class);
       ConfigurationImpl config = new ConfigurationImpl();
       RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
       TestAcceptorFactory1.acceptor = acceptor1;
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
       TestAcceptorFactory2.acceptor = acceptor2;
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
       TestAcceptorFactory3.acceptor = acceptor3;
       acceptor1.start();
       acceptor2.start();
@@ -163,11 +163,11 @@
       final Acceptor acceptor4 = EasyMock.createStrictMock(Acceptor.class);
       ConfigurationImpl config = new ConfigurationImpl();
       RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
       TestAcceptorFactory1.acceptor = acceptor1;
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
       TestAcceptorFactory2.acceptor = acceptor2;
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
       TestAcceptorFactory3.acceptor = acceptor3;
       acceptor1.start();
       acceptor2.start();
@@ -187,7 +187,7 @@
       assertFalse(remotingService.isStarted());
       
       EasyMock.reset(acceptor1, acceptor2, acceptor3);
-      config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory4"));
+      config.getAcceptorConfigurations().add(new TransportConfiguration("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory4"));
       TestAcceptorFactory4.acceptor = acceptor4;
       acceptor1.start();
       acceptor2.start();




More information about the jboss-cvs-commits mailing list