Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jruby.management;
  
 import org.jruby.Ruby;
 
 public class BeanManagerImpl implements BeanManager {
 
     private static final Logger LOG = LoggerFactory.getLogger("BeanManagerImpl");
 
     public final String base;
     
     private final boolean managementEnabled;
     
     public BeanManagerImpl(Ruby rubyboolean managementEnabled) {
         this. = managementEnabled;
         this. = "org.jruby:type=Runtime,name=" + ruby.getRuntimeNumber() + ",";
     }
     
     public void register(JITCompilerMBean jitCompiler) {
         if (register( + "service=JITCompiler"jitCompiler);
     }
     
     public void register(ConfigMBean config) {
         if (register( + "service=Config"config);
     }
     
     public void register(ParserStatsMBean parserStats) {
         if (register( + "service=ParserStats"parserStats);
     }
     
     public void register(MethodCacheMBean methodCache) {
         if (register( + "service=MethodCache"methodCache);
     }
     
     public void register(ClassCacheMBean classCache) {
         if (register( + "service=ClassCache"classCache);
     }
     
     public void register(Runtime runtime) {
         if (register( + "service=Runtime"runtime);
     }
 
     public void unregisterCompiler() {
         if (unregister( + "service=JITCompiler");
     }
     public void unregisterConfig() {
         if (unregister( + "service=Config");
     }
     public void unregisterParserStats() {
         if (unregister( + "service=ParserStats");
     }
     public void unregisterClassCache() {
         if (unregister( + "service=ClassCache");
     }
     public void unregisterMethodCache() {
         if (unregister( + "service=MethodCache");
     }
     public void unregisterRuntime() {
         if (unregister( + "service=Runtime");
     }
 
     private void register(String nameObject bean) {
         try {
             MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
             
             ObjectName beanName = new ObjectName(name);
             mbs.registerMBean(beanbeanName);
         } catch (InstanceAlreadyExistsException ex) {
             .warn("mbean already registered: {}"name);
         } catch (MBeanRegistrationException ex) {
             .error(ex);
         } catch (NotCompliantMBeanException ex) {
             .error(ex);
         } catch (MalformedObjectNameException ex) {
             .error(ex);
         } catch (NullPointerException ex) {
             .error(ex);
         } catch (AccessControlException ex) {
             // ignore...bean doesn't get registered
             // TODO: Why does that bother me?
         } catch (SecurityException ex) {
             // ignore...bean doesn't get registered
             // TODO: Why does that bother me?
         } catch (Error e) {
             // all errors, just info; do not prevent loading
             // IKVM does not support JMX, and throws an error
             .debug(e);
         }
    }
    private void unregister(String name) {
        try {
            MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
            
            ObjectName beanName = new ObjectName(name);
            mbs.unregisterMBean(beanName);
        } catch (InstanceNotFoundException ex) {
        } catch (MBeanRegistrationException ex) {
            .error(ex);
        } catch (MalformedObjectNameException ex) {
            .error(ex);
        } catch (NullPointerException ex) {
            .error(ex);
        } catch (AccessControlException ex) {
            // ignore...bean doesn't get registered
            // TODO: Why does that bother me?
        } catch (SecurityException ex) {
            // ignore...bean doesn't get registered
            // TODO: Why does that bother me?
        } catch (Error e) {
            // all errors, just info; do not prevent unloading
            // IKVM does not support JMX, and throws an error
            .debug(e);
        }
    }
New to GrepCode? Check out our FAQ X