activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dej...@apache.org
Subject svn commit: r1032591 - in /activemq/trunk/activemq-core/src: main/java/org/apache/activemq/network/ test/java/org/apache/activemq/usecases/ test/resources/org/apache/activemq/usecases/
Date Mon, 08 Nov 2010 14:51:11 GMT
Author: dejanb
Date: Mon Nov  8 14:51:11 2010
New Revision: 1032591

URL: http://svn.apache.org/viewvc?rev=1032591&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQ-3020 - test case

Added:
    activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1A.xml
    activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1B.xml
    activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2A.xml
    activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2B.xml
    activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3A.xml
    activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3B.xml
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=1032591&r1=1032590&r2=1032591&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 14:51:11 2010
@@ -717,7 +717,7 @@ public abstract class DemandForwardingBr
                         
                         Message message = configureMessage(md);
                         if (LOG.isDebugEnabled()) {
-                            LOG.debug("bridging " + configuration.getBrokerName() + " -> " + remoteBrokerName + ", consumer: " + md.getConsumerId() + ", brokerPath: " + Arrays.toString(message.getBrokerPath()) + ", message: " + message);
+                            LOG.debug("bridging (" + configuration.getBrokerName() + " -> " + remoteBrokerName + ", consumer: " + md.getConsumerId() + ", destination " + message.getDestination() + ", brokerPath: " + Arrays.toString(message.getBrokerPath()) + ", message: " + message);
                         }
                         
                         if (!message.isResponseRequired()) {

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=1032591&r1=1032590&r2=1032591&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 14:51:11 2010
@@ -21,7 +21,6 @@ import java.util.Arrays;
 import java.util.Enumeration;
 
 import javax.jms.Destination;
-import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.QueueBrowser;
 
@@ -111,7 +110,6 @@ public class BrowseOverNetworkTest exten
                 try {
                     QueueBrowser browser = createBrowser(broker, dest);
                     int count  = browseMessages(browser, broker);
-                    LOG.info("browser '" + broker + "' browsed " + totalCount);
                     if (consume) {
                         if (count != 0) {
                             MessageConsumer consumer = createSyncConsumer(broker, dest);
@@ -125,6 +123,7 @@ public class BrowseOverNetworkTest exten
                     } else {
                         totalCount = count;
                     }
+                    LOG.info("browser '" + broker + "' browsed " + totalCount);
 
                     Thread.sleep(1000);
                 } catch (Exception e) {
@@ -204,6 +203,39 @@ public class BrowseOverNetworkTest exten
 
     }
 
+    public void testAMQ3020() throws Exception {
+        createBroker(new ClassPathResource("org/apache/activemq/usecases/browse-broker1A.xml"));
+        createBroker(new ClassPathResource("org/apache/activemq/usecases/browse-broker1B.xml"));
+        createBroker(new ClassPathResource("org/apache/activemq/usecases/browse-broker2A.xml"));
+        createBroker(new ClassPathResource("org/apache/activemq/usecases/browse-broker2B.xml"));
+        createBroker(new ClassPathResource("org/apache/activemq/usecases/browse-broker3A.xml"));
+        createBroker(new ClassPathResource("org/apache/activemq/usecases/browse-broker3B.xml"));
+
+        brokers.get("broker-1A").broker.waitUntilStarted();
+        brokers.get("broker-2A").broker.waitUntilStarted();
+        brokers.get("broker-3A").broker.waitUntilStarted();
+
+        Destination composite = createDestination("PROD.FUSESOURCE.3.A,PROD.FUSESOURCE.3.B", false);
+
+        Browser browser1 = new Browser("broker-3A", composite);
+        browser1.start();
+
+        Browser browser2 = new Browser("broker-3B", composite);
+        browser2.start();
+
+        sendMessages("broker-1A", composite, MESSAGE_COUNT);
+
+        browser1.join();
+        browser2.join();
+
+
+        LOG.info("broker-3A browsed " + browser1.getTotalCount());
+        LOG.info("broker-3B browsed " + browser2.getTotalCount());
+        
+        assertEquals(MESSAGE_COUNT * 2, browser1.getTotalCount() + browser2.getTotalCount() );
+
+    }    
+
     protected int browseMessages(QueueBrowser browser, String name) throws Exception {
         Enumeration msgs = browser.getEnumeration();
         int browsedMessage = 0;

Added: activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1A.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1A.xml?rev=1032591&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1A.xml (added)
+++ activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1A.xml Mon Nov  8 14:51:11 2010
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<beans
+  xmlns="http://www.springframework.org/schema/beans"
+  xmlns:amq="http://activemq.apache.org/schema/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+           http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
+           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+  <bean
+    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+    <property name="locations">
+      <list>
+        <value>classpath:activemq-browse.properties</value>
+      </list>
+    </property>
+    <property name="ignoreResourceNotFound" value="true" />
+    <property name="searchSystemEnvironment" value="true" />
+  </bean>
+
+  <amq:broker brokerName="broker-1A" brokerId="broker-1A" useJmx="false"
+  			  persistent="true" advisorySupport="true" deleteAllMessagesOnStartup="true">
+
+
+   <amq:destinationInterceptors>
+            <amq:virtualDestinationInterceptor>
+              <amq:virtualDestinations>
+                <amq:virtualTopic name=">" prefix="VTopic.*." />
+                <amq:compositeQueue name="PROD.FUSESOURCE">
+                  <amq:forwardTo>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+                  </amq:forwardTo>
+                </amq:compositeQueue>
+              </amq:virtualDestinations>
+           </amq:virtualDestinationInterceptor>
+    </amq:destinationInterceptors>
+
+
+    <amq:destinationPolicy>
+      <amq:policyMap>
+        <amq:policyEntries>
+          <amq:policyEntry topic=">" enableAudit="true">
+            <amq:dispatchPolicy>
+              <amq:priorityNetworkDispatchPolicy/>
+            </amq:dispatchPolicy>
+          </amq:policyEntry>
+        </amq:policyEntries>
+      </amq:policyMap>
+    </amq:destinationPolicy>
+
+    <amq:networkConnectors>
+
+      <amq:networkConnector uri="static:(${1b.uri})"
+        name="1a_${1b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${2a.uri})"
+        name="1a_${2a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${2b.uri})"
+        name="1a_${2b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3a.uri})"
+        name="1a_${3a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3b.uri})"
+        name="1a_${3b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+    </amq:networkConnectors>
+
+    <amq:persistenceAdapter>
+       <amq:kahaDB directory="${1a.data}"/>
+    </amq:persistenceAdapter>
+
+
+	<amq:plugins>
+       	<amq:timeStampingBrokerPlugin futureOnly="true"/>
+	</amq:plugins>
+
+    <amq:transportConnectors>
+      <amq:transportConnector uri="${1a.transport}" />
+    </amq:transportConnectors>
+
+  </amq:broker>
+
+
+</beans>

Added: activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1B.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1B.xml?rev=1032591&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1B.xml (added)
+++ activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker1B.xml Mon Nov  8 14:51:11 2010
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<beans
+  xmlns="http://www.springframework.org/schema/beans"
+  xmlns:amq="http://activemq.apache.org/schema/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+           http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
+           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+
+  <bean
+    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+    <property name="locations">
+      <list>
+        <value>classpath:activemq-browse.properties</value>
+      </list>
+    </property>
+    <property name="ignoreResourceNotFound" value="true" />
+    <property name="searchSystemEnvironment" value="true" />
+  </bean>
+
+  <amq:broker brokerName="broker-1B" brokerId="broker-1B" useJmx="false"
+  			  persistent="true" advisorySupport="true" deleteAllMessagesOnStartup="true">
+
+
+    <amq:destinationInterceptors>
+            <amq:virtualDestinationInterceptor>
+              <amq:virtualDestinations>
+                <!--  amq:virtualTopic name=">" prefix="VTopic.*." / -->
+                <amq:compositeQueue name="PROD.FUSESOURCE">
+                  <amq:forwardTo>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+                  </amq:forwardTo>
+                </amq:compositeQueue>
+              </amq:virtualDestinations>
+           </amq:virtualDestinationInterceptor>
+    </amq:destinationInterceptors>
+
+
+    <amq:destinationPolicy>
+      <amq:policyMap>
+        <amq:policyEntries>
+          <amq:policyEntry topic=">" enableAudit="true">
+            <amq:dispatchPolicy>
+              <amq:priorityNetworkDispatchPolicy/>
+            </amq:dispatchPolicy>
+          </amq:policyEntry>
+        </amq:policyEntries>
+      </amq:policyMap>
+    </amq:destinationPolicy>
+
+
+    <!--  Network connectors -->
+    <amq:networkConnectors>
+
+      <amq:networkConnector uri="static:(${1a.uri})"
+        name="1b_${1a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${2a.uri})"
+        name="1b_${2a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${2b.uri})"
+        name="1b_${2b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3a.uri})"
+        name="1b_${3a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3b.uri})"
+        name="1b_${3b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+    </amq:networkConnectors>
+
+    <amq:persistenceAdapter>
+       <amq:kahaDB directory="${1b.data}"/>
+    </amq:persistenceAdapter>
+
+	<amq:plugins>
+       	<amq:timeStampingBrokerPlugin futureOnly="true"/>
+	</amq:plugins>
+
+    <amq:transportConnectors>
+      <amq:transportConnector uri="${1b.transport}" />
+    </amq:transportConnectors>
+
+  </amq:broker>
+
+  </beans>
\ No newline at end of file

Added: activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2A.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2A.xml?rev=1032591&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2A.xml (added)
+++ activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2A.xml Mon Nov  8 14:51:11 2010
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->         
+<beans
+  xmlns="http://www.springframework.org/schema/beans"
+  xmlns:amq="http://activemq.apache.org/schema/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+           http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
+           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+  <bean
+    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+    <property name="locations">
+      <list>
+        <value>classpath:activemq-browse.properties</value>
+      </list>
+    </property>
+    <property name="ignoreResourceNotFound" value="true" />
+    <property name="searchSystemEnvironment" value="true" />
+  </bean>
+
+  <amq:broker brokerName="broker-2A" brokerId="broker-2A" useJmx="false"
+  			  persistent="true" advisorySupport="true" deleteAllMessagesOnStartup="true">
+
+
+    <amq:destinationInterceptors>
+            <amq:virtualDestinationInterceptor>
+              <amq:virtualDestinations>
+                <!--  amq:virtualTopic name=">" prefix="VTopic.*." / -->
+                <amq:compositeQueue name="PROD.FUSESOURCE">
+                  <amq:forwardTo>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+                  </amq:forwardTo>
+                </amq:compositeQueue>
+              </amq:virtualDestinations>
+           </amq:virtualDestinationInterceptor>
+    </amq:destinationInterceptors>
+
+
+    <amq:destinationPolicy>
+      <amq:policyMap>
+        <amq:policyEntries>
+          <amq:policyEntry topic=">" enableAudit="true">
+            <amq:dispatchPolicy>
+              <amq:priorityNetworkDispatchPolicy/>
+            </amq:dispatchPolicy>
+          </amq:policyEntry>
+        </amq:policyEntries>
+      </amq:policyMap>
+    </amq:destinationPolicy>
+
+    <!--  Network connectors -->
+    <amq:networkConnectors>
+
+      <amq:networkConnector uri="static:(${1a.uri})"
+        name="2a_${1a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${1b.uri})"
+        name="2a_${1b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${2b.uri})"
+        name="2a_${2b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3a.uri})"
+        name="2a_${3a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3b.uri})"
+        name="2a_${3b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+    </amq:networkConnectors>
+
+    <amq:persistenceAdapter>
+       <amq:kahaDB directory="${2a.data}"/>
+    </amq:persistenceAdapter>
+
+	<amq:plugins>
+       	<amq:timeStampingBrokerPlugin futureOnly="true"/>
+	</amq:plugins>
+
+    <amq:transportConnectors>
+      <amq:transportConnector uri="${2a.transport}" />
+    </amq:transportConnectors>
+
+  </amq:broker>
+
+
+
+
+</beans>

Added: activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2B.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2B.xml?rev=1032591&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2B.xml (added)
+++ activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker2B.xml Mon Nov  8 14:51:11 2010
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->         
+<beans
+  xmlns="http://www.springframework.org/schema/beans"
+  xmlns:amq="http://activemq.apache.org/schema/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+           http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
+           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+  <bean
+    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+    <property name="locations">
+      <list>
+        <value>classpath:activemq-browse.properties</value>
+      </list>
+    </property>
+    <property name="ignoreResourceNotFound" value="true" />
+    <property name="searchSystemEnvironment" value="true" />
+  </bean>
+
+
+  <amq:broker brokerName="broker-2B" brokerId="broker-2B" useJmx="false"
+  			  persistent="true" advisorySupport="true" deleteAllMessagesOnStartup="true">
+
+
+    <amq:destinationInterceptors>
+            <amq:virtualDestinationInterceptor>
+              <amq:virtualDestinations>
+                <!--  amq:virtualTopic name=">" prefix="VTopic.*." / -->
+                <amq:compositeQueue name="PROD.FUSESOURCE">
+                  <amq:forwardTo>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+                  </amq:forwardTo>
+                </amq:compositeQueue>
+              </amq:virtualDestinations>
+           </amq:virtualDestinationInterceptor>
+    </amq:destinationInterceptors>
+
+
+    <amq:destinationPolicy>
+      <amq:policyMap>
+        <amq:policyEntries>
+          <amq:policyEntry topic=">" enableAudit="true">
+            <amq:dispatchPolicy>
+              <amq:priorityNetworkDispatchPolicy/>
+            </amq:dispatchPolicy>
+          </amq:policyEntry>
+        </amq:policyEntries>
+      </amq:policyMap>
+    </amq:destinationPolicy>
+
+    <!--  Network connectors -->
+    <amq:networkConnectors>
+
+      <amq:networkConnector uri="static:(${1a.uri})"
+        name="2b_${1a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${1b.uri})"
+        name="2b_${1b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${2a.uri})"
+        name="2b_${2a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3a.uri})"
+        name="2b_${3a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+       <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3b.uri})"
+        name="2b_${3b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+    </amq:networkConnectors>
+
+    <amq:persistenceAdapter>
+       <amq:kahaDB directory="${2b.data}"/>
+    </amq:persistenceAdapter>
+
+	<amq:plugins>
+       	<amq:timeStampingBrokerPlugin futureOnly="true"/>
+	</amq:plugins>
+
+    <amq:transportConnectors>
+      <amq:transportConnector uri="${2b.transport}" />
+    </amq:transportConnectors>
+
+  </amq:broker>
+
+
+
+
+
+</beans>

Added: activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3A.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3A.xml?rev=1032591&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3A.xml (added)
+++ activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3A.xml Mon Nov  8 14:51:11 2010
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->         
+<beans
+  xmlns="http://www.springframework.org/schema/beans"
+  xmlns:amq="http://activemq.apache.org/schema/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+           http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
+           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+  <bean
+    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+    <property name="locations">
+      <list>
+        <value>classpath:activemq-browse.properties</value>
+      </list>
+    </property>
+    <property name="ignoreResourceNotFound" value="true" />
+    <property name="searchSystemEnvironment" value="true" />
+  </bean>
+
+  <amq:broker brokerName="broker-3A" brokerId="broker-3A" useJmx="false"
+  			  persistent="true" advisorySupport="true" deleteAllMessagesOnStartup="true">
+
+
+    <amq:destinationInterceptors>
+            <amq:virtualDestinationInterceptor>
+              <amq:virtualDestinations>
+                <!--  amq:virtualTopic name=">" prefix="VTopic.*." / -->
+                <amq:compositeQueue name="PROD.FUSESOURCE">
+                  <amq:forwardTo>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+                  </amq:forwardTo>
+                </amq:compositeQueue>
+              </amq:virtualDestinations>
+           </amq:virtualDestinationInterceptor>
+    </amq:destinationInterceptors>
+
+
+    <amq:destinationPolicy>
+      <amq:policyMap>
+        <amq:policyEntries>
+          <amq:policyEntry topic=">" enableAudit="true">
+            <amq:dispatchPolicy>
+              <amq:priorityNetworkDispatchPolicy/>
+            </amq:dispatchPolicy>
+          </amq:policyEntry>
+        </amq:policyEntries>
+      </amq:policyMap>
+    </amq:destinationPolicy>
+
+    <!--  Network connectors -->
+    <amq:networkConnectors>
+
+      <amq:networkConnector uri="static:(${1a.uri})"
+        name="3a_${1a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${1b.uri})"
+        name="3a_${1b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${2a.uri})"
+        name="3a_${2a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${2b.uri})"
+        name="3a_${2b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+       <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3b.uri})"
+        name="3a_${3b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:staticallyIncludedDestinations>
+       </amq:networkConnector>
+    </amq:networkConnectors>
+
+    <amq:persistenceAdapter>
+       <amq:kahaDB directory="${3a.data}"/>
+    </amq:persistenceAdapter>
+
+	<amq:plugins>
+       	<amq:timeStampingBrokerPlugin futureOnly="true"/>
+	</amq:plugins>
+
+    <amq:transportConnectors>
+      <amq:transportConnector uri="${3a.transport}" />
+    </amq:transportConnectors>
+
+  </amq:broker>
+
+
+</beans>

Added: activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3B.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3B.xml?rev=1032591&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3B.xml (added)
+++ activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/browse-broker3B.xml Mon Nov  8 14:51:11 2010
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->         
+<beans
+  xmlns="http://www.springframework.org/schema/beans"
+  xmlns:amq="http://activemq.apache.org/schema/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+           http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
+           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+  <bean
+    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+    <property name="locations">
+      <list>
+        <value>classpath:activemq-browse.properties</value>
+      </list>
+    </property>
+    <property name="ignoreResourceNotFound" value="true" />
+    <property name="searchSystemEnvironment" value="true" />
+  </bean>
+
+  <amq:broker brokerName="broker-3B" brokerId="broker-3B" useJmx="false"
+  			  persistent="true" advisorySupport="true" deleteAllMessagesOnStartup="true">
+
+
+    <amq:destinationInterceptors>
+            <amq:virtualDestinationInterceptor>
+              <amq:virtualDestinations>
+                <!--  amq:virtualTopic name=">" prefix="VTopic.*." / -->
+                <amq:compositeQueue name="PROD.FUSESOURCE">
+                  <amq:forwardTo>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+                    <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+                  </amq:forwardTo>
+                </amq:compositeQueue>
+              </amq:virtualDestinations>
+           </amq:virtualDestinationInterceptor>
+    </amq:destinationInterceptors>
+
+
+    <amq:destinationPolicy>
+      <amq:policyMap>
+        <amq:policyEntries>
+          <amq:policyEntry topic=">" enableAudit="true">
+            <amq:dispatchPolicy>
+              <amq:priorityNetworkDispatchPolicy/>
+            </amq:dispatchPolicy>
+          </amq:policyEntry>
+        </amq:policyEntries>
+      </amq:policyMap>
+    </amq:destinationPolicy>
+
+    <!--  Network connectors -->
+    <amq:networkConnectors>
+
+      <amq:networkConnector uri="static:(${1a.uri})"
+        name="3a_${1a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+       <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${1b.uri})"
+        name="3a_${1b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+  		<amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:staticallyIncludedDestinations>
+      </amq:networkConnector>
+
+
+      <amq:networkConnector uri="static:(${2a.uri})"
+        name="3a_${2a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+  		<amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:staticallyIncludedDestinations>
+
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${2b.uri})"
+        name="3b_${2b.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+
+ 		<amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:staticallyIncludedDestinations>
+
+      </amq:networkConnector>
+
+      <amq:networkConnector uri="static:(${3a.uri})"
+        name="3b_${3a.name}"
+        networkTTL="6"
+        prefetchSize="5"
+        suppressDuplicateTopicSubscriptions="false"
+        suppressDuplicateQueueSubscriptions="false"
+        decreaseNetworkConsumerPriority="true">
+        <amq:excludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.B"/>
+        </amq:excludedDestinations>
+        <amq:staticallyIncludedDestinations>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.1.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.A"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.2.B"/>
+          <amq:queue physicalName="PROD.FUSESOURCE.3.A"/>
+        </amq:staticallyIncludedDestinations>
+       </amq:networkConnector>
+    </amq:networkConnectors>
+
+    <amq:persistenceAdapter>
+       <amq:kahaDB directory="${3b.data}"/>
+    </amq:persistenceAdapter>
+
+	<amq:plugins>
+       	<amq:timeStampingBrokerPlugin futureOnly="true"/>
+	</amq:plugins>
+
+    <amq:transportConnectors>
+      <amq:transportConnector uri="${3b.transport}" />
+    </amq:transportConnectors>
+
+  </amq:broker>
+
+</beans>



Mime
View raw message