You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2012/11/21 15:33:59 UTC

svn commit: r1412127 - in /activemq/trunk: activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java activemq-client/src/main/java/org/apache/activemq/filter/NoLocalExpression.java

Author: chirino
Date: Wed Nov 21 14:33:58 2012
New Revision: 1412127

URL: http://svn.apache.org/viewvc?rev=1412127&view=rev
Log:
Support the no-local option over AMQP.

Modified:
    activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
    activemq/trunk/activemq-client/src/main/java/org/apache/activemq/filter/NoLocalExpression.java

Modified: activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java?rev=1412127&r1=1412126&r2=1412127&view=diff
==============================================================================
--- activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java (original)
+++ activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java Wed Nov 21 14:33:58 2012
@@ -59,6 +59,7 @@ class AmqpProtocolConverter {
     private final AmqpTransport amqpTransport;
     private static final Symbol COPY = Symbol.getSymbol("copy");
     private static final Symbol JMS_SELECTOR = Symbol.valueOf("jms-selector");
+    private static final Symbol NO_LOCAL = Symbol.valueOf("no-local");
 
     public AmqpProtocolConverter(AmqpTransport amqpTransport, BrokerContext brokerContext) {
         this.amqpTransport = amqpTransport;
@@ -909,6 +910,10 @@ class AmqpProtocolConverter {
             if( value!=null ) {
                 consumerInfo.setSelector(value.getDescribed().toString());
             }
+            value = (DescribedType)filter.get(NO_LOCAL);
+            if( value!=null ) {
+                consumerInfo.setNoLocal(true);
+            }
         }
 
         sendToActiveMQ(consumerInfo, new ResponseHandler() {

Modified: activemq/trunk/activemq-client/src/main/java/org/apache/activemq/filter/NoLocalExpression.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/filter/NoLocalExpression.java?rev=1412127&r1=1412126&r2=1412127&view=diff
==============================================================================
--- activemq/trunk/activemq-client/src/main/java/org/apache/activemq/filter/NoLocalExpression.java (original)
+++ activemq/trunk/activemq-client/src/main/java/org/apache/activemq/filter/NoLocalExpression.java Wed Nov 21 14:33:58 2012
@@ -35,7 +35,8 @@ public class NoLocalExpression implement
             if (message.isDropped()) {
                 return false;
             }
-            return !connectionId.equals(message.getMessage().getMessageId().getProducerId().getConnectionId());
+            String messageConnectionId = message.getMessage().getProducerId().getConnectionId();
+            return !connectionId.equals(messageConnectionId);
         } catch (IOException e) {
             throw JMSExceptionSupport.create(e);
         }