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/query/QuerySubstringTest.java
38838 views
1
/*
2
* Copyright (c) 2005, 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 4886033
27
* @summary Query.{initial,any,final}SubString fail if the
28
* matching constraint string contains wildcards.
29
* @author Luis-Miguel Alventosa
30
* @run clean QuerySubstringTest
31
* @run build QuerySubstringTest
32
* @run main QuerySubstringTest
33
*/
34
35
import java.lang.management.ManagementFactory;
36
import javax.management.MBeanServer;
37
import javax.management.ObjectName;
38
import javax.management.Query;
39
import javax.management.QueryExp;
40
41
public class QuerySubstringTest {
42
43
public static interface SimpleMBean {
44
public String getString();
45
}
46
47
public static class Simple implements SimpleMBean {
48
public Simple(String value) {
49
this.value = value;
50
}
51
public String getString() {
52
return value;
53
}
54
private String value;
55
}
56
57
private static String[][] data = {
58
{ "a*b?c\\d[e-f]", "OK", "OK", "OK" },
59
{ "a*b?c\\d[e-f]g", "OK", "OK", "KO" },
60
{ "za*b?c\\d[e-f]", "KO", "OK", "OK" },
61
{ "za*b?c\\d[e-f]g", "KO", "OK", "KO" },
62
{ "a*b?c\\de", "KO", "KO", "KO" },
63
{ "a*b?c\\deg", "KO", "KO", "KO" },
64
{ "za*b?c\\de", "KO", "KO", "KO" },
65
{ "za*b?c\\deg", "KO", "KO", "KO" },
66
{ "a*b?c\\df", "KO", "KO", "KO" },
67
{ "a*b?c\\dfg", "KO", "KO", "KO" },
68
{ "za*b?c\\df", "KO", "KO", "KO" },
69
{ "za*b?c\\dfg", "KO", "KO", "KO" },
70
{ "axxbxc\\de", "KO", "KO", "KO" },
71
{ "axxbxc\\deg", "KO", "KO", "KO" },
72
{ "zaxxbxc\\de", "KO", "KO", "KO" },
73
{ "zaxxbxc\\deg", "KO", "KO", "KO" },
74
{ "axxbxc\\df", "KO", "KO", "KO" },
75
{ "axxbxc\\dfg", "KO", "KO", "KO" },
76
{ "zaxxbxc\\df", "KO", "KO", "KO" },
77
{ "zaxxbxc\\dfg", "KO", "KO", "KO" },
78
};
79
80
private static int query(MBeanServer mbs,
81
int type,
82
String substring,
83
String[][] data) throws Exception {
84
85
int error = 0;
86
87
String querySubString = null;
88
switch (type) {
89
case 1:
90
querySubString = "InitialSubString";
91
break;
92
case 2:
93
querySubString = "AnySubString";
94
break;
95
case 3:
96
querySubString = "FinalSubString";
97
break;
98
}
99
100
System.out.println("\n" + querySubString + " = " + substring + "\n");
101
102
for (int i = 0; i < data.length; i++) {
103
ObjectName on = new ObjectName("test:type=Simple,query=" +
104
querySubString + ",name=" + i);
105
Simple s = new Simple(data[i][0]);
106
mbs.registerMBean(s, on);
107
QueryExp q = null;
108
switch (type) {
109
case 1:
110
q = Query.initialSubString(Query.attr("String"),
111
Query.value(substring));
112
break;
113
case 2:
114
q = Query.anySubString(Query.attr("String"),
115
Query.value(substring));
116
break;
117
case 3:
118
q = Query.finalSubString(Query.attr("String"),
119
Query.value(substring));
120
break;
121
}
122
q.setMBeanServer(mbs);
123
boolean r = q.apply(on);
124
System.out.print("Attribute Value = " +
125
mbs.getAttribute(on, "String"));
126
if (r && "OK".equals(data[i][type])) {
127
System.out.println(" OK");
128
} else if (!r && "KO".equals(data[i][type])) {
129
System.out.println(" KO");
130
} else {
131
System.out.println(" Error");
132
error++;
133
}
134
}
135
136
return error;
137
}
138
139
public static void main(String[] args) throws Exception {
140
141
int error = 0;
142
143
String pattern = "a*b?c\\d[e-f]";
144
145
System.out.println(
146
"\n--- Test javax.management.Query.{initial|any|final}SubString ---");
147
148
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
149
150
error += query(mbs, 1, pattern, data);
151
152
error += query(mbs, 2, pattern, data);
153
154
error += query(mbs, 3, pattern, data);
155
156
if (error > 0) {
157
System.out.println("\nTest failed! " + error + " errors.\n");
158
throw new IllegalArgumentException("Test failed");
159
} else {
160
System.out.println("\nTest passed!\n");
161
}
162
}
163
}
164
165