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:io.fabric8.api.jmx.FabricManager.java

public void registerMBeanServer(MBeanServer mbeanServer) {
    try {/*  www. j  av a2  s. co m*/
        ObjectName name = getObjectName();
        if (!mbeanServer.isRegistered(name)) {
            mbeanServer.registerMBean(this, name);
        }
    } catch (Exception e) {
        LOG.warn("An error occured during mbean server registration: " + e, e);
    }
}

From source file:com.facebook.infrastructure.service.StorageService.java

private void init() {
    // Register this instance with JMX
    try {/*  w  w  w  . ja v  a2 s . co  m*/
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        mbs.registerMBean(this, new ObjectName("com.facebook.infrastructure.service:type=StorageService"));
    } catch (Exception e) {
        logger_.error(LogUtil.throwableToString(e));
    }
}

From source file:com.web.server.SARDeployer.java

/**
 * This method extracts the SAR archive and configures for the SAR and starts the services
 * @param file//from   w w w .  j a  v a 2  s.c  om
 * @param warDirectoryPath
 * @throws IOException
 */
public void extractSar(File file, String warDirectoryPath) throws IOException {
    ZipFile zip = new ZipFile(file);
    ZipEntry ze = null;
    String fileName = file.getName();
    fileName = fileName.substring(0, fileName.indexOf('.'));
    fileName += "sar";
    String fileDirectory;
    CopyOnWriteArrayList classPath = new CopyOnWriteArrayList();
    Enumeration<? extends ZipEntry> entries = zip.entries();
    int numBytes;
    while (entries.hasMoreElements()) {
        ze = entries.nextElement();
        // //System.out.println("Unzipping " + ze.getName());
        String filePath = deployDirectory + "/" + fileName + "/" + ze.getName();
        if (!ze.isDirectory()) {
            fileDirectory = filePath.substring(0, filePath.lastIndexOf('/'));
        } else {
            fileDirectory = filePath;
        }
        // //System.out.println(fileDirectory);
        createDirectory(fileDirectory);
        if (!ze.isDirectory()) {
            FileOutputStream fout = new FileOutputStream(filePath);
            byte[] inputbyt = new byte[8192];
            InputStream istream = zip.getInputStream(ze);
            while ((numBytes = istream.read(inputbyt, 0, inputbyt.length)) >= 0) {
                fout.write(inputbyt, 0, numBytes);
            }
            fout.close();
            istream.close();
            if (ze.getName().endsWith(".jar")) {
                classPath.add(filePath);
            }
        }
    }
    zip.close();
    URLClassLoader loader = (URLClassLoader) ClassLoader.getSystemClassLoader();
    URL[] urls = loader.getURLs();
    WebClassLoader sarClassLoader = new WebClassLoader(urls);
    for (int index = 0; index < classPath.size(); index++) {
        System.out.println("file:" + classPath.get(index));
        new WebServer().addURL(new URL("file:" + classPath.get(index)), sarClassLoader);
    }
    new WebServer().addURL(new URL("file:" + deployDirectory + "/" + fileName + "/"), sarClassLoader);
    sarsMap.put(fileName, sarClassLoader);
    System.out.println(sarClassLoader.geturlS());
    try {
        Sar sar = (Sar) sardigester.parse(new InputSource(
                new FileInputStream(deployDirectory + "/" + fileName + "/META-INF/" + "mbean-service.xml")));
        CopyOnWriteArrayList mbeans = sar.getMbean();
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        System.out.println(mbs);
        ObjectName objName;
        for (int index = 0; index < mbeans.size(); index++) {
            Mbean mbean = (Mbean) mbeans.get(index);
            System.out.println(mbean.getObjectname());
            System.out.println(mbean.getCls());
            objName = new ObjectName(mbean.getObjectname());
            Class helloWorldService = sarClassLoader.loadClass(mbean.getCls());
            Object obj = helloWorldService.newInstance();
            if (mbs.isRegistered(objName)) {
                mbs.invoke(objName, "stopService", null, null);
                //mbs.invoke(objName, "destroy", null, null);
                mbs.unregisterMBean(objName);
            }
            mbs.registerMBean(obj, objName);
            CopyOnWriteArrayList attrlist = mbean.getMbeanAttribute();
            if (attrlist != null) {
                for (int count = 0; count < attrlist.size(); count++) {
                    MBeanAttribute attr = (MBeanAttribute) attrlist.get(count);
                    Attribute mbeanattribute = new Attribute(attr.getName(), attr.getValue());
                    mbs.setAttribute(objName, mbeanattribute);
                }
            }
            mbs.invoke(objName, "startService", null, null);
        }
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SAXException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MalformedObjectNameException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InstanceAlreadyExistsException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MBeanRegistrationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NotCompliantMBeanException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InstanceNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ReflectionException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MBeanException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvalidAttributeValueException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (AttributeNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:org.rzo.yajsw.app.WrapperManagerImpl.java

private void registerMBean(YajswConfiguration config) {
    MBeanServer server = null;
    ArrayList servers = MBeanServerFactory.findMBeanServer(null);
    try {// w  w w.  j av  a  2 s  .  c o m
        if (servers != null && servers.size() > 0)
            server = (MBeanServer) servers.get(0);
        if (server != null) {
            String name = config.getString("wrapper.console.title");
            if (name == null)
                name = config.getString("wrapper.ntservice.name");
            if (name == null)
                name = "yajsw.noname";
            ObjectName oName = new ObjectName("Wrapper", "name", name);
            server.registerMBean(this, oName);
            // System.out.println("found mbean server: " +
            // server.toString());
        } else
            System.out.println("ERROR: no mbean server found ");
    } catch (Exception e) {
        e.printStackTrace();
    }

}

From source file:org.wso2.carbon.caching.impl.CacheImpl.java

private void registerMBean() {
    String serverPackage = "org.wso2.carbon";
    try {//from w  w w .  j a va 2s  .c  o m
        String objectName = serverPackage + ":type=Cache,tenant=" + ownerTenantDomain + ",manager="
                + cacheManager.getName() + ",name=" + cacheName;
        MBeanServer mserver = getMBeanServer();
        cacheMXBeanObjName = new ObjectName(objectName);
        Set set = mserver.queryNames(new ObjectName(objectName), null);
        if (set.isEmpty()) {
            CacheMXBeanImpl cacheMXBean = new CacheMXBeanImpl(this, ownerTenantDomain, ownerTenantId);
            mserver.registerMBean(cacheMXBean, cacheMXBeanObjName);
        }
    } catch (Exception e) {
        String msg = "Could not register CacheMXBeanImpl MBean";
        log.error(msg, e);
        throw new RuntimeException(msg, e);
    }
}

From source file:com.cyberway.issue.crawler.Heritrix.java

public static MBeanServer registerMBean(final MBeanServer server, final Object objToRegister,
        final ObjectName objName)
        throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException {
    server.registerMBean(objToRegister, objName);
    return server;
}

From source file:net.sbbi.upnp.jmx.upnp.UPNPConnectorServer.java

public void start() throws IOException {
    MBeanServer server = getMBeanServer();
    if (exposeMBeansAsUPNP.booleanValue()) {
        try {//from  www .j a  va  2s  . c o  m
            ObjectName delegate = new ObjectName("JMImplementation:type=MBeanServerDelegate");
            NotificationEmitter emmiter = (NotificationEmitter) MBeanServerInvocationHandler
                    .newProxyInstance(server, delegate, NotificationEmitter.class, false);
            // register for MBeans registration
            emmiter.addNotificationListener(this, null, this);
        } catch (Exception ex) {
            IOException ioEx = new IOException("UPNPConnector start error");
            ioEx.initCause(ex);
            throw ioEx;
        }
    }
    if (exposeUPNPAsMBeans.booleanValue()) {
        int timeout = 2500;
        if (env.containsKey(EXPOSE_UPNP_DEVICES_AS_MBEANS_TIMEOUT)) {
            timeout = ((Integer) env.get(EXPOSE_UPNP_DEVICES_AS_MBEANS_TIMEOUT)).intValue();
        }
        try {
            discoveryBeanName = new ObjectName("UPNPLib discovery:name=Discovery MBean_" + this.hashCode());
            UPNPDiscoveryMBean bean = new UPNPDiscovery(timeout, handleSSDPMessages.booleanValue(), true);
            server.registerMBean(bean, discoveryBeanName);
        } catch (Exception ex) {
            IOException ioEx = new IOException("Error occured during MBeans discovery");
            ioEx.initCause(ex);
            throw ioEx;
        }
    }
    if (exposeExistingMBeansAsUPNP.booleanValue()) {
        int c = 0;
        Set objectInstances = super.getMBeanServer().queryNames(null, null);
        for (Iterator i = objectInstances.iterator(); i.hasNext();) {
            ObjectName name = (ObjectName) i.next();
            MBeanServerNotification not = new MBeanServerNotification(
                    MBeanServerNotification.REGISTRATION_NOTIFICATION, this, c++, name);
            handleNotification(not, this);
        }
    }
}

From source file:org.apache.geode.admin.jmx.internal.AgentImpl.java

private void initializeHelperMbean() {
    try {// w w w .jav  a  2  s. c  om
        memberInfoWithStatsMBean = new MemberInfoWithStatsMBean(this);

        MBeanServer mbs = getMBeanServer();
        mbs.registerMBean(memberInfoWithStatsMBean, memberInfoWithStatsMBean.getObjectName());
        /*
         * We are not re-throwing these exceptions as failure create/register the GemFireTypesWrapper
         * will not stop the Agent from working. But we are logging it as it could be an indication of
         * some problem. Also not creating Localized String for the exception.
         */
    } catch (OperationsException e) {
        logger.info(LocalizedMessage
                .create(LocalizedStrings.AgentImpl_FAILED_TO_INITIALIZE_MEMBERINFOWITHSTATSMBEAN), e);
    } catch (MBeanRegistrationException e) {
        logger.info(LocalizedMessage
                .create(LocalizedStrings.AgentImpl_FAILED_TO_INITIALIZE_MEMBERINFOWITHSTATSMBEAN), e);
    } catch (AdminException e) {
        logger.info(LocalizedMessage
                .create(LocalizedStrings.AgentImpl_FAILED_TO_INITIALIZE_MEMBERINFOWITHSTATSMBEAN), e);
    }
}

From source file:io.fabric8.core.jmx.FabricManager.java

public void registerMBeanServer(ShutdownTracker shutdownTracker, MBeanServer mbeanServer) {
    try {/*from  ww  w.ja  va2 s . co m*/
        ObjectName name = getObjectName();
        if (!mbeanServer.isRegistered(name)) {
            StandardMBean mbean = new StandardMBean(this, FabricManagerMBean.class);
            mbeanServer.registerMBean(mbean, name);
        }
    } catch (Exception e) {
        LOG.warn("An error occured during mbean server registration: " + e, e);
    }
}

From source file:org.jboss.web.tomcat.service.session.JBossCacheCluster.java

/**
 * Registers this object and the tree cache (if we created it) with JMX.
 *///from w  w w .ja v a  2s  . c o m
private void registerMBeans() {
    try {
        MBeanServer server = getMBeanServer();

        String domain;
        if (container instanceof ContainerBase) {
            domain = ((ContainerBase) container).getDomain();
        } else {
            domain = server.getDefaultDomain();
        }

        String name = ":type=Cluster";
        if (container instanceof Host) {
            name += ",host=" + container.getName();
        } else if (container instanceof Engine) {
            name += ",engine=" + container.getName();
        }

        ObjectName clusterName = new ObjectName(domain + name);

        if (server.isRegistered(clusterName)) {
            log.warn("MBean " + clusterName + " already registered");
        } else {
            this.objectName = clusterName;
            server.registerMBean(this, objectName);
        }

    } catch (Exception ex) {
        log.error(ex.getMessage(), ex);
    }
}