[jboss-cvs] JBoss Messaging SVN: r3561 - in trunk: tests/src/org/jboss/messaging/core/remoting/test/unit and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 14 05:01:10 EST 2008


Author: jmesnil
Date: 2008-01-14 05:01:10 -0500 (Mon, 14 Jan 2008)
New Revision: 3561

Modified:
   trunk/src/main/org/jboss/messaging/core/remoting/ServerLocator.java
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java
Log:
* added back equals() and hashCode() methods which are required for ServerLocator to behave correctly as a key for ConnectorRegistry interface

Modified: trunk/src/main/org/jboss/messaging/core/remoting/ServerLocator.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/ServerLocator.java	2008-01-12 10:27:31 UTC (rev 3560)
+++ trunk/src/main/org/jboss/messaging/core/remoting/ServerLocator.java	2008-01-14 10:01:10 UTC (rev 3561)
@@ -138,6 +138,55 @@
       return "ServerLocator[uri=" + getURI() + "]";
    }
 
+   @Override
+   public int hashCode()
+   {
+      final int prime = 31;
+      int result = 1;
+      result = prime * result + ((host == null) ? 0 : host.hashCode());
+      result = prime * result
+            + ((parameters == null) ? 0 : parameters.hashCode());
+      result = prime * result + port;
+      result = prime * result
+            + ((transport == null) ? 0 : transport.hashCode());
+      return result;
+   }
+
+   @Override
+   public boolean equals(Object obj)
+   {
+      if (this == obj)
+         return true;
+      if (obj == null)
+         return false;
+      if (getClass() != obj.getClass())
+         return false;
+      final ServerLocator other = (ServerLocator) obj;
+      if (host == null)
+      {
+         if (other.host != null)
+            return false;
+      } else if (!host.equals(other.host))
+         return false;
+      if (parameters == null)
+      {
+         if (other.parameters != null)
+            return false;
+      } else if (!parameters.equals(other.parameters))
+         return false;
+      if (port != other.port)
+         return false;
+      if (transport == null)
+      {
+         if (other.transport != null)
+            return false;
+      } else if (!transport.equals(other.transport))
+         return false;
+      return true;
+   }
+   
+   
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java	2008-01-12 10:27:31 UTC (rev 3560)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ConnectorRegistryTest.java	2008-01-14 10:01:10 UTC (rev 3561)
@@ -145,7 +145,31 @@
       assertNotNull(registry.removeConnector(locator1));
       assertNotNull(registry.removeConnector(locator2));
    }
+   
+   /**
+    * Check that 2 ServerLocators which are equals (but not the same object) will
+    * return the same NIOConnector
+    */
+   public void testServerLocatorEquality() throws Exception
+   {
+      ServerLocator locator1 = new ServerLocator(TCP, "localhost", PORT);
+      ServerLocator locator2 = new ServerLocator(TCP, "localhost", PORT);
 
+      assertNotSame(locator1, locator2);
+      assertEquals(locator1, locator2);
+
+      NIOConnector connector1 = registry.getConnector(locator1);
+      assertEquals(1, registry.getConnectorCount(locator1));
+
+      NIOConnector connector2 = registry.getConnector(locator2);
+      assertEquals(2, registry.getConnectorCount(locator2));
+
+      assertSame(connector1, connector2);
+
+      assertNull(registry.removeConnector(locator1));
+      assertNotNull(registry.removeConnector(locator2));
+   }
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------




More information about the jboss-cvs-commits mailing list