📄 recycler.java
字号:
package book.jmx.examples;
import javax.management.*;
import javax.management.loading.*;
import java.net.*;
public class Recycler
implements RecyclerMBean, MBeanRegistration {
protected String component = "Standard User";
private MBeanServer server = null;
// retrieve the server reference
public ObjectName preRegister(MBeanServer server,
ObjectName name) {
this.server = server;
return name;
}
// recycle implementation
public String recycle(String clazz, String url)
throws MalformedURLException {
ObjectName user = null;
URL jarURL = new URL(url);
try {
user = new ObjectName("example:name=User,timestamp=" + System.currentTimeMillis());
// create new MLet class loader
ObjectName loader = new ObjectName(
"Loader:class=" + clazz +
",timestamp=" + System.currentTimeMillis()
);
MLet mlet = new MLet();
mlet.addURL(jarURL);
// unregister the old implementation
if (server.isRegistered(user))
server.unregisterMBean(user);
// register the loaded mbean
server.registerMBean(mlet, loader);
Object mbean = server.instantiate(clazz, loader);
server.registerMBean(mbean, user);
component = clazz;
}
catch (JMException e) {
e.printStackTrace();
}
return "Implementation changed to " + component;
}
public void postRegister(Boolean b) {}
public void preDeregister() throws Exception {}
public void postDeregister() {}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -