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

Reply via email to