01 /*
02 * Copyright 1999-2004 Sun Microsystems, Inc. All Rights Reserved.
03 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04 *
05 * This code is free software; you can redistribute it and/or modify it
06 * under the terms of the GNU General Public License version 2 only, as
07 * published by the Free Software Foundation. Sun designates this
08 * particular file as subject to the "Classpath" exception as provided
09 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26 package javax.management;
27
28 /**
29 * Can be implemented by an MBean in order to
30 * carry out operations before and after being registered or unregistered from
31 * the MBean server.
32 *
33 * @since 1.5
34 */
35 public interface MBeanRegistration {
36
37 /**
38 * Allows the MBean to perform any operations it needs before
39 * being registered in the MBean server. If the name of the MBean
40 * is not specified, the MBean can provide a name for its
41 * registration. If any exception is raised, the MBean will not be
42 * registered in the MBean server.
43 *
44 * @param server The MBean server in which the MBean will be registered.
45 *
46 * @param name The object name of the MBean. This name is null if
47 * the name parameter to one of the <code>createMBean</code> or
48 * <code>registerMBean</code> methods in the {@link MBeanServer}
49 * interface is null. In that case, this method must return a
50 * non-null ObjectName for the new MBean.
51 *
52 * @return The name under which the MBean is to be registered.
53 * This value must not be null. If the <code>name</code>
54 * parameter is not null, it will usually but not necessarily be
55 * the returned value.
56 *
57 * @exception java.lang.Exception This exception will be caught by
58 * the MBean server and re-thrown as an {@link
59 * MBeanRegistrationException}.
60 */
61 public ObjectName preRegister(MBeanServer server, ObjectName name)
62 throws java.lang.Exception;
63
64 /**
65 * Allows the MBean to perform any operations needed after having been
66 * registered in the MBean server or after the registration has failed.
67 *
68 * @param registrationDone Indicates whether or not the MBean has
69 * been successfully registered in the MBean server. The value
70 * false means that the registration phase has failed.
71 */
72 public void postRegister(Boolean registrationDone);
73
74 /**
75 * Allows the MBean to perform any operations it needs before
76 * being unregistered by the MBean server.
77 *
78 * @exception java.lang.Exception This exception will be caught by
79 * the MBean server and re-thrown as an {@link
80 * MBeanRegistrationException}.
81 */
82 public void preDeregister() throws java.lang.Exception;
83
84 /**
85 * Allows the MBean to perform any operations needed after having been
86 * unregistered in the MBean server.
87 */
88 public void postDeregister();
89
90 }
|