User: ejort
Date: 02/02/22 08:44:33
Added: src/main/test/compliance/query BasicQueryExpTestCase.java
QueryMBeansObjectNameOnlyTestCase.java
QuerySUITE.java
Log:
Default Domain, Querying, Various Other Fixes
Revision Changes Path
1.1 jmx/src/main/test/compliance/query/BasicQueryExpTestCase.java
Index: BasicQueryExpTestCase.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package test.compliance.query;
import junit.framework.TestCase;
import test.compliance.query.support.NumberTest;
import test.compliance.query.support.StringTest;
import test.compliance.query.support.Trivial;
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.Query;
import javax.management.QueryExp;
/**
* Some basic tests, to be replaced with proper tests
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
*/
public class BasicQueryExpTestCase
extends TestCase
{
// Attributes ----------------------------------------------------------------
// Constructor ---------------------------------------------------------------
/**
* Construct the test
*/
public BasicQueryExpTestCase(String s)
{
super(s);
}
// Tests ---------------------------------------------------------------------
/**
* Test a number equals.
*/
public void testNumberEquals1()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new NumberTest(10),
new ObjectName("Domain1:type=instance1")));
exp = Query.eq(Query.attr("Number"), Query.value(10));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test a number equals.
*/
public void testNumberEquals2()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
server.registerMBean(new NumberTest(9),
new ObjectName("Domain1:type=instance1"));
exp = Query.eq(Query.attr("Number"), Query.value(10));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test a number equals.
*/
public void testNumberEquals3()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new NumberTest(10),
new ObjectName("Domain1:type=instance1")));
server.registerMBean(new NumberTest(9),
new ObjectName("Domain1:type=instance2"));
exp = Query.eq(Query.attr("Number"), Query.value(10));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test starts with.
*/
public void testStartsWith1()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new StringTest("HelloWorld"),
new ObjectName("Domain1:type=instance1")));
exp = Query.initialSubString(Query.attr("String"), Query.value("Hello"));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test starts with.
*/
public void testStartsWith2()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
server.registerMBean(new StringTest("HelloWorld"),
new ObjectName("Domain1:type=instance1"));
exp = Query.initialSubString(Query.attr("String"), Query.value("Hi"));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test And.
*/
public void testAnd1()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new Trivial(10),
new ObjectName("Domain1:type=instance1")));
exp = Query.and(Query.eq(Query.attr("String"),Query.value("trivial")),
Query.eq(Query.attr("Number"),Query.value(10)));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test And.
*/
public void testAnd2()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
server.registerMBean(new Trivial(9),
new ObjectName("Domain1:type=instance1"));
exp = Query.and(Query.eq(Query.attr("String"),Query.value("trivial")),
Query.eq(Query.attr("Number"),Query.value(10)));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test And.
*/
public void testAnd3()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
server.registerMBean(new Trivial(10),
new ObjectName("Domain1:type=instance1"));
exp = Query.and(Query.eq(Query.attr("String"),Query.value("simple")),
Query.eq(Query.attr("Number"),Query.value(10)));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test Plus.
*/
public void testPlus1()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new NumberTest(10),
new ObjectName("Domain1:type=instance1")));
exp = Query.eq(Query.plus(Query.attr("Number"),Query.value(20d)),
Query.value(30l));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test Plus.
*/
public void testPlus2()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
server.registerMBean(new NumberTest(10),
new ObjectName("Domain1:type=instance1"));
exp = Query.eq(Query.plus(Query.attr("Number"),Query.value(20d)),
Query.value(0));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test Class Attribute.
*/
public void testClassAttr()
{
MBeanServer server = null;
HashSet instances = new HashSet();
QueryExp exp = null;
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new NumberTest(10),
new ObjectName("Domain1:type=instance1")));
server.registerMBean(new StringTest(),
new ObjectName("Domain1:type=instance2"));
exp = Query.eq(Query.classattr(),Query.value(NumberTest.class.getName()));
}
catch (Exception e)
{
fail(e.toString());
}
// Run the Query
resultMBeans = server.queryMBeans(null, exp);
resultNames = server.queryNames(null, exp);
// Check the result
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
// Support ----------------------------------------------------------------
/**
* Check the Query
*/
private void checkit(Set resultMBeans, Set resultNames, HashSet expected)
{
// Quick tests
assertEquals(expected.size(), resultMBeans.size());
assertEquals(expected.size(), resultNames.size());
// Get the expected ObjectNames
HashSet expectedNames = new HashSet();
Iterator iterator = expected.iterator();
while (iterator.hasNext())
{
expectedNames.add(((ObjectInstance) iterator.next()).getObjectName());
}
// Check resultMBeans
iterator = resultMBeans.iterator();
while (iterator.hasNext())
{
ObjectInstance instance = (ObjectInstance) iterator.next();
Iterator iterator2 = expected.iterator();
boolean found = false;
while (iterator2.hasNext())
{
if (iterator2.next().equals(instance))
{
iterator2.remove();
found = true;
break;
}
}
if (found == false)
fail("Unexpected instance " + instance.getObjectName());
}
// Check resultNames
iterator = resultNames.iterator();
while (iterator.hasNext())
{
ObjectName name = (ObjectName) iterator.next();
Iterator iterator2 = expectedNames.iterator();
boolean found = false;
while (iterator2.hasNext())
{
if (iterator2.next().equals(name))
{
iterator2.remove();
found = true;
break;
}
}
if (found == false)
fail("Unexpected name " + name);
}
}
}
1.1
jmx/src/main/test/compliance/query/QueryMBeansObjectNameOnlyTestCase.java
Index: QueryMBeansObjectNameOnlyTestCase.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package test.compliance.query;
import junit.framework.TestCase;
import test.compliance.query.support.Trivial;
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
/**
* Object Name Query tests.<p>
*
* TODO: More tests, more systematic?
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
*/
public class QueryMBeansObjectNameOnlyTestCase
extends TestCase
{
// Attributes ----------------------------------------------------------------
static final String JMI = "JMImplementation:type=MBeanServerDelegate";
// Constructor ---------------------------------------------------------------
/**
* Construct the test
*/
public QueryMBeansObjectNameOnlyTestCase(String s)
{
super(s);
}
// Tests ---------------------------------------------------------------------
/**
* Test single bean found.
*/
public void testExactFound()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance1")));
server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance2"));
server.registerMBean(new Trivial(),
new ObjectName("Domain2:type=instance1"));
server.registerMBean(new Trivial(),
new ObjectName("Domain3:type=instance1"));
resultMBeans = server.queryMBeans(new ObjectName("Domain1:type=instance1"),
null);
resultNames = server.queryNames(new ObjectName("Domain1:type=instance1"),
null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test single bean not found.
*/
public void testExactNotFound()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance1"));
server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance2"));
server.registerMBean(new Trivial(),
new ObjectName("Domain2:type=instance1"));
server.registerMBean(new Trivial(),
new ObjectName("Domain3:type=instance1"));
resultMBeans = server.queryMBeans(new ObjectName("Domain2:type=instance2"),
null);
resultNames = server.queryNames(new ObjectName("Domain2:type=instance2"),
null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test Get All.
*/
public void testGetAllMBeans()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.getObjectInstance(new ObjectName(JMI)));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance2")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain2:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain3:type=instance1")));
resultMBeans = server.queryMBeans(new ObjectName("*:*"), null);
resultNames = server.queryNames(new ObjectName("*:*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test Get All.
*/
public void testGetAllMBeans2()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.getObjectInstance(new ObjectName(JMI)));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance2")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain2:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain3:type=instance1")));
resultMBeans = server.queryMBeans(new ObjectName(""), null);
resultNames = server.queryNames(new ObjectName(""), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test Get All.
*/
public void testGetAllMBeans3()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.getObjectInstance(new ObjectName(JMI)));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance2")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain2:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain3:type=instance1")));
resultMBeans = server.queryMBeans(null, null);
resultNames = server.queryNames(null, null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test one domain.
*/
public void testGetOneDomain()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance2")));
server.registerMBean(new Trivial(),
new ObjectName("Domain2:type=instance1"));
server.registerMBean(new Trivial(),
new ObjectName("Domain3:type=instance1"));
resultMBeans = server.queryMBeans(new ObjectName("Domain1:*"), null);
resultNames = server.queryNames(new ObjectName("Domain1:*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test default domain.
*/
public void testGetDefaultDomain()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("Domain1");
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance2")));
server.registerMBean(new Trivial(),
new ObjectName("Domain2:type=instance1"));
server.registerMBean(new Trivial(),
new ObjectName("Domain3:type=instance1"));
resultMBeans = server.queryMBeans(new ObjectName(":*"), null);
resultNames = server.queryNames(new ObjectName(":*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test one property.
*/
public void testGetOneProperty()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance1")));
server.registerMBean(new Trivial(),
new ObjectName("Domain1:type=instance2"));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain2:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("Domain3:type=instance1")));
resultMBeans = server.queryMBeans(new ObjectName("*:type=instance1"), null);
resultNames = server.queryNames(new ObjectName("*:type=instance1"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* This one is from the spec.
*/
public void testSpecAll()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer();
instances.add(server.getObjectInstance(new ObjectName(JMI)));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Printer,type=laser")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("Socrates:description=Printer,type=laser,date=1993")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=ink")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Disk,capacity=2")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Disk,capacity=1")));
resultMBeans = server.queryMBeans(new ObjectName("*:*"), null);
resultNames = server.queryNames(new ObjectName("*:*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* This one is from the spec.
*/
public void testSpecDefault()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer();
server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Printer,type=laser"));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
server.registerMBean(new Trivial(),
new
ObjectName("Socrates:description=Printer,type=laser,date=1993"));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=ink")));
server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Disk,capacity=2"));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Disk,capacity=1")));
resultMBeans = server.queryMBeans(new ObjectName(":*"), null);
resultNames = server.queryNames(new ObjectName(":*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* This one is from the spec.
*/
public void testSpecMyDomain()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer();
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Printer,type=laser")));
server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993"));
server.registerMBean(new Trivial(),
new
ObjectName("Socrates:description=Printer,type=laser,date=1993"));
server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Printer,type=ink"));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Disk,capacity=2")));
server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Disk,capacity=1"));
resultMBeans = server.queryMBeans(new ObjectName("MyDomain:*"), null);
resultNames = server.queryNames(new ObjectName("MyDomain:*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* This one is from the spec.
*/
public void testSpecAnyAnyDomain()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer();
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Printer,type=laser")));
server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993"));
server.registerMBean(new Trivial(),
new
ObjectName("Socrates:description=Printer,type=laser,date=1993"));
server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Printer,type=ink"));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Disk,capacity=2")));
server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Disk,capacity=1"));
resultMBeans = server.queryMBeans(new ObjectName("??Domain:*"), null);
resultNames = server.queryNames(new ObjectName("??Domain:*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* This one is from the spec.
*/
public void testAsteriskDomAsterisk()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer();
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Printer,type=laser")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
server.registerMBean(new Trivial(),
new
ObjectName("Socrates:description=Printer,type=laser,date=1993"));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=ink")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Disk,capacity=2")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Disk,capacity=1")));
resultMBeans = server.queryMBeans(new ObjectName("*Dom*:*"), null);
resultNames = server.queryNames(new ObjectName("*Dom*:*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* This one is from the spec.
*/
public void testSpecLaserPrinters()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer();
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Printer,type=laser")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("Socrates:description=Printer,type=laser,date=1993")));
server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Printer,type=ink"));
server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Disk,capacity=2"));
server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Disk,capacity=1"));
resultMBeans = server.queryMBeans(new
ObjectName("*:description=Printer,type=laser,*"), null);
resultNames = server.queryNames(new
ObjectName("*:description=Printer,type=laser,*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* This one is from the spec.
*/
public void testSpecPrinters()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer();
instances.add(server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Printer,type=laser")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=laser,date=1993")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("Socrates:description=Printer,type=laser,date=1993")));
instances.add(server.registerMBean(new Trivial(),
new
ObjectName("DefaultDomain:description=Printer,type=ink")));
server.registerMBean(new Trivial(),
new ObjectName("MyDomain:description=Disk,capacity=2"));
server.registerMBean(new Trivial(),
new ObjectName("DefaultDomain:description=Disk,capacity=2"));
resultMBeans = server.queryMBeans(new
ObjectName("*:description=Printer,*"), null);
resultNames = server.queryNames(new ObjectName("*:description=Printer,*"),
null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test suffix asterisk on domain.
*/
public void testSuffixMatchManyDomain()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new Trivial(),
new ObjectName("DomainA123:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("DomainA321:type=instance2")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("DomainA2224:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("DomainA3:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("DomainA:type=instance1")));
server.registerMBean(new Trivial(),
new ObjectName("Domain:type=instance1"));
server.registerMBean(new Trivial(),
new ObjectName("Dom:type=instance1"));
resultMBeans = server.queryMBeans(new ObjectName("DomainA*:*"), null);
resultNames = server.queryNames(new ObjectName("DomainA*:*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
/**
* Test prefix asterisk on domain.
*/
public void testPrefixMatchManyDomain()
{
MBeanServer server = null;
HashSet instances = new HashSet();
Set resultMBeans = null;
Set resultNames = null;
try
{
server = MBeanServerFactory.createMBeanServer("QueryMBeans");
instances.add(server.registerMBean(new Trivial(),
new ObjectName("123ADomain:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("321ADomain:type=instance2")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("2224ADomain:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("3ADomain:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("3ADomai123ADomain:type=instance1")));
instances.add(server.registerMBean(new Trivial(),
new ObjectName("ADomain:type=instance1")));
server.registerMBean(new Trivial(),
new ObjectName("Domain:type=instance1"));
server.registerMBean(new Trivial(),
new ObjectName("ADomai:type=instance1"));
server.registerMBean(new Trivial(),
new ObjectName("main:type=instance1"));
resultMBeans = server.queryMBeans(new ObjectName("*ADomain:*"), null);
resultNames = server.queryNames(new ObjectName("*ADomain:*"), null);
}
catch (Exception e)
{
fail(e.toString());
}
checkit(resultMBeans, resultNames, instances);
if (server != null)
MBeanServerFactory.releaseMBeanServer(server);
}
// Support ----------------------------------------------------------------
/**
* Check the resultMBeans
*/
private void checkit(Set resultMBeans, Set resultNames, HashSet expected)
{
// Quick tests
assertEquals(expected.size(), resultMBeans.size());
assertEquals(expected.size(), resultNames.size());
// Get the expected ObjectNames
HashSet expectedNames = new HashSet();
Iterator iterator = expected.iterator();
while (iterator.hasNext())
{
expectedNames.add(((ObjectInstance) iterator.next()).getObjectName());
}
// Check resultMBeans
iterator = resultMBeans.iterator();
while (iterator.hasNext())
{
ObjectInstance instance = (ObjectInstance) iterator.next();
Iterator iterator2 = expected.iterator();
boolean found = false;
while (iterator2.hasNext())
{
if (iterator2.next().equals(instance))
{
iterator2.remove();
found = true;
break;
}
}
if (found == false)
fail("Unexpected instance " + instance.getObjectName());
}
// Check resultNames
iterator = resultNames.iterator();
while (iterator.hasNext())
{
ObjectName name = (ObjectName) iterator.next();
Iterator iterator2 = expectedNames.iterator();
boolean found = false;
while (iterator2.hasNext())
{
if (iterator2.next().equals(name))
{
iterator2.remove();
found = true;
break;
}
}
if (found == false)
fail("Unexpected name " + name);
}
}
}
1.1 jmx/src/main/test/compliance/query/QuerySUITE.java
Index: QuerySUITE.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package test.compliance.query;
import junit.framework.Test;
import junit.framework.TestSuite;
/**
* Query tests.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
*/
public class QuerySUITE
extends TestSuite
{
/**
* Run the tests
*
* @param args the arguments for the test
*/
public static void main(String[] args)
{
junit.textui.TestRunner.run(suite());
}
/**
* Get a list of tests.
*
* @return the tests
*/
public static Test suite()
{
TestSuite suite = new TestSuite("Query tests");
suite.addTest(new TestSuite(QueryMBeansObjectNameOnlyTestCase.class));
suite.addTest(new TestSuite(BasicQueryExpTestCase.class));
return suite;
}
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development