KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mx4j > server > ChainedMBeanServer


1 /*
2  * Copyright (C) The MX4J Contributors.
3  * All rights reserved.
4  *
5  * This software is distributed under the terms of the MX4J License version 1.0.
6  * See the terms of the MX4J License in the documentation provided with this software.
7  */

8
9 package mx4j.server;
10
11 import java.io.ObjectInputStream JavaDoc;
12 import java.util.Set JavaDoc;
13 import javax.management.Attribute JavaDoc;
14 import javax.management.AttributeList JavaDoc;
15 import javax.management.AttributeNotFoundException JavaDoc;
16 import javax.management.InstanceAlreadyExistsException JavaDoc;
17 import javax.management.InstanceNotFoundException JavaDoc;
18 import javax.management.IntrospectionException JavaDoc;
19 import javax.management.InvalidAttributeValueException JavaDoc;
20 import javax.management.ListenerNotFoundException JavaDoc;
21 import javax.management.MBeanException JavaDoc;
22 import javax.management.MBeanInfo JavaDoc;
23 import javax.management.MBeanRegistrationException JavaDoc;
24 import javax.management.MBeanServer JavaDoc;
25 import javax.management.NotCompliantMBeanException JavaDoc;
26 import javax.management.NotificationFilter JavaDoc;
27 import javax.management.NotificationListener JavaDoc;
28 import javax.management.ObjectInstance JavaDoc;
29 import javax.management.ObjectName JavaDoc;
30 import javax.management.OperationsException JavaDoc;
31 import javax.management.QueryExp JavaDoc;
32 import javax.management.ReflectionException JavaDoc;
33 import javax.management.loading.ClassLoaderRepository JavaDoc;
34
35 /**
36  * Base class for chained MBeanServers.
37  * By default this class delegates all method calls to the nested MBeanServer.
38  * Subclass it to add behavior to one or more (or all) methods.
39  *
40  * @version $Revision: 1.6 $
41  */

