Example usage for javax.management MBeanServer registerMBean

List of usage examples for javax.management MBeanServer registerMBean

Introduction

In this page you can find the example usage for javax.management MBeanServer registerMBean.

Prototype

public ObjectInstance registerMBean(Object object, ObjectName name)
        throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException;

Source Link

Document

Registers a pre-existing object as an MBean with the MBean server.

Usage

From source file:com.github.stephanarts.cas.ticket.registry.ZMQTicketRegistry.java

/**
 * Creates a new TicketRegistry Backend.
 *
 * An instance of the ZMQTicketRegistry stores
 * CAS Tickets in a cluster of Registry-Providers.
 *
 * @param providers         Array of providers to connect to
 * @param address           Address to bind the RegistryProvider on
 * @param port              TCP port to bind the RegistryProvider on
 * @param requestTimeout    Timeout//from  www . j  a va 2 s.c  om
 * @param heartbeatTimeout  Timeout
 * @param heartbeatInterval Interval
 *
 * @throws Exception if localProvider could not be found
 */
public ZMQTicketRegistry(final String[] providers, final String address, final int port,
        final int requestTimeout, final int heartbeatTimeout, final int heartbeatInterval) throws Exception {

    this.provider = new ZMQProvider("tcp://" + address + ":" + port, this.providerId);

    this.provider.start();

    this.pacemaker = new PaceMaker();

    pacemaker.setHeartbeatInterval(heartbeatInterval);
    pacemaker.setHeartbeatTimeout(heartbeatTimeout);

    this.registryBroker = new RegistryBroker(providers, requestTimeout, this.pacemaker, this.providerId);

    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    this.mbeanName = new ObjectName("CAS:type=TicketRegistry,provider='" + port + "'");
    mbs.registerMBean(this.provider, this.mbeanName);

    try {
        this.registryBroker.bootstrap();
        int nTickets = this.registryBroker.getTickets().size();
        logger.info("Bootstrapping complete, got " + nTickets + " tickets.");
    } catch (final BootstrapException e) {
        logger.warn(e.getMessage());
    }
}

From source file:co.paralleluniverse.common.monitoring.PeriodicMonitor.java

private void registerMBean() {
    try {/*from  w ww.  ja va  2  s .c o m*/
        LOG.info("Registering MBean {}", name);
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        ObjectName mxbeanName = new ObjectName(name);
        mbs.registerMBean(this, mxbeanName);

        timer.addNotificationListener(this, new NotificationFilter() {
            @Override
            public boolean isNotificationEnabled(Notification notification) {
                return "tickTimer".equals(notification.getType());
            }
        }, null);
        this.registered = true;
    } catch (InstanceAlreadyExistsException ex) {
        throw new RuntimeException(ex);
    } catch (MBeanRegistrationException ex) {
        throw new RuntimeException(ex);
    } catch (NotCompliantMBeanException ex) {
        throw new AssertionError(ex);
    } catch (MalformedObjectNameException ex) {
        throw new AssertionError(ex);
    }
}

From source file:org.apache.synapse.securevault.commons.MBeanRegistrar.java

public void registerMBean(Object mbeanInstance, String category, String id) {
    assertNull(mbeanInstance, "Mbean instance is null");
    assertNull(category, "Mbean instance category is null");
    assertNull(id, "Mbean instance name is null");
    try {/*from   ww  w . j a  va 2  s .  c  o  m*/
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        ObjectName name = new ObjectName(getObjectName(category, id));
        Set set = mbs.queryNames(name, null);
        if (set != null && set.isEmpty()) {
            mbs.registerMBean(mbeanInstance, name);
        } else {
            mbs.unregisterMBean(name);
            mbs.registerMBean(mbeanInstance, name);
        }
    } catch (Exception e) {
        log.warn("Error registering a MBean with name ' " + id + " ' and category name ' " + category
                + "' for JMX management", e);
    }
}

From source file:org.apache.synapse.transport.passthru.jmx.MBeanRegistrar.java

public void registerMBean(Object mBeanInstance, String category, String id) throws AxisFault {
    assertNull(mBeanInstance, "MBean instance is null");
    assertNull(category, "MBean instance category is null");
    assertNull(id, "MBean instance name is null");
    try {//from   www  . ja  va2 s  .co m
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        ObjectName name = new ObjectName(getObjectName(category, id));
        Set set = mbs.queryNames(name, null);
        if (set != null && set.isEmpty()) {
            mbs.registerMBean(mBeanInstance, name);
        } else {
            mbs.unregisterMBean(name);
            mbs.registerMBean(mBeanInstance, name);
        }
    } catch (Exception e) {
        log.warn("Error registering a MBean with name ' " + id + " ' and category name ' " + category
                + "' for JMX management", e);
    }
}

