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