You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ra...@apache.org on 2012/04/04 15:30:24 UTC

svn commit: r1309374 - /qpid/branches/address-refactor2/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java

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-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org