brokerService.setBrokerId("broker-1");
brokerService.setPersistent(false);
brokerService.setUseJmx(false);
brokerService.start();
brokerService.waitUntilStarted();
remoteBrokerInfo.setBrokerId(new BrokerId("remote-broker-id"));
remoteBrokerInfo.setBrokerName("remote-broker-name");
localBroker.setTransportListener(EasyMock.isA(TransportListener.class));
ArgHolder localListenerRef = ArgHolder.holdArgsForLastVoidCall();
remoteBroker.setTransportListener(EasyMock.isA(TransportListener.class));
ArgHolder remoteListenerRef = ArgHolder.holdArgsForLastVoidCall();
localBroker.start();
remoteBroker.start();
remoteBroker.oneway(EasyMock.isA(Object.class));
EasyMock.expectLastCall().times(4);
remoteBroker.oneway(EasyMock.isA(Object.class));
ExpectationWaiter remoteInitWaiter = ExpectationWaiter.waiterForLastVoidCall();
localBroker.oneway(remoteBrokerInfo);
EasyMock.expect(localBroker.request(EasyMock.isA(Object.class)))
.andReturn(null);
localBroker.oneway(EasyMock.isA(Object.class));
ExpectationWaiter localInitWaiter = ExpectationWaiter.waiterForLastVoidCall();
control.replay();
DurableConduitBridge bridge = new DurableConduitBridge(configuration, localBroker, remoteBroker);
bridge.setBrokerService(brokerService);
bridge.start();
localListener = (TransportListener) localListenerRef.getArguments()[0];
Assert.assertNotNull(localListener);
remoteListener = (TransportListener) remoteListenerRef.getArguments()[0];
Assert.assertNotNull(remoteListener);
remoteListener.onCommand(remoteBrokerInfo);
remoteInitWaiter.assertHappens(5, TimeUnit.SECONDS);
localInitWaiter.assertHappens(5, TimeUnit.SECONDS);
control.verify();
control.reset();
ActiveMQMessage msg = new ActiveMQMessage();
msg.setDestination(new ActiveMQTopic("test"));
msgDispatch = new MessageDispatch();
msgDispatch.setMessage(msg);
ConsumerInfo path1 = new ConsumerInfo();
path1.setDestination(msg.getDestination());
path1.setConsumerId(new ConsumerId(new SessionId(new ConnectionId("conn-id-1"), 1), 3));
path1.setBrokerPath(new BrokerId[]{
new BrokerId("remote-broker-id"),
new BrokerId("server(1)-broker-id"),
});
path1Msg = new ActiveMQMessage();
path1Msg.setDestination(AdvisorySupport.getConsumerAdvisoryTopic(path1.getDestination()));
path1Msg.setDataStructure(path1);
ConsumerInfo path2 = new ConsumerInfo();
path2.setDestination(path1.getDestination());
path2.setConsumerId(new ConsumerId(new SessionId(new ConnectionId("conn-id-2"), 2), 4));
path2.setBrokerPath(new BrokerId[]{
new BrokerId("remote-broker-id"),
new BrokerId("server(2)-broker-id"),
new BrokerId("server(1)-broker-id"),
});
path2Msg = new ActiveMQMessage();
path2Msg.setDestination(path1Msg.getDestination());
path2Msg.setDataStructure(path2);