Search in sources :

Example 6 with BrokerViewMBean

use of org.apache.activemq.broker.jmx.BrokerViewMBean in project fabric8 by jboss-fuse.

the class RemoteBrokerFacadeSupport method getBrokerAdmin.

public BrokerViewFacade getBrokerAdmin() throws Exception {
    MBeanServerConnection connection = getMBeanServerConnection();
    Set brokers = findBrokers(connection);
    if (brokers.size() == 0) {
        throw new IOException("No broker could be found in the JMX.");
    }
    ObjectName name = (ObjectName) brokers.iterator().next();
    BrokerViewMBean mbean = (BrokerViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection, name, BrokerViewMBean.class, true);
    return proxy(BrokerViewFacade.class, mbean, name.getCanonicalName());
}
Also used : BrokerViewMBean(org.apache.activemq.broker.jmx.BrokerViewMBean) IOException(java.io.IOException) MBeanServerConnection(javax.management.MBeanServerConnection) ObjectName(javax.management.ObjectName)

Example 7 with BrokerViewMBean

use of org.apache.activemq.broker.jmx.BrokerViewMBean in project fabric8 by jboss-fuse.

the class MQProfileTest method testMQCreateBasic.

@Test
public void testMQCreateBasic() throws Exception {
    System.out.println(executeCommand("fabric:create -n --wait-for-provisioning"));
    // System.out.println(executeCommand("shell:info"));
    // System.out.println(executeCommand("fabric:info"));
    // System.out.println(executeCommand("fabric:profile-list"));
    System.out.println(executeCommand("mq-create --no-ssl --jmx-user admin --jmx-password admin --minimumInstances 1 mq"));
    ServiceProxy<FabricService> fabricProxy = ServiceProxy.createServiceProxy(bundleContext, FabricService.class);
    try {
        Set<ContainerProxy> containers = ContainerBuilder.create(fabricProxy, 2).withName("child").withProfiles("default").assertProvisioningResult().build();
        try {
            LinkedList<Container> containerList = new LinkedList<Container>(containers);
            Container broker = containerList.removeLast();
            Profile brokerProfile = broker.getVersion().getRequiredProfile("mq-broker-default.mq");
            broker.setProfiles(new Profile[] { brokerProfile });
            Provision.provisioningSuccess(Arrays.asList(broker), PROVISION_TIMEOUT);
            waitForBroker("default");
            final BrokerViewMBean bean = (BrokerViewMBean) Provision.getMBean(broker, new ObjectName("org.apache.activemq:type=Broker,brokerName=mq"), BrokerViewMBean.class, 120000);
            Assert.assertNotNull("Cannot get BrokerViewMBean from JMX", bean);
            System.out.println(executeCommand("container-list"));
            for (Container c : containerList) {
                Profile exampleProfile = broker.getVersion().getRequiredProfile("example-mq");
                c.setProfiles(new Profile[] { exampleProfile });
            }
            Provision.provisioningSuccess(containers, PROVISION_TIMEOUT);
            Provision.waitForCondition(new Callable<Boolean>() {

                @Override
                public Boolean call() throws Exception {
                    while (bean.getTotalProducerCount() == 0 || bean.getTotalConsumerCount() == 0) {
                        Thread.sleep(1000);
                    }
                    return true;
                }
            }, 120000L);
            Assert.assertEquals("Producer not present", 1, bean.getTotalProducerCount());
            Assert.assertEquals("Consumer not present", 1, bean.getTotalConsumerCount());
        } finally {
            ContainerBuilder.destroy(containers);
        }
    } finally {
        fabricProxy.close();
    }
}
Also used : LinkedList(java.util.LinkedList) Profile(io.fabric8.api.Profile) ObjectName(javax.management.ObjectName) BrokerViewMBean(org.apache.activemq.broker.jmx.BrokerViewMBean) Container(io.fabric8.api.Container) FabricService(io.fabric8.api.FabricService) ContainerProxy(io.fabric8.itests.paxexam.support.ContainerProxy) Test(org.junit.Test)

Example 8 with BrokerViewMBean

use of org.apache.activemq.broker.jmx.BrokerViewMBean in project fabric8 by jboss-fuse.

the class MQProfileTest method testMQCreateNetwork.

