Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/javax/management/modelmbean/RequiredModelMBeanSetAttributeTest.java
41152 views
1
/*
2
* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
* @test
26
* @bug 4997033
27
* @summary Test the following in RequiredModelMBean.setAttribute():
28
* MBeanException wrapping a ServiceNotFoundException is thrown is setAttribute
29
* called but no setMethod field has been provided.
30
* @author Jean-Francois Denise
31
*
32
* @run clean RequiredModelMBeanSetAttributeTest
33
* @run build RequiredModelMBeanSetAttributeTest
34
* @run main RequiredModelMBeanSetAttributeTest
35
*/
36
37
import javax.management.Descriptor;
38
import javax.management.MBeanServer;
39
import javax.management.MBeanServerFactory;
40
import javax.management.ObjectName;
41
import javax.management.Attribute;
42
import javax.management.MBeanException;
43
import javax.management.ServiceNotFoundException;
44
import javax.management.modelmbean.DescriptorSupport;
45
import javax.management.modelmbean.ModelMBean;
46
import javax.management.modelmbean.ModelMBeanAttributeInfo;
47
import javax.management.modelmbean.ModelMBeanInfo;
48
import javax.management.modelmbean.ModelMBeanInfoSupport;
49
import javax.management.modelmbean.ModelMBeanOperationInfo;
50
import javax.management.modelmbean.RequiredModelMBean;
51
52
public class RequiredModelMBeanSetAttributeTest {
53
54
public static void main(String[] args) throws Exception {
55
56
boolean ok = true;
57
58
MBeanServer mbs = MBeanServerFactory.createMBeanServer();
59
60
// ModelMBeanAttributeInfo
61
62
Descriptor somethingAttributeDescriptor =
63
new DescriptorSupport(new String[] {
64
"name=Something",
65
"descriptorType=attribute",
66
"getMethod=getSomething"
67
});
68
ModelMBeanAttributeInfo somethingAttributeInfo =
69
new ModelMBeanAttributeInfo("Something",
70
"java.lang.String",
71
"Something attribute",
72
true,
73
true,
74
false,
75
somethingAttributeDescriptor);
76
77
Descriptor somethingCachedAttributeDescriptor =
78
new DescriptorSupport(new String[] {
79
"name=SomethingCached",
80
"descriptorType=attribute",
81
"getMethod=getSomethingCached",
82
"currencyTimeLimit=5000"
83
});
84
ModelMBeanAttributeInfo somethingCachedAttributeInfo =
85
new ModelMBeanAttributeInfo("SomethingCached",
86
"java.lang.String",
87
"Something cached attribute",
88
true,
89
true,
90
false,
91
somethingCachedAttributeDescriptor);
92
// ModelMBeanInfo
93
94
ModelMBeanInfo mmbi = new ModelMBeanInfoSupport(
95
Resource.class.getName(),
96
"Resource MBean",
97
new ModelMBeanAttributeInfo[] { somethingAttributeInfo, somethingCachedAttributeInfo },
98
null,
99
new ModelMBeanOperationInfo[] {},
100
null);
101
102
// RequiredModelMBean
103
104
ModelMBean mmb = new RequiredModelMBean(mmbi);
105
mmb.setManagedResource(resource, "ObjectReference");
106
ObjectName mmbName = new ObjectName(":type=ResourceMBean");
107
mbs.registerMBean(mmb, mmbName);
108
109
// Run tests
110
111
System.out.println("\nTest that we receive ServiceNotFoundException");
112
try {
113
Attribute attr = new Attribute("Something", "Some string");
114
mbs.setAttribute(mmbName, attr);
115
System.out.println("TEST FAILED: Didn't caught exception");
116
ok = false;
117
} catch(MBeanException mbex) {
118
Exception e = mbex.getTargetException();
119
if(e == null || !(e instanceof ServiceNotFoundException)) {
120
System.out.println("TEST FAILED: Caught wrong exception:" + e);
121
ok = false;
122
} else
123
System.out.println("Received expected ServiceNotFoundException");
124
125
} catch (Exception e) {
126
System.out.println("TEST FAILED: Caught wrong exception: " + e);
127
e.printStackTrace(System.out);
128
ok = false;
129
}
130
131
//Now check that when caching is enabled, setAttribute is working
132
System.out.println("\nTest that we are not receiving ServiceNotFoundException");
133
try {
134
Attribute attr = new Attribute("SomethingCached", "Some string");
135
mbs.setAttribute(mmbName, attr);
136
System.out.println("No exception thrown");
137
} catch (Exception e) {
138
System.out.println("TEST FAILED: Caught an exception: " + e);
139
e.printStackTrace(System.out);
140
ok = false;
141
}
142
143
if (ok)
144
System.out.println("Test passed");
145
else {
146
System.out.println("TEST FAILED");
147
throw new Exception("TEST FAILED");
148
}
149
}
150
151
public static class Resource {
152
public String getSomething() {
153
return "Something value";
154
}
155
public String getSomethingCached() {
156
return "Something cached value";
157
}
158
}
159
160
private static Resource resource = new Resource();
161
}
162
163