KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mx4j > tools > remote > JMXConnectionMBeanServerConnection


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.tools.remote;
10
11 import java.io.IOException 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.MBeanServerConnection JavaDoc;
25 import javax.management.NotCompliantMBeanException JavaDoc;
26 import javax.management.NotificationFilter JavaDoc;
27 import javax.management.ObjectInstance JavaDoc;
28 import javax.management.ObjectName JavaDoc;
29 import javax.management.QueryExp JavaDoc;
30 import javax.management.ReflectionException JavaDoc;
31 import javax.security.auth.Subject JavaDoc;
32
33 /**
34  * Abstract implementation of an adapter that converts MBeanServerConnection calls
35  * to JMXConnection calls.
36  * It does not handle nor marshalling nor remote notifications, which are left to
37  * subclasses.
38  * This is the client side counterpart of {@link AbstractServerInvoker}
39  *
40  * @version $Revision: 1.3 $
41  */

42 public abstract class JMXConnectionMBeanServerConnection implements MBeanServerConnection JavaDoc
43 {
44    private final JMXConnection connection;
45    private final Subject JavaDoc delegate;
46
47    protected JMXConnectionMBeanServerConnection(JMXConnection connection, Subject JavaDoc delegate)
48    {
49       this.connection = connection;
50       this.delegate = delegate;
51    }
52
53    protected JMXConnection getConnection()
54    {
55       return connection;
56    }
57
58    protected Subject JavaDoc getDelegateSubject()
59    {
60       return delegate;
61    }
62
63    public MBeanInfo JavaDoc getMBeanInfo(ObjectName JavaDoc objectName) throws InstanceNotFoundException JavaDoc, IntrospectionException JavaDoc, ReflectionException JavaDoc, IOException JavaDoc
64    {
65       return getConnection().getMBeanInfo(objectName, getDelegateSubject());
66    }
67
68    public boolean isInstanceOf(ObjectName JavaDoc objectName, String JavaDoc className) throws InstanceNotFoundException JavaDoc, IOException JavaDoc
69    {
70       return getConnection().isInstanceOf(objectName, className, getDelegateSubject());
71    }
72
73    public String JavaDoc[] getDomains() throws IOException JavaDoc
74    {
75       return getConnection().getDomains(getDelegateSubject());
76    }
77
78    public String JavaDoc getDefaultDomain() throws IOException JavaDoc
79    {
80       return getConnection().getDefaultDomain(getDelegateSubject());
81    }
82
83    public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName) throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc, IOException JavaDoc
84    {
85       return createMBean(className, objectName, null, null);
86    }
87
88    public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName, Object JavaDoc[] args, String JavaDoc[] parameters) throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc, IOException JavaDoc
89    {
90       return getConnection().createMBean(className, objectName, args, parameters, getDelegateSubject());
91    }
92
93    public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName, ObjectName JavaDoc loaderName) throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc, InstanceNotFoundException JavaDoc, IOException JavaDoc
94    {
95       return createMBean(className, objectName, loaderName, null, null);
96    }
97
98    public ObjectInstance JavaDoc createMBean(String JavaDoc className, ObjectName JavaDoc objectName, ObjectName JavaDoc loaderName, Object JavaDoc[] args, String JavaDoc[] parameters) throws ReflectionException JavaDoc, InstanceAlreadyExistsException JavaDoc, MBeanRegistrationException JavaDoc, MBeanException JavaDoc, NotCompliantMBeanException JavaDoc, InstanceNotFoundException JavaDoc, IOException JavaDoc
99    {
100       return getConnection().createMBean(className, objectName, loaderName, args, parameters, getDelegateSubject());
101    }
102
103    public void unregisterMBean(ObjectName JavaDoc objectName) throws InstanceNotFoundException JavaDoc, MBeanRegistrationException JavaDoc, IOException JavaDoc
104    {
105       getConnection().unregisterMBean(objectName, getDelegateSubject());
106    }
107
108    public Object JavaDoc getAttribute(ObjectName JavaDoc objectName, String JavaDoc attribute) throws MBeanException JavaDoc, AttributeNotFoundException JavaDoc, InstanceNotFoundException JavaDoc, ReflectionException JavaDoc, IOException JavaDoc
109    {
110       return getConnection().getAttribute(objectName, attribute, getDelegateSubject());
111    }
112
113    public void setAttribute(ObjectName JavaDoc objectName, Attribute JavaDoc attribute) throws InstanceNotFoundException JavaDoc, AttributeNotFoundException JavaDoc, InvalidAttributeValueException JavaDoc, MBeanException JavaDoc, ReflectionException JavaDoc, IOException JavaDoc
114    {
115       getConnection().setAttribute(objectName, attribute, getDelegateSubject());
116    }
117
118    public AttributeList JavaDoc getAttributes(ObjectName JavaDoc objectName, String JavaDoc[] attributes) throws InstanceNotFoundException JavaDoc, ReflectionException JavaDoc, IOException JavaDoc
119    {
120       return getConnection().getAttributes(objectName, attributes, getDelegateSubject());
121    }
122
123    public AttributeList JavaDoc setAttributes(ObjectName JavaDoc objectName, AttributeList JavaDoc attributes) throws InstanceNotFoundException JavaDoc, ReflectionException JavaDoc, IOException JavaDoc
124    {
125       return getConnection().setAttributes(objectName, attributes, getDelegateSubject());
126    }
127
128    public Object JavaDoc invoke(ObjectName JavaDoc objectName, String JavaDoc methodName, Object JavaDoc[] args, String JavaDoc[] parameters) throws InstanceNotFoundException JavaDoc, MBeanException JavaDoc, ReflectionException JavaDoc, IOException JavaDoc
129    {
130       return getConnection().invoke(objectName, methodName, args, parameters, getDelegateSubject());
131    }
132
133    public Integer JavaDoc getMBeanCount() throws IOException JavaDoc
134    {
135       return getConnection().getMBeanCount(getDelegateSubject());
136    }
137
138    public boolean isRegistered(ObjectName JavaDoc objectName) throws IOException JavaDoc
139    {
140       return getConnection().isRegistered(objectName, getDelegateSubject());
141    }
142
143    public ObjectInstance JavaDoc getObjectInstance(ObjectName JavaDoc objectName) throws InstanceNotFoundException JavaDoc, IOException JavaDoc
144    {
145       return getConnection().getObjectInstance(objectName, getDelegateSubject());
146    }
147
148    public Set JavaDoc queryMBeans(ObjectName JavaDoc patternName, QueryExp JavaDoc filter) throws IOException JavaDoc
149    {
150       return getConnection().queryMBeans(patternName, filter, getDelegateSubject());
151    }
152
153    public Set JavaDoc queryNames(ObjectName JavaDoc patternName, QueryExp JavaDoc filter) throws IOException JavaDoc
154    {
155       return getConnection().queryNames(patternName, filter, getDelegateSubject());
156    }
157
158    public void addNotificationListener(ObjectName JavaDoc observed, ObjectName JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback) throws InstanceNotFoundException JavaDoc, IOException JavaDoc
159    {
160       getConnection().addNotificationListener(observed, listener, filter, handback, getDelegateSubject());
161    }
162
163    public void removeNotificationListener(ObjectName JavaDoc observed, ObjectName JavaDoc listener) throws InstanceNotFoundException JavaDoc, ListenerNotFoundException JavaDoc, IOException JavaDoc
164    {
165       getConnection().removeNotificationListener(observed, listener, getDelegateSubject());
166    }
167
168    public void removeNotificationListener(ObjectName JavaDoc observed, ObjectName JavaDoc listener, NotificationFilter JavaDoc filter, Object JavaDoc handback) throws InstanceNotFoundException JavaDoc, ListenerNotFoundException JavaDoc, IOException JavaDoc
169    {
170       getConnection().removeNotificationListener(observed, listener, filter, handback, getDelegateSubject());
171    }
172 }
173
Popular Tags