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 2010/04/28 01:57:15 UTC
svn commit: r938727 -
/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
Author: rajith
Date: Tue Apr 27 23:57:14 2010
New Revision: 938727
URL: http://svn.apache.org/viewvc?rev=938727&view=rev
Log:
QPID-2496
1. Added comments to explain how the address is handled
2. Now the subscription queue is created only when the destination is used by a consumer.
3. Removed unnessacery logic in createSubscriptionQueue method
Modified:
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
Modified: qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java?rev=938727&r1=938726&r2=938727&view=diff
==============================================================================
--- qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java (original)
+++ qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java Tue Apr 27 23:57:14 2010
@@ -24,6 +24,7 @@ import static org.apache.qpid.transport.
import java.lang.ref.WeakReference;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -1119,6 +1120,18 @@ public class AMQSession_0_10 extends AMQ
return match;
}
+ /**
+ * 1. Try to resolve the address type (queue or exchange)
+ * 2. if type == queue,
+ * 2.1 verify queue exists or create if create == true
+ * 2.2 If not throw exception
+ *
+ * 3. if type == exchange,
+ * 3.1 verify exchange exists or create if create == true
+ * 3.2 if not throw exception
+ * 3.3 if exchange exists (or created) create subscription queue.
+ */
+
@SuppressWarnings("deprecation")
public void handleAddressBasedDestination(AMQDestination dest,
boolean isConsumer,
@@ -1159,7 +1172,7 @@ public class AMQSession_0_10 extends AMQ
{
setLegacyFiledsForTopicType(dest);
verifySubject(dest);
- createSubscriptionQueue(dest);
+ if (isConsumer) {createSubscriptionQueue(dest);}
break;
}
else if(createNode)
@@ -1171,7 +1184,7 @@ public class AMQSession_0_10 extends AMQ
dest.getTargetNode().getAlternateExchange(),
dest.getTargetNode().getDeclareArgs(),
false);
- createSubscriptionQueue(dest);
+ if (isConsumer) {createSubscriptionQueue(dest);}
break;
}
}
@@ -1232,29 +1245,18 @@ public class AMQSession_0_10 extends AMQ
private void createSubscriptionQueue(AMQDestination dest) throws AMQException
{
- if (dest.getSourceNode() != null)
- {
- QueueNode node = (QueueNode)dest.getSourceNode();
- if (dest.getQueueName() == null || !isQueueExist(dest,node,true))
- {
- // can name : my-queue be used in x-declare?
- // if so set it to dest queue name
- // if (dest.getQueueName() == null) { dest.setName(node.getName()) }
- send0_10QueueDeclare(dest,null,false,false);
- }
- node.addBinding(new Binding(dest.getAddressName(),
- dest.getQueueName(),// should have one by now
- dest.getSubject(),
- node.getDeclareArgs()));
- }
- else
+ QueueNode node = (QueueNode)dest.getSourceNode(); // source node is never null
+ if (dest.getQueueName() == null || !isQueueExist(dest,node,true))
{
+ // can name : my-queue be used in x-declare?
+ // if so set it to dest queue name
+ // if (dest.getQueueName() == null) { dest.setName(node.getName()) }
send0_10QueueDeclare(dest,null,false,false);
- dest.getTargetNode().addBinding(new Binding(dest.getAddressName(),
- null,
- dest.getSubject(),
- null));
- }
+ }
+ node.addBinding(new Binding(dest.getAddressName(),
+ dest.getQueueName(),// should have one by now
+ dest.getSubject(),
+ Collections.<String,Object>emptyMap()));
}
private void setLegacyFiledsForQueueType(AMQDestination dest)
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org