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:org.rhq.core.domain.server.PersistenceUtility.java

/**
 * Enables the hibernate statistics mbean to provide access to information on the ejb3 persistence tier.
 *
 * @param entityManager an inject entity manager whose session factory will be tracked with these statistics
 * @param server        the MBeanServer where the statistics MBean should be registered; if <code>null</code>, the
 *                      first one in the list returned by MBeanServerFactory.findMBeanServer(null) is used
 * @param flag          true if the stats are to be enabled; false to disable the stats
 *//*from   w  w w  .j  a  va2  s. c  om*/
public static void enableHibernateStatistics(EntityManager entityManager, MBeanServer server, boolean flag) {
    SessionFactory sessionFactory = null;
    try {
        sessionFactory = PersistenceUtility.getHibernateSession(entityManager).getSessionFactory();

        if (server == null) {
            ArrayList<MBeanServer> list = MBeanServerFactory.findMBeanServer(null);
            server = list.get(0);
        }

        ObjectName objectName = new ObjectName(HIBERNATE_STATISTICS_MBEAN_OBJECTNAME);
        StatisticsService mBean = new StatisticsService();
        mBean.setSessionFactory(sessionFactory);
        server.registerMBean(mBean, objectName);
    } catch (InstanceAlreadyExistsException iaee) {
        LOG.info("Duplicate mbean registration ignored: " + HIBERNATE_STATISTICS_MBEAN_OBJECTNAME);
    } catch (Exception e) {
        LOG.warn("Couldn't register hibernate statistics mbean", e);
    }

    try {
        if (sessionFactory != null) {
            sessionFactory.getStatistics().setStatisticsEnabled(flag);
            LOG.info("Hibernate statistics enable flag set to [" + flag + "]");
        }
    } catch (Exception e) {
        LOG.warn("Couldn't set the statistics enable flag to [" + flag + "]", e);
    }
}

From source file:io.mapzone.arena.jmx.ArenaConfig.java

/**
 * The ArenaPlugin must be started automatically at level 5 in order to make this
 * available right after startup.//from www.  ja va2s.  co  m
 */
