protected void createMBean() {
StoreLoader loader = new StoreLoader();
try {
Class clazz = Class.forName(getStoreConfigClass(), true, this
.getClass().getClassLoader());
storeConfig = (IStoreConfig) clazz.newInstance();
if (null == getStoreRegistry())
// default Loading
loader.load();
else
// load a spezial file registry (url)
loader.load(getStoreRegistry());
// use the loader Registry
storeConfig.setRegistry(loader.getRegistry());
} catch (Exception e) {
log.error("createMBean load", e);
return;
}
MBeanServer mserver = MBeanUtils.createServer();
InputStream descriptor = null;
try {
ObjectName objectName = new ObjectName("Catalina:type=StoreConfig" );
if (!mserver.isRegistered(objectName)) {
descriptor = this.getClass().getResourceAsStream(
"mbeans-descriptors.xml");
Registry registry = MBeanUtils.createRegistry();
registry.loadMetadata(descriptor);
mserver.registerMBean(getManagedBean(storeConfig), objectName);
}
} catch (Exception ex) {
log.error("createMBean register MBean", ex);
} finally {
if (descriptor != null) {
try {
descriptor.close();
descriptor = null;
} catch (Exception ex) {
log.error("createMBean register MBean", ex);
}
}
}
}
create StoreConfig MBean and load StoreRgistry MBeans name is
Catalina:type=StoreConfig |