// regular java imports import java.io.InputStream; import java.net.URL; // Modeler imports import org.apache.commons.modeler.Registry; import org.apache.commons.modeler.ManagedBean; // JMX imports import javax.management.MBeanServer; import javax.management.Attribute; import javax.management.ObjectName; import javax.management.modelmbean.ModelMBean; import javax.management.modelmbean.ModelMBeanInfo; import javax.management.MBeanAttributeInfo; public class ModelerDemo{ public static void main(String args[]){ // create the registry Registry registry = null; try { URL url = ModelerDemo.class.getResource("mbeans-descriptors.xml"); InputStream stream = url.openStream(); Registry.loadRegistry(stream); stream.close(); registry = Registry.getRegistry(); } catch (Throwable t) { t.printStackTrace(System.out); System.exit(1); } // get a handle on a managed bean instance DemoManagedBean mBean = new DemoManagedBean(); // create a Model MBean and register it with the MBean server // using the instance of the mBean MBeanServer mServer = registry.getServer(); ManagedBean managed = registry.findManagedBean("ManagedBean"); try{ ModelMBean modelMBean = managed.createMBean(mBean); String domain = mServer.getDefaultDomain(); ObjectName oName = new ObjectName(domain + ":type=ManagedBean"); mServer.registerMBean(modelMBean, oName); }catch(Exception e){ System.err.println(e); System.exit(0); } // now this managed bean's Model MBean is accessible to any or all // JMX clients. Here, we will simply print the information about the // mBean and set a couple of values on it. try{ ObjectName name = new ObjectName(mServer.getDefaultDomain() + ":type=ManagedBean"); ModelMBeanInfo info = (ModelMBeanInfo) mServer.getMBeanInfo(name); System.err.println(" className=" + info.getClassName()); System.err.println(" description=" + info.getDescription()); System.err.println(" mbeanDescriptor=" + info.getMBeanDescriptor()); System.err.println("================================================"); System.err.println("Original Value of Name: " + mServer.getAttribute(name, "name")); mServer.setAttribute(name, new Attribute("name", "Vikram")); System.err.println("New Value of Name: " + mServer.getAttribute(name, "name")); }catch(Exception e){ System.err.println(e); System.exit(0); } } }