[jboss-cvs] JBoss Messaging SVN: r3534 - trunk/src/main/org/jboss/messaging/core/remoting.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 4 08:36:38 EST 2008


Author: jmesnil
Date: 2008-01-04 08:36:38 -0500 (Fri, 04 Jan 2008)
New Revision: 3534

Modified:
   trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java
Log:
* extracted interface ConnectorRegistry and moved implementation to o.j.m.core.remoting.impl
* ConnectorRegistry singleton is available from ConnectorRegistrySingleton.REGISTRY

Modified: trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java	2008-01-04 13:34:35 UTC (rev 3533)
+++ trunk/src/main/org/jboss/messaging/core/remoting/ConnectorRegistry.java	2008-01-04 13:36:38 UTC (rev 3534)
@@ -6,19 +6,10 @@
  */
 package org.jboss.messaging.core.remoting;
 
-import static org.jboss.messaging.core.remoting.TransportType.INVM;
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.logging.Logger;
 import org.jboss.messaging.core.remoting.impl.invm.INVMConnector;
-import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
 import org.jboss.messaging.core.remoting.impl.mina.MinaService;
 
+
 /**
  * The ConnectorRegistry keeps track of ServerLocators and NIOConnectors.
  * 
@@ -36,96 +27,23 @@
  * @version <tt>$Revision$</tt>
  * 
  */
-public class ConnectorRegistry
+public interface ConnectorRegistry
 {
-   // Constants -----------------------------------------------------
 
-   private static final Logger log = Logger.getLogger(ConnectorRegistry.class);
-
-   // Attributes ----------------------------------------------------
-
-   private static Set<ServerLocator> locators = new HashSet<ServerLocator>();
-
-   private static Map<ServerLocator, NIOConnectorHolder> connectors = new HashMap<ServerLocator, NIOConnectorHolder>();
-
-   // Static --------------------------------------------------------
-
    /**
-    * @return <code>true</code> if this locator has not already been registered,
-    *         <code>false</code> else
+    * @return <code>true</code> if this locator has not already been
+    *         registered, <code>false</code> else
     */
-   public static boolean register(ServerLocator locator)
-   {
-      return locators.add(locator);
-   }
+   boolean register(ServerLocator locator);
 
    /**
     * @return <code>true</code> if this locator was registered,
     *         <code>false</code> else
-    */   public static boolean unregister(ServerLocator locator)
-   {
-      return locators.remove(locator);
-   }
+    */
+   boolean unregister(ServerLocator locator);
 
-   public static synchronized NIOConnector getConnector(ServerLocator locator)
-   {
-      assert locator != null;
+   NIOConnector getConnector(ServerLocator locator);
 
-      if (connectors.containsKey(locator))
-      {
-         NIOConnectorHolder holder = connectors.get(locator);
-         holder.increment();
-         NIOConnector connector = holder.getConnector();
-
-         if (log.isDebugEnabled())
-            log.debug("Reuse " + connector.getServerURI() + " to connect to "
-                  + locator + " [count=" + holder.getCount() + "]");
-
-         return connector;
-      }
-
-      // check if the server is in the same vm than the client
-      if (locators.contains(locator))
-      {
-         NIOConnector connector = new INVMConnector(locator.getHost(), locator
-               .getPort());
-
-         if (log.isDebugEnabled())
-            log.debug("Created " + connector.getServerURI() + " to connect to "
-                  + locator);
-
-         NIOConnectorHolder holder = new NIOConnectorHolder(connector);
-         connectors.put(locator, holder);
-         return connector;
-      }
-
-      NIOConnector connector = null;
-
-      TransportType transport = locator.getTransport();
-
-      if (transport == TCP)
-      {
-         connector = new MinaConnector(locator.getTransport(), locator
-               .getHost(), locator.getPort());
-      } else if (transport == INVM)
-      {
-         connector = new INVMConnector(locator.getHost(), locator.getPort());
-      }
-
-      if (connector == null)
-      {
-         throw new IllegalArgumentException(
-               "no connector defined for transport " + transport);
-      }
-
-      if (log.isDebugEnabled())
-         log.debug("Created " + connector.getServerURI() + " to connect to "
-               + locator);
-      NIOConnectorHolder holder = new NIOConnectorHolder(connector);
-      connectors.put(locator, holder);
-      return connector;
-   }
-
    /**
     * Decrement the number of references on the NIOConnector corresponding to
     * the locator.
@@ -140,97 +58,10 @@
     * @throws IllegalStateException
     *            if no NIOConnector were created for the given locator
     */
-   public synchronized static NIOConnector removeConnector(ServerLocator locator)
-   {
-      assert locator != null;
+   NIOConnector removeConnector(ServerLocator locator);
 
-      NIOConnectorHolder holder = connectors.get(locator);
-      if (holder == null)
-      {
-         throw new IllegalStateException("No Connector were created for "
-               + locator);
-      }
+   ServerLocator[] getRegisteredLocators();
 
-      if (holder.getCount() == 1)
-      {
-         if (log.isDebugEnabled())
-            log.debug("Removed connector for " + locator);
-         connectors.remove(locator);
-         return holder.getConnector();
-      } else
-      {
-         holder.decrement();
-         if (log.isDebugEnabled())
-            log.debug(holder.getCount() + " remaining reference to "
-                  + holder.getConnector().getServerURI() + " to " + locator);
-         return null;
-      }
-   }
+   int getConnectorCount(ServerLocator locator);
 
-   public static ServerLocator[] getRegisteredLocators()
-   {
-      Set<ServerLocator> registeredLocators = connectors.keySet();
-      return (ServerLocator[]) registeredLocators
-            .toArray(new ServerLocator[registeredLocators.size()]);
-   }
-
-   public static Object getConnectorCount(ServerLocator locator)
-   {
-      NIOConnectorHolder holder = connectors.get(locator);
-      if (holder == null)
-      {
-         return 0;
-      }
-      return holder.getCount();
-   }
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-
-   static class NIOConnectorHolder
-   {
-      private final NIOConnector connector;
-      private int count;
-
-      public NIOConnectorHolder(NIOConnector connector)
-      {
-         assert connector != null;
-
-         this.connector = connector;
-         this.count = 1;
-      }
-
-      void increment()
-      {
-         assert count > 0;
-
-         count++;
-      }
-
-      void decrement()
-      {
-         count--;
-
-         assert count > 0;
-      }
-
-      int getCount()
-      {
-         return count;
-      }
-
-      public NIOConnector getConnector()
-      {
-         return connector;
-      }
-   }
-}
+}
\ No newline at end of file




More information about the jboss-cvs-commits mailing list