You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2011/06/29 16:58:05 UTC
svn commit: r1141124 - in /activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/network/
test/java/org/apache/activemq/usecases/
test/resources/org/apache/activemq/usecases/
Author: dejanb
Date: Wed Jun 29 14:58:04 2011
New Revision: 1141124
URL: http://svn.apache.org/viewvc?rev=1141124&view=rev
Log:
https://issues.apache.org/jira/browse/AMQ-3382 - statically included destination should be always forwarded
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/TestBrokerConnectionDuplexExcludedDestinations.java
activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/sender-duplex.xml
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java?rev=1141124&r1=1141123&r2=1141124&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java Wed Jun 29 14:58:04 2011
@@ -954,7 +954,18 @@ public abstract class DemandForwardingBr
}
}
- ActiveMQDestination[] dests = excludedDestinations;
+ ActiveMQDestination[] dests = staticallyIncludedDestinations;
+ if (dests != null && dests.length > 0) {
+ for (int i = 0; i < dests.length; i++) {
+ ActiveMQDestination match = dests[i];
+ DestinationFilter inclusionFilter = DestinationFilter.parseFilter(match);
+ if (match != null && inclusionFilter.matches(destination) && dests[i].getDestinationType() == destination.getDestinationType()) {
+ return true;
+ }
+ }
+ }
+
+ dests = excludedDestinations;
if (dests != null && dests.length > 0) {
for (int i = 0; i < dests.length; i++) {
ActiveMQDestination match = dests[i];
Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/TestBrokerConnectionDuplexExcludedDestinations.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/TestBrokerConnectionDuplexExcludedDestinations.java?rev=1141124&r1=1141123&r2=1141124&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/TestBrokerConnectionDuplexExcludedDestinations.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/TestBrokerConnectionDuplexExcludedDestinations.java Wed Jun 29 14:58:04 2011
@@ -101,6 +101,12 @@ public class TestBrokerConnectionDuplexE
hubProducer.setDisableMessageID(true);
hubProducer.setDisableMessageTimestamp(true);
+ //create spoke producer
+ MessageProducer spokeProducer = hubSession.createProducer(null);
+ spokeProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+ spokeProducer.setDisableMessageID(true);
+ spokeProducer.setDisableMessageTimestamp(true);
+
Queue excludedQueueHub = hubSession.createQueue("exclude.test.foo");
TextMessage excludedMsgHub = hubSession.createTextMessage();
excludedMsgHub.setText(excludedQueueHub.toString());
@@ -108,11 +114,17 @@ public class TestBrokerConnectionDuplexE
Queue includedQueueHub = hubSession.createQueue("include.test.foo");
TextMessage includedMsgHub = hubSession.createTextMessage();
- includedMsgHub.setText(includedQueueHub.toString());
+ includedMsgHub.setText(includedQueueHub.toString());
+
+ Queue alwaysIncludedQueueHub = hubSession.createQueue("always.include.test.foo");
+
+ TextMessage alwaysIncludedMsgHub = hubSession.createTextMessage();
+ alwaysIncludedMsgHub.setText(alwaysIncludedQueueHub.toString());
// Sending from Hub queue
hubProducer.send(excludedQueueHub, excludedMsgHub);
hubProducer.send(includedQueueHub, includedMsgHub);
+ hubProducer.send(alwaysIncludedQueueHub, alwaysIncludedMsgHub);
Queue excludedQueueSpoke = spokeSession.createQueue("exclude.test.foo");
@@ -121,7 +133,21 @@ public class TestBrokerConnectionDuplexE
Thread.sleep(100);
Queue includedQueueSpoke = spokeSession.createQueue("include.test.foo");
- MessageConsumer includedConsumerSpoke = spokeSession.createConsumer(includedQueueSpoke);
+ MessageConsumer includedConsumerSpoke = spokeSession.createConsumer(includedQueueSpoke);
+
+ Thread.sleep(100);
+
+ Queue alwaysIncludedQueueSpoke = spokeSession.createQueue("always.include.test.foo");
+ MessageConsumer alwaysIncludedConsumerSpoke = spokeSession.createConsumer(alwaysIncludedQueueHub);
+
+ Thread.sleep(100);
+ TextMessage alwaysIncludedMsgSpoke = spokeSession.createTextMessage();
+ alwaysIncludedMsgSpoke.setText(alwaysIncludedQueueSpoke.toString());
+ spokeProducer.send(alwaysIncludedQueueSpoke, alwaysIncludedMsgSpoke);
+
+
+ MessageConsumer alwaysIncludedConsumerHub = spokeSession.createConsumer(alwaysIncludedQueueHub);
+
// Receiving from excluded Spoke queue
Message msg = excludedConsumerSpoke.receive(200);
@@ -130,6 +156,10 @@ public class TestBrokerConnectionDuplexE
// Receiving from included Spoke queue
msg = includedConsumerSpoke.receive(200);
assertEquals(includedMsgHub, msg);
+
+ // Receiving from included Spoke queue
+ msg = alwaysIncludedConsumerSpoke.receive(200);
+ assertEquals(alwaysIncludedMsgHub, msg);
// we should be able to receive excluded queue message on Hub
MessageConsumer excludedConsumerHub = hubSession.createConsumer(excludedQueueHub);
Modified: activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/sender-duplex.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/sender-duplex.xml?rev=1141124&r1=1141123&r2=1141124&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/sender-duplex.xml (original)
+++ activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/sender-duplex.xml Wed Jun 29 14:58:04 2011
@@ -40,8 +40,8 @@
<topic physicalName="exclude.test.bar"/>
</excludedDestinations>
<staticallyIncludedDestinations>
- <queue physicalName="always.include.queue"/>
- <topic physicalName="always.include.topic"/>
+ <queue physicalName="always.include.test.foo"/>
+ <topic physicalName="always.include.test.bar"/>
</staticallyIncludedDestinations>
</networkConnector>