package org.jruby.management;
import java.lang.reflect.Constructor;
import org.jruby.Ruby;
import org.jruby.compiler.JITCompilerMBean;
public class BeanManagerFactory {
private static final Class BeanManagerImpl;
private static final Constructor BeanManagerImpl_constructor;
static {
Class bm = null;
Constructor bmc = null;
try {
bm = Class.forName("org.jruby.management.BeanManagerImpl");
bmc = bm.getConstructor(Ruby.class, boolean.class);
} catch (Exception e) {
}
BeanManagerImpl = bm;
BeanManagerImpl_constructor = bmc;
}
public static BeanManager create(Ruby runtime, boolean managementEnabled) {
if (BeanManagerImpl_constructor != null) {
try {
return (BeanManager)BeanManagerImpl_constructor.newInstance(runtime, managementEnabled);
} catch (Exception e) {
}
}
return new DummyBeanManager();
}
private static class DummyBeanManager implements BeanManager {
public void register(JITCompilerMBean jitCompiler) {}
public void register(ConfigMBean config) {}
public void register(ParserStatsMBean parserStats) {}
public void register(CachesMBean methodCache) {}
public void register(Runtime runtime) {}
public void unregisterCompiler() {}
public void unregisterConfig() {}
public void unregisterMethodCache() {}
public void unregisterParserStats() {}
public void unregisterRuntime() {}
public boolean tryShutdownAgent() {return false;}
public boolean tryRestartAgent() {return false;}
}
}