KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > continuent > sequoia > controller > jmx > ChainedMBeanServer


1 /**
2  * Sequoia: Database clustering technology.
3  * Copyright (C) 2002-2004 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Contact: sequoia@continuent.org
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  * Initial developer(s): Marc Wick.
20  * Contributor(s): ______________________.
21  */

22
23 package org.continuent.sequoia.controller.jmx;
24
25 import java.io.ObjectInputStream JavaDoc;
26 import java.util.Set JavaDoc;
27
28 import javax.management.Attribute JavaDoc;
29 import javax.management.AttributeList JavaDoc;
30 import javax.management.AttributeNotFoundException JavaDoc;
31 import javax.management.InstanceAlreadyExistsException JavaDoc;
32 import javax.management.InstanceNotFoundException JavaDoc;
33 import javax.management.IntrospectionException JavaDoc;
34 import javax.management.InvalidAttributeValueException JavaDoc;
35 import javax.management.ListenerNotFoundException JavaDoc;
36 import javax.management.MBeanException JavaDoc;
37 import javax.management.MBeanInfo JavaDoc;
38 import javax.management.MBeanRegistrationException JavaDoc;
39 import javax.management.MBeanServer JavaDoc;
40 import javax.management.NotCompliantMBeanException JavaDoc;
41 import javax.management.NotificationFilter JavaDoc;
42 import javax.management.NotificationListener JavaDoc;
43 import javax.management.ObjectInstance JavaDoc;
44 import javax.management.ObjectName JavaDoc;
45 import javax.management.OperationsException JavaDoc;
46 import javax.management.QueryExp JavaDoc;
47 import javax.management.ReflectionException JavaDoc;
48 import javax.management.loading.ClassLoaderRepository JavaDoc;
49
50 /**
51  * Base class for chained MBeanServers. By default this class delegates all
52  * method calls to the nested MBeanServer. Subclass it to add behavior to one or
53  * more (or all) methods.
54  * <p>
55  * This class takes its origin in mx4j.server.ChainedMBeanServer
56  *
57  * @author <a HREF="mailto:marc.wick@monte-bre.ch">Marc Wick </a>
58  * @version 1.0
59  */

60 public class ChainedMBeanServer implements MBeanServer JavaDoc
61
62 {
63   private MBeanServer JavaDoc mbServer;
64
65   /**
66    * Creates a new ChainedMBeanServer that will delegate to an MBeanServer
67    * specified using {@link #setMBeanServer}
68    */

69   public ChainedMBeanServer()
70   {
71     this(null);
72   }
73
74   /**
75    * Creates a new ChainedMBeanServer that delegates to the specified
76    * <code>MBeanServer</code>.
77    *
78    * @param server MBeanServer
79    */

80   public ChainedMBeanServer(MBeanServer JavaDoc server)
81   {
82     setMBeanServer(server);
83   }
84
85   /**
86    * Returns the nested MBeanServer
87    */

88   protected synchronized MBeanServer JavaDoc getMBeanServer()
89   {
90     return mbServer;
91   }
92
93   protected synchronized void setMBeanServer(MBeanServer JavaDoc server)
94   {
95     mbServer = server;
96   }
97
98   /**
99    * @see javax.management.MBeanServerConnection#addNotificationListener(javax.management.ObjectName,
100    * javax.management.NotificationListener,
101    * javax.management.NotificationFilter, java.lang.Object)
102    */

103   public void addNotificationListener(ObjectName JavaDoc observed,
104       NotificationListener JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback)
105       throws InstanceNotFoundException JavaDoc
106   {
107     getMBeanServer().addNotificationListener(observed, listener, filter,
108         handback);
109   }
110
111   /**
112    * @see javax.management.MBeanServerConnection#addNotificationListener(javax.management.ObjectName,
113    * javax.management.ObjectName, javax.management.NotificationFilter,
114    * java.lang.Object)
115    */

116   public void addNotificationListener(ObjectName JavaDoc observed, ObjectName JavaDoc listener,
117       NotificationFilter JavaDoc filter, Object JavaDoc handback)
118       throws InstanceNotFoundException JavaDoc
119   {
120     getMBeanServer().addNotificationListener(observed, listener, filter,
121         handback);
122   }
123
124   /**
125    * @see javax.management.MBeanServerConnection#createMBean(java.lang.String,
126    * javax.management.ObjectName)
127    */

128   public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName)
129       throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc,
130       MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc
131   {
132     return getMBeanServer().createMBean(className, objectName);
133   }
134
135   /**
136    * @see javax.management.MBeanServerConnection#createMBean(java.lang.String,
137    * javax.management.ObjectName, java.lang.Object[], java.lang.String[])
138    */

139   public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName,
140       Object JavaDoc[] args, String JavaDoc[] parameters) throws ReflectionException JavaDoc,
141       InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc,
142       MBeanException JavaDoc, NotCompliantMBeanException JavaDoc
143   {
144     return getMBeanServer()
145         .createMBean(className, objectName, args, parameters);
146   }
147
148   /**
149    * @see javax.management.MBeanServerConnection#createMBean(java.lang.String,
150    * javax.management.ObjectName, javax.management.ObjectName)
151    */

152   public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName,
153       ObjectName JavaDoc loaderName) throws ReflectionException JavaDoc,
154       InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc,
155       MBeanException JavaDoc, NotCompliantMBeanException JavaDoc, InstanceNotFoundException JavaDoc
156   {
157     return getMBeanServer().createMBean(className, objectName, loaderName);
158   }
159
160   /**
161    * @see javax.management.MBeanServerConnection#createMBean(java.lang.String,
162    * javax.management.ObjectName, javax.management.ObjectName,
163    * java.lang.Object[], java.lang.String[])
164    */

165   public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName,
166       ObjectName JavaDoc loaderName, Object JavaDoc[] args, String JavaDoc[] parameters)
167       throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc,
168       MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc,
169       InstanceNotFoundException JavaDoc
170   {
171     return getMBeanServer().createMBean(className, objectName, loaderName,
172         args, parameters);
173   }
174
175   /**
176    * @see javax.management.MBeanServer#deserialize(java.lang.String, byte[])
177    */

178   public ObjectInputStream JavaDoc deserialize(String JavaDoc className, byte[] bytes)
179       throws OperationsException JavaDoc, ReflectionException JavaDoc
180   {
181     return getMBeanServer().deserialize(className, bytes);
182   }
183
184   /**
185    * @see javax.management.MBeanServer#deserialize(java.lang.String,
186    * javax.management.ObjectName, byte[])
187    */

188   public ObjectInputStream JavaDoc deserialize(String JavaDoc className, ObjectName JavaDoc loaderName,
189       byte[] bytes) throws InstanceNotFoundException JavaDoc, OperationsException JavaDoc,
190       ReflectionException JavaDoc
191   {
192     return getMBeanServer().deserialize(className, loaderName, bytes);
193   }
194
195   /**
196    * @see javax.management.MBeanServer#deserialize(javax.management.ObjectName,
197    * byte[])
198    */

199   public ObjectInputStream JavaDoc deserialize(ObjectName JavaDoc objectName, byte[] bytes)
200       throws InstanceNotFoundException JavaDoc, OperationsException JavaDoc
201   {
202     return getMBeanServer().deserialize(objectName, bytes);
203   }
204
205   /**
206    * @see javax.management.MBeanServerConnection#getAttribute(javax.management.ObjectName,
207    * java.lang.String)
208    */

209   public Object JavaDoc getAttribute(ObjectName JavaDoc objectName, String JavaDoc attribute)
210       throws MBeanException JavaDoc, AttributeNotFoundException JavaDoc,
211       InstanceNotFoundException JavaDoc, ReflectionException JavaDoc
212   {
213     return getMBeanServer().getAttribute(objectName, attribute);
214   }
215
216   /**
217    * @see javax.management.MBeanServerConnection#getAttributes(javax.management.ObjectName,
218    * java.lang.String[])
219    */

220   public AttributeList JavaDoc getAttributes(ObjectName JavaDoc objectName, String JavaDoc[] attributes)
221       throws InstanceNotFoundException JavaDoc, ReflectionException JavaDoc
222   {
223     return getMBeanServer().getAttributes(objectName, attributes);
224   }
225
226   /**
227    * @see javax.management.MBeanServerConnection#getDefaultDomain()
228    */

229   public String JavaDoc getDefaultDomain()
230   {
231     return getMBeanServer().getDefaultDomain();
232   }
233
234   /**
235    * @see javax.management.MBeanServerConnection#getDomains()
236    */

237   public String JavaDoc[] getDomains()
238   {
239     return getMBeanServer().getDomains();
240   }
241
242   /**
243    * @see javax.management.MBeanServerConnection#getMBeanCount()
244    */

245   public Integer JavaDoc getMBeanCount()
246   {
247     return getMBeanServer().getMBeanCount();
248   }
249
250   /**
251    * @see javax.management.MBeanServerConnection#getMBeanInfo(javax.management.ObjectName)
252    */

253   public MBeanInfo JavaDoc getMBeanInfo(ObjectName JavaDoc objectName)
254       throws InstanceNotFoundException JavaDoc, IntrospectionException JavaDoc,
255       ReflectionException JavaDoc
256   {
257     return getMBeanServer().getMBeanInfo(objectName);
258   }
259
260   /**
261    * @see javax.management.MBeanServerConnection#getObjectInstance(javax.management.ObjectName)
262    */

263   public ObjectInstance JavaDoc getObjectInstance(ObjectName JavaDoc objectName)
264       throws InstanceNotFoundException JavaDoc
265   {
266     return getMBeanServer().getObjectInstance(objectName);
267   }
268
269   /**
270    * @see javax.management.MBeanServer#instantiate(java.lang.String)
271    */

272   public Object JavaDoc instantiate(String JavaDoc className) throws ReflectionException JavaDoc,
273       MBeanException JavaDoc
274   {
275     return getMBeanServer().instantiate(className);
276   }
277
278   /**
279    * @see javax.management.MBeanServer#instantiate(java.lang.String,
280    * java.lang.Object[], java.lang.String[])
281    */

282   public Object JavaDoc instantiate(String JavaDoc className, Object JavaDoc[] args, String JavaDoc[] parameters)
283       throws ReflectionException JavaDoc, MBeanException JavaDoc
284   {
285     return getMBeanServer().instantiate(className, args, parameters);
286   }
287
288   /**
289    * @see javax.management.MBeanServer#instantiate(java.lang.String,
290    * javax.management.ObjectName)
291    */

292   public Object JavaDoc instantiate(String JavaDoc className, ObjectName JavaDoc loaderName)
293       throws ReflectionException JavaDoc, MBeanException JavaDoc, InstanceNotFoundException JavaDoc
294   {
295     return getMBeanServer().instantiate(className, loaderName);
296   }
297
298   /**
299    * @see javax.management.MBeanServer#instantiate(java.lang.String,
300    * javax.management.ObjectName, java.lang.Object[], java.lang.String[])
301    */

302   public Object JavaDoc instantiate(String JavaDoc className, ObjectName JavaDoc loaderName,
303       Object JavaDoc[] args, String JavaDoc[] parameters) throws ReflectionException JavaDoc,
304       MBeanException JavaDoc, InstanceNotFoundException JavaDoc
305   {
306     return getMBeanServer()
307         .instantiate(className, loaderName, args, parameters);
308   }
309
310   /**
311    * @see javax.management.MBeanServerConnection#invoke(javax.management.ObjectName,
312    * java.lang.String, java.lang.Object[], java.lang.String[])
313    */

314   public Object JavaDoc invoke(ObjectName JavaDoc objectName, String JavaDoc methodName, Object JavaDoc[] args,
315       String JavaDoc[] parameters) throws InstanceNotFoundException JavaDoc, MBeanException JavaDoc,
316       ReflectionException JavaDoc
317   {
318     return getMBeanServer().invoke(objectName, methodName, args, parameters);
319   }
320
321   /**
322    * @see javax.management.MBeanServerConnection#isInstanceOf(javax.management.ObjectName,
323    * java.lang.String)
324    */

325   public boolean isInstanceOf(ObjectName JavaDoc objectName, String JavaDoc className)
326       throws InstanceNotFoundException JavaDoc
327   {
328     return getMBeanServer().isInstanceOf(objectName, className);
329   }
330
331   /**
332    * @see javax.management.MBeanServerConnection#isRegistered(javax.management.ObjectName)
333    */

334   public boolean isRegistered(ObjectName JavaDoc objectname)
335   {
336     return getMBeanServer().isRegistered(objectname);
337   }
338
339   /**
340    * @see javax.management.MBeanServerConnection#queryMBeans(javax.management.ObjectName,
341    * javax.management.QueryExp)
342    */

343   public Set JavaDoc queryMBeans(ObjectName JavaDoc patternName, QueryExp JavaDoc filter)
344   {
345     return getMBeanServer().queryMBeans(patternName, filter);
346   }
347
348   /**
349    * @see javax.management.MBeanServerConnection#queryNames(javax.management.ObjectName,
350    * javax.management.QueryExp)
351    */

352   public Set JavaDoc queryNames(ObjectName JavaDoc patternName, QueryExp JavaDoc filter)
353   {
354     return getMBeanServer().queryNames(patternName, filter);
355   }
356
357   /**
358    * @see javax.management.MBeanServer#registerMBean(java.lang.Object,
359    * javax.management.ObjectName)
360    */

361   public ObjectInstance JavaDoc registerMBean(Object JavaDoc mbean, ObjectName JavaDoc objectName)
362       throws InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc,
363       NotCompliantMBeanException JavaDoc
364   {
365     return getMBeanServer().registerMBean(mbean, objectName);
366   }
367
368   /**
369    * @see javax.management.MBeanServerConnection#removeNotificationListener(javax.management.ObjectName,
370    * javax.management.NotificationListener)
371    */

372   public void removeNotificationListener(ObjectName JavaDoc observed,
373       NotificationListener JavaDoc listener) throws InstanceNotFoundException JavaDoc,
374       ListenerNotFoundException JavaDoc
375   {
376     getMBeanServer().removeNotificationListener(observed, listener);
377   }
378
379   /**
380    * @see javax.management.MBeanServerConnection#removeNotificationListener(javax.management.ObjectName,
381    * javax.management.ObjectName)
382    */

383   public void removeNotificationListener(ObjectName JavaDoc observed,
384       ObjectName JavaDoc listener) throws InstanceNotFoundException JavaDoc,
385       ListenerNotFoundException JavaDoc
386   {
387     getMBeanServer().removeNotificationListener(observed, listener);
388   }
389
390   /**
391    * @see javax.management.MBeanServerConnection#removeNotificationListener(javax.management.ObjectName,
392    * javax.management.ObjectName, javax.management.NotificationFilter,
393    * java.lang.Object)
394    */

395   public void removeNotificationListener(ObjectName JavaDoc observed,
396       ObjectName JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback)
397       throws InstanceNotFoundException JavaDoc, ListenerNotFoundException JavaDoc
398   {
399     getMBeanServer().removeNotificationListener(observed, listener, filter,
400         handback);
401   }
402
403   /**
404    * @see javax.management.MBeanServerConnection#removeNotificationListener(javax.management.ObjectName,
405    * javax.management.NotificationListener,
406    * javax.management.NotificationFilter, java.lang.Object)
407    */

408   public void removeNotificationListener(ObjectName JavaDoc observed,
409       NotificationListener JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback)
410       throws InstanceNotFoundException JavaDoc, ListenerNotFoundException JavaDoc
411   {
412     getMBeanServer().removeNotificationListener(observed, listener, filter,
413         handback);
414   }
415
416   /**
417    * @see javax.management.MBeanServerConnection#setAttribute(javax.management.ObjectName,
418    * javax.management.Attribute)
419    */

420   public void setAttribute(ObjectName JavaDoc objectName, Attribute JavaDoc attribute)
421       throws InstanceNotFoundException JavaDoc, AttributeNotFoundException JavaDoc,
422       InvalidAttributeValueException JavaDoc, MBeanException JavaDoc, ReflectionException JavaDoc
423   {
424     getMBeanServer().setAttribute(objectName, attribute);
425   }
426
427   /**
428    * @see javax.management.MBeanServerConnection#setAttributes(javax.management.ObjectName,
429    * javax.management.AttributeList)
430    */

431   public AttributeList JavaDoc setAttributes(ObjectName JavaDoc objectName,
432       AttributeList JavaDoc attributes) throws InstanceNotFoundException JavaDoc,
433       ReflectionException JavaDoc
434   {
435     return getMBeanServer().setAttributes(objectName, attributes);
436   }
437
438   /**
439    * @see javax.management.MBeanServerConnection#unregisterMBean(javax.management.ObjectName)
440    */

441   public void unregisterMBean(ObjectName JavaDoc objectName)
442       throws InstanceNotFoundException JavaDoc, MBeanRegistrationException JavaDoc
443   {
444     getMBeanServer().unregisterMBean(objectName);
445   }
446
447   /**
448    * @see javax.management.MBeanServer#getClassLoaderFor(javax.management.ObjectName)
449    */

450   public ClassLoader JavaDoc getClassLoaderFor(ObjectName JavaDoc mbeanName)
451       throws InstanceNotFoundException JavaDoc
452   {
453     return getMBeanServer().getClassLoaderFor(mbeanName);
454   }
455
456   /**
457    * @see javax.management.MBeanServer#getClassLoader(javax.management.ObjectName)
458    */

459   public ClassLoader JavaDoc getClassLoader(ObjectName JavaDoc loaderName)
460       throws InstanceNotFoundException JavaDoc
461   {
462     return getMBeanServer().getClassLoader(loaderName);
463   }
464
465   /**
466    * @see javax.management.MBeanServer#getClassLoaderRepository()
467    */

468   public ClassLoaderRepository JavaDoc getClassLoaderRepository()
469   {
470     return getMBeanServer().getClassLoaderRepository();
471   }
472
473 }
474
Popular Tags