001    package biz.hammurapi.metrics.jmx;
002    
003    import java.lang.reflect.Method;
004    
005    import javax.management.MBeanServer;
006    
007    public class JmxPlatformMeasurementCategoryFactory extends JmxMeasurementCategoryFactory {
008    
009            private static MBeanServer MBEAN_SERVER;
010            
011            // We use reflection to keep hgee.jar compatible with Java 1.4
012            static {
013                    try {
014                            Class serverClass = Class.forName("java.lang.management.ManagementFactory");
015                            Method method = serverClass.getMethod("getPlatformMBeanServer", null);
016                            MBEAN_SERVER = (MBeanServer) method.invoke(null, null);
017                    } catch (Exception e) {
018                            System.err.println("[JmxMeasurementCategoryFactory] ERROR: "+e);                        
019                    }
020            }
021    
022            /**
023             * This implementation tries to use Java 5 management features.
024             * Returns null if JVM is not of version 5.
025             * @return MBean server to register MBeans with
026             */
027            protected MBeanServer getMBeanServer() {
028                    return MBEAN_SERVER;
029            }
030    
031    }