125 lines · 4.8 KB · HTML
RawDownload
<html><head><title>javax.management.modelmbean package</title><!--Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify itunder the terms of the GNU General Public License version 2 only, aspublished by the Free Software Foundation.  Oracle designates thisparticular file as subject to the "Classpath" exception as providedby Oracle in the LICENSE file that accompanied this code. This code is distributed in the hope that it will be useful, but WITHOUTANY WARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licenseversion 2 for more details (a copy is included in the LICENSE file thataccompanied this code). You should have received a copy of the GNU General Public License version2 along with this work; if not, write to the Free Software Foundation,Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USAor visit www.oracle.com if you need additional information or have anyquestions.--></head><body bgcolor="white">     <p>Provides the definition of the ModelMBean classes.  A Model      MBean is an MBean that acts as a bridge between the management      interface and the underlying managed resource.  Both the      management interface and the managed resource are specified as      Java objects.  The same Model MBean implementation can be      reused many times with different management interfaces and      managed resources, and it can provide common functionality      such as persistence and caching.</p>     <p>A Model MBean implements the {@link      javax.management.modelmbean.ModelMBean ModelMBean} interface.      It is a {@link javax.management.DynamicMBean DynamicMBean}      whose {@link javax.management.DynamicMBean#getMBeanInfo()      getMBeanInfo} method returns an object implementing {@link      javax.management.modelmbean.ModelMBeanInfo      ModelMBeanInfo}.</p>     <p>Every MBean has an {@link javax.management.MBeanInfo      MBeanInfo} with information about the MBean itself, and its      attributes, operations, constructors, and notifications.  A      Model MBean augments this <code>MBeanInfo</code> with {@link      javax.management.Descriptor Descriptor}s that encode      additional information in the form of (key,value) pairs.      Usually, <code>Descriptor</code>s are instances of {@link      javax.management.modelmbean.DescriptorSupport      DescriptorSupport}.</p>     <p>The class {@link      javax.management.modelmbean.RequiredModelMBean      RequiredModelMBean} provides a standard Model MBean      implementation.</p>     <p>The following example shows a Model MBean being used to make      the <code>get</code> method of a <code>HashMap</code>      available for management through an MBean server.  No other      methods are available through the MBean server.  There is      nothing special about <code>HashMap</code> here.  Public      methods from any public class can be exposed for management in      the same way.</p>     <pre>import java.lang.reflect.Method;import java.util.HashMap;import javax.management.*;import javax.management.modelmbean.*; // ... MBeanServer mbs = MBeanServerFactory.createMBeanServer();// The MBean Server HashMap map = new HashMap();// The resource that will be managed // Construct the management interface for the Model MBeanMethod getMethod = HashMap.class.getMethod("get", new Class[] {Object.class});ModelMBeanOperationInfo getInfo =    new ModelMBeanOperationInfo("Get value for key", getMethod);ModelMBeanInfo mmbi =    new ModelMBeanInfoSupport(HashMap.class.getName(),			      "Map of keys and values",			      null,  // no attributes			      null,  // no constructors			      new ModelMBeanOperationInfo[] {getInfo},			      null); // no notifications // Make the Model MBean and link it to the resourceModelMBean mmb = new RequiredModelMBean(mmbi);mmb.setManagedResource(map, "ObjectReference"); // Register the Model MBean in the MBean ServerObjectName mapName = new ObjectName(":type=Map,name=whatever");mbs.registerMBean(mmb, mapName); // Resource can evolve independently of the MBeanmap.put("key", "value"); // Can access the "get" method through the MBean Servermbs.invoke(mapName, "get", new Object[] {"key"}, new String[] {Object.class.getName()});// returns "value"    </pre>     <h2><a name="spec">Package Specification</a></h2>     <ul>	  <li>See the <i>JMX 1.4 Specification</i>	     PDF document available from the 	     <a href="{@docRoot}/../technotes/guides/jmx/">	     Java Platform documentation on JMX technology</a>    </ul>     @since 1.5   </BODY></HTML>