42 public class ChainedMBeanServer implements MBeanServer JavaDoc
43 {
44    private MBeanServer JavaDoc m_server;
45
46    /**
47     * Creates a new ChainedMBeanServer that will delegate to an MBeanServer specified
48     * using {@link #setMBeanServer}
49     */

50    public ChainedMBeanServer()
51    {
52       this(null);
53    }
54
55    /**
56     * Creates a new ChainedMBeanServer that delegates to the specified <code>MBeanServer</code>.
57     */

58    public ChainedMBeanServer(MBeanServer JavaDoc server)
59    {
60       setMBeanServer(server);
61    }
62
63    /**
64     * Returns the nested MBeanServer
65     */

66    protected synchronized MBeanServer JavaDoc getMBeanServer()
67    {
68       return m_server;
69    }
70
71    protected synchronized void setMBeanServer(MBeanServer JavaDoc server)
72    {
73       m_server = server;
74    }
75
76    public void addNotificationListener(ObjectName JavaDoc observed, NotificationListener JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback)
77            throws InstanceNotFoundException JavaDoc
78    {
79       getMBeanServer().addNotificationListener(observed, listener, filter, handback);
80    }
81
82    public void addNotificationListener(ObjectName JavaDoc observed, ObjectName JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback)
83            throws InstanceNotFoundException JavaDoc
84    {
85       getMBeanServer().addNotificationListener(observed, listener, filter, handback);
86    }
87
88    public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName)
89            throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc
90    {
91       return getMBeanServer().createMBean(className, objectName);
92    }
93
94    public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName, Object JavaDoc[] args, String JavaDoc[] parameters)
95            throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc
96    {
97       return getMBeanServer().createMBean(className, objectName, args, parameters);
98    }
99
100    public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName, ObjectName JavaDoc loaderName)
101            throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc, InstanceNotFoundException JavaDoc
102    {
103       return getMBeanServer().createMBean(className, objectName, loaderName);
104    }
105
106    public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName, ObjectName JavaDoc loaderName, Object JavaDoc[] args, String JavaDoc[] parameters)
107            throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc, InstanceNotFoundException JavaDoc
108    {
109       return getMBeanServer().createMBean(className, objectName, loaderName, args, parameters);
110    }
111
112    public ObjectInputStream JavaDoc deserialize(String JavaDoc className, byte[] bytes)
113            throws OperationsException JavaDoc, ReflectionException JavaDoc
114    {
115       return getMBeanServer().deserialize(className, bytes);
116    }
117
118    public ObjectInputStream JavaDoc deserialize(String JavaDoc className, ObjectName JavaDoc loaderName, byte[] bytes)
119            throws InstanceNotFoundException JavaDoc, OperationsException JavaDoc, ReflectionException JavaDoc
120    {
121       return getMBeanServer().deserialize(className, loaderName, bytes);
122    }
123
124    public ObjectInputStream JavaDoc deserialize(ObjectName JavaDoc objectName, byte[] bytes)
125            throws InstanceNotFoundException JavaDoc, OperationsException JavaDoc
126    {
127       return getMBeanServer().deserialize(objectName, bytes);
128    }
129
130    public Object JavaDoc getAttribute(ObjectName JavaDoc objectName, String JavaDoc attribute)
131            throws MBeanException JavaDoc, AttributeNotFoundException JavaDoc, InstanceNotFoundException JavaDoc, ReflectionException JavaDoc
132    {
133       return getMBeanServer().getAttribute(objectName, attribute);
134    }
135
136    public AttributeList JavaDoc getAttributes(ObjectName JavaDoc objectName, String JavaDoc[] attributes)
137            throws InstanceNotFoundException JavaDoc, ReflectionException JavaDoc
138    {
139       return getMBeanServer().getAttributes(objectName, attributes);
140    }
141
142    public String JavaDoc getDefaultDomain()
143    {
144       return getMBeanServer().getDefaultDomain();
145    }
146
147    public String JavaDoc[] getDomains()
148    {
149       return getMBeanServer().getDomains();
150    }
151
152    public Integer JavaDoc getMBeanCount()
153    {
154       return getMBeanServer().getMBeanCount();
155    }
156
157    public MBeanInfo JavaDoc getMBeanInfo(ObjectName JavaDoc objectName)
158            throws InstanceNotFoundException JavaDoc, IntrospectionException JavaDoc, ReflectionException JavaDoc
159    {
160       return getMBeanServer().getMBeanInfo(objectName);
161    }
162
163    public ObjectInstance JavaDoc getObjectInstance(ObjectName JavaDoc objectName)
164            throws InstanceNotFoundException JavaDoc
165    {
166       return getMBeanServer().getObjectInstance(objectName);
167    }
168
169    public Object JavaDoc instantiate(String JavaDoc className)
170            throws ReflectionException JavaDoc, MBeanException JavaDoc
171    {
172       return getMBeanServer().instantiate(className);
173    }
174
175    public Object JavaDoc instantiate(String JavaDoc className, Object JavaDoc[] args, String JavaDoc[] parameters)
176            throws ReflectionException JavaDoc, MBeanException JavaDoc
177    {
178       return getMBeanServer().instantiate(className, args, parameters);
179    }
180
181    public Object JavaDoc instantiate(String JavaDoc className, ObjectName JavaDoc loaderName)
182            throws ReflectionException JavaDoc, MBeanException JavaDoc, InstanceNotFoundException JavaDoc
183    {
184       return getMBeanServer().instantiate(className, loaderName);
185    }
186
187    public Object JavaDoc instantiate(String JavaDoc className, ObjectName JavaDoc loaderName, Object JavaDoc[] args, String JavaDoc[] parameters)
188            throws ReflectionException JavaDoc, MBeanException JavaDoc, InstanceNotFoundException JavaDoc
189    {
190       return getMBeanServer().instantiate(className, loaderName, args, parameters);
191    }
192
193    public Object JavaDoc invoke(ObjectName JavaDoc objectName, String JavaDoc methodName, Object JavaDoc[] args, String JavaDoc[] parameters)
194            throws InstanceNotFoundException JavaDoc, MBeanException JavaDoc, ReflectionException JavaDoc
195    {
196       return getMBeanServer().invoke(objectName, methodName, args, parameters);
197    }
198
199    public boolean isInstanceOf(ObjectName JavaDoc objectName, String JavaDoc className)
200            throws InstanceNotFoundException JavaDoc
201    {
202       return getMBeanServer().isInstanceOf(objectName, className);
203    }
204
205    public boolean isRegistered(ObjectName JavaDoc objectname)
206    {
207       return getMBeanServer().isRegistered(objectname);
208    }
209
210    public Set JavaDoc queryMBeans(ObjectName JavaDoc patternName, QueryExp JavaDoc filter)
211    {
212       return getMBeanServer().queryMBeans(patternName, filter);
213    }
214
215    public Set JavaDoc queryNames(ObjectName JavaDoc patternName, QueryExp JavaDoc filter)
216    {
217       return getMBeanServer().queryNames(patternName, filter);
218    }
219
220    public ObjectInstance JavaDoc registerMBean(Object JavaDoc mbean, ObjectName JavaDoc objectName)
221            throws InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, NotCompliantMBeanException JavaDoc
222    {
223       return getMBeanServer().registerMBean(mbean, objectName);
224    }
225
226    public void removeNotificationListener(ObjectName JavaDoc observed, NotificationListener JavaDoc listener)
227            throws InstanceNotFoundException JavaDoc, ListenerNotFoundException JavaDoc
228    {
229       getMBeanServer().removeNotificationListener(observed, listener);
230    }
231
232    public void removeNotificationListener(ObjectName JavaDoc observed, ObjectName JavaDoc listener)
233            throws InstanceNotFoundException JavaDoc, ListenerNotFoundException JavaDoc
234    {
235       getMBeanServer().removeNotificationListener(observed, listener);
236    }
237
238    public void removeNotificationListener(ObjectName JavaDoc observed, ObjectName JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback)
239            throws InstanceNotFoundException JavaDoc, ListenerNotFoundException JavaDoc
240    {
241       getMBeanServer().removeNotificationListener(observed, listener, filter, handback);
242    }
243
244    public void removeNotificationListener(ObjectName JavaDoc observed, NotificationListener JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback)
245            throws InstanceNotFoundException JavaDoc, ListenerNotFoundException JavaDoc
246    {
247       getMBeanServer().removeNotificationListener(observed, listener, filter, handback);
248    }
249
250    public void setAttribute(ObjectName JavaDoc objectName, Attribute JavaDoc attribute)
251            throws InstanceNotFoundException JavaDoc, AttributeNotFoundException JavaDoc, InvalidAttributeValueException JavaDoc, MBeanException JavaDoc, ReflectionException JavaDoc
252    {
253       getMBeanServer().setAttribute(objectName, attribute);
254    }
255
256    public AttributeList JavaDoc setAttributes(ObjectName JavaDoc objectName, AttributeList JavaDoc attributes)
257            throws InstanceNotFoundException JavaDoc, ReflectionException JavaDoc
258    {
259       return getMBeanServer().setAttributes(objectName, attributes);
260    }
261
262    public void unregisterMBean(ObjectName JavaDoc objectName)
263            throws InstanceNotFoundException JavaDoc, MBeanRegistrationException JavaDoc
264    {
265       getMBeanServer().unregisterMBean(objectName);
266    }
267
268    public ClassLoader JavaDoc getClassLoaderFor(ObjectName JavaDoc mbeanName)
269            throws InstanceNotFoundException JavaDoc
270    {
271       return getMBeanServer().getClassLoaderFor(mbeanName);
272    }
273
274    public ClassLoader JavaDoc getClassLoader(ObjectName JavaDoc loaderName)
275            throws InstanceNotFoundException JavaDoc
276    {
277       return getMBeanServer().getClassLoader(loaderName);
278    }
279
280    public ClassLoaderRepository JavaDoc getClassLoaderRepository()
281    {
282       return getMBeanServer().getClassLoaderRepository();
283    }
284 }
285
Popular Tags