KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > javax > management > support > MBeanDynamic


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 test.javax.management.support;
10
11 import javax.management.Attribute JavaDoc;
12 import javax.management.AttributeList JavaDoc;
13 import javax.management.AttributeNotFoundException JavaDoc;
14 import javax.management.DynamicMBean JavaDoc;
15 import javax.management.InvalidAttributeValueException JavaDoc;
16 import javax.management.MBeanAttributeInfo JavaDoc;
17 import javax.management.MBeanConstructorInfo JavaDoc;
18 import javax.management.MBeanException JavaDoc;
19 import javax.management.MBeanInfo JavaDoc;
20 import javax.management.MBeanNotificationInfo JavaDoc;
21 import javax.management.MBeanOperationInfo JavaDoc;
22 import javax.management.MBeanParameterInfo JavaDoc;
23 import javax.management.ReflectionException JavaDoc;
24
25 /**
26  * @version $Revision: 1.4 $
27  */

28 public class MBeanDynamic implements DynamicMBean JavaDoc
29 {
30    private String JavaDoc m_value1 = "";
31    private String JavaDoc m_value2 = "";
32
33    public MBeanInfo JavaDoc getMBeanInfo()
34    {
35       MBeanAttributeInfo JavaDoc[] attrs = new MBeanAttributeInfo JavaDoc[2];
36       attrs[0] = new MBeanAttributeInfo JavaDoc("DynamicAttribute1", "java.lang.String", "A first dynamic attribute", true, true, false);
37       attrs[1] = new MBeanAttributeInfo JavaDoc("DynamicAttribute2", "java.lang.String", "A second dynamic attribute", true, true, false);
38
39       MBeanConstructorInfo JavaDoc[] ctors = new MBeanConstructorInfo JavaDoc[1];
40       ctors[0] = new MBeanConstructorInfo JavaDoc("ParameterlessConstructor", "A dynamic constructor", new MBeanParameterInfo JavaDoc[0]);
41
42       MBeanOperationInfo JavaDoc[] opers = new MBeanOperationInfo JavaDoc[1];
43       MBeanParameterInfo JavaDoc[] params = new MBeanParameterInfo JavaDoc[1];
44       params[0] = new MBeanParameterInfo JavaDoc("supposedAttributeValue", "java.lang.String", "Checks if the value of the argument is equal to the value of the attribute");
45       opers[0] = new MBeanOperationInfo JavaDoc("dynamicOperation", "A dynamic operation", params, "boolean", MBeanOperationInfo.INFO);
46
47       MBeanNotificationInfo JavaDoc[] notifs = new MBeanNotificationInfo JavaDoc[0];
48
49       return new MBeanInfo JavaDoc(getClass().getName(), "A MBeanDynamic MBean", attrs, ctors, opers, notifs);
50    }
51
52    private String JavaDoc getDynamicAttribute1()
53    {
54       return m_value1;
55    }
56
57    private void setDynamicAttribute1(String JavaDoc value)
58    {
59       m_value1 = value;
60    }
61
62    private String JavaDoc getDynamicAttribute2()
63    {
64       return m_value2;
65    }
66
67    private void setDynamicAttribute2(String JavaDoc value)
68    {
69       m_value2 = value;
70    }
71
72    private boolean dynamicOperation(String JavaDoc value)
73    {
74       return m_value1.equals(value);
75    }
76
77    public Object JavaDoc getAttribute(String JavaDoc attribute) throws AttributeNotFoundException JavaDoc, MBeanException JavaDoc, ReflectionException JavaDoc
78    {
79       if (attribute.equals("DynamicAttribute1"))
80       {
81          return getDynamicAttribute1();
82       }
83       else if (attribute.equals("DynamicAttribute2"))
84       {
85          return getDynamicAttribute2();
86       }
87       else
88          throw new AttributeNotFoundException JavaDoc(attribute);
89    }
90
91    public void setAttribute(Attribute JavaDoc attribute) throws AttributeNotFoundException JavaDoc, InvalidAttributeValueException JavaDoc, MBeanException JavaDoc, ReflectionException JavaDoc
92    {
93       if (attribute.getName().equals("DynamicAttribute1"))
94       {
95          Object JavaDoc val = attribute.getValue();
96          if (val instanceof String JavaDoc)
97          {
98             setDynamicAttribute1((String JavaDoc)val);
99          }
100          else
101          {
102             throw new InvalidAttributeValueException JavaDoc(val == null ? "null" : val.toString());
103          }
104       }
105       else if (attribute.getName().equals("DynamicAttribute2"))
106       {
107          Object JavaDoc val = attribute.getValue();
108          if (val instanceof String JavaDoc)
109          {
110             setDynamicAttribute2((String JavaDoc)val);
111          }
112          else
113          {
114             throw new InvalidAttributeValueException JavaDoc(val == null ? "null" : val.toString());
115          }
116       }
117       else
118       {
119          throw new AttributeNotFoundException JavaDoc(attribute.getName());
120       }
121    }
122
123    public AttributeList JavaDoc getAttributes(String JavaDoc[] attributes)
124    {
125       AttributeList JavaDoc list = new AttributeList JavaDoc();
126       for (int i = 0; i < attributes.length; ++i)
127       {
128          if (attributes[i].equals("DynamicAttribute1"))
129          {
130             list.add(new Attribute JavaDoc(attributes[i], getDynamicAttribute1()));
131          }
132          else if (attributes[i].equals("DynamicAttribute2"))
133          {
134             list.add(new Attribute JavaDoc(attributes[i], getDynamicAttribute2()));
135          }
136       }
137       return list;
138    }
139
140    public AttributeList JavaDoc setAttributes(AttributeList JavaDoc attributes)
141    {
142       AttributeList JavaDoc list = new AttributeList JavaDoc();
143       for (int i = 0; i < attributes.size(); ++i)
144       {
145          Attribute JavaDoc attr = (Attribute JavaDoc)attributes.get(i);
146          if (attr.getName().equals("DynamicAttribute1") || attr.getName().equals("DynamicAttribute2"))
147          {
148             try
149             {
150                setAttribute(attr);
151                list.add(attr);
152             }
153             catch (AttributeNotFoundException JavaDoc ignored)
154             {
155             }
156             catch (InvalidAttributeValueException JavaDoc ignored)
157             {
158             }
159             catch (MBeanException JavaDoc ignored)
160             {
161             }
162             catch (ReflectionException JavaDoc ignored)
163             {
164             }
165          }
166       }
167       return list;
168    }
169
170    public Object JavaDoc invoke(String JavaDoc method, Object JavaDoc[] arguments, String JavaDoc[] params) throws MBeanException JavaDoc, ReflectionException JavaDoc
171    {
172       if (method.equals("dynamicOperation") &&
173           params.length == 1 &&
174           params[0].equals("java.lang.String") &&
175           arguments.length == 1 &&
176           arguments[0] instanceof String JavaDoc)
177       {
178          boolean match = dynamicOperation((String JavaDoc)arguments[0]);
179          return new Boolean JavaDoc(match);
180       }
181       else
182       {
183          throw new MBeanException JavaDoc(new IllegalArgumentException JavaDoc("Invalid method or arguments for invoke"));
184       }
185    }
186 }
187
Popular Tags