KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mx4j > server > ChainedMBeanServerBuilder


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 javax.management.MBeanServer JavaDoc;
12 import javax.management.MBeanServerBuilder JavaDoc;
13 import javax.management.MBeanServerDelegate JavaDoc;
14
15 /**
16  * Base class for chained MBeanServerBuilders. <br>
17  * By default this class delegates all method calls to the nested MBeanServerBuilder. <br>
18  * See the MX4J documentation on how to use correctly this class. <br>
19  * <br>
20  * Example implementation:
21  * <pre>
22  * public class LoggingBuilder extends ChainedMBeanServerBuilder
23  * {
24  * public LoggingBuilder()
25  * {
26  * super(new MX4JMBeanServerBuilder());
27  * }
28  * <p/>
29  * public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
30  * {
31  * LoggingMBeanServer external = new LoggingMBeanServer();
32  * MBeanServer nested = getBuilder().newMBeanServer(defaultDomain, outer == null ? external : outer, delegate);
33  * external.setMBeanServer(nested);
34  * return external;
35  * }
36  * }
37  * <p/>
38  * public class LoggingMBeanServer extends ChainedMBeanServer
39  * {
40  * protected void setMBeanServer(MBeanServer server)
41  * {
42  * super.setMBeanServer(server);
43  * }
44  * <p/>
45  * public Object getAttribute(ObjectName objectName, String attribute)
46  * throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
47  * {
48  * Object value = super.getAttribute(objectName, attribute);
49  * System.out.println("Value is: " + value);
50  * return value;
51  * }
52  * <p/>
53  * ...
54  * }
55  * </pre>
56  *
57  * @version $Revision: 1.3 $
58  */

59 public class ChainedMBeanServerBuilder extends MBeanServerBuilder JavaDoc
60 {
61    private final MBeanServerBuilder JavaDoc builder;
62
63    /**
64     * Creates a new chained MBeanServerBuilder
65     *
66     * @param builder The MBeanServerBuilder this object delegates to.
67     */

68    public ChainedMBeanServerBuilder(MBeanServerBuilder JavaDoc builder)
69    {
70       if (builder == null) throw new IllegalArgumentException JavaDoc();
71       this.builder = builder;
72    }
73
74    /**
75     * Forwards the call to the chained builder.
76     *
77     * @see MBeanServerBuilder#newMBeanServerDelegate
78     */

79    public MBeanServerDelegate JavaDoc newMBeanServerDelegate()
80    {
81       return getMBeanServerBuilder().newMBeanServerDelegate();
82    }
83
84    /**
85     * Forwards the call to the chained builder.
86     *
87     * @see MBeanServerBuilder#newMBeanServer
88     */

89    public MBeanServer JavaDoc newMBeanServer(String JavaDoc defaultDomain, MBeanServer JavaDoc outer, MBeanServerDelegate JavaDoc delegate)
90    {
91       return getMBeanServerBuilder().newMBeanServer(defaultDomain, outer, delegate);
92    }
93
94    /**
95     * Returns the chained MBeanServerBuilder this object delegates to.
96     */

97    protected MBeanServerBuilder JavaDoc getMBeanServerBuilder()
98    {
99       return builder;
100    }
101 }
102
Popular Tags