Hello, I'm using ActiveMQ 5.10.0 in Java 8. I'm not using any container, just *two* simple Java SE applications on the same machine. My goal is to have *one* application launch an *embedded* broker and have the other connect to it using tcp. I am perfectly fine with using ActiveMQ specific code, I don't need to be vendor agnostic.
The difficulty I'm facing is that I need to *ensure a topic gets created on the broker* when I call my API create topic method. I need this method to work on both applications, the one that started the broker, and the one that just connects to it. What I'm currently doing is: // Instantiate the broker service BrokerService brokerService = new BrokerService(); brokerService.setPersistent(false); // Start the broker, this fails on the 2nd jvm with a bind exception (address already in use) which is fine brokerService.addConnector("tcp://localhost:61616"); brokerService.start(); brokerService.waitUntilStarted(); ConnectionFactory connFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = connFactory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Topic clientSideTopic = session.createTopic("foo"); ConnectionContext connectionContext = BrokerSupport.getConnectionContext(brokerService.getBroker()); // Create the topic on the broker! brokerService.getBroker().addDestination(connectionContext, clientSideTopic, true); The problem is that on the 2nd process, the one that should not instantiate the broker, because 1st process already did, I cannot do brokerService.getBroker() because I don't really have a broker... How can I get an instance of a remote BrokerService or some other way to achieve immediate topic creation on the broker? BTW, not that it matters to the question, but the reason I need this is because this is an implementation of an existing API which demands these particular semantics. Thanks in advance!