[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