[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