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