[AMQ-8981] Fix CustomBridgeFactoryTest
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/network/BaseNetworkTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/network/BaseNetworkTest.java
index e5cd967..1615914 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/network/BaseNetworkTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/network/BaseNetworkTest.java
@@ -53,10 +53,17 @@
}
protected void doTearDown() throws Exception {
- localConnection.close();
- remoteConnection.close();
- localBroker.stop();
- remoteBroker.stop();
+ if(localConnection != null)
+ localConnection.close();
+
+ if(remoteConnection != null)
+ remoteConnection.close();
+
+ if(localBroker != null)
+ localBroker.stop();
+
+ if(remoteBroker != null)
+ remoteBroker.stop();
}
protected void doSetUp(boolean deleteAllMessages) throws Exception {
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/network/CompositeNetworkBridgeListener.java b/activemq-unit-tests/src/test/java/org/apache/activemq/network/CompositeNetworkBridgeListener.java
new file mode 100644
index 0000000..e9fdfcf
--- /dev/null
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/network/CompositeNetworkBridgeListener.java
@@ -0,0 +1,49 @@
+package org.apache.activemq.network;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.activemq.command.Message;
+
+public class CompositeNetworkBridgeListener implements NetworkBridgeListener {
+ private final List<NetworkBridgeListener> listeners;
+
+ public CompositeNetworkBridgeListener(NetworkBridgeListener... wrapped) {
+ this.listeners = Arrays.asList(wrapped);
+ }
+
+ @Override
+ public void bridgeFailed() {
+ for (NetworkBridgeListener listener : listeners) {
+ listener.bridgeFailed();
+ }
+ }
+
+ @Override
+ public void onStart(NetworkBridge bridge) {
+ for (NetworkBridgeListener listener : listeners) {
+ listener.onStart(bridge);
+ }
+ }
+
+ @Override
+ public void onStop(NetworkBridge bridge) {
+ for (NetworkBridgeListener listener : listeners) {
+ listener.onStop(bridge);
+ }
+ }
+
+ @Override
+ public void onOutboundMessage(NetworkBridge bridge, Message message) {
+ for (NetworkBridgeListener listener : listeners) {
+ listener.onOutboundMessage(bridge, message);
+ }
+ }
+
+ @Override
+ public void onInboundMessage(NetworkBridge bridge, Message message) {
+ for (NetworkBridgeListener listener : listeners) {
+ listener.onInboundMessage(bridge, message);
+ }
+ }
+}
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/network/CustomBridgeFactoryTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/network/CustomBridgeFactoryTest.java
index c142253..79dedab 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/network/CustomBridgeFactoryTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/network/CustomBridgeFactoryTest.java
@@ -42,7 +42,6 @@
/**
* Basic test which verify if custom bridge factory receives any interactions when configured.
*/
-@Ignore // AMQ-8977 -- can't find class due to xbean or mockito upgrade
public class CustomBridgeFactoryTest extends BaseNetworkTest {
private ActiveMQQueue outgoing = new ActiveMQQueue("outgoing");
@@ -50,7 +49,7 @@
/**
* Verification of outgoing communication - from local broker (with customized bridge configured) to remote one.
*/
- @Test(timeout = 60000)
+ @Test(timeout = 10000)
public void verifyOutgoingCommunication() throws JMSException {
CustomNetworkBridgeFactory bridgeFactory = getCustomNetworkBridgeFactory();
NetworkBridgeListener listener = bridgeFactory.getListener();
@@ -68,7 +67,7 @@
/**
* Additional test which makes sure that custom bridge receives notification about broker shutdown.
*/
- @Test(timeout = 60000)
+ @Test(timeout = 10000)
public void verifyBrokerShutdown() {
shutdownTest(() -> {
try {
@@ -83,7 +82,7 @@
/**
* Verification of network connector shutdown.
*/
- @Test(timeout = 60000)
+ @Test(timeout = 10000)
public void verifyConnectorShutdown() {
shutdownTest(() -> {
try {
@@ -145,75 +144,4 @@
protected String getLocalBrokerURI() {
return "org/apache/activemq/network/localBroker-custom-factory.xml";
}
-
- // test classes
- static class CustomNetworkBridgeFactory implements BridgeFactory {
-
- private final NetworkBridgeListener listener;
-
- CustomNetworkBridgeFactory() {
- this(Mockito.mock(NetworkBridgeListener.class));
- }
-
- CustomNetworkBridgeFactory(NetworkBridgeListener listener) {
- this.listener = listener;
- }
-
- public NetworkBridgeListener getListener() {
- return listener;
- }
-
- @Override
- public DemandForwardingBridge createNetworkBridge(NetworkBridgeConfiguration configuration, Transport localTransport, Transport remoteTransport, NetworkBridgeListener listener) {
- DemandForwardingBridge bridge = new DemandForwardingBridge(configuration, localTransport, remoteTransport);
- bridge.setNetworkBridgeListener(new CompositeNetworkBridgeListener(this.listener, listener));
- return bridge;
- }
-
- }
-
- static class CompositeNetworkBridgeListener implements NetworkBridgeListener {
-
- private final List<NetworkBridgeListener> listeners;
-
- public CompositeNetworkBridgeListener(NetworkBridgeListener ... wrapped) {
- this.listeners = Arrays.asList(wrapped);
- }
-
- @Override
- public void bridgeFailed() {
- for (NetworkBridgeListener listener : listeners) {
- listener.bridgeFailed();
- }
- }
-
- @Override
- public void onStart(NetworkBridge bridge) {
- for (NetworkBridgeListener listener : listeners) {
- listener.onStart(bridge);
- }
- }
-
- @Override
- public void onStop(NetworkBridge bridge) {
- for (NetworkBridgeListener listener : listeners) {
- listener.onStop(bridge);
- }
- }
-
- @Override
- public void onOutboundMessage(NetworkBridge bridge, Message message) {
- for (NetworkBridgeListener listener : listeners) {
- listener.onOutboundMessage(bridge, message);
- }
- }
-
- @Override
- public void onInboundMessage(NetworkBridge bridge, Message message) {
- for (NetworkBridgeListener listener : listeners) {
- listener.onInboundMessage(bridge, message);
- }
- }
- }
-
}
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/network/CustomNetworkBridgeFactory.java b/activemq-unit-tests/src/test/java/org/apache/activemq/network/CustomNetworkBridgeFactory.java
new file mode 100644
index 0000000..eecefe1
--- /dev/null
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/network/CustomNetworkBridgeFactory.java
@@ -0,0 +1,29 @@
+package org.apache.activemq.network;
+
+import org.apache.activemq.transport.Transport;
+import org.mockito.Mockito;
+
+public class CustomNetworkBridgeFactory implements BridgeFactory {
+
+ private final NetworkBridgeListener listener;
+
+ public CustomNetworkBridgeFactory() {
+ this(Mockito.mock(NetworkBridgeListener.class));
+ }
+
+ public CustomNetworkBridgeFactory(NetworkBridgeListener listener) {
+ this.listener = listener;
+ }
+
+ public NetworkBridgeListener getListener() {
+ return listener;
+ }
+
+ @Override
+ public DemandForwardingBridge createNetworkBridge(NetworkBridgeConfiguration configuration, Transport localTransport, Transport remoteTransport, NetworkBridgeListener listener) {
+ DemandForwardingBridge bridge = new DemandForwardingBridge(configuration, localTransport, remoteTransport);
+ bridge.setNetworkBridgeListener(new CompositeNetworkBridgeListener(this.listener, listener));
+ return bridge;
+ }
+
+ }
diff --git a/activemq-unit-tests/src/test/resources/org/apache/activemq/network/localBroker-custom-factory.xml b/activemq-unit-tests/src/test/resources/org/apache/activemq/network/localBroker-custom-factory.xml
index 9dc8c61..d8f30fe 100644
--- a/activemq-unit-tests/src/test/resources/org/apache/activemq/network/localBroker-custom-factory.xml
+++ b/activemq-unit-tests/src/test/resources/org/apache/activemq/network/localBroker-custom-factory.xml
@@ -27,7 +27,7 @@
<networkConnectors>
<networkConnector uri="static:(tcp://localhost:61617)" name="networkConnector">
<bridgeFactory>
- <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.network.CustomBridgeFactoryTest.CustomNetworkBridgeFactory" />
+ <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.network.CustomNetworkBridgeFactory" />
</bridgeFactory>
</networkConnector>
</networkConnectors>