User: ejort
Date: 02/04/20 09:31:00
Added: src/main/test/implementation/registry RegistrySUITE.java
ValuesTestCase.java
Log:
Allow generic data to be stored with an MBeans registration. Fixed the double
creation of the MBeanRegistry. Synchronized the long sequence numbers in the MBean
Registry
Revision Changes Path
1.1 jmx/src/main/test/implementation/registry/RegistrySUITE.java
Index: RegistrySUITE.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package test.implementation.registry;
import junit.framework.Test;
import junit.framework.TestSuite;
/**
* JBossMX Specific Registry tests.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
*/
public class RegistrySUITE
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("JBossMX Specific Registry tests");
suite.addTest(new TestSuite(ValuesTestCase.class));
return suite;
}
}
1.1 jmx/src/main/test/implementation/registry/ValuesTestCase.java
Index: ValuesTestCase.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package test.implementation.registry;
import junit.framework.TestCase;
import test.implementation.registry.support.Trivial;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import java.util.Date;
import java.util.Map;
import java.util.HashMap;
import org.jboss.mx.server.ServerConstants;
/**
* Tests the value map processing in the managed mbean registry
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
*/
public class ValuesTestCase
extends TestCase
implements ServerConstants
{
// Attributes ----------------------------------------------------------------
// Constructor ---------------------------------------------------------------
/**
* Construct the test
*/
public ValuesTestCase(String s)
{
super(s);
}
// Tests ---------------------------------------------------------------------
/**
* Test classloader
*/
public void testClassLoader()
throws Exception
{
// Get the previous registry value
String previous = System.getProperty(MBEAN_REGISTRY_CLASS_PROPERTY);
if (previous == null)
previous = DEFAULT_MBEAN_REGISTRY_CLASS;
System.setProperty(MBEAN_REGISTRY_CLASS_PROPERTY,
"org.jboss.mx.server.registry.ManagedMBeanRegistry");
MBeanServer server = MBeanServerFactory.createMBeanServer();
try
{
HashMap valuesMap = new HashMap();
ClassLoader cl = Thread.currentThread().getContextClassLoader();
valuesMap.put(CLASSLOADER, Thread.currentThread().getContextClassLoader());
ObjectName mbean = new ObjectName("test:test=test");
server.invoke(new ObjectName(MBEAN_REGISTRY), "registerMBean",
new Object[]
{
new Trivial(),
mbean,
valuesMap
},
new String[]
{
Object.class.getName(),
ObjectName.class.getName(),
Map.class.getName()
}
);
Object result = server.invoke(new ObjectName(MBEAN_REGISTRY), "getValue",
new Object[]
{
mbean,
CLASSLOADER
},
new String[]
{
ObjectName.class.getName(),
String.class.getName()
}
);
assertEquals(cl, result);
}
finally
{
MBeanServerFactory.releaseMBeanServer(server);
System.setProperty(MBEAN_REGISTRY_CLASS_PROPERTY, previous);
}
}
/**
* Test value
*/
public void testValue()
throws Exception
{
// Get the previous registry value
String previous = System.getProperty(MBEAN_REGISTRY_CLASS_PROPERTY);
if (previous == null)
previous = DEFAULT_MBEAN_REGISTRY_CLASS;
System.setProperty(MBEAN_REGISTRY_CLASS_PROPERTY,
"org.jboss.mx.server.registry.ManagedMBeanRegistry");
MBeanServer server = MBeanServerFactory.createMBeanServer();
try
{
HashMap valuesMap = new HashMap();
Date date = new Date(System.currentTimeMillis());
valuesMap.put("date", date);
ObjectName mbean = new ObjectName("test:test=test");
server.invoke(new ObjectName(MBEAN_REGISTRY), "registerMBean",
new Object[]
{
new Trivial(),
mbean,
valuesMap
},
new String[]
{
Object.class.getName(),
ObjectName.class.getName(),
Map.class.getName()
}
);
Object result = server.invoke(new ObjectName(MBEAN_REGISTRY), "getValue",
new Object[]
{
mbean,
"date"
},
new String[]
{
ObjectName.class.getName(),
String.class.getName()
}
);
assertEquals(date, result);
}
finally
{
MBeanServerFactory.releaseMBeanServer(server);
System.setProperty(MBEAN_REGISTRY_CLASS_PROPERTY, previous);
}
}
/**
* Test value registered
*/
public void testValueRegistered()
throws Exception
{
// Get the previous registry value
String previous = System.getProperty(MBEAN_REGISTRY_CLASS_PROPERTY);
if (previous == null)
previous = DEFAULT_MBEAN_REGISTRY_CLASS;
System.setProperty(MBEAN_REGISTRY_CLASS_PROPERTY,
"org.jboss.mx.server.registry.ManagedMBeanRegistry");
MBeanServer server = MBeanServerFactory.createMBeanServer();
try
{
HashMap valuesMap = new HashMap();
Date date = new Date(System.currentTimeMillis());
valuesMap.put("date", date);
ObjectName mbean = new ObjectName("test:test=test");
server.invoke(new ObjectName(MBEAN_REGISTRY), "registerMBean",
new Object[]
{
new Trivial(),
mbean,
valuesMap
},
new String[]
{
Object.class.getName(),
ObjectName.class.getName(),
Map.class.getName()
}
);
Object result = server.invoke(new ObjectName(MBEAN_REGISTRY), "getValue",
new Object[]
{
mbean,
"date"
},
new String[]
{
ObjectName.class.getName(),
String.class.getName()
}
);
assertEquals(date, result);
// Now remove it, reregister it and make sure it returns the new value
server.unregisterMBean(mbean);
date = new Date(System.currentTimeMillis());
HashMap valueMap2 = new HashMap();
valueMap2.put("date", date);
server.invoke(new ObjectName(MBEAN_REGISTRY), "registerMBean",
new Object[]
{
new Trivial(),
mbean,
valuesMap
},
new String[]
{
Object.class.getName(),
ObjectName.class.getName(),
Map.class.getName()
}
);
result = server.invoke(new ObjectName(MBEAN_REGISTRY), "getValue",
new Object[]
{
mbean,
"date"
},
new String[]
{
ObjectName.class.getName(),
String.class.getName()
}
);
assertEquals(date, result);
}
finally
{
MBeanServerFactory.releaseMBeanServer(server);
System.setProperty(MBEAN_REGISTRY_CLASS_PROPERTY, previous);
}
}
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development