Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/management/relation/NonArrayListTest.java
38839 views
1
/*
2
* Copyright (c) 2003, 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 4848474
27
* @summary Test that relation service doesn't require List params to be ArrayList
28
* @author Eamonn McManus
29
* @run clean NonArrayListTest
30
* @run build NonArrayListTest
31
* @run main NonArrayListTest
32
*/
33
34
import java.util.*;
35
import javax.management.*;
36
import javax.management.relation.*;
37
import javax.management.loading.MLet;
38
39
public class NonArrayListTest {
40
public static void main(String[] args) throws Exception {
41
MBeanServer mbs = MBeanServerFactory.createMBeanServer();
42
RelationService rs = new RelationService(true);
43
ObjectName rsName = new ObjectName("r:type=RelationService");
44
mbs.registerMBean(rs, rsName);
45
RelationServiceMBean rsProxy = (RelationServiceMBean)
46
MBeanServerInvocationHandler.newProxyInstance(mbs,
47
rsName,
48
RelationServiceMBean.class,
49
false);
50
51
ObjectName mlet1Name = new ObjectName("r:type=MLet,instance=1");
52
ObjectName mlet2Name = new ObjectName("r:type=MLet,instance=2");
53
mbs.createMBean(MLet.class.getName(), mlet1Name);
54
mbs.createMBean(MLet.class.getName(), mlet2Name);
55
56
RoleInfo leftRoleInfo = new RoleInfo("left", MLet.class.getName());
57
RoleInfo rightRoleInfo = new RoleInfo("right", MLet.class.getName());
58
59
ArrayList leftRoleValues =
60
new ArrayList(Arrays.asList(new ObjectName[] {mlet1Name}));
61
ArrayList rightRoleValues =
62
new ArrayList(Arrays.asList(new ObjectName[] {mlet2Name}));
63
Role leftRole = new Role("left", leftRoleValues);
64
Role rightRole = new Role("right", rightRoleValues);
65
66
RelationType leftRightType =
67
new RelationTypeSupport("leftRight",
68
new RoleInfo[] {leftRoleInfo,
69
rightRoleInfo});
70
RoleList roleList =
71
new RoleList(new ArrayList(Arrays.asList(new Role[] {
72
leftRole, rightRole,
73
})));
74
rsProxy.addRelationType(leftRightType);
75
rsProxy.createRelation("relId", "leftRight", roleList);
76
77
boolean ok = true;
78
ObjectName oname = new ObjectName("a:b=c");
79
List onameList =
80
new Vector(Arrays.asList(new ObjectName[] {oname}));
81
82
String testName;
83
84
testName = "RelationNotification constructor with only 9 arguments";
85
try {
86
RelationNotification notif =
87
new RelationNotification(RelationNotification.RELATION_BASIC_CREATION,
88
rs, // theSrcObj
89
0L, // TheSeqNbr
90
0L, // theTimeStamp
91
"theMsg",
92
"theRelId",
93
"theRelTypeName",
94
oname,
95
onameList);
96
System.out.println("OK: " + testName);
97
} catch (Exception e) {
98
System.err.println("Exception for " + testName);
99
e.printStackTrace();
100
ok = false;
101
}
102
103
testName = "RelationNotification constructor with 11 arguments";
104
try {
105
RelationNotification notif =
106
new RelationNotification(RelationNotification.RELATION_BASIC_UPDATE,
107
rs, // theSrcObj
108
0L, // TheSeqNbr
109
0L, // theTimeStamp
110
"theMsg",
111
"theRelId",
112
"theRelTypeName",
113
oname,
114
"theRoleName",
115
onameList,
116
onameList);
117
System.out.println("OK: " + testName);
118
} catch (Exception e) {
119
System.err.println("Exception for " + testName);
120
e.printStackTrace();
121
ok = false;
122
}
123
124
testName = "RelationService.sendNotification";
125
try {
126
rsProxy.sendRoleUpdateNotification("relId", leftRole, onameList);
127
System.out.println("OK: " + testName);
128
} catch (Exception e) {
129
System.err.println("Exception for " + testName);
130
e.printStackTrace();
131
ok = false;
132
}
133
134
testName = "RelationService.updateRoleMap";
135
try {
136
rsProxy.updateRoleMap("relId", leftRole, onameList);
137
System.out.println("OK: " + testName);
138
} catch (Exception e) {
139
System.err.println("Exception for " + testName);
140
e.printStackTrace();
141
ok = false;
142
}
143
144
if (ok)
145
System.out.println("Tests passed");
146
else
147
System.err.println("SOME TESTS FAILED");
148
}
149
}
150
151