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());
}
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();
}
}
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();
}
}
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);
}
}
Aggregations