01: /* JFox, the OpenSource J2EE Application Server
02: *
03: * Copyright (C) 2002 huihoo.org
04: * Distributable under GNU LGPL license
05: * See the GNU Lesser General Public License for more details.
06: */
07:
08: package javax.management.modelmbean;
09:
10: import javax.management.DynamicMBean;
11: import javax.management.PersistentMBean;
12: import javax.management.MBeanException;
13: import javax.management.RuntimeOperationsException;
14: import javax.management.InstanceNotFoundException;
15:
16: /**
17: * This interface must be implemented by the ModelMBeans. An implementation of this interface
18: * must be shipped with every JMX Agent.
19: * <P>
20: * Java resources wishing to be manageable instatiate the ModelMBean using the MBeanServer's
21: * createMBean method. The resource then sets the ModelMBeanInfo (with Descriptors) for the ModelMBean
22: * instance. The attributes and operations exposed via the ModelMBeanInfo for the ModelMBean are accessible
23: * from Mbeans, connectors/adapters like other MBeans. Through the ModelMBeanInfo Descriptors, values and methods in
24: * the managed application can be defined and mapped to attributes and operations of the ModelMBean.
25: * This mapping can be defined during development in an XML formatted file or dynamically and
26: * programmatically at runtime.
27: * <P>
28: * Every ModelMBean which is instantiated in the MBeanServer becomes manageable:
29: * its attributes and operations
30: * become remotely accessible through the connectors/adaptors connected to that MBeanServer.
31: * A Java object cannot be registered in the MBeanServer unless it is a JMX compliant MBean.
32: * By instantiating a ModelMBean, resources are guaranteed that the MBean is valid.
33: * <P>
34: * MBeanException and RuntimeOperatiosException must be thrown on every public method. This allows
35: * for wrappering exceptions from distributed communications (RMI, EJB, etc.). These exceptions do
36: * not have to be thrown by teh implementation except in the scenarios described in the specification
37: * and javadoc.
38: *
39: * @author <a href="mailto:young_yy@hotmail.org">Young Yang</a>
40: */
41:
42: public interface ModelMBean extends DynamicMBean, PersistentMBean,
43: ModelMBeanNotificationBroadcaster {
44:
45: /**
46: * Initializes a ModelMBean object using ModelMBeanInfo passed in.
47: * The ModelMBean must be instantiated, but not registered with the MBeanServer.
48: * After the ModelMBean's ModelMBeanInfo (with Descriptors) are customized, the ModelMBean
49: * should be registered with the MBeanServer.
50: * <P>
51: *
52: * @param inModelMBeanInfo The ModelMBeanInfo object to be used by the ModelMBean.
53: *
54: *
55: * @exception MBeanException The constructor of the MBeanInfo has return null
56: * or thrown an exception.
57: * @exception RuntimeOperationsException Wraps an IllegalArgumentException:
58: * The MBeanInfo passed in parameter is null or invalid.
59: *
60: */
61:
62: public void setModelMBeanInfo(ModelMBeanInfo inModelMBeanInfo)
63: throws MBeanException, RuntimeOperationsException;
64:
65: /**
66: * Sets the instance handle of the object against which to execute all methods in this ModelMBean
67: * management interface (MBeanInfo and Descriptors)
68: *
69: * @param mr Object that is the managed resource
70: * @param mr_type The type of reference for the managed resource. Can be: ObjectReference,
71: * Handle, IOR, EJBHandle, RMIReference.
72: * If the MBeanServer cannot process the mr_type passed in, an InvalidTargetTypeException
73: * will be thrown.
74: *
75: * @exception MBeanException The initializer of the object has thrown an exception.
76: * @exception RuntimeOperationsException Wraps an IllegalArgumentException:
77: * The managed resource or managed resoure type passed in parameter is null or invalid.
78: * @exception InstanceNotFoundException The managed resource object could not be found
79: * @exception InvalidTargetObjectTypeException The managed resource type cannot be processed by the
80: * ModelMBean or JMX Agent.
81: */
82:
83: public void setManagedResource(Object mr, String mr_type)
84: throws MBeanException, RuntimeOperationsException,
85: InstanceNotFoundException, InvalidTargetObjectTypeException;
86:
87: }
|