No problem, thanks Dejan! On May 10, 2010, at 8:17 AM, Dejan Bosanac wrote:
> Hi Geoff, > > I meant everything OK in the Jira. I still didn't managed to look at the > test. Sorry for confusion. > > Cheers > -- > Dejan Bosanac - http://twitter.com/dejanb > > Open Source Integration - http://fusesource.com/ > ActiveMQ in Action - http://www.manning.com/snyder/ > Blog - http://www.nighttale.net > > > On Mon, May 10, 2010 at 2:07 PM, Geoffrey Arnold < > geoff...@geoffreyarnold.com> wrote: > >> Hi Dejan, >> >> If you run the test, the second assertion (right before the finally block) >> fails. Could you clarify what you mean by "everything is ok"? >> >> Thanks, >> Geoff. >> >> On May 10, 2010, at 3:08 AM, Dejan Bosanac wrote: >> >>> Hi, >>> >>> I see your test case attached to the issues. Seems like everything is OK. >>> >>> Cheers >>> -- >>> Dejan Bosanac - http://twitter.com/dejanb >>> >>> Open Source Integration - http://fusesource.com/ >>> ActiveMQ in Action - http://www.manning.com/snyder/ >>> Blog - http://www.nighttale.net >>> >>> >>> On Sat, May 8, 2010 at 4:05 PM, Geoffrey Arnold < >> geoff...@geoffreyarnold.com >>>> wrote: >>> >>>> Looks like the attachment didn't come through... inlining test case >> here. >>>> Any thoughts? >>>> >>>> >>>> >> /////////////////////////////////////////////////////////////////////////////////// >>>> package org.activemq; >>>> >>>> import org.apache.activemq.ActiveMQConnectionFactory; >>>> import org.apache.activemq.broker.BrokerService; >>>> import org.apache.activemq.network.NetworkConnector; >>>> import org.junit.Test; >>>> import org.springframework.jms.core.JmsOperations; >>>> import org.springframework.jms.core.JmsTemplate; >>>> import org.springframework.jms.core.MessageCreator; >>>> >>>> import javax.jms.ConnectionFactory; >>>> import javax.jms.JMSException; >>>> import javax.jms.Message; >>>> import javax.jms.Session; >>>> import javax.management.MBeanServer; >>>> import java.lang.management.ManagementFactory; >>>> import java.net.URI; >>>> >>>> import static org.junit.Assert.assertNotNull; >>>> >>>> public class NetworkOfBrokersTest { >>>> >>>> private static final MBeanServer PLATFORM_MBEAN_SERVER = >>>> ManagementFactory.getPlatformMBeanServer(); >>>> private static final String QUEUE_NAME = "testQueue"; >>>> >>>> @Test >>>> public void testNetworkOfBrokersHandlesRestartOfNetworkConnector() >>>> throws Exception { >>>> // create consumer broker >>>> BrokerService consumerBrokerService = >>>> createBrokerService("consumerBrokerService"); >>>> consumerBrokerService.addConnector("tcp://localhost:61616"); >>>> consumerBrokerService.start(); >>>> >>>> JmsOperations consumerJmsOperations = >>>> >>>> >> createJmsOperations(createConnectionFactory(consumerBrokerService.getVmConnectorURI())); >>>> >>>> // create producer broker in "network-of-brokers" configuration >>>> BrokerService producerBrokerService = >>>> createBrokerService("producerBrokerService"); >>>> NetworkConnector networkConnector = >>>> >> producerBrokerService.addNetworkConnector("static:(tcp://localhost:61616)"); >>>> producerBrokerService.start(); >>>> >>>> JmsOperations producerJmsOperations = >>>> >>>> >> createJmsOperations(createConnectionFactory(producerBrokerService.getVmConnectorURI())); >>>> >>>> try { >>>> // assert "network-of-brokers" configuration is working >>>> >>>> assertMessageSentByProducerIsReceivedByConsumer(consumerJmsOperations, >>>> producerJmsOperations); >>>> >>>> // restart network connector via JMX >>>> PLATFORM_MBEAN_SERVER.invoke(networkConnector.getObjectName(), >>>> "stop", new Object[0], new String[0]); >>>> PLATFORM_MBEAN_SERVER.invoke(networkConnector.getObjectName(), >>>> "start", new Object[0], new String[0]); >>>> >>>> // assert "network-of-brokers" configuration is working >>>> >>>> assertMessageSentByProducerIsReceivedByConsumer(consumerJmsOperations, >>>> producerJmsOperations); >>>> } >>>> finally { >>>> consumerBrokerService.stop(); >>>> producerBrokerService.stop(); >>>> } >>>> } >>>> >>>> private static BrokerService createBrokerService(String brokerName) { >>>> BrokerService brokerService = new BrokerService(); >>>> brokerService.getManagementContext().setCreateConnector(false); >>>> brokerService.setBrokerName(brokerName); >>>> brokerService.setPersistent(false); >>>> brokerService.setTempDataStore(null); >>>> brokerService.setUseJmx(true); >>>> brokerService.setUseShutdownHook(false); >>>> >>>> return brokerService; >>>> } >>>> >>>> private static ConnectionFactory createConnectionFactory(URI >> brokerUrl) >>>> { >>>> ActiveMQConnectionFactory connectionFactory = new >>>> ActiveMQConnectionFactory(); >>>> connectionFactory.getPrefetchPolicy().setAll(1); >>>> connectionFactory.setBrokerURL(brokerUrl.toString()); >>>> connectionFactory.setDispatchAsync(false); >>>> connectionFactory.setUseAsyncSend(false); >>>> >>>> return connectionFactory; >>>> } >>>> >>>> private static JmsOperations createJmsOperations(ConnectionFactory >>>> connectionFactory) { >>>> JmsTemplate jmsTemplate = new JmsTemplate(); >>>> jmsTemplate.setConnectionFactory(connectionFactory); >>>> jmsTemplate.setDefaultDestinationName(QUEUE_NAME); >>>> jmsTemplate.setDeliveryPersistent(false); >>>> jmsTemplate.setReceiveTimeout(1000); >>>> >>>> return jmsTemplate; >>>> } >>>> >>>> private static void assertMessageSentByProducerIsReceivedByConsumer( >>>> JmsOperations consumerJmsOperations, JmsOperations >>>> producerJmsOperations) { >>>> >>>> producerJmsOperations.send( >>>> new MessageCreator() { >>>> @Override >>>> public Message createMessage(Session session) throws >>>> JMSException { >>>> return session.createTextMessage(); >>>> } >>>> }); >>>> assertNotNull(consumerJmsOperations.receive()); >>>> } >>>> } >>>> >>>> On May 5, 2010, at 12:42 PM, Geoffrey Arnold wrote: >>>> >>>>> Issued opened with failing test: >>>>> >>>>> https://issues.apache.org/activemq/browse/AMQ-2722 >>>>> >>>>> Attaching JUnit test here too: >>>>> >>>>> <NetworkOfBrokersTest.java> >>>>> >>>>> On Apr 6, 2010, at 5:10 AM, Dejan Bosanac wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> can you raise a Jira for this (ideally with a test case that >>>> demonstrates >>>>>> the problem). >>>>>> >>>>>> Cheers >>>>>> -- >>>>>> Dejan Bosanac - http://twitter.com/dejanb >>>>>> >>>>>> Open Source Integration - http://fusesource.com/ >>>>>> ActiveMQ in Action - http://www.manning.com/snyder/ >>>>>> Blog - http://www.nighttale.net >>>>>> >>>>>> >>>>>> On Fri, Apr 2, 2010 at 11:16 PM, Geoffrey Arnold < >>>>>> geoff...@geoffreyarnold.com> wrote: >>>>>> >>>>>>> Hi All! >>>>>>> >>>>>>> During upgrades we would like to be able to stop and restart the >>>> network >>>>>>> connector between embedded brokers running in separate VMs. >>>>>>> >>>>>>> In the embedded broker of the producer VM we have a network connector >>>>>>> pointing to the transport connector of an embedded broker in the >>>> consumer >>>>>>> VM. I have attempted to use JMX to stop and restart the network >>>> connector >>>>>>> in the producer VM, however the connection does not appear to be >>>>>>> reestablished. >>>>>>> >>>>>>> What is the correct way to stop and restart this connection? >>>>>>> >>>>>>> Thanks, >>>>>>> Geoff. >>>>> >>>> >>>> >> >>