Author: tabish
Date: Fri Sep 30 19:38:46 2011
New Revision: 1177799
URL: http://svn.apache.org/viewvc?rev=1177799&view=rev
Log:
Add missing license header
Modified:
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ3014Test.java
Modified:
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ3014Test.java
URL:
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ3014Test.java?rev=1177799&r1=1177798&r2=1177799&view=diff
==============================================================================
---
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ3014Test.java
(original)
+++
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/AMQ3014Test.java
Fri Sep 30 19:38:46 2011
@@ -1,3 +1,19 @@
+/**
+ * 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.
+ */
package org.apache.activemq.bugs;
import java.io.IOException;
@@ -31,165 +47,165 @@ import org.junit.Test;
* transfered once the local broker's ID is known to the bridge support.
*/
public class AMQ3014Test {
- // Change this URL to be an unused port.
- private static final String REMOTE_BROKER_URL = "tcp://localhost:50000";
+ // Change this URL to be an unused port.
+ private static final String REMOTE_BROKER_URL = "tcp://localhost:50000";
- private List<BrokerInfo> remoteBrokerInfos = Collections
- .synchronizedList(new ArrayList<BrokerInfo>());
+ private List<BrokerInfo> remoteBrokerInfos = Collections
+ .synchronizedList(new ArrayList<BrokerInfo>());
- private BrokerService localBroker = new BrokerService();
+ private BrokerService localBroker = new BrokerService();
- // Override the "remote" broker so that it records all (remote)
BrokerInfos
- // that it receives.
- private BrokerService remoteBroker = new BrokerService() {
- @Override
- protected TransportConnector createTransportConnector(URI
brokerURI)
- throws Exception {
- TransportServer transport = TransportFactory.bind(this,
brokerURI);
- return new TransportConnector(transport) {
- @Override
- protected Connection createConnection(Transport
transport)
- throws IOException {
- Connection connection =
super.createConnection(transport);
- final TransportListener proxiedListener
= transport
- .getTransportListener();
- transport.setTransportListener(new
TransportListener() {
-
- @Override
- public void onCommand(Object
command) {
- if (command instanceof
BrokerInfo) {
-
remoteBrokerInfos.add((BrokerInfo) command);
- }
-
proxiedListener.onCommand(command);
- }
-
- @Override
- public void
onException(IOException error) {
-
proxiedListener.onException(error);
- }
-
- @Override
- public void
transportInterupted() {
-
proxiedListener.transportInterupted();
- }
-
- @Override
- public void transportResumed() {
-
proxiedListener.transportResumed();
- }
- });
- return connection;
- }
-
- };
- }
- };
-
- @Before
- public void init() throws Exception {
- localBroker.setBrokerName("localBroker");
- localBroker.setPersistent(false);
- localBroker.setUseJmx(false);
- localBroker.setSchedulerSupport(false);
-
- remoteBroker.setBrokerName("remoteBroker");
- remoteBroker.setPersistent(false);
- remoteBroker.setUseJmx(false);
- remoteBroker.addConnector(REMOTE_BROKER_URL);
- remoteBroker.setSchedulerSupport(false);
- }
-
- @After
- public void cleanup() throws Exception {
- try {
- localBroker.stop();
- } finally {
- remoteBroker.stop();
- }
- }
-
- /**
- * This test verifies that the local broker's ID is typically known by
the
- * bridge support before the local broker's BrokerInfo is sent to the
remote
- * broker.
- */
- @Test
- public void NormalCaseTest() throws Exception {
- runTest(0, 3000);
- }
-
- /**
- * This test verifies that timing can arise under which the local
broker's
- * ID is not known by the bridge support before the local broker's
- * BrokerInfo is sent to the remote broker.
- */
- @Test
- public void DelayedCaseTest() throws Exception {
- runTest(500, 3000);
- }
-
- private void runTest(final long taskRunnerDelay, long timeout)
- throws Exception {
- // Add a network connector to the local broker that will create
a bridge
- // to the remote broker.
- DiscoveryNetworkConnector dnc = new DiscoveryNetworkConnector();
- SimpleDiscoveryAgent da = new SimpleDiscoveryAgent();
- da.setServices(REMOTE_BROKER_URL);
- dnc.setDiscoveryAgent(da);
- localBroker.addNetworkConnector(dnc);
-
- // Before starting the local broker, intercept the task runner
factory
- // so that the
- // local VMTransport dispatcher is artificially delayed.
- final TaskRunnerFactory realTaskRunnerFactory = localBroker
- .getTaskRunnerFactory();
- localBroker.setTaskRunnerFactory(new TaskRunnerFactory() {
- public TaskRunner createTaskRunner(Task task, String
name) {
- final TaskRunner realTaskRunner =
realTaskRunnerFactory
- .createTaskRunner(task, name);
- if (name.startsWith("ActiveMQ Connection
Dispatcher: ")) {
- return new TaskRunner() {
- @Override
- public void shutdown() throws
InterruptedException {
-
realTaskRunner.shutdown();
- }
-
- @Override
- public void shutdown(long
timeout)
- throws
InterruptedException {
-
realTaskRunner.shutdown(timeout);
- }
-
- @Override
- public void wakeup() throws
InterruptedException {
-
Thread.sleep(taskRunnerDelay);
- realTaskRunner.wakeup();
- }
- };
- } else {
- return
realTaskRunnerFactory.createTaskRunner(task, name);
- }
- }
- });
-
- // Start the brokers and wait for the bridge to be created; the
remote
- // broker is started first to ensure it is available for the
local
- // broker to connect to.
- remoteBroker.start();
- localBroker.start();
-
- // Wait for the remote broker to receive the local broker's
BrokerInfo
- // and then verify the local broker's ID is known.
- long startTimeMillis = System.currentTimeMillis();
- while (remoteBrokerInfos.isEmpty()
- && (System.currentTimeMillis() -
startTimeMillis) < timeout) {
- Thread.sleep(100);
- }
-
- Assert.assertFalse("Timed out waiting for bridge to form.",
- remoteBrokerInfos.isEmpty());
- ;
- Assert.assertNotNull("Local broker ID is null.",
remoteBrokerInfos.get(
- 0).getBrokerId());
- }
+ // Override the "remote" broker so that it records all (remote) BrokerInfos
+ // that it receives.
+ private BrokerService remoteBroker = new BrokerService() {
+ @Override
+ protected TransportConnector createTransportConnector(URI brokerURI)
+ throws Exception {
+ TransportServer transport = TransportFactory.bind(this, brokerURI);
+ return new TransportConnector(transport) {
+ @Override
+ protected Connection createConnection(Transport transport)
+ throws IOException {
+ Connection connection = super.createConnection(transport);
+ final TransportListener proxiedListener = transport
+ .getTransportListener();
+ transport.setTransportListener(new TransportListener() {
+
+ @Override
+ public void onCommand(Object command) {
+ if (command instanceof BrokerInfo) {
+ remoteBrokerInfos.add((BrokerInfo) command);
+ }
+ proxiedListener.onCommand(command);
+ }
+
+ @Override
+ public void onException(IOException error) {
+ proxiedListener.onException(error);
+ }
+
+ @Override
+ public void transportInterupted() {
+ proxiedListener.transportInterupted();
+ }
+
+ @Override
+ public void transportResumed() {
+ proxiedListener.transportResumed();
+ }
+ });
+ return connection;
+ }
+
+ };
+ }
+ };
+
+ @Before
+ public void init() throws Exception {
+ localBroker.setBrokerName("localBroker");
+ localBroker.setPersistent(false);
+ localBroker.setUseJmx(false);
+ localBroker.setSchedulerSupport(false);
+
+ remoteBroker.setBrokerName("remoteBroker");
+ remoteBroker.setPersistent(false);
+ remoteBroker.setUseJmx(false);
+ remoteBroker.addConnector(REMOTE_BROKER_URL);
+ remoteBroker.setSchedulerSupport(false);
+ }
+
+ @After
+ public void cleanup() throws Exception {
+ try {
+ localBroker.stop();
+ } finally {
+ remoteBroker.stop();
+ }
+ }
+
+ /**
+ * This test verifies that the local broker's ID is typically known by the
+ * bridge support before the local broker's BrokerInfo is sent to the
remote
+ * broker.
+ */
+ @Test
+ public void NormalCaseTest() throws Exception {
+ runTest(0, 3000);
+ }
+
+ /**
+ * This test verifies that timing can arise under which the local broker's
+ * ID is not known by the bridge support before the local broker's
+ * BrokerInfo is sent to the remote broker.
+ */
+ @Test
+ public void DelayedCaseTest() throws Exception {
+ runTest(500, 3000);
+ }
+
+ private void runTest(final long taskRunnerDelay, long timeout)
+ throws Exception {
+ // Add a network connector to the local broker that will create a
bridge
+ // to the remote broker.
+ DiscoveryNetworkConnector dnc = new DiscoveryNetworkConnector();
+ SimpleDiscoveryAgent da = new SimpleDiscoveryAgent();
+ da.setServices(REMOTE_BROKER_URL);
+ dnc.setDiscoveryAgent(da);
+ localBroker.addNetworkConnector(dnc);
+
+ // Before starting the local broker, intercept the task runner factory
+ // so that the
+ // local VMTransport dispatcher is artificially delayed.
+ final TaskRunnerFactory realTaskRunnerFactory = localBroker
+ .getTaskRunnerFactory();
+ localBroker.setTaskRunnerFactory(new TaskRunnerFactory() {
+ public TaskRunner createTaskRunner(Task task, String name) {
+ final TaskRunner realTaskRunner = realTaskRunnerFactory
+ .createTaskRunner(task, name);
+ if (name.startsWith("ActiveMQ Connection Dispatcher: ")) {
+ return new TaskRunner() {
+ @Override
+ public void shutdown() throws InterruptedException {
+ realTaskRunner.shutdown();
+ }
+
+ @Override
+ public void shutdown(long timeout)
+ throws InterruptedException {
+ realTaskRunner.shutdown(timeout);
+ }
+
+ @Override
+ public void wakeup() throws InterruptedException {
+ Thread.sleep(taskRunnerDelay);
+ realTaskRunner.wakeup();
+ }
+ };
+ } else {
+ return realTaskRunnerFactory.createTaskRunner(task, name);
+ }
+ }
+ });
+
+ // Start the brokers and wait for the bridge to be created; the remote
+ // broker is started first to ensure it is available for the local
+ // broker to connect to.
+ remoteBroker.start();
+ localBroker.start();
+
+ // Wait for the remote broker to receive the local broker's BrokerInfo
+ // and then verify the local broker's ID is known.
+ long startTimeMillis = System.currentTimeMillis();
+ while (remoteBrokerInfos.isEmpty()
+ && (System.currentTimeMillis() - startTimeMillis) < timeout) {
+ Thread.sleep(100);
+ }
+
+ Assert.assertFalse("Timed out waiting for bridge to form.",
+ remoteBrokerInfos.isEmpty());
+ ;
+ Assert.assertNotNull("Local broker ID is null.", remoteBrokerInfos.get(
+ 0).getBrokerId());
+ }
}