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>