private ServiceRegistration registerMBeanServer()

in src/main/java/org/apache/sling/launchpad/startupmanager/Activator.java [65:86]


    private ServiceRegistration<MBeanServer> registerMBeanServer(final BundleContext bundleContext) {
        // register the platform MBeanServer
        MBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
        Hashtable<String, Object> mbeanProps = new Hashtable<String, Object>();
        try {
            ObjectName beanName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate");
            AttributeList attrs = platformMBeanServer.getAttributes(beanName,
                    new String[] { "MBeanServerId", "SpecificationName",
                            "SpecificationVersion", "SpecificationVendor",
                            "ImplementationName", "ImplementationVersion",
                            "ImplementationVendor" });
            for (Object object : attrs) {
                Attribute attr = (Attribute) object;
                if (attr.getValue() != null) {
                    mbeanProps.put(attr.getName(), attr.getValue().toString());
                }
            }
        } catch (Exception je) {
            log.error("start: Cannot set service properties of Platform MBeanServer service, registering without", je);
        }
        return bundleContext.registerService(MBeanServer.class, platformMBeanServer, mbeanProps);
    }