/** * 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.broker; import javax.jms.Connection; import javax.jms.Session; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.broker.jmx.ManagementContext; import org.apache.activemq.command.ActiveMQQueue; import org.apache.activemq.demo.DefaultQueueSender; /** * A helper class which can be handy for running a broker in your IDE from the * activemq-core module. */ public final class Main { protected static boolean createConsumers; private Main() { } /** * @param args */ public static void main(String[] args) { try { BrokerService broker = new BrokerService(); broker.setPersistent(false); // String brokerDir = "xbean:...; // System.setProperty("activemq.base", brokerDir); // BrokerService broker = BrokerFactory.createBroker(new URI(brokerDir + "/activemq.xml")); // for running on Java 5 without mx4j ManagementContext managementContext = broker.getManagementContext(); managementContext.setFindTigerMbeanServer(true); managementContext.setUseMBeanServer(true); managementContext.setCreateConnector(false); broker.setUseJmx(true); // broker.setPlugins(new BrokerPlugin[] { new // ConnectionDotFilePlugin(), new UDPTraceBrokerPlugin() }); broker.addConnector("tcp://localhost:61616"); broker.addConnector("stomp://localhost:61613"); broker.start(); // lets publish some messages so that there is some stuff to browse DefaultQueueSender.main(new String[]{"Prices.Equity.IBM"}); DefaultQueueSender.main(new String[]{"Prices.Equity.MSFT"}); // lets create a dummy couple of consumers if (createConsumers) { Connection connection = new ActiveMQConnectionFactory().createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); session.createConsumer(new ActiveMQQueue("Orders.IBM")); session.createConsumer(new ActiveMQQueue("Orders.MSFT"), "price > 100"); Session session2 = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); session2.createConsumer(new ActiveMQQueue("Orders.MSFT"), "price > 200"); } else { // Lets wait for the broker broker.waitUntilStopped(); } } catch (Exception e) { System.out.println("Failed: " + e); e.printStackTrace(); } } }