| <html> |
| <head> |
| <title>javax.management.modelmbean package</title> |
| <!-- |
| Copyright (c) 2000, 2017, 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 it |
| under the terms of the GNU General Public License version 2 only, as |
| published by the Free Software Foundation. Oracle designates this |
| particular file as subject to the "Classpath" exception as provided |
| by Oracle in the LICENSE file that accompanied this code. |
| |
| This code is distributed in the hope that it will be useful, but WITHOUT |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| version 2 for more details (a copy is included in the LICENSE file that |
| accompanied this code). |
| |
| You should have received a copy of the GNU General Public License version |
| 2 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 USA |
| or visit www.oracle.com if you need additional information or have any |
| questions. |
| --> |
| </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 MBean |
| Method 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 resource |
| ModelMBean mmb = new RequiredModelMBean(mmbi); |
| mmb.setManagedResource(map, "ObjectReference"); |
| |
| // Register the Model MBean in the MBean Server |
| ObjectName mapName = new ObjectName(":type=Map,name=whatever"); |
| mbs.registerMBean(mmb, mapName); |
| |
| // Resource can evolve independently of the MBean |
| map.put("key", "value"); |
| |
| // Can access the "get" method through the MBean Server |
| mbs.invoke(mapName, "get", new Object[] {"key"}, new String[] {Object.class.getName()}); |
| // returns "value" |
| </pre> |
| |
| <h2><a id="spec">Package Specification</a></h2> |
| |
| <ul> |
| <li>See the <i>JMX 1.4 Specification</i> |
| <a href="https://jcp.org/aboutJava/communityprocess/mrel/jsr160/index2.html"> |
| JMX Specification, version 1.4</a> |
| </ul> |
| |
| @since 1.5 |
| |
| </BODY> |
| </HTML> |