summaryrefslogtreecommitdiff
path: root/qpid/java/client/src
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2012-04-04 11:45:45 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2012-04-04 11:45:45 +0000
commit3bd6508fed99480106ef01ee348006954092bd6f (patch)
tree285f29849b65b848ee972ae695f3713570be22b6 /qpid/java/client/src
parent0ad68d54aaf249b1f0fb8e712461bb8af6841321 (diff)
downloadqpid-python-3bd6508fed99480106ef01ee348006954092bd6f.tar.gz
QPID-3401 Added code to extract information from an address string and
populate Node and Link data structures. git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/address-refactor2@1309341 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client/src')
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java46
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java6
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/jms/QpidQueue.java4
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTopic.java6
4 files changed, 50 insertions, 12 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java b/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java
index c4c6f1f7e3..3b5bd74f76 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java
@@ -23,29 +23,67 @@ package org.apache.qpid.jms;
import java.net.URISyntaxException;
import java.util.Collections;
-import org.apache.qpid.jms.QpidDestination.Type;
+import org.apache.qpid.jms.QpidDestination.DestinationType;
import org.apache.qpid.messaging.Address;
import org.apache.qpid.messaging.address.AddressException;
+import org.apache.qpid.messaging.address.Link;
+import org.apache.qpid.messaging.address.Link.Reliability;
import org.apache.qpid.messaging.address.Node;
import org.apache.qpid.messaging.address.Node.AddressPolicy;
+import org.apache.qpid.messaging.address.Node.NodeType;
import org.apache.qpid.messaging.util.AddressHelper;
import org.apache.qpid.url.AMQBindingURL;
public class DestinationStringParser
{
- public static Address parseAddressString(String str, Type type) throws AddressException
+ public static Address parseAddressString(String str, DestinationType type) throws AddressException
{
Address addr = Address.parse(str);
AddressHelper helper = new AddressHelper(addr);
+
Node node = new Node();
+ node.setName(addr.getName());
node.setAssertPolicy(AddressPolicy.getAddressPolicy(helper.getAssert()));
node.setCreatePolicy(AddressPolicy.getAddressPolicy(helper.getCreate()));
node.setDeletePolicy(AddressPolicy.getAddressPolicy(helper.getDelete()));
+ node.setDurable(helper.isNodeDurable());
+
+ if (DestinationType.TOPIC == type)
+ {
+ if (helper.getNodeType() == NodeType.QUEUE)
+ {
+ throw new AddressException("Destination is marked as a Topic, but address is defined as a Queue");
+ }
+ node.setType(NodeType.TOPIC);
+ }
+ else
+ {
+ if (helper.getNodeType() == NodeType.TOPIC)
+ {
+ throw new AddressException("Destination is marked as a Queue, but address is defined as a Topic");
+ }
+ node.setType(NodeType.QUEUE);
+ }
+
+ node.setDeclareProps(helper.getNodeDeclareArgs());
+ node.setBindingProps(helper.getNodeBindings());
+ addr.setNode(node);
+
+ Link link = new Link();
+ link.setName(helper.getLinkName());
+ link.setDurable(helper.isLinkDurable());
+ link.setReliability(Reliability.getReliability(helper.getLinkReliability()));
+ link.setProducerCapacity(helper.getProducerCapacity());
+ link.setConsumerCapacity(helper.getConsumeCapacity());
+ link.setDeclareProps(helper.getLinkDeclareArgs());
+ link.setBindingProps(helper.getLinkBindings());
+ link.setSubscribeProps(helper.getLinkSubscribeArgs());
+ addr.setLink(link);
return addr;
}
- public static Address parseBURLString(String str, Type type) throws AddressException
+ public static Address parseBURLString(String str, DestinationType type) throws AddressException
{
AMQBindingURL burl;
try
@@ -60,7 +98,7 @@ public class DestinationStringParser
}
Address addr;
- if (type == Type.TOPIC)
+ if (type == DestinationType.TOPIC)
{
addr = new Address(burl.getExchangeName().asString(),
burl.getRoutingKey().asString(),
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java b/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java
index 5166cce59a..a488679379 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java
@@ -36,17 +36,17 @@ import org.slf4j.LoggerFactory;
public abstract class QpidDestination implements Destination, Referenceable
{
- public enum Type {QUEUE, TOPIC};
+ public enum DestinationType {QUEUE, TOPIC};
private static final Logger _logger = LoggerFactory.getLogger(QpidDestination.class);
private static final DestSyntax defaultDestSyntax;
private DestSyntax _destSyntax = DestSyntax.ADDR;
- protected final Type type;
+ protected final DestinationType type;
protected String destinationString;
protected Address address;
- protected QpidDestination(Type type)
+ protected QpidDestination(DestinationType type)
{
this.type = type;
}
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidQueue.java b/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidQueue.java
index 18dafffd37..a1183240d6 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidQueue.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidQueue.java
@@ -27,12 +27,12 @@ public class QpidQueue extends QpidDestination implements Queue
{
public QpidQueue()
{
- super(Type.QUEUE);
+ super(DestinationType.QUEUE);
}
public QpidQueue(String str) throws JMSException
{
- super(Type.QUEUE);
+ super(DestinationType.QUEUE);
setDestinationString(str);
}
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTopic.java b/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTopic.java
index 6d34303fa2..f41897aa00 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTopic.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTopic.java
@@ -23,18 +23,18 @@ package org.apache.qpid.jms;
import javax.jms.JMSException;
import javax.jms.Topic;
-import org.apache.qpid.jms.QpidDestination.Type;
+import org.apache.qpid.jms.QpidDestination.DestinationType;
public class QpidTopic extends QpidDestination implements Topic
{
public QpidTopic()
{
- super(Type.TOPIC);
+ super(DestinationType.TOPIC);
}
public QpidTopic(String str) throws JMSException
{
- super(Type.TOPIC);
+ super(DestinationType.TOPIC);
setDestinationString(str);
}