Author: rajith Date: Wed Apr 4 13:30:24 2012 New Revision: 1309374 URL: http://svn.apache.org/viewvc?rev=1309374&view=rev Log: QPID-3401 The binding URL is parsed and information is adapted into the Address data structure (link and node).
Modified: qpid/branches/address-refactor2/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java Modified: qpid/branches/address-refactor2/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java URL: http://svn.apache.org/viewvc/qpid/branches/address-refactor2/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java?rev=1309374&r1=1309373&r2=1309374&view=diff ============================================================================== --- qpid/branches/address-refactor2/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java (original) +++ qpid/branches/address-refactor2/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java Wed Apr 4 13:30:24 2012 @@ -21,8 +21,13 @@ package org.apache.qpid.jms; import java.net.URISyntaxException; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.jms.QpidDestination.DestinationType; import org.apache.qpid.messaging.Address; import org.apache.qpid.messaging.address.AddressException; @@ -98,25 +103,42 @@ public class DestinationStringParser } Address addr; + Node node = new Node(); + Link link = new Link(); + if (type == DestinationType.TOPIC) { addr = new Address(burl.getExchangeName().asString(), burl.getRoutingKey().asString(), - Collections.EMPTY_MAP); + Collections.emptyMap()); - // use the queue name to add x-subscribe props. + link.setName(burl.getQueueName().asString()); + node.setBindingProps(Collections.emptyList()); } else { addr = new Address(burl.getQueueName().asString(), burl.getRoutingKey().asString(), - Collections.EMPTY_MAP); + Collections.emptyMap()); - // use the exchange and binding key to add a binding + List<Object> bindings = new ArrayList<Object>(); + Map<String,Object> binding = new HashMap<String,Object>(); + binding.put(AddressHelper.EXCHANGE, burl.getExchangeName().asString()); + binding.put(AddressHelper.KEY, burl.getRoutingKey()); + bindings.add(binding); + node.setBindingProps(bindings); } - Node node = new Node(); - node.setAssertPolicy(AddressPolicy.NEVER); + List<Object> bindings = node.getBindingProperties(); + for (AMQShortString key: burl.getBindingKeys()) + { + Map<String,Object> binding = new HashMap<String,Object>(); + binding.put(AddressHelper.EXCHANGE, burl.getExchangeName().asString()); + binding.put(AddressHelper.KEY, key.asString()); + bindings.add(binding); + } + + node.setAssertPolicy(AddressPolicy.NEVER); node.setCreatePolicy(AddressPolicy.RECEIVER); node.setDeletePolicy(AddressPolicy.NEVER); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org