Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/lang/management/ManagementFactory/MXBeanProxyTest.java
41152 views
1
/*
2
* Copyright (c) 2004, 2016, 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 5024531
27
* @summary Basic Test for ManagementFactory.newPlatformMXBean().
28
* @author Mandy Chung
29
*
30
* @run main/othervm MXBeanProxyTest
31
*/
32
import javax.management.*;
33
import java.lang.management.ClassLoadingMXBean;
34
import java.lang.management.RuntimeMXBean;
35
import static java.lang.management.ManagementFactory.*;
36
public class MXBeanProxyTest {
37
private static MBeanServer server = getPlatformMBeanServer();
38
public static void main(String[] argv) throws Exception {
39
boolean iae = false;
40
try {
41
// Get a MXBean proxy with invalid name
42
newPlatformMXBeanProxy(server,
43
"Invalid ObjectName",
44
RuntimeMXBean.class);
45
} catch (IllegalArgumentException e) {
46
// Expected exception
47
System.out.println("EXPECTED: " + e);
48
iae = true;
49
}
50
if (!iae) {
51
throw new RuntimeException("Invalid ObjectName " +
52
" was not detected");
53
}
54
55
try {
56
// Get a MXBean proxy with non existent MXBean
57
newPlatformMXBeanProxy(server,
58
"java.lang:type=Foo",
59
RuntimeMXBean.class);
60
iae = false;
61
} catch (IllegalArgumentException e) {
62
// Expected exception
63
System.out.println("EXPECTED: " + e);
64
iae = true;
65
}
66
if (!iae) {
67
throw new RuntimeException("Non existent MXBean " +
68
" was not detected");
69
}
70
71
try {
72
// Mismatch MXBean interface
73
newPlatformMXBeanProxy(server,
74
RUNTIME_MXBEAN_NAME,
75
ClassLoadingMXBean.class);
76
iae = false;
77
} catch (IllegalArgumentException e) {
78
// Expected exception
79
System.out.println("EXPECTED: " + e);
80
iae = true;
81
}
82
if (!iae) {
83
throw new RuntimeException("Mismatched MXBean interface " +
84
" was not detected");
85
}
86
87
final FooMBean foo = new Foo();
88
final ObjectName objName = new ObjectName("java.lang:type=Foo");
89
server.registerMBean(foo, objName);
90
try {
91
// non-platform MXBean
92
newPlatformMXBeanProxy(server,
93
"java.lang:type=Foo",
94
FooMBean.class);
95
iae = false;
96
} catch (IllegalArgumentException e) {
97
// Expected exception
98
System.out.println("EXPECTED: " + e);
99
iae = true;
100
}
101
if (!iae) {
102
throw new RuntimeException("Non-platform MXBean " +
103
" was not detected");
104
}
105
106
107
// Successfully get MXBean
108
RuntimeMXBean rm = newPlatformMXBeanProxy(server,
109
RUNTIME_MXBEAN_NAME,
110
RuntimeMXBean.class);
111
System.out.println("VM uptime = " + rm.getUptime());
112
System.out.println("Test passed.");
113
}
114
115
public interface FooMBean {
116
public boolean isFoo();
117
}
118
static class Foo implements FooMBean {
119
public boolean isFoo() {
120
return true;
121
}
122
}
123
}
124
125