Return-Path: X-Original-To: apmail-qpid-commits-archive@www.apache.org Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9989FF1D9 for ; Mon, 1 Apr 2013 17:35:12 +0000 (UTC) Received: (qmail 35303 invoked by uid 500); 1 Apr 2013 17:35:12 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 35275 invoked by uid 500); 1 Apr 2013 17:35:12 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 35268 invoked by uid 99); 1 Apr 2013 17:35:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Apr 2013 17:35:12 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Apr 2013 17:35:09 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 44BF823889BB; Mon, 1 Apr 2013 17:34:48 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1463217 - in /qpid/branches/0.22/qpid/java/client/src: main/java/org/apache/qpid/client/AMQTopic.java test/java/org/apache/qpid/client/AMQDestinationTest.java Date: Mon, 01 Apr 2013 17:34:48 -0000 To: commits@qpid.apache.org From: rajith@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130401173448.44BF823889BB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: rajith Date: Mon Apr 1 17:34:47 2013 New Revision: 1463217 URL: http://svn.apache.org/r1463217 Log: QPID-3769 Modified the equals and hashcode methods in AMQTopic to fall back to AMQDestination for address strings. For BURL the existing impl will continue to work. Added AMQAnyDestination to the tests. (cherry picked from commit 12f08eee5b5e0d3b77537e66180c74d7ac845ef4) Modified: qpid/branches/0.22/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java qpid/branches/0.22/qpid/java/client/src/test/java/org/apache/qpid/client/AMQDestinationTest.java Modified: qpid/branches/0.22/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java?rev=1463217&r1=1463216&r2=1463217&view=diff ============================================================================== --- qpid/branches/0.22/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java (original) +++ qpid/branches/0.22/qpid/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java Mon Apr 1 17:34:47 2013 @@ -20,6 +20,7 @@ */ package org.apache.qpid.client; +import org.apache.qpid.client.AMQDestination.DestSyntax; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.messaging.Address; @@ -216,13 +217,27 @@ public class AMQTopic extends AMQDestina public boolean equals(Object o) { - return (o instanceof AMQTopic) + if (getDestSyntax() == DestSyntax.ADDR) + { + return super.equals(o); + } + else + { + return (o instanceof AMQTopic) && ((AMQTopic)o).getExchangeName().equals(getExchangeName()) && ((AMQTopic)o).getRoutingKey().equals(getRoutingKey()); + } } public int hashCode() { - return getExchangeName().hashCode() + getRoutingKey().hashCode(); + if (getDestSyntax() == DestSyntax.ADDR) + { + return super.hashCode(); + } + else + { + return getExchangeName().hashCode() + getRoutingKey().hashCode(); + } } } Modified: qpid/branches/0.22/qpid/java/client/src/test/java/org/apache/qpid/client/AMQDestinationTest.java URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/client/src/test/java/org/apache/qpid/client/AMQDestinationTest.java?rev=1463217&r1=1463216&r2=1463217&view=diff ============================================================================== --- qpid/branches/0.22/qpid/java/client/src/test/java/org/apache/qpid/client/AMQDestinationTest.java (original) +++ qpid/branches/0.22/qpid/java/client/src/test/java/org/apache/qpid/client/AMQDestinationTest.java Mon Apr 1 17:34:47 2013 @@ -24,12 +24,12 @@ import junit.framework.TestCase; public class AMQDestinationTest extends TestCase { - public void testEqaulsAndHashCodeForAddressBasedDestinations() throws Exception + public void testEqualsAndHashCodeForAddressBasedDestinations() throws Exception { AMQDestination dest = new AMQQueue("ADDR:Foo; {node :{type:queue}}"); AMQDestination dest1 = new AMQTopic("ADDR:Foo; {node :{type:topic}}"); - AMQDestination dest2 = new AMQQueue( - "ADDR:Foo; {create:always,node :{type:queue}}"); + AMQDestination dest10 = new AMQTopic("ADDR:Foo; {node :{type:topic}, link:{name:my-topic}}"); + AMQDestination dest2 = new AMQQueue("ADDR:Foo; {create:always,node :{type:queue}}"); String bUrl = "BURL:direct://amq.direct/test-route/Foo?routingkey='Foo'"; AMQDestination dest3 = new AMQQueue(bUrl); @@ -37,14 +37,30 @@ public class AMQDestinationTest extends assertFalse(dest.equals(dest1)); assertTrue(dest.equals(dest2)); assertFalse(dest.equals(dest3)); + assertTrue(dest1.equals(dest10)); assertTrue(dest.hashCode() == dest.hashCode()); assertTrue(dest.hashCode() != dest1.hashCode()); assertTrue(dest.hashCode() == dest2.hashCode()); assertTrue(dest.hashCode() != dest3.hashCode()); + assertTrue(dest1.hashCode() == dest10.hashCode()); AMQDestination dest4 = new AMQQueue("ADDR:Foo/Bar; {node :{type:queue}}"); AMQDestination dest5 = new AMQQueue("ADDR:Foo/Bar2; {node :{type:queue}}"); + assertFalse(dest4.equals(dest5)); assertTrue(dest4.hashCode() != dest5.hashCode()); + + AMQDestination dest6 = new AMQAnyDestination("ADDR:Foo; {node :{type:queue}}"); + AMQDestination dest7 = new AMQAnyDestination("ADDR:Foo; {create: always, node :{type:queue}, link:{capacity: 10}}"); + AMQDestination dest8 = new AMQAnyDestination("ADDR:Foo; {create: always, link:{capacity: 10}}"); + AMQDestination dest9 = new AMQAnyDestination("ADDR:Foo/bar"); + assertTrue(dest6.equals(dest7)); + assertFalse(dest6.equals(dest8)); //dest8 type unknown, could be a topic + assertFalse(dest7.equals(dest8)); //dest8 type unknown, could be a topic + assertFalse(dest6.equals(dest9)); + assertTrue(dest6.hashCode() == dest7.hashCode()); + assertTrue(dest6.hashCode() != dest8.hashCode()); + assertTrue(dest7.hashCode() != dest8.hashCode()); + assertTrue(dest6.hashCode() != dest9.hashCode()); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org For additional commands, e-mail: commits-help@qpid.apache.org