@Test
public void testMQCreateNetwork() throws Exception {
    System.out.println(executeCommand("fabric:create -n --wait-for-provisioning"));
    // System.out.println(executeCommand("shell:info"));
    // System.out.println(executeCommand("fabric:info"));
    // System.out.println(executeCommand("fabric:profile-list"));
    executeCommand("mq-create --no-ssl --group us-east --network us-west --jmx-user admin --jmx-password admin --networks-username admin --networks-password admin --minimumInstances 1 us-east");
    executeCommand("mq-create --no-ssl --group us-west --network us-east --jmx-user admin --jmx-password admin --networks-username admin --networks-password admin --minimumInstances 1 us-west");
    ServiceProxy<FabricService> fabricProxy = ServiceProxy.createServiceProxy(bundleContext, FabricService.class);
    try {
        Set<ContainerProxy> containers = ContainerBuilder.create(fabricProxy, 4).withName("child").withProfiles("default").assertProvisioningResult().build();
        try {
            LinkedList<Container> containerList = new LinkedList<Container>(containers);
            Container eastBroker = containerList.removeLast();
            Container westBroker = containerList.removeLast();
            Profile eastBrokerProfile = eastBroker.getVersion().getRequiredProfile("mq-broker-us-east.us-east");
            eastBroker.setProfiles(new Profile[] { eastBrokerProfile });
            Profile westBrokerProfile = eastBroker.getVersion().getRequiredProfile("mq-broker-us-west.us-west");
            westBroker.setProfiles(new Profile[] { westBrokerProfile });
            Provision.provisioningSuccess(Arrays.asList(westBroker, eastBroker), PROVISION_TIMEOUT);
            waitForBroker("us-east");
            waitForBroker("us-west");
            final BrokerViewMBean brokerEast = (BrokerViewMBean) Provision.getMBean(eastBroker, new ObjectName("org.apache.activemq:type=Broker,brokerName=us-east"), BrokerViewMBean.class, 120000);
            final BrokerViewMBean brokerWest = (BrokerViewMBean) Provision.getMBean(westBroker, new ObjectName("org.apache.activemq:type=Broker,brokerName=us-west"), BrokerViewMBean.class, 120000);
            Assert.assertNotNull("Cannot get BrokerViewMBean from JMX", brokerEast);
            Assert.assertNotNull("Cannot get BrokerViewMBean from JMX", brokerWest);
            Container eastProducer = containerList.removeLast();
            executeCommand("container-add-profile " + eastProducer.getId() + " example-mq-producer mq-client-us-east");
            Container westConsumer = containerList.removeLast();
            executeCommand("container-add-profile " + westConsumer.getId() + " example-mq-consumer mq-client-us-west");
            Provision.provisioningSuccess(Arrays.asList(eastProducer, westConsumer), PROVISION_TIMEOUT);
            System.out.println(executeCommand("fabric:container-list"));
            Provision.waitForCondition(new Callable<Boolean>() {

                @Override
                public Boolean call() throws Exception {
                    while (brokerEast.getTotalEnqueueCount() == 0 || brokerWest.getTotalDequeueCount() == 0) {
                        Thread.sleep(1000);
                    }
                    return true;
                }
            }, 120000L);
            System.out.println(executeCommand("fabric:container-connect -u admin -p admin " + eastBroker.getId() + " bstat"));
            System.out.println(executeCommand("fabric:container-connect -u admin -p admin " + westBroker.getId() + " bstat"));
            Assert.assertFalse("Messages not sent", brokerEast.getTotalEnqueueCount() == 0);
            Assert.assertFalse("Messages not received", brokerWest.getTotalDequeueCount() == 0);
        } finally {
            ContainerBuilder.destroy(containers);
        }
    } finally {
        fabricProxy.close();
    }
}
Also used : LinkedList(java.util.LinkedList) Profile(io.fabric8.api.Profile) ObjectName(javax.management.ObjectName) BrokerViewMBean(org.apache.activemq.broker.jmx.BrokerViewMBean) Container(io.fabric8.api.Container) FabricService(io.fabric8.api.FabricService) ContainerProxy(io.fabric8.itests.paxexam.support.ContainerProxy) Test(org.junit.Test)

Example 9 with BrokerViewMBean

use of org.apache.activemq.broker.jmx.BrokerViewMBean in project motech by motech.

the class MotechMBeanServer method getBrokerViewMBean.

private BrokerViewMBean getBrokerViewMBean(String mBeanName) {
    try {
        ObjectName activeMQ = new ObjectName(mBeanName);
        BrokerViewMBean brokerViewMBean = MBeanServerInvocationHandler.newProxyInstance(openConnection(), activeMQ, BrokerViewMBean.class, true);
        LOGGER.info("Retrieving BrokerViewMBean from Broker version: " + brokerViewMBean.getBrokerVersion());
        return brokerViewMBean;
    } catch (MalformedObjectNameException ex) {
        throw new MotechException(ex.getMessage(), ex);
    }
}
Also used : BrokerViewMBean(org.apache.activemq.broker.jmx.BrokerViewMBean) MotechException(org.motechproject.commons.api.MotechException) MalformedObjectNameException(javax.management.MalformedObjectNameException) ObjectName(javax.management.ObjectName)

Aggregations

ObjectName (javax.management.ObjectName)9 BrokerViewMBean (org.apache.activemq.broker.jmx.BrokerViewMBean)9 MBeanServerConnection (javax.management.MBeanServerConnection)3 Test (org.junit.Test)3 Container (io.fabric8.api.Container)2 FabricService (io.fabric8.api.FabricService)2 Profile (io.fabric8.api.Profile)2 ContainerProxy (io.fabric8.itests.paxexam.support.ContainerProxy)2 LinkedList (java.util.LinkedList)2 IOException (java.io.IOException)1 Connection (javax.jms.Connection)1 Destination (javax.jms.Destination)1 MessageConsumer (javax.jms.MessageConsumer)1 Session (javax.jms.Session)1 MalformedObjectNameException (javax.management.MalformedObjectNameException)1 JMXConnector (javax.management.remote.JMXConnector)1 JMXServiceURL (javax.management.remote.JMXServiceURL)1 BrokerService (org.apache.activemq.broker.BrokerService)1 DurableSubscriptionViewMBean (org.apache.activemq.broker.jmx.DurableSubscriptionViewMBean)1 NetworkConnectorViewMBean (org.apache.activemq.broker.jmx.NetworkConnectorViewMBean)1