public ArenaConfig() {
    assert instance == null;
    instance = this;
    try {
        MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
        mbeanServer.registerMBean(this, ArenaConfigMBean.NAME.get());
        log.info("MBean registered.");
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:org.jolokia.detector.ServerHandleTest.java

@Test
public void registerAtMBeanServer2() throws MalformedObjectNameException, MBeanRegistrationException,
        InstanceAlreadyExistsException, NotCompliantMBeanException {
    Config config = new Config(null, null, null);
    ObjectInstance oInstance = new ObjectInstance("jolokia:type=dummy", Config.class.getName());
    MBeanServer server = EasyMock.createMock(MBeanServer.class);
    expect(server.registerMBean(config, null)).andReturn(oInstance);
    replay(server);/*from   ww  w.j  av a2  s.  c om*/

    ObjectName resName = serverHandle.registerMBeanAtServer(server, config, null);
    assertEquals(resName, new ObjectName("jolokia:type=dummy"));

    verify(server);
}

From source file:org.jolokia.detector.ServerHandleTest.java

@Test
public void registerAtMBeanServer() throws MalformedObjectNameException, MBeanRegistrationException,
        InstanceAlreadyExistsException, NotCompliantMBeanException {
    Config config = new Config(null, null, null);
    ObjectName oName = new ObjectName("jolokia:type=Config");
    ObjectInstance oInstance = new ObjectInstance(oName, Config.class.getName());
    MBeanServer server = EasyMock.createMock(MBeanServer.class);
    expect(server.registerMBean(eq(config), eq(oName))).andReturn(oInstance);
    replay(server);//from   w w  w. j  av a  2 s . com

    ObjectName resName = serverHandle.registerMBeanAtServer(server, config, "jolokia:type=Config");
    assertEquals(resName, oName);

    verify(server);
}

From source file:org.xwiki.management.internal.DefaultJMXBeanRegistration.java

@Override
public void registerMBean(Object mbean, String name) {
    // Make sure we never fail since XWiki should execute correctly even if there's no MBean Server running.
    try {/*from  w w w  . j  a v  a2s. c o m*/
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        ObjectName oname = new ObjectName(OBJECTNAME_PREFIX + name);
        mbs.registerMBean(mbean, oname);
        this.logger.debug("Registered resource with name [{}]", name);
    } catch (Exception e) {
        // Failed to register the MBean, log a warning
        this.logger.warn("Failed to register resource with name [{}]. Reason = [{}]", name,
                ExceptionUtils.getMessage(e));
    }
}

From source file:org.rhq.enterprise.server.remote.RemoteSafeInvocationHandler.java

/**
 * Registers the MBean used to monitor the remote API processing.
 *
 * @param mbs the MBeanServer where the metrics MBean should be registered
 *//*from  ww  w. java  2 s  .co m*/
public void registerMetricsMBean(MBeanServer mbs) {
    try {
        mbs.registerMBean(this.metrics, RemoteSafeInvocationHandlerMetricsMBean.OBJECTNAME_METRICS);
    } catch (Exception e) {
        log.warn("Failed to register the metrics object, will not be able to monitor remote API: " + e);
    }
}

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

public void registerMBean() {
    try {/*from  w  ww . j  a va2  s .com*/
        LOG.info("Registering MBean {}", name);
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        ObjectName mxbeanName = new ObjectName(name);
        mbs.registerMBean(this, mxbeanName);

        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:com.hellblazer.slp.jmx.JmxDiscoveryConfiguration.java

public JmxServerListener construct() throws Exception {
    ServiceScope scope = discovery.construct();
    scope.start();/*  w w w .j av  a 2 s  .c  om*/
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    CascadingService cascadingService = new CascadingService();
    mbs.registerMBean(cascadingService, new ObjectName(name));
    JmxServerListener listener = new JmxServerListener(cascadingService, sourcePattern, sourceMap, scope,
            targetPath);
    for (String serviceType : serviceNames) {
        listener.listenFor("(" + SERVICE_TYPE + "=" + serviceType + ")");
    }
    return listener;
}

From source file:org.apache.cassandra.gms.FailureDetector.java

public FailureDetector() {
    phiConvictThreshold_ = DatabaseDescriptor.getPhiConvictThreshold();
    // Register this instance with JMX
    try {//from   w w w  . j a  v a  2  s  .  c o  m
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        mbs.registerMBean(this, new ObjectName("org.apache.cassandra.net:type=FailureDetector"));
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:org.nuxeo.runtime.tomcat.NuxeoLauncher.java

protected void handleEvent(NuxeoWebappLoader loader, LifecycleEvent event) {
    String type = event.getType();
    try {//  w ww.  j  a  v  a2s  .c o  m
        MutableClassLoader cl = (MutableClassLoader) loader.getClassLoader();
        boolean devMode = cl instanceof NuxeoDevWebappClassLoader;
        if (type == Lifecycle.CONFIGURE_START_EVENT) {
            File homeDir = resolveHomeDirectory(loader);
            if (devMode) {
                bootstrap = new DevFrameworkBootstrap(cl, homeDir);
                MBeanServer server = ManagementFactory.getPlatformMBeanServer();
                server.registerMBean(bootstrap, new ObjectName(DEV_BUNDLES_NAME));
                server.registerMBean(cl, new ObjectName(WEB_RESOURCES_NAME));
                ((NuxeoDevWebappClassLoader) cl).setBootstrap((DevFrameworkBootstrap) bootstrap);
            } else {
                bootstrap = new FrameworkBootstrap(cl, homeDir);
            }
            bootstrap.setHostName("Tomcat");
            bootstrap.setHostVersion(ServerInfo.getServerNumber());
            bootstrap.initialize();
        } else if (type == Lifecycle.START_EVENT) {
            bootstrap.start();
        } else if (type == Lifecycle.STOP_EVENT) {
            bootstrap.stop();
            if (devMode) {
                MBeanServer server = ManagementFactory.getPlatformMBeanServer();
                server.unregisterMBean(new ObjectName(DEV_BUNDLES_NAME));
                server.unregisterMBean(new ObjectName(WEB_RESOURCES_NAME));
            }
        }
    } catch (IOException | JMException | ReflectiveOperationException e) {
        log.error("Failed to handle event: " + type, e);
    }
}