KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > javax > management > QueryTest


1 /*
2  * Copyright (C) The MX4J Contributors.
3  * All rights reserved.
4  *
5  * This software is distributed under the terms of the MX4J License version 1.0.
6  * See the terms of the MX4J License in the documentation provided with this software.
7  */

8
9 package test.javax.management;
10
11 import java.util.Arrays JavaDoc;
12 import java.util.Set JavaDoc;
13 import javax.management.MBeanServer JavaDoc;
14 import javax.management.MBeanServerFactory JavaDoc;
15 import javax.management.ObjectInstance JavaDoc;
16 import javax.management.ObjectName JavaDoc;
17 import javax.management.Query JavaDoc;
18 import javax.management.ValueExp JavaDoc;
19
20 import junit.framework.TestCase;
21 import test.javax.management.support.QuerySupport;
22
23 /**
24  * Class QueryTest, tests the query service
25  *
26  * @version $Revision: 1.10 $
27  */

28 public class QueryTest extends TestCase
29 {
30    public QueryTest(String JavaDoc name)
31    {
32       super(name);
33    }
34
35    public void testQueryEmpty() throws Exception JavaDoc
36    {
37       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
38
39       int count = server.getMBeanCount().intValue();
40       QuerySupport.Test bean1 = new QuerySupport.Test(null, null, null);
41       server.registerMBean(bean1, new ObjectName JavaDoc("Query:name=bean1"));
42       QuerySupport.Test bean2 = new QuerySupport.Test(null, null, null);
43       server.registerMBean(bean2, new ObjectName JavaDoc("Query:name=bean2"));
44       QuerySupport.Test bean3 = new QuerySupport.Test(null, null, null);
45       server.registerMBean(bean3, new ObjectName JavaDoc("Query:name=bean3"));
46       Set JavaDoc result = server.queryMBeans(null, null);
47       assertNotNull(result);
48       assertEquals(count + 3, result.size());
49       result = server.queryNames(null, null);
50       assertEquals(count + 3, result.size());
51       assertNotNull(result);
52       assertTrue(result.contains(new ObjectName JavaDoc("Query:name=bean1")));
53       assertTrue(result.contains(new ObjectName JavaDoc("Query:name=bean2")));
54       assertTrue(result.contains(new ObjectName JavaDoc("Query:name=bean3")));
55    }
56
57    public void testStringMatch() throws Exception JavaDoc
58    {
59       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
60
61       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
62       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
63       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
64
65       QuerySupport.Test a = new QuerySupport.Test("trial", null, null);
66       QuerySupport.Test b = new QuerySupport.Test("arial", null, null);
67       QuerySupport.Test c = new QuerySupport.Test("trial2", null, null);
68       server.registerMBean(a, name1);
69       server.registerMBean(b, name2);
70       server.registerMBean(c, name3);
71       Set JavaDoc result =
72               server.queryMBeans(null,
73                                  Query.match(Query.attr("Str"), Query.value("*rial")));
74       assertEquals(2, result.size());
75       result =
76       server.queryMBeans(null,
77                          Query.match(Query.attr("Str"), Query.value("[at]rial")));
78       assertEquals(1, result.size());
79       result =
80       server.queryMBeans(null,
81                          Query.match(Query.attr("Str"), Query.value("[a-z]rial")));
82       assertEquals(2, result.size());
83       result =
84       server.queryMBeans(null,
85                          Query.match(Query.attr("Str"), Query.value("[b-z]rial?")));
86       assertEquals(1, result.size());
87    }
88
89    public void testArray() throws Exception JavaDoc
90    {
91       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
92
93       QuerySupport.Test bean1 =
94               new QuerySupport.Test("a", new Integer JavaDoc(0), null);
95       server.registerMBean(bean1, new ObjectName JavaDoc("Query:name=bean1"));
96       QuerySupport.Test bean2 =
97               new QuerySupport.Test("b", new Integer JavaDoc(1), null);
98       server.registerMBean(bean2, new ObjectName JavaDoc("Query:name=bean2"));
99       QuerySupport.Test bean3 =
100               new QuerySupport.Test("c", new Integer JavaDoc(2), null);
101       server.registerMBean(bean3, new ObjectName JavaDoc("Query:name=bean3"));
102       Set JavaDoc result =
103               server.queryMBeans(null,
104                                  Query.in(Query.attr("Number"),
105                                           new ValueExp JavaDoc[]{Query.value(0), Query.value(1)}));
106       assertEquals(2, result.size());
107       result =
108       server.queryMBeans(null,
109                          Query.in(Query.attr("Str"),
110                                   new ValueExp JavaDoc[]{Query.value("a"), Query.value("d")}));
111       assertEquals(1, result.size());
112    }
113
114    public void testFinalSubString() throws Exception JavaDoc
115    {
116       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
117
118       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
119       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
120       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
121
122       QuerySupport.Test a = new QuerySupport.Test("trial", null, null);
123       QuerySupport.Test b = new QuerySupport.Test("arial", null, null);
124       QuerySupport.Test c = new QuerySupport.Test("tria2l", null, null);
125       server.registerMBean(a, name1);
126       server.registerMBean(b, name2);
127       server.registerMBean(c, name3);
128       Set JavaDoc result =
129               server.queryMBeans(null,
130                                  Query.finalSubString(Query.attr("Str"), Query.value("l")));
131       assertEquals(3, result.size());
132       result =
133       server.queryMBeans(null,
134                          Query.finalSubString(Query.attr("Str"), Query.value("rial")));
135       assertEquals(2, result.size());
136       result =
137       server.queryMBeans(null,
138                          Query.finalSubString(Query.attr("Str"),
139                                               Query.value("nothing")));
140       assertEquals(0, result.size());
141    }
142
143    public void testInitialString() throws Exception JavaDoc
144    {
145       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
146
147       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
148       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
149       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
150
151       QuerySupport.Test a = new QuerySupport.Test("trial", null, null);
152       QuerySupport.Test b = new QuerySupport.Test("arial", null, null);
153       QuerySupport.Test c = new QuerySupport.Test("trial2", null, null);
154       server.registerMBean(a, name1);
155       server.registerMBean(b, name2);
156       server.registerMBean(c, name3);
157       Set JavaDoc result =
158               server.queryMBeans(null,
159                                  Query.initialSubString(Query.attr("Str"), Query.value("t")));
160       assertEquals(2, result.size());
161       result =
162       server.queryMBeans(null,
163                          Query.initialSubString(Query.attr("Str"), Query.value("tr")));
164       assertEquals(2, result.size());
165       result =
166       server.queryMBeans(null,
167                          Query.initialSubString(Query.attr("Str"), Query.value("tri")));
168       assertEquals(2, result.size());
169       result =
170       server.queryMBeans(null,
171                          Query.initialSubString(Query.attr("Str"),
172                                                 Query.value("nothing")));
173       assertEquals(0, result.size());
174    }
175
176    public void testMathOperations() throws Exception JavaDoc
177    {
178       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
179
180       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
181       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
182       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
183
184       QuerySupport.Test a = new QuerySupport.Test(null, new Integer JavaDoc(1), null);
185       QuerySupport.Test b = new QuerySupport.Test(null, new Integer JavaDoc(2), null);
186       QuerySupport.Test c = new QuerySupport.Test(null, new Integer JavaDoc(3), null);
187       server.registerMBean(a, name1);
188       server.registerMBean(b, name2);
189       server.registerMBean(c, name3);
190       Set JavaDoc result =
191               server.queryMBeans(null,
192                                  Query.eq(Query.value(3),
193                                           Query.plus(Query.attr("Number"), Query.value(1))));
194       assertEquals(1, result.size());
195       result =
196       server.queryMBeans(null,
197                          Query.eq(Query.value(0),
198                                   Query.minus(Query.attr("Number"), Query.value(2))));
199       assertEquals(1, result.size());
200       result =
201       server.queryMBeans(null,
202                          Query.eq(Query.value(0),
203                                   Query.times(Query.attr("Number"), Query.value(0))));
204       assertEquals(3, result.size());
205       result =
206       server.queryMBeans(null,
207                          Query.eq(Query.value(1),
208                                   Query.div(Query.attr("Number"), Query.value(3))));
209       assertEquals(1, result.size());
210    }
211
212    public void testAttribute() throws Exception JavaDoc
213    {
214       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
215
216       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
217       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
218       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
219
220       QuerySupport.Test a = new QuerySupport.Test(null, new Integer JavaDoc(1), null);
221       QuerySupport.Test b = new QuerySupport.Test(null, new Integer JavaDoc(2), null);
222       QuerySupport.Test c = new QuerySupport.Test(null, new Integer JavaDoc(2), null);
223       server.registerMBean(a, name1);
224       server.registerMBean(b, name2);
225       server.registerMBean(c, name3);
226       Set JavaDoc result =
227               server.queryMBeans(null,
228                                  Query.eq(Query.value(2), Query.attr("Number")));
229       assertEquals(2, result.size());
230       result =
231       server.queryMBeans(null,
232                          Query.eq(Query.classattr(),
233                                   Query.value("test.javax.management.support.QuerySupport$Test")));
234       assertEquals(3, result.size());
235    }
236
237    public void testBetween() throws Exception JavaDoc
238    {
239       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
240
241       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
242       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
243       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
244
245       QuerySupport.Test a = new QuerySupport.Test("a", new Integer JavaDoc(1), null);
246       QuerySupport.Test b = new QuerySupport.Test("b", new Integer JavaDoc(2), null);
247       QuerySupport.Test c = new QuerySupport.Test("c", new Integer JavaDoc(5), null);
248       server.registerMBean(a, name1);
249       server.registerMBean(b, name2);
250       server.registerMBean(c, name3);
251       Set JavaDoc result =
252               server.queryMBeans(null,
253                                  Query.between(Query.attr("Number"),
254                                                Query.value(2),
255                                                Query.value(3)));
256       assertEquals(1, result.size());
257       result =
258       server.queryMBeans(null,
259                          Query.between(Query.attr("Number"),
260                                        Query.value(1),
261                                        Query.value(3)));
262       assertEquals(2, result.size());
263       result =
264       server.queryMBeans(null,
265                          Query.between(Query.attr("Number"),
266                                        Query.value(1),
267                                        Query.value(5)));
268       assertEquals(3, result.size());
269 /*
270       result =
271       server.queryMBeans(null,
272                          Query.between(Query.attr("Str"),
273                                        Query.value("a"),
274                                        Query.value("b")));
275       assertEquals(2, result.size());
276       result =
277       server.queryMBeans(null,
278                          Query.between(Query.attr("Str"),
279                                        Query.value("a"),
280                                        Query.value("z")));
281       assertEquals(3, result.size());
282 */

283    }
284
285    public void testRelation() throws Exception JavaDoc
286    {
287       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
288
289       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
290       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
291       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
292       ObjectName JavaDoc name4 = new ObjectName JavaDoc("BigNumber:name=test4");
293       ObjectName JavaDoc name5 = new ObjectName JavaDoc("BigNumber:name=test5");
294       ObjectName JavaDoc name6 = new ObjectName JavaDoc("LittleNumber:name=test6");
295
296       QuerySupport.Test a = new QuerySupport.Test("a", new Integer JavaDoc(1), null);
297       QuerySupport.Test b = new QuerySupport.Test("b", new Integer JavaDoc(2), null);
298       QuerySupport.Test c = new QuerySupport.Test("c", new Integer JavaDoc(5), null);
299       QuerySupport.Test d =
300               new QuerySupport.Test("d", new Integer JavaDoc(112), null);
301       QuerySupport.DynamicTest e =
302               new QuerySupport.DynamicTest("e", 119L, null);
303       QuerySupport.DynamicTest f =
304               new QuerySupport.DynamicTest("f", 8L, null);
305
306       server.registerMBean(a, name1);
307       server.registerMBean(b, name2);
308       server.registerMBean(c, name3);
309       server.registerMBean(d, name4);
310       server.registerMBean(e, name5);
311       server.registerMBean(f, name6);
312
313       Set JavaDoc result =
314               server.queryMBeans(null,
315                                  Query.lt(Query.attr("Number"), Query.value(3)));
316       assertEquals(2, result.size());
317       result =
318       server.queryMBeans(null,
319                          Query.leq(Query.attr("Number"), Query.value(5)));
320       assertEquals(3, result.size());
321       result =
322       server.queryMBeans(new ObjectName JavaDoc("StringMatch:*"),
323                          Query.eq(Query.attr("Str"), Query.value("a")));
324       assertEquals(1, result.size());
325       result =
326       server.queryMBeans(new ObjectName JavaDoc("StringMatch:*"),
327                          Query.gt(Query.attr("Number"), Query.value(2)));
328       assertEquals(1, result.size());
329       result =
330       server.queryMBeans(null,
331                          Query.gt(Query.attr("Boolean"), Query.value(2)));
332       assertEquals(0, result.size());
333       result =
334       server.queryMBeans(new ObjectName JavaDoc("StringMatch:*"),
335                          Query.geq(Query.attr("Number"), Query.value(2)));
336       assertEquals(2, result.size());
337       result =
338       server.queryMBeans(new ObjectName JavaDoc("StringMatch:*"),
339                          Query.geq(Query.attr("Str"), Query.value("a")));
340       assertEquals(3, result.size());
341       result =
342       server.queryMBeans(null,
343                          Query.gt(Query.attr("Number"), Query.value(2)));
344       assertEquals(4, result.size());
345       result =
346       server.queryMBeans(new ObjectName JavaDoc("*Number:*"),
347                          Query.gt(Query.attr("Number"), Query.value(100)));
348       assertEquals(2, result.size());
349    }
350
351    public void testAnyString() throws Exception JavaDoc
352    {
353       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
354
355       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
356       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
357       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
358
359       QuerySupport.Test a = new QuerySupport.Test("trial", null, null);
360       QuerySupport.Test b = new QuerySupport.Test("arial", null, null);
361       QuerySupport.Test c = new QuerySupport.Test("trial2", null, null);
362       server.registerMBean(a, name1);
363       server.registerMBean(b, name2);
364       server.registerMBean(c, name3);
365       Set JavaDoc result =
366               server.queryMBeans(null,
367                                  Query.anySubString(Query.attr("Str"), Query.value("trial")));
368       assertEquals(2, result.size());
369       result =
370       server.queryMBeans(null,
371                          Query.anySubString(Query.attr("Str"), Query.value("rial")));
372       assertEquals(3, result.size());
373       result =
374       server.queryMBeans(null,
375                          Query.anySubString(Query.attr("Str"), Query.value("tri")));
376       assertEquals(2, result.size());
377       result =
378       server.queryMBeans(null,
379                          Query.anySubString(Query.attr("Str"), Query.value("ri")));
380       assertEquals(3, result.size());
381       result =
382       server.queryMBeans(null,
383                          Query.anySubString(Query.attr("Str"), Query.value("no")));
384       assertEquals(0, result.size());
385    }
386
387    public void testNotOperation() throws Exception JavaDoc
388    {
389       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
390
391       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
392
393       QuerySupport.Test a = new QuerySupport.Test(null, null, Boolean.TRUE);
394       server.registerMBean(a, name1);
395       Set JavaDoc result =
396               server.queryMBeans(null,
397                                  Query.not(Query.eq(Query.value(false), Query.attr("Boolean"))));
398       assertEquals(1, result.size());
399    }
400
401    public void testLogical() throws Exception JavaDoc
402    {
403       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
404
405       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
406       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
407       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
408
409       QuerySupport.Test a =
410               new QuerySupport.Test("a", new Integer JavaDoc(1), Boolean.TRUE);
411       QuerySupport.Test b =
412               new QuerySupport.Test("b", new Integer JavaDoc(2), Boolean.FALSE);
413       QuerySupport.Test c =
414               new QuerySupport.Test("c", new Integer JavaDoc(5), Boolean.TRUE);
415       server.registerMBean(a, name1);
416       server.registerMBean(b, name2);
417       server.registerMBean(c, name3);
418       Set JavaDoc result =
419               server.queryMBeans(null,
420                                  Query.and(Query.eq(Query.attr("Boolean"), Query.value(true)),
421                                            Query.lt(Query.attr("Number"), Query.value(3))));
422       assertEquals(1, result.size());
423       result =
424       server.queryMBeans(null,
425                          Query.or(Query.eq(Query.attr("Boolean"), Query.value(true)),
426                                   Query.eq(Query.attr("Str"), Query.value("a"))));
427       assertEquals(2, result.size());
428       result =
429       server.queryMBeans(null,
430                          Query.or(Query.eq(Query.attr("Boolean"), Query.value(true)),
431                                   Query.geq(Query.attr("Str"), Query.value("a"))));
432       assertEquals(3, result.size());
433    }
434
435    public void testQualifiedAttributeName() throws Exception JavaDoc
436    {
437       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
438
439       ObjectName JavaDoc name1 = new ObjectName JavaDoc("StringMatch:name=test1");
440       ObjectName JavaDoc name2 = new ObjectName JavaDoc("StringMatch:name=test2");
441       ObjectName JavaDoc name3 = new ObjectName JavaDoc("StringMatch:name=test3");
442
443       QuerySupport.Test a =
444               new QuerySupport.Test("a", new Integer JavaDoc(1), Boolean.TRUE);
445       QuerySupport.Test b =
446               new QuerySupport.Test("b", new Integer JavaDoc(2), Boolean.FALSE);
447       QuerySupport.Test c =
448               new QuerySupport.Test("c", new Integer JavaDoc(5), Boolean.TRUE);
449       server.registerMBean(a, name1);
450       server.registerMBean(b, name2);
451       server.registerMBean(c, name3);
452       Set JavaDoc result =
453               server.queryMBeans(null,
454                                  Query.eq(Query.attr("test.javax.management.support.QuerySupport$Test",
455                                                      "Number"),
456                                           Query.value(2)));
457       assertEquals(1, result.size());
458       result =
459       server.queryMBeans(null,
460                          Query.eq(Query.attr("test.javax.management.support.QuerySupport.Test2",
461                                              "Number"),
462                                   Query.value(2)));
463       assertEquals(0, result.size());
464    }
465
466    public void testQueryScope() throws Exception JavaDoc
467    {
468       MBeanServer JavaDoc server = MBeanServerFactory.newMBeanServer("query");
469
470       ObjectName JavaDoc name1 = new ObjectName JavaDoc("Scope:name0=test0");
471       ObjectName JavaDoc name2 = new ObjectName JavaDoc("Scope2:name0=test0");
472       ObjectName JavaDoc name3 = new ObjectName JavaDoc("Scope:name1=test1");
473       ObjectName JavaDoc name4 = new ObjectName JavaDoc("Scope:name1=test1,name2=test2");
474       ObjectName JavaDoc name5 =
475               new ObjectName JavaDoc("Scope:name0=test0,name1=test1,name2=test2");
476
477       QuerySupport.Test a =
478               new QuerySupport.Test("a", new Integer JavaDoc(1), Boolean.TRUE);
479       QuerySupport.Test b =
480               new QuerySupport.Test("b", new Integer JavaDoc(2), Boolean.TRUE);
481       QuerySupport.Test c =
482               new QuerySupport.Test("c", new Integer JavaDoc(3), Boolean.TRUE);
483       QuerySupport.Test d =
484               new QuerySupport.Test("d", new Integer JavaDoc(4), Boolean.TRUE);
485       QuerySupport.Test e =
486               new QuerySupport.Test("e", new Integer JavaDoc(5), Boolean.TRUE);
487       server.registerMBean(a, name1);
488       server.registerMBean(b, name2);
489       server.registerMBean(c, name3);
490       server.registerMBean(d, name4);
491       server.registerMBean(e, name5);
492
493       ObjectName JavaDoc scope = new ObjectName JavaDoc("*:*");
494
495       int count = server.getMBeanCount().intValue();
496       Set JavaDoc result = server.queryMBeans(scope, null);
497       assertEquals(count, result.size());
498
499       scope = new ObjectName JavaDoc("*:name0=test0");
500       result = server.queryMBeans(scope, null);
501       assertEquals(2, result.size());
502
503       scope = new ObjectName JavaDoc("*:name0=test0,*");
504       result = server.queryMBeans(scope, null);
505       assertEquals(3, result.size());
506
507       scope = new ObjectName JavaDoc("*:name1=test1");
508       result = server.queryMBeans(scope, null);
509       assertEquals(1, result.size());
510
511       scope = new ObjectName JavaDoc("*:*,name1=test1");
512       result = server.queryMBeans(scope, null);
513       assertEquals(3, result.size());
514
515       scope = new ObjectName JavaDoc("*:name1=test1,*");
516       result = server.queryMBeans(scope, null);
517       assertEquals(3, result.size());
518
519       scope = new ObjectName JavaDoc("*:name2=test2");
520       result = server.queryMBeans(scope, null);
521       assertEquals(0, result.size());
522
523       scope = new ObjectName JavaDoc("*:name2=test2,*");
524       result = server.queryMBeans(scope, null);
525       assertEquals(2, result.size());
526
527       scope = new ObjectName JavaDoc("*:name0=test0,name2=test2");
528       result = server.queryMBeans(scope, null);
529       assertEquals(0, result.size());
530
531       scope = new ObjectName JavaDoc("*:name0=test0,name2=test2,*");
532       result = server.queryMBeans(scope, null);
533       assertEquals(1, result.size());
534
535       ObjectName JavaDoc[] xpnames = new ObjectName JavaDoc[]{name1, name2};
536       scope = new ObjectName JavaDoc("S*:name0=test0");
537       result = server.queryNames(scope, null);
538       assertTrue(Arrays.asList(xpnames).containsAll(result));
539       ObjectInstance JavaDoc[] xpinstances =
540               new ObjectInstance JavaDoc[]{
541                  new ObjectInstance JavaDoc(name1, QuerySupport.Test.class.getName()),
542                  new ObjectInstance JavaDoc(name2, QuerySupport.Test.class.getName())};
543       result = server.queryMBeans(scope, null);
544       assertTrue(Arrays.asList(xpinstances).containsAll(result)
545                  && result.size() == xpinstances.length);
546       assertEquals(2, result.size());
547
548       scope = new ObjectName JavaDoc("S*:*");
549       xpnames = new ObjectName JavaDoc[]{name1, name2, name3, name4, name5};
550       result = server.queryNames(scope, null);
551       assertTrue(Arrays.asList(xpnames).containsAll(result)
552                  && result.size() == xpnames.length);
553       result = server.queryMBeans(scope, null);
554       xpinstances =
555       new ObjectInstance JavaDoc[]{
556          new ObjectInstance JavaDoc(name1, QuerySupport.Test.class.getName()),
557          new ObjectInstance JavaDoc(name2, QuerySupport.Test.class.getName()),
558          new ObjectInstance JavaDoc(name3, QuerySupport.Test.class.getName()),
559          new ObjectInstance JavaDoc(name4, QuerySupport.Test.class.getName()),
560          new ObjectInstance JavaDoc(name5, QuerySupport.Test.class.getName())};
561       assertTrue(Arrays.asList(xpinstances).containsAll(result)
562                  && result.size() == xpinstances.length);
563       assertEquals(5, result.size());
564
565       scope = new ObjectName JavaDoc("Scope?:*");
566       xpnames = new ObjectName JavaDoc[]{name2};
567       result = server.queryNames(scope, null);
568       assertTrue(Arrays.asList(xpnames).containsAll(result)
569                  && result.size() == xpnames.length);
570       result = server.queryMBeans(scope, null);
571       xpinstances =
572       new ObjectInstance JavaDoc[]{
573          new ObjectInstance JavaDoc(name2, QuerySupport.Test.class.getName())};
574       assertTrue(Arrays.asList(xpinstances).containsAll(result)
575                  && result.size() == xpinstances.length);
576       assertEquals(1, result.size());
577
578       scope = new ObjectName JavaDoc("S?o?e?:*");
579       xpnames = new ObjectName JavaDoc[]{name2};
580       result = server.queryNames(scope, null);
581       assertTrue(Arrays.asList(xpnames).containsAll(result)
582                  && result.size() == xpnames.length);
583       result = server.queryMBeans(scope, null);
584       xpinstances =
585       new ObjectInstance JavaDoc[]{
586          new ObjectInstance JavaDoc(name2, QuerySupport.Test.class.getName())};
587       assertTrue(Arrays.asList(xpinstances).containsAll(result)
588                  && result.size() == xpinstances.length);
589       assertEquals(1, result.size());
590
591       scope = new ObjectName JavaDoc("?c*e?:*");
592       xpnames = new ObjectName JavaDoc[]{name2};
593       result = server.queryNames(scope, null);
594       assertTrue(Arrays.asList(xpnames).containsAll(result)
595                  && result.size() == xpnames.length);
596       result = server.queryMBeans(scope, null);
597       xpinstances =
598       new ObjectInstance JavaDoc[]{
599          new ObjectInstance JavaDoc(name2, QuerySupport.Test.class.getName())};
600       assertTrue(Arrays.asList(xpinstances).containsAll(result)
601                  && result.size() == xpinstances.length);
602       assertEquals(1, result.size());
603    }
604
605    public void testExceptionPropagation() throws Exception JavaDoc
606    {
607       MBeanServer JavaDoc server = MBeanServerFactory.createMBeanServer();
608       ObjectName JavaDoc objname =
609               new ObjectName JavaDoc("querytest:name=testExceptionPropagation");
610       QuerySupport.DynamicTest mbean =
611               new QuerySupport.DynamicTest("xyzzy", 42L, Boolean.TRUE);
612       server.registerMBean(mbean, objname);
613       Set JavaDoc result =
614               server.queryNames(null,
615                                 Query.match(Query.attr("Str"), Query.value("x*y")));
616       assertEquals(0, result.size());
617       result =
618       server.queryMBeans(new ObjectName JavaDoc("query*:*"),
619                          Query.match(Query.attr("Str"), Query.value("x*y")));
620       assertEquals(0, result.size());
621    }
622 }
623
Popular Tags