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