01: /**
02: * The XMOJO Project 5
03: * Copyright © 2003 XMOJO.org. All rights reserved.
04:
05: * NO WARRANTY
06:
07: * BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
08: * THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
09: * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
10: * PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
11: * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
13: * TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
14: * LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
15: * REPAIR OR CORRECTION.
16:
17: * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
18: * ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
19: * THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
20: * GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
21: * USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
22: * DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
23: * PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
24: * EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
25: * SUCH DAMAGES.
26: **/package javax.management;
27:
28: /**
29: * This class is the interface to be implemented by MBeans that are meant to
30: * be persistent. MBeans supporting this interface should call the load method
31: * during construction in order to prime the MBean from the persistent store.
32: * In the case of a ModelMBean, the store method should be called by the
33: * MBeanServer based on the descriptors in the ModelMBean or by the MBean
34: * itself during normal processing of the ModelMBean.
35: */
36: public interface PersistentMBean {
37: /**
38: * Instantiates thisMBean instance with the data found for the MBean in
39: * the persistent store. The data loaded could include attribute
40: * and operation values.
41: *
42: * This method should be called during construction or inialization of
43: * this instance, and before the MBean is registered with the MBeanServer.
44: *
45: * @return Object - returns the handle of the persistent persion of the MBean.
46: *
47: * @exception MBeanException Wraps another exception or persistence is not supported.
48: *
49: * @exception RuntimeOperationsException Wraps exceptions from
50: * the persistence mechanism.
51: *
52: * @exception InstanceNotFoundException Could not find or load this MBean
53: * from persistent storage.
54: */
55: public void load() throws MBeanException,
56: RuntimeOperationsException, InstanceNotFoundException;
57:
58: /**
59: * Captures the current state of this MMBean instance and writes it out to
60: * the persistent store. The state stored could include attribute and
61: * operation values. If one of these methods of persistence is not
62: * supported a "serviceNotFound" exception will be thrown.
63: * <P>
64: * Persistance policy from the mbean and attribute descriptor is used to
65: * guide execution of this method. The MBean should be stored if
66: * 'persistPolicy' field is:
67: * <PRE> != "never"
68: * = "always"
69: * = "onTimer" and now > 'lastPersistTime' + 'persistPeriod'
70: * = "NoMoreOftenThan" and now > 'lastPersistTime' + 'persistPeriod'
71: * <P>
72: * Do not store the MBean if 'persistPolicy' field is:
73: * = "never"
74: * = "onUpdate"
75: * = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
76: * <P></PRE>
77: *
78: * @exception MBeanException Wraps another exception or persistence is not supported.
79: *
80: * @exception RuntimeOperationsException Wraps exceptions from
81: * the persistence mechanism.
82: *
83: * @exception InstanceNotFoundException Could not find/access the persistant store.
84: */
85: public void store() throws MBeanException,
86: RuntimeOperationsException, InstanceNotFoundException;
87: }
|