From source file:org.apache.synapse.commons.jmx.MBeanRegistrar.java

public boolean registerMBean(Object mBeanInstance, String category, String id) {
    assertNull(mBeanInstance, "MBean instance is null");
    assertNull(category, "MBean instance category is null");
    assertNull(id, "MBean instance name is null");
    try {/*from   w  w w .j  a  va  2  s  .  com*/
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        ObjectName name = new ObjectName(getObjectName(category, id));
        Set set = mbs.queryNames(name, null);
        if (set != null && set.isEmpty()) {
            mbs.registerMBean(mBeanInstance, name);
        } else {
            mbs.unregisterMBean(name);
            mbs.registerMBean(mBeanInstance, name);
        }
        return true;
    } catch (Exception e) {
        log.warn("Error registering a MBean with name ' " + id + " ' and category name ' " + category
                + "' for JMX management", e);
        return false;
    }
}

From source file:io.fabric8.test.smoke.JolokiaEndpointTestBase.java

@Test
public void testJolokiaProxy() throws Exception {

    ContainerManager cntManager = ContainerManagerLocator.getContainerManager();
    Container cnt = cntManager.getCurrentContainer();

    ServiceEndpoint sep = cnt.getServiceEndpoint(URLServiceEndpoint.JOLOKIA_SERVICE_ENDPOINT_IDENTITY);
    URLServiceEndpoint urlsep = sep.adapt(URLServiceEndpoint.class);
    String serviceURL = urlsep.getServiceURL();
    Assert.assertNotNull("Jolokia URL not null", serviceURL);

    // Get the local MBeanServer
    MBeanServer server = ServiceLocator.getRequiredService(MBeanServer.class);
    server.registerMBean(new Simple(), SimpleMXBean.OBJECT_NAME);
    try {//  w ww .  j a  v a 2 s  .  c om
        SimpleMXBean proxy = JolokiaMXBeanProxy.getMXBeanProxy(serviceURL, SimpleMXBean.OBJECT_NAME,
                SimpleMXBean.class);

        // Simple string echo
        Assert.assertEquals("Hello: Kermit", proxy.echo("Kermit"));

        // Set Bean attribute using JSONObject
        Bean bean = new Bean("Hello", "Foo");
        proxy.setBean(bean);

        // Get Bean attribute using JSONObject
        Assert.assertEquals(bean, proxy.getBean());

        // Simple Bean echo using JSONObject
        Assert.assertEquals(bean, proxy.echoBean(bean));
    } finally {
        server.unregisterMBean(SimpleMXBean.OBJECT_NAME);
    }
}

From source file:org.ow2.proactive.resourcemanager.node.jmx.SigarExposer.java

public void registerMBeans(MBeanServer mbs) {
    try {/*from w ww . j  ava 2  s.  c om*/
        // Create the SIGAR registry
        SigarRegistry registry = new SigarRegistry();

        ObjectName name = new ObjectName(registry.getObjectName());
        if (!mbs.isRegistered(name)) {
            mbs.registerMBean(registry, name);
        }

        String databaseFolder = System.getProperty(MONITORING_DB_DIR);
        if (databaseFolder == null || databaseFolder.trim().isEmpty()) {
            String fs = System.getProperty("file.separator");
            databaseFolder = PAResourceManagerProperties.RM_HOME.getValueAsString() + fs + "data" + fs;
        }

        FileUtils.forceMkdir(new File(databaseFolder));
        String dataBaseName = databaseFolder + nodeName + "_statistics.rrd";

        setDataStore(new RRDSigarDataStore(mbs, dataBaseName,
                PAResourceManagerProperties.RM_RRD_STEP.getValueAsInt(), Logger.getLogger(SigarExposer.class)));

        name = new ObjectName("sigar:Type=Processes");
        SigarProcessesMXBean processes = new SigarProcesses(dataBaseName);
        if (!mbs.isRegistered(name)) {
            mbs.registerMBean(processes, name);
        }

    } catch (Exception e) {
        LOGGER.error("Unable to register SigarRegistry mbean", e);
    }
}

From source file:com.funambol.pushlistener.example.DummyJMXPlugin.java

@Override
public void startPlugin() {

    if (logger.isInfoEnabled()) {
        logger.info("Starting JMXDummyPlugin");
        logger.info("Registering MBean " + MBEAN_NAME);
    }/*from  ww w.  j  ava  2  s. com*/
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    try {

        // Construct the ObjectName for the MBean we will register
        ObjectName name = new ObjectName(MBEAN_NAME);

        mbs.registerMBean(this, name);
    } catch (Exception ex) {
        logger.error("Error registering mbean '" + MBEAN_NAME + "'", ex);
    }
}

From source file:io.fabric8.test.smoke.JolokiaEndpointTestBase.java

@Test
public void testMXBeanProxy() throws Exception {

    ContainerManager cntManager = ContainerManagerLocator.getContainerManager();
    Container cnt = cntManager.getCurrentContainer();

    ServiceEndpoint sep = cnt.getServiceEndpoint(URLServiceEndpoint.JMX_SERVICE_ENDPOINT_IDENTITY);
    JMXServiceEndpoint jmxEndpoint = sep.adapt(JMXServiceEndpoint.class);
    String serviceURL = jmxEndpoint.getServiceURL();
    Assert.assertNotNull("JMX URL not null", serviceURL);

    // Get the local MBeanServer
    MBeanServer server = ServiceLocator.getRequiredService(MBeanServer.class);
    server.registerMBean(new Simple(), SimpleMXBean.OBJECT_NAME);
    try {/*from   w w w.jav a  2 s.  c om*/
        String[] userpass = RuntimeType.KARAF == RuntimeType.getRuntimeType() ? karafJmx : otherJmx;
        JMXConnector jmxConnector = jmxEndpoint.getJMXConnector(userpass[0], userpass[1], 200,
                TimeUnit.MILLISECONDS);
        MBeanServerConnection con = jmxConnector.getMBeanServerConnection();
        try {
            SimpleMXBean proxy = ManagementUtils.getMXBeanProxy(con, SimpleMXBean.OBJECT_NAME,
                    SimpleMXBean.class);

            // Simple string echo
            Assert.assertEquals("Hello: Kermit", proxy.echo("Kermit"));

            // Set Bean attribute using CompositeData
            Bean bean = new Bean("Hello", "Foo");
            proxy.setBean(bean);

            // Get Bean attribute using CompositeData
            Assert.assertEquals(bean, proxy.getBean());

            // Simple Bean echo using CompositeData
            Assert.assertEquals(bean, proxy.echoBean(bean));
        } finally {
            jmxConnector.close();
        }
    } finally {
        server.unregisterMBean(SimpleMXBean.OBJECT_NAME);
    }
}

From source file:io.fabric8.test.smoke.JolokiaEndpointTestBase.java

@Test
public void testJolokiaEndpoint() throws Exception {

    ContainerManager cntManager = ContainerManagerLocator.getContainerManager();
    Container cnt = cntManager.getCurrentContainer();

    ServiceEndpoint sep = cnt.getServiceEndpoint(URLServiceEndpoint.JOLOKIA_SERVICE_ENDPOINT_IDENTITY);
    URLServiceEndpoint urlsep = sep.adapt(URLServiceEndpoint.class);
    String serviceURL = urlsep.getServiceURL();
    Assert.assertNotNull("Jolokia URL not null", serviceURL);

    // Get the local MBeanServer
    MBeanServer server = ServiceLocator.getRequiredService(MBeanServer.class);
    server.registerMBean(new Simple(), SimpleMXBean.OBJECT_NAME);
    try {//from w ww  .jav  a2  s.c o m
        // Simple string echo
        J4pClient client = new J4pClient(serviceURL);
        J4pExecRequest execReq = new J4pExecRequest(SimpleMXBean.OBJECT_NAME, "echo", "Kermit");
        J4pResponse<?> res = client.execute(execReq);
        Assert.assertEquals("Hello: Kermit", res.getValue());

        // Set Bean attribute using JSONObject
        Bean bean = new Bean("Hello", "Foo");
        JSONObject jsonObject = JSONTypeGenerator.toJSONObject(bean);
        J4pWriteRequest writeReq = new J4pWriteRequest(SimpleMXBean.OBJECT_NAME, "Bean", jsonObject);
        writeReq.setPreferredHttpMethod("POST");
        client.execute(writeReq);

        // Get Bean attribute using JSONObject
        J4pReadRequest readReq = new J4pReadRequest(SimpleMXBean.OBJECT_NAME, "Bean");
        jsonObject = client.execute(readReq).getValue();
        Assert.assertEquals(bean, JSONTypeGenerator.fromJSONObject(Bean.class, jsonObject));

        // Simple Bean echo using JSONObject
        execReq = new J4pExecRequest(SimpleMXBean.OBJECT_NAME, "echoBean", jsonObject);
        execReq.setPreferredHttpMethod("POST");
        jsonObject = client.execute(execReq).getValue();
        Assert.assertEquals(bean, JSONTypeGenerator.fromJSONObject(Bean.class, jsonObject));
    } finally {
        server.unregisterMBean(SimpleMXBean.OBJECT_NAME);
    }
}