summaryrefslogtreecommitdiff
path: root/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-09-02 16:05:58 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-09-02 16:05:58 +0000
commite514c426b243b53ede124fbe0ee8077be26f3b5b (patch)
tree9f3eae5fa1267134ba82ae3695546861944214b3 /qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
parent2eeebe50b2d779b019c7a28a47ac8c5604636a2b (diff)
downloadqpid-python-e514c426b243b53ede124fbe0ee8077be26f3b5b.tar.gz
Merged QPID-6052 (r1621143 r1621148 r1621149 r1621150 r1621826) to 0.30 from trunk
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.30@1622044 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java')
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java26
1 files changed, 22 insertions, 4 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
index 2714caf2a1..a71555480f 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
@@ -211,7 +211,7 @@ public abstract class AMQDestination implements Destination, Referenceable, Exte
{
}
- protected AMQDestination(Address address) throws Exception
+ protected AMQDestination(Address address)
{
this._address = address;
getInfoFromAddress();
@@ -749,7 +749,8 @@ public abstract class AMQDestination implements Destination, Referenceable, Exte
}
}
- public static Destination createDestination(String str) throws Exception
+ public static Destination createDestination(String str, final boolean useNodeTypeForDestinationType)
+ throws URISyntaxException
{
DestSyntax syntax = getDestType(str);
str = stripSyntaxPrefix(str);
@@ -760,7 +761,24 @@ public abstract class AMQDestination implements Destination, Referenceable, Exte
else
{
Address address = createAddressFromString(str);
- return new AMQAnyDestination(address);
+ if(useNodeTypeForDestinationType)
+ {
+ AddressHelper helper = new AddressHelper(address);
+ switch(helper.getNodeType())
+ {
+ case AMQDestination.QUEUE_TYPE:
+ return new AMQQueue(address);
+ case AMQDestination.TOPIC_TYPE:
+ return new AMQTopic(address);
+ default:
+ return new AMQAnyDestination(address);
+ }
+
+ }
+ else
+ {
+ return new AMQAnyDestination(address);
+ }
}
}
@@ -912,7 +930,7 @@ public abstract class AMQDestination implements Destination, Referenceable, Exte
return Address.parse(str);
}
- private void getInfoFromAddress() throws Exception
+ private void getInfoFromAddress()
{
_name = _address.getName();
_subject = _address.getSubject();