ooh. good idea.

On 8/20/10 11:00 AM, [email protected] wrote:
> Author: fmeschbe
> Date: Fri Aug 20 15:00:05 2010
> New Revision: 987533
> 
> URL: http://svn.apache.org/viewvc?rev=987533&view=rev
> Log:
> SLING-1611 Add attributes of Platform MBeanServer delegate to the service 
> registration of the Platform MBeanServer service as service properties
> 
> Modified:
>     
> sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java
> 
> Modified: 
> sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java
> URL: 
> http://svn.apache.org/viewvc/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java?rev=987533&r1=987532&r2=987533&view=diff
> ==============================================================================
> --- 
> sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java
>  (original)
> +++ 
> sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java
>  Fri Aug 20 15:00:05 2010
> @@ -38,7 +38,10 @@ import java.util.TreeMap;
>  import java.util.TreeSet;
>  import java.util.Map.Entry;
>  
> +import javax.management.Attribute;
> +import javax.management.AttributeList;
>  import javax.management.MBeanServer;
> +import javax.management.ObjectName;
>  
>  import org.apache.felix.framework.Felix;
>  import org.apache.felix.framework.Logger;
> @@ -314,8 +317,28 @@ public class Sling implements BundleActi
>  
>          // register the platform MBeanServer
>          MBeanServer platformMBeanServer = 
> ManagementFactory.getPlatformMBeanServer();
> +        Properties mbeanProps = new Properties();
> +        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) {
> +            logger.log(
> +                Logger.LOG_INFO,
> +                "start: Cannot set service properties of Platform 
> MBeanServer service, registering without",
> +                je);
> +        }
>          bundleContext.registerService(MBeanServer.class.getName(),
> -                platformMBeanServer, null);
> +            platformMBeanServer, mbeanProps);
>  
>          // execute optional bundle startup tasks of an extension
>          this.doStartBundle();
> 
> 

Reply via email to