Author: dejanb
Date: Mon Nov 8 17:45:35 2010
New Revision: 1032647
URL: http://svn.apache.org/viewvc?rev=1032647&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQ-3020 - supress browsers over
network
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/BrowseOverNetworkTest.java
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=1032647&r1=1032646&r2=1032647&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
Mon Nov 8 17:45:35 2010
@@ -566,9 +566,16 @@ public abstract class DemandForwardingBr
ConsumerInfo info = (ConsumerInfo) data;
BrokerId[] path = info.getBrokerPath();
+ if (info.isBrowser()) {
+ if (LOG.isDebugEnabled()) {
+ LOG.info(configuration.getBrokerName() + " Ignoring sub
from " + remoteBrokerName + ", browsers explicitly suppressed");
+ }
+ return;
+ }
+
if (path != null && path.length >= networkTTL) {
if (LOG.isDebugEnabled()) {
- LOG.debug(configuration.getBrokerName() + " Ignoring sub
from " + remoteBrokerName + ", restricted to " + networkTTL + " network hops
only : " + info);
+ LOG.debug(configuration.getBrokerName() + " Ignoring sub
from " + remoteBrokerName + ", restricted to " + networkTTL + " network hops
only : " + info);
}
return;
}
Modified:
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/BrowseOverNetworkTest.java
URL:
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/BrowseOverNetworkTest.java?rev=1032647&r1=1032646&r2=1032647&view=diff
==============================================================================
---
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/BrowseOverNetworkTest.java
(original)
+++
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/BrowseOverNetworkTest.java
Mon Nov 8 17:45:35 2010
@@ -51,23 +51,25 @@ public class BrowseOverNetworkTest exten
sendMessages("BrokerA", dest, MESSAGE_COUNT);
- browseMessages("BrokerB", dest);
+ Thread.sleep(1000);
+
+ int browsed = browseMessages("BrokerB", dest);
- Thread.sleep(2000);
+ Thread.sleep(1000);
MessageConsumer clientA = createConsumer("BrokerA", dest);
MessageIdList msgsA = getConsumerMessages("BrokerA", clientA);
msgsA.waitForMessagesToArrive(MESSAGE_COUNT);
- Thread.sleep(2000);
+ Thread.sleep(1000);
MessageConsumer clientB = createConsumer("BrokerB", dest);
MessageIdList msgsB = getConsumerMessages("BrokerB", clientB);
msgsB.waitForMessagesToArrive(MESSAGE_COUNT);
LOG.info("A+B: " + msgsA.getMessageCount() + "+"
+ msgsB.getMessageCount());
- assertEquals(MESSAGE_COUNT, msgsA.getMessageCount()
- + msgsB.getMessageCount());
+ assertEquals("Consumer on Broker A, should've consumed all messages",
MESSAGE_COUNT, msgsA.getMessageCount());
+ assertEquals("Broker B shouldn't get any messages", 0, browsed);
}
public void testConsumerInfo() throws Exception {
@@ -185,6 +187,7 @@ public class BrowseOverNetworkTest exten
startAllBrokers();
brokers.get("BrokerA").broker.waitUntilStarted();
+ brokers.get("BrokerB").broker.waitUntilStarted();
brokers.get("BrokerC").broker.waitUntilStarted();
brokers.get("BrokerD").broker.waitUntilStarted();