SF.net SVN: mx4j: [2255] trunk/mx4j
[email protected] Wed, 13 Dec 2006 06:31:19 -0800
| Newsgroups | gmane.comp.java.mx4j.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision: 2255
http://svn.sourceforge.net/mx4j/?rev=2255&view=rev
Author: simonebordet
Date: 2006-12-13 06:31:18 -0800 (Wed, 13 Dec 2006)
Log Message:
-----------
Tests package reorganization.
Modified Paths:
--------------
trunk/mx4j/jsr003/pom.xml
trunk/mx4j/jsr003/src/test/java/javax/management/BinaryOpValueExpTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/BinaryRelQueryExpTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/DynamicMBeanFunctionalityTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/LocalSecurityManagerTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanComplianceTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanIntrospectionTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanRegistrationTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerBuilderTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerFactoryTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerInvocationHandlerTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerPermissionTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MBeanStarInfoTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/MultiThreadMBeanServerTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/NotificationListenerTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/ObjectNameTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/PermissionTestCase.java
trunk/mx4j/jsr003/src/test/java/javax/management/QueryTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/SecurityManagerTestCase.java
trunk/mx4j/jsr003/src/test/java/javax/management/StandardMBeanTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/ComplianceTestCase.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/JMXComplianceTestCase.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/serialization/JMXSerializationTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/serialization/support/Comparator.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/serialization/support/Instantiator.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/serialization/support/SerializationVerifier.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/serialization/support/Serializer.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/JMXSignatureTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/support/FieldWrapper.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/support/MemberWrapper.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/support/MethodWrapper.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/support/NotCompliantException.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/support/NotCompliantWarningException.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/support/ObjectClass.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/support/ObjectMethod.java
trunk/mx4j/jsr003/src/test/java/javax/management/compliance/signature/support/SignatureVerifier.java
trunk/mx4j/jsr003/src/test/java/javax/management/loading/ClassLoaderRepositoryTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/loading/MLetTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/modelmbean/DescriptorSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/modelmbean/ModelMBeanAttributeInfoTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/modelmbean/ModelMBeanConstructorInfoTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/modelmbean/ModelMBeanInfoSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/modelmbean/ModelMBeanNotificationInfoTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/modelmbean/ModelMBeanOperationInfoTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/modelmbean/RequiredModelMBeanTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/modelmbean/support/ModelMBeanTarget.java
trunk/mx4j/jsr003/src/test/java/javax/management/monitor/CounterMonitorTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/monitor/CounterNotificationTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/monitor/GaugeMonitorTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/monitor/MonitorTestCase.java
trunk/mx4j/jsr003/src/test/java/javax/management/monitor/StringMonitorTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/ArrayTypeTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/CompositeDataSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/CompositeTypeTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/OpenMBeanAttributeInfoSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/OpenMBeanConstructorInfoSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/OpenMBeanInfoSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/OpenMBeanOperationInfoSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/OpenMBeanParameterInfoSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/SimpleTypeTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/TabularDataSupportTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/openmbean/TabularTypeTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/relation/RelationServiceTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/relation/RoleTest.java
trunk/mx4j/jsr003/src/test/java/javax/management/relation/SimpleRelationTestSupport.java
trunk/mx4j/jsr003/src/test/java/javax/management/relation/SimpleRelationType.java
trunk/mx4j/jsr003/src/test/java/javax/management/relation/SimpleStandard.java
trunk/mx4j/jsr003/src/test/java/javax/management/relation/SimpleStandardMBean.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/ClassLoaderSupport.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/ClassLoaderSupportMBean.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/ComplianceSupport.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/ExceptionGeneratingDMB.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/MBeanDynamic.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/MBeanThrowingExceptions.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/MBeanThrowingExceptionsMBean.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/NotificationSupport.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/NullMBeanInfoDMB.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/PostRegistrationSupport.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/PostRegistrationSupportMBean.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/PrivateMBeanDynamic.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/QuerySupport.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/RegistrationSupport.java
trunk/mx4j/jsr003/src/test/java/javax/management/support/StandardMBeanSupport.java
trunk/mx4j/jsr003/src/test/java/javax/management/timer/TimerTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/AbstractDynamicMBeanTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/MiscellaneousTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/log/LogRedirectionTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/server/BCELMBeanInvokerTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/server/MBeanPermissionTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/server/MX4JMBeanServerTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/server/NoOpMBeanServerInterceptor.java
trunk/mx4j/jsr003/src/test/java/mx4j/server/NotificationListenerMBeanServerInterceptorTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/timer/TimeQueueTest.java
trunk/mx4j/jsr003/src/test/java/mx4j/util/WildcardMatchTest.java
trunk/mx4j/pom.xml
trunk/mx4j/tests/pom.xml
trunk/mx4j/tests/src/main/java/mx4j/MX4JTestCase.java
trunk/mx4j/tests/src/main/java/mx4j/MutableBoolean.java
trunk/mx4j/tests/src/main/java/mx4j/MutableInteger.java
trunk/mx4j/tests/src/main/java/mx4j/MutableLong.java
Added Paths:
-----------
trunk/mx4j/tests/src/main/java/mx4j/MX4JClassLoadingTestCase.java
Modified: trunk/mx4j/jsr003/pom.xml
===================================================================
--- trunk/mx4j/jsr003/pom.xml 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/pom.xml 2006-12-13 14:31:18 UTC (rev 2255)
@@ -12,7 +12,43 @@
<artifactId>mx4j-jsr003</artifactId>
<name>MX4J :: JSR003</name>
<packaging>jar</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <childDelegation>true</childDelegation>
+ <!--includes>
+ <include>BinaryOpValueExpTest.java</include>
+ </includes-->
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+<!--
+ <profiles>
+ <profile>
+ <id>jdk15</id>
+ <activation>
+ <jdk>1.5</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>**</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+-->
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
@@ -30,8 +66,10 @@
<version>5.2</version>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
+ <groupId>mx4j</groupId>
+ <artifactId>mx4j-tests</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
</dependency>
</dependencies>
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/BinaryOpValueExpTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/BinaryOpValueExpTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/BinaryOpValueExpTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,27 +6,15 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
-import javax.management.Query;
-import javax.management.QueryExp;
-import javax.management.ValueExp;
+import mx4j.MX4JTestCase;
-import junit.framework.TestCase;
-
/**
* @version $Revision$
*/
-public class BinaryOpValueExpTest extends TestCase
+public class BinaryOpValueExpTest extends MX4JTestCase
{
- /**
- * Constructor requested by the JUnit framework
- */
- public BinaryOpValueExpTest(String name)
- {
- super(name);
- }
-
public void testLongOperations() throws Exception
{
ValueExp value1 = Query.value(new Integer(3));
@@ -67,6 +55,8 @@
op = Query.div(value1, value2);
result = Query.eq(Query.value(3.0D / 4.0D), op);
assertTrue(result.apply(null));
+
+ sleep(10000);
}
}
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/BinaryRelQueryExpTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/BinaryRelQueryExpTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/BinaryRelQueryExpTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,29 +6,15 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
-import javax.management.BadBinaryOpValueExpException;
-import javax.management.Query;
-import javax.management.QueryExp;
-import javax.management.StringValueExp;
-import javax.management.ValueExp;
+import mx4j.MX4JTestCase;
-import junit.framework.TestCase;
-
/**
* @version $Revision$
*/
-public class BinaryRelQueryExpTest extends TestCase
+public class BinaryRelQueryExpTest extends MX4JTestCase
{
- /**
- * Constructor requested by the JUnit framework
- */
- public BinaryRelQueryExpTest(String name)
- {
- super(name);
- }
-
public void testExceptions() throws Exception
{
QueryExp operation = Query.eq(null, null);
@@ -160,4 +146,3 @@
assertTrue(!operation.apply(null));
}
}
-
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/DynamicMBeanFunctionalityTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/DynamicMBeanFunctionalityTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/DynamicMBeanFunctionalityTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,19 +6,11 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
-import javax.management.Attribute;
-import javax.management.AttributeList;
-import javax.management.JMRuntimeException;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.NotCompliantMBeanException;
-import javax.management.ObjectName;
-import javax.management.RuntimeMBeanException;
+import javax.management.support.MBeanDynamic;
-import test.MX4JTestCase;
-import test.javax.management.support.MBeanDynamic;
+import mx4j.MX4JTestCase;
/**
* @version $Revision$
@@ -28,11 +20,6 @@
private MBeanServer m_server;
private ObjectName m_name;
- public DynamicMBeanFunctionalityTest(String s)
- {
- super(s);
- }
-
protected void setUp() throws Exception
{
m_server = MBeanServerFactory.createMBeanServer("dynamic");
@@ -49,11 +36,9 @@
public void testGetAttributes() throws Exception
{
- AttributeList list = null;
+ AttributeList list = m_server.getAttributes(m_name, new String[0]);
+ assertEquals(list.size(), 0);
- list = m_server.getAttributes(m_name, new String[0]);
- assertEquals(list.size(), 0);
-
list = m_server.getAttributes(m_name, new String[]{"doesNotExist"});
if (list.size() != 0)
{
@@ -144,7 +129,7 @@
{
m_server.createMBean("test.javax.management.support.ExceptionGeneratingDMB",
new ObjectName(":register=no"),
- new Object[]{new Boolean(false)},
+ new Object[]{Boolean.FALSE},
new String[]{"boolean"});
fail("Expecting NotCompliantMBeanException");
}
@@ -160,7 +145,7 @@
ObjectName objname = new ObjectName(":register=yes");
m_server.createMBean("test.javax.management.support.ExceptionGeneratingDMB",
objname,
- new Object[]{new Boolean(true)},
+ new Object[]{Boolean.TRUE},
new String[]{"boolean"});
m_server.getMBeanInfo(objname);
fail("Expecting RuntimeMBeanException");
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/LocalSecurityManagerTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/LocalSecurityManagerTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/LocalSecurityManagerTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,7 +6,7 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
import java.security.AllPermission;
import java.security.CodeSource;
@@ -20,12 +20,6 @@
import java.util.HashMap;
import java.util.Map;
-import javax.management.MBeanPermission;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerDelegate;
-import javax.management.MBeanServerFactory;
-import javax.management.MBeanServerPermission;
-import javax.management.ObjectName;
import javax.management.loading.ClassLoaderRepository;
import javax.management.loading.MLet;
@@ -45,11 +39,6 @@
System.setSecurityManager(new SecurityManager());
}
- public LocalSecurityManagerTest(String s)
- {
- super(s);
- }
-
protected void setUp() throws Exception
{
// Be sure we have a security manager and the right policy
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/MBeanComplianceTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/MBeanComplianceTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/MBeanComplianceTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,7 +6,7 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
@@ -14,13 +14,12 @@
import java.util.Arrays;
import java.util.List;
-import javax.management.MBeanConstructorInfo;
+import javax.management.support.ComplianceSupport;
import mx4j.MX4JSystemKeys;
+import mx4j.MX4JTestCase;
import mx4j.server.MBeanIntrospector;
import mx4j.server.MBeanMetaData;
-import test.MX4JTestCase;
-import test.javax.management.support.ComplianceSupport;
/**
* @version $Revision$
@@ -29,11 +28,6 @@
{
private MBeanIntrospector introspector;
- public MBeanComplianceTest(String s)
- {
- super(s);
- }
-
protected void setUp() throws Exception
{
String property = MX4JSystemKeys.MX4J_STRICT_MBEAN_INTERFACE;
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/MBeanIntrospectionTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/MBeanIntrospectionTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/MBeanIntrospectionTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -4,26 +4,19 @@
*
* =====================================================================
*/
-package test.javax.management;
+package javax.management;
-import javax.management.MBeanInfo;
-import javax.management.MBeanOperationInfo;
-
+import mx4j.MX4JTestCase;
import mx4j.server.MBeanIntrospector;
import mx4j.server.MBeanMetaData;
-import test.MX4JTestCase;
/**
* @version $Revision$ $Date$
*/
-public class MBeanIntrospectionTest extends MX4JTestCase {
+public class MBeanIntrospectionTest extends MX4JTestCase
+{
private MBeanIntrospector introspector;
- public MBeanIntrospectionTest(String name)
- {
- super(name);
- }
-
public void testOperationInfo() throws Exception
{
MBeanInfo info = introspect(new Basic());
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/MBeanRegistrationTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/MBeanRegistrationTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/MBeanRegistrationTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,506 +6,491 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
-import javax.management.AttributeNotFoundException;
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanRegistration;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerNotification;
-import javax.management.NotCompliantMBeanException;
-import javax.management.Notification;
-import javax.management.NotificationListener;
-import javax.management.ObjectInstance;
-import javax.management.ObjectName;
-import javax.management.RuntimeMBeanException;
-import javax.management.RuntimeOperationsException;
import javax.management.loading.MLet;
+import javax.management.support.RegistrationSupport;
-import test.MX4JTestCase;
-import test.MutableBoolean;
-import test.MutableObject;
-import test.javax.management.support.RegistrationSupport;
+import mx4j.MX4JTestCase;
+import mx4j.MutableBoolean;
+import mx4j.MutableObject;
/**
* @version $Revision$
*/
public class MBeanRegistrationTest extends MX4JTestCase
{
- public static interface BarMBean
- {
- int getBeer();
+ private MBeanServer newMBeanServer()
+ {
+ return MBeanServerFactory.newMBeanServer();
+ }
- void getBEER();
+ public void testNullObjectName() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ Object nullObjectName = new RegistrationSupport.NullObjectName();
+ try
+ {
+ server.registerMBean(nullObjectName, null);
+ fail("MBean cannot be registered");
+ }
+ catch (RuntimeOperationsException ignored)
+ {
+ }
+ // Check that was not registered
+ if (server.getMBeanCount().intValue() != count)
+ {
+ fail("MBean with null ObjectName was registered");
+ }
+ }
- int getBeer(String name);
+ public void testPreRegisterException() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ Object preRegisterException = new RegistrationSupport.PreRegisterException();
+ try
+ {
+ server.registerMBean(preRegisterException, null);
+ fail("MBean cannot be registered");
+ }
+ catch (MBeanRegistrationException ignored)
+ {
+ }
+ // Check that was not registered
+ if (server.getMBeanCount().intValue() != count)
+ {
+ fail("MBean threw exception in preRegister, but was registered");
+ }
+ }
- String[] get();
- }
+ public void testPostRegisterException() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ Object postRegisterException = new RegistrationSupport.PostRegisterException();
+ ObjectName name = new ObjectName(":test=postRegister");
+ try
+ {
+ server.registerMBean(postRegisterException, name);
+ fail("MBean must throw an exception");
+ }
+ catch (RuntimeMBeanException ignored)
+ {
+ }
+ // Check that was registered
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean threw exception in postRegister, but was NOT registered");
+ }
+ }
- public static class Bar implements BarMBean
- {
- public Bar()
- {
- }
+ public void testPreDeregisterException() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ Object preDeregisterException = new RegistrationSupport.PreDeregisterException();
+ ObjectName name = new ObjectName("simon:mbean=test");
+ server.registerMBean(preDeregisterException, name);
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean was not registered");
+ }
+ try
+ {
+ server.unregisterMBean(name);
+ fail("MBean cannot be unregistered");
+ }
+ catch (MBeanRegistrationException ignored)
+ {
+ }
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean was unregistered");
+ }
+ }
- public String[] get()
- {
- return new String[0];
- }
+ public void testPostDeregisterException() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ Object postDeregisterException = new RegistrationSupport.PostDeregisterException();
+ ObjectName name = new ObjectName("simon:mbean=test");
+ server.registerMBean(postDeregisterException, name);
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean was not registered");
+ }
+ try
+ {
+ server.unregisterMBean(name);
+ fail("MBean must throw an exception");
+ }
+ catch (RuntimeMBeanException ignored)
+ {
+ }
+ if (server.getMBeanCount().intValue() != count)
+ {
+ fail("MBean was NOT unregistered");
+ }
+ }
- public int getBeer()
- {
- return 0;
- }
+ public void testRegistration() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ final MutableBoolean bool1 = new MutableBoolean(false);
+ final MutableBoolean bool2 = new MutableBoolean(false);
+ Object empty = new RegistrationSupport.Empty(bool1, bool2);
+ final ObjectName name = new ObjectName("simon:mbean=empty");
+ server.registerMBean(empty, name);
+ // Check registration
+ if (!bool1.get())
+ {
+ fail("postRegister called with wrong argument value for successful registration");
+ }
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean was not registered");
+ }
+ }
- public void getBEER()
- {
- throw new java.lang.Error("No BEER here");
- }
+ public void testDuplicateRegistration() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ final MutableBoolean bool1 = new MutableBoolean(false);
+ final MutableBoolean bool2 = new MutableBoolean(false);
+ Object empty = new RegistrationSupport.Empty(bool1, bool2);
+ final ObjectName name = new ObjectName("simon:mbean=empty");
+ server.registerMBean(empty, name);
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean was not registered");
+ }
- public int getBeer(String name)
- {
- return 0;
- }
+ Object duplicate = new RegistrationSupport.EmptyDuplicate(name, bool1);
+ try
+ {
+ server.registerMBean(duplicate, null);
+ fail("MBean with same name cannot be registered");
+ }
+ catch (InstanceAlreadyExistsException ignored)
+ {
+ }
+ // Check that postRegister was called correctly
+ if (bool1.get())
+ {
+ fail("postRegister called with wrong argument value for unsuccessful registration");
+ }
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean was registered, and it shouldn't");
+ }
+ }
- }
+ public void testDeregistration() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ final MutableBoolean bool1 = new MutableBoolean(false);
+ final MutableBoolean bool2 = new MutableBoolean(false);
+ Object empty = new RegistrationSupport.Empty(bool1, bool2);
+ final ObjectName name = new ObjectName("simon:mbean=empty");
+ server.registerMBean(empty, name);
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean was not registered");
+ }
- public MBeanRegistrationTest(String s)
- {
- super(s);
- }
+ bool1.set(true);
+ bool2.set(true);
+ server.unregisterMBean(name);
+ if (server.getMBeanCount().intValue() != count)
+ {
+ fail("MBean was not unregistered");
+ }
+ if (bool1.get() || bool2.get())
+ {
+ fail("preDeregister or postDeregister are not called");
+ }
+ }
- public void testNullObjectName() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- Object nullObjectName = new RegistrationSupport.NullObjectName();
- try
- {
- server.registerMBean(nullObjectName, null);
- fail("MBean cannot be registered");
- }
- catch (RuntimeOperationsException ignored)
- {
- }
- // Check that was not registered
- if (server.getMBeanCount().intValue() != count)
- {
- fail("MBean with null ObjectName was registered");
- }
- }
+ public void testDuplicateDeregistration() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ int count = server.getMBeanCount().intValue();
+ final MutableBoolean bool1 = new MutableBoolean(false);
+ final MutableBoolean bool2 = new MutableBoolean(false);
+ Object empty = new RegistrationSupport.Empty(bool1, bool2);
+ final ObjectName name = new ObjectName("simon:mbean=empty");
+ server.registerMBean(empty, name);
+ if (server.getMBeanCount().intValue() != count + 1)
+ {
+ fail("MBean was not registered");
+ }
- public void testPreRegisterException() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- Object preRegisterException = new RegistrationSupport.PreRegisterException();
- try
- {
- server.registerMBean(preRegisterException, null);
- fail("MBean cannot be registered");
- }
- catch (MBeanRegistrationException ignored)
- {
- }
- // Check that was not registered
- if (server.getMBeanCount().intValue() != count)
- {
- fail("MBean threw exception in preRegister, but was registered");
- }
- }
+ bool1.set(true);
+ bool2.set(true);
+ server.unregisterMBean(name);
+ if (server.getMBeanCount().intValue() != count)
+ {
+ fail("MBean was not unregistered");
+ }
+ if (bool1.get() || bool2.get())
+ {
+ fail("preDeregister or postDeregister are not called");
+ }
- public void testPostRegisterException() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- Object postRegisterException = new RegistrationSupport.PostRegisterException();
- ObjectName name = new ObjectName(":test=postRegister");
- try
- {
- server.registerMBean(postRegisterException, name);
- fail("MBean must throw an exception");
- }
- catch (RuntimeMBeanException ignored)
- {
- }
- // Check that was registered
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean threw exception in postRegister, but was NOT registered");
- }
- }
+ // Try again
+ try
+ {
+ server.unregisterMBean(name);
+ fail("Already unregistered MBean can be unregistered");
+ }
+ catch (InstanceNotFoundException ignored)
+ {
+ }
+ }
- public void testPreDeregisterException() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- Object preDeregisterException = new RegistrationSupport.PreDeregisterException();
- ObjectName name = new ObjectName("simon:mbean=test");
- server.registerMBean(preDeregisterException, name);
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean was not registered");
- }
- try
- {
- server.unregisterMBean(name);
- fail("MBean cannot be unregistered");
- }
- catch (MBeanRegistrationException ignored)
- {
- }
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean was unregistered");
- }
- }
+ public void testNotificationDuringRegistrationForStdMBean() throws Exception
+ {
+ final MBeanServer server = newMBeanServer();
+ Object mbean = new RegistrationSupport.Std();
+ final ObjectName name = new ObjectName(":mbean=std");
+ server.addNotificationListener(new ObjectName("JMImplementation:type=MBeanServerDelegate"), new NotificationListener()
+ {
+ public void handleNotification(Notification notification, Object handback)
+ {
+ invokeOperationsDuringRegistration(server, name, notification);
+ }
+ }, null, null);
- public void testPostDeregisterException() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- Object postDeregisterException = new RegistrationSupport.PostDeregisterException();
- ObjectName name = new ObjectName("simon:mbean=test");
- server.registerMBean(postDeregisterException, name);
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean was not registered");
- }
- try
- {
- server.unregisterMBean(name);
- fail("MBean must throw an exception");
- }
- catch (RuntimeMBeanException ignored)
- {
- }
- if (server.getMBeanCount().intValue() != count)
- {
- fail("MBean was NOT unregistered");
- }
- }
+ server.registerMBean(mbean, name);
+ }
- public void testRegistration() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- final MutableBoolean bool1 = new MutableBoolean(false);
- final MutableBoolean bool2 = new MutableBoolean(false);
- Object empty = new RegistrationSupport.Empty(bool1, bool2);
- final ObjectName name = new ObjectName("simon:mbean=empty");
- server.registerMBean(empty, name);
- // Check registration
- if (!bool1.get())
- {
- fail("postRegister called with wrong argument value for successful registration");
- }
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean was not registered");
- }
- }
+ public void testNotificationDuringRegistrationForDynMBean() throws Exception
+ {
+ final MBeanServer server = newMBeanServer();
+ Object mbean = new RegistrationSupport.Dyn();
+ final ObjectName name = new ObjectName(":mbean=dyn");
+ server.addNotificationListener(new ObjectName("JMImplementation:type=MBeanServerDelegate"), new NotificationListener()
+ {
+ public void handleNotification(Notification notification, Object handback)
+ {
+ invokeOperationsDuringRegistration(server, name, notification);
+ }
+ }, null, null);
- public void testDuplicateRegistration() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- final MutableBoolean bool1 = new MutableBoolean(false);
- final MutableBoolean bool2 = new MutableBoolean(false);
- Object empty = new RegistrationSupport.Empty(bool1, bool2);
- final ObjectName name = new ObjectName("simon:mbean=empty");
- server.registerMBean(empty, name);
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean was not registered");
- }
+ server.registerMBean(mbean, name);
+ }
- Object duplicate = new RegistrationSupport.EmptyDuplicate(name, bool1);
- try
- {
- server.registerMBean(duplicate, null);
- fail("MBean with same name cannot be registered");
- }
- catch (InstanceAlreadyExistsException ignored)
- {
- }
- // Check that postRegister was called correctly
- if (bool1.get())
- {
- fail("postRegister called with wrong argument value for unsuccessful registration");
- }
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean was registered, and it shouldn't");
- }
- }
+ private void invokeOperationsDuringRegistration(MBeanServer server, ObjectName name, Notification notification)
+ {
+ if (notification != null)
+ {
+ MBeanServerNotification notif = (MBeanServerNotification)notification;
+ ObjectName registered = notif.getMBeanName();
+ if (!registered.equals(name)) fail("Notification for the wrong MBean: " + registered + ", should be " + name);
+ if (!MBeanServerNotification.REGISTRATION_NOTIFICATION.equals(notif.getType())) fail("Expecting a registration notification");
+ }
- public void testDeregistration() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- final MutableBoolean bool1 = new MutableBoolean(false);
- final MutableBoolean bool2 = new MutableBoolean(false);
- Object empty = new RegistrationSupport.Empty(bool1, bool2);
- final ObjectName name = new ObjectName("simon:mbean=empty");
- server.registerMBean(empty, name);
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean was not registered");
- }
+ try
+ {
+ MBeanInfo info = server.getMBeanInfo(name);
+ if (info.getClassName() == null) fail("MBeanInfo not initialized correctly");
+ if (info.getOperations().length == 0) fail("MBeanInfo not initialized correctly");
- bool1.set(true);
- bool2.set(true);
- server.unregisterMBean(name);
- if (server.getMBeanCount().intValue() != count)
- {
- fail("MBean was not unregistered");
- }
- if (bool1.get() || bool2.get())
- {
- fail("preDeregister or postDeregister are not called");
- }
- }
+ ObjectInstance instance = server.getObjectInstance(name);
+ if (instance == null) fail("ObjectInstance should be already initialized");
- public void testDuplicateDeregistration() throws Exception
- {
- MBeanServer server = newMBeanServer();
- int count = server.getMBeanCount().intValue();
- final MutableBoolean bool1 = new MutableBoolean(false);
- final MutableBoolean bool2 = new MutableBoolean(false);
- Object empty = new RegistrationSupport.Empty(bool1, bool2);
- final ObjectName name = new ObjectName("simon:mbean=empty");
- server.registerMBean(empty, name);
- if (server.getMBeanCount().intValue() != count + 1)
- {
- fail("MBean was not registered");
- }
+ boolean isRegistered = server.isRegistered(name);
+ if (!isRegistered) fail("MBean is registered");
- bool1.set(true);
- bool2.set(true);
- server.unregisterMBean(name);
- if (server.getMBeanCount().intValue() != count)
- {
- fail("MBean was not unregistered");
- }
- if (bool1.get() || bool2.get())
- {
- fail("preDeregister or postDeregister are not called");
- }
+ // Must be able to invoke it with no exceptions
+ server.invoke(name, RegistrationSupport.StdMBean.class.getMethods()[0].getName(), null, null);
+ }
+ catch (Exception x)
+ {
+ fail("MBean metadata structures are not yet ready, but they should be: " + x);
+ }
+ }
- // Try again
- try
- {
- server.unregisterMBean(name);
- fail("Already unregistered MBean can be unregistered");
- }
- catch (InstanceNotFoundException ignored)
- {
- }
- }
+ public void testInvokeMBeanServerOperationsInCallbacks() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ Object mbean = new InvokeDuringCallbacks();
+ ObjectName name = ObjectName.getInstance(":name=invoke");
+ server.registerMBean(mbean, name);
+ server.unregisterMBean(name);
+ }
- public void testNotificationDuringRegistrationForStdMBean() throws Exception
- {
- final MBeanServer server = newMBeanServer();
- Object mbean = new RegistrationSupport.Std();
- final ObjectName name = new ObjectName(":mbean=std");
- server.addNotificationListener(new ObjectName("JMImplementation:type=MBeanServerDelegate"), new NotificationListener()
- {
- public void handleNotification(Notification notification, Object handback)
- {
- invokeOperationsDuringRegistration(server, name, notification);
- }
- }, null, null);
+ public void testDistinguishAttributesOperations() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName objname = new ObjectName("tests:id=distinguishAttributesOperations");
+ Bar b = new Bar();
+ server.registerMBean(b, objname);
+ MBeanInfo info = server.getMBeanInfo(objname);
+ assertTrue("Expecting one attribute", info.getAttributes().length == 1);
+ try
+ {
+ assertTrue("No 'Beer' attribute", ((Integer)server.getAttribute(objname, "Beer")).intValue() == 0);
+ String[] getresult = (String[])server.invoke(objname, "get", new Object[0], new String[0]);
+ assertTrue("Expecting zero length result", getresult.length == 0);
+ server.getAttribute(objname, "BEER");
+ fail("Expecting AttributeNotFoundException");
+ }
+ catch (AttributeNotFoundException x)
+ {
+ assertTrue(true);
+ }
+ assertTrue("Expecting three operations", info.getOperations().length == 3);
+ }
- server.registerMBean(mbean, name);
- }
+ public void testListenerRegistrationUnregistrationDuringCallbacks() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ MutableObject holder = new MutableObject(null);
+ Object mbean = new RegistrationSupport.ListenerRegistrar(holder);
+ ObjectName name = ObjectName.getInstance("test:type=notifications");
+ server.registerMBean(mbean, name);
- public void testNotificationDuringRegistrationForDynMBean() throws Exception
- {
- final MBeanServer server = newMBeanServer();
- Object mbean = new RegistrationSupport.Dyn();
- final ObjectName name = new ObjectName(":mbean=dyn");
- server.addNotificationListener(new ObjectName("JMImplementation:type=MBeanServerDelegate"), new NotificationListener()
- {
- public void handleNotification(Notification notification, Object handback)
- {
- invokeOperationsDuringRegistration(server, name, notification);
- }
- }, null, null);
+ // Register a new MBean, the holder must be notified
+ ObjectName mlet = ObjectName.getInstance("test:type=mlet");
+ server.createMBean(MLet.class.getName(), mlet, null);
- server.registerMBean(mbean, name);
- }
+ Notification notification = (Notification)holder.get();
+ assertNotNull(notification);
+ assertEquals(notification.getType(), MBeanServerNotification.REGISTRATION_NOTIFICATION);
+ holder.set(null);
- private void invokeOperationsDuringRegistration(MBeanServer server, ObjectName name, Notification notification)
- {
- if (notification != null)
- {
- MBeanServerNotification notif = (MBeanServerNotification)notification;
- ObjectName registered = notif.getMBeanName();
- if (!registered.equals(name)) fail("Notification for the wrong MBean: " + registered + ", should be " + name);
- if (!MBeanServerNotification.REGISTRATION_NOTIFICATION.equals(notif.getType())) fail("Expecting a registration notification");
- }
+ server.unregisterMBean(mlet);
- try
- {
- MBeanInfo info = server.getMBeanInfo(name);
- if (info.getClassName() == null) fail("MBeanInfo not initialized correctly");
- if (info.getOperations().length == 0) fail("MBeanInfo not initialized correctly");
+ notification = (Notification)holder.get();
+ assertNotNull(notification);
+ assertEquals(notification.getType(), MBeanServerNotification.UNREGISTRATION_NOTIFICATION);
+ holder.set(null);
- ObjectInstance instance = server.getObjectInstance(name);
- if (instance == null) fail("ObjectInstance should be already initialized");
+ // Unregisters also the listeners (in postDeregister)
+ server.unregisterMBean(name);
+ notification = (Notification)holder.get();
+ assertNotNull(notification);
+ assertEquals(notification.getType(), MBeanServerNotification.UNREGISTRATION_NOTIFICATION);
+ holder.set(null);
- boolean isRegistered = server.isRegistered(name);
- if (!isRegistered) fail("MBean is registered");
+ server.createMBean(MLet.class.getName(), mlet, null);
+ notification = (Notification)holder.get();
+ assertNull(notification);
- // Must be able to invoke it with no exceptions
- server.invoke(name, RegistrationSupport.StdMBean.class.getMethods()[0].getName(), null, null);
- }
- catch (Exception x)
- {
- fail("MBean metadata structures are not yet ready, but they should be: " + x);
- }
- }
+ server.unregisterMBean(mlet);
+ notification = (Notification)holder.get();
+ assertNull(notification);
+ }
- public void testInvokeMBeanServerOperationsInCallbacks() throws Exception
- {
- MBeanServer server = newMBeanServer();
- Object mbean = new InvokeDuringCallbacks();
- ObjectName name = ObjectName.getInstance(":name=invoke");
- server.registerMBean(mbean, name);
- server.unregisterMBean(name);
- }
+ public void testAbstractClass() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ try
+ {
+ server.createMBean(Foo.class.getName(), null);
+ fail();
+ }
+ catch (NotCompliantMBeanException e)
+ {
+ // ok
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail();
+ }
+ }
+ public static interface BarMBean
+ {
+ int getBeer();
- public interface InvokeDuringCallbacksMBean
- {
- public void method();
- }
+ void getBEER();
- public class InvokeDuringCallbacks implements InvokeDuringCallbacksMBean, MBeanRegistration
- {
- private MBeanServer server;
- private ObjectName name;
+ int getBeer(String name);
- public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
- {
- this.server = server;
- this.name = name;
- return name;
- }
+ String[] get();
+ }
- public void postRegister(Boolean registrationDone)
- {
- invokeOperationsDuringRegistration(server, name, null);
- }
+ public static class Bar implements BarMBean
+ {
+ public Bar()
+ {
+ }
- public void preDeregister() throws Exception
- {
- invokeOperationsDuringRegistration(server, name, null);
- }
+ public String[] get()
+ {
+ return new String[0];
+ }
- public void postDeregister()
- {
- }
+ public int getBeer()
+ {
+ return 0;
+ }
- public void method()
- {
- }
- }
+ public void getBEER()
+ {
+ throw new java.lang.Error("No BEER here");
+ }
- public void testDistinguishAttributesOperations() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName objname = new ObjectName("tests:id=distinguishAttributesOperations");
- Bar b = new Bar();
- server.registerMBean(b, objname);
- MBeanInfo info = server.getMBeanInfo(objname);
- assertTrue("Expecting one attribute", info.getAttributes().length == 1);
- try
- {
- assertTrue("No 'Beer' attribute", ((Integer)server.getAttribute(objname, "Beer")).intValue() == 0);
- String[] getresult = (String[])server.invoke(objname, "get", new Object[0], new String[0]);
- assertTrue("Expecting zero length result", getresult.length == 0);
- server.getAttribute(objname, "BEER");
- fail("Expecting AttributeNotFoundException");
- }
- catch (AttributeNotFoundException x)
- {
- assertTrue(true);
- }
- assertTrue("Expecting three operations", info.getOperations().length == 3);
- }
+ public int getBeer(String name)
+ {
+ return 0;
+ }
+ }
- public void testListenerRegistrationUnregistrationDuringCallbacks() throws Exception
- {
- MBeanServer server = newMBeanServer();
- MutableObject holder = new MutableObject(null);
- Object mbean = new RegistrationSupport.ListenerRegistrar(holder);
- ObjectName name = ObjectName.getInstance("test:type=notifications");
- server.registerMBean(mbean, name);
+ public interface InvokeDuringCallbacksMBean
+ {
+ public void method();
+ }
- // Register a new MBean, the holder must be notified
- ObjectName mlet = ObjectName.getInstance("test:type=mlet");
- server.createMBean(MLet.class.getName(), mlet, null);
+ public class InvokeDuringCallbacks implements InvokeDuringCallbacksMBean, MBeanRegistration
+ {
+ private MBeanServer server;
+ private ObjectName name;
- Notification notification = (Notification)holder.get();
- assertNotNull(notification);
- assertEquals(notification.getType(), MBeanServerNotification.REGISTRATION_NOTIFICATION);
- holder.set(null);
+ public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
+ {
+ this.server = server;
+ this.name = name;
+ return name;
+ }
- server.unregisterMBean(mlet);
+ public void postRegister(Boolean registrationDone)
+ {
+ invokeOperationsDuringRegistration(server, name, null);
+ }
- notification = (Notification)holder.get();
- assertNotNull(notification);
- assertEquals(notification.getType(), MBeanServerNotification.UNREGISTRATION_NOTIFICATION);
- holder.set(null);
+ public void preDeregister() throws Exception
+ {
+ invokeOperationsDuringRegistration(server, name, null);
+ }
- // Unregisters also the listeners (in postDeregister)
- server.unregisterMBean(name);
- notification = (Notification)holder.get();
- assertNotNull(notification);
- assertEquals(notification.getType(), MBeanServerNotification.UNREGISTRATION_NOTIFICATION);
- holder.set(null);
+ public void postDeregister()
+ {
+ }
- server.createMBean(MLet.class.getName(), mlet, null);
- notification = (Notification)holder.get();
- assertNull(notification);
+ public void method()
+ {
+ }
+ }
- server.unregisterMBean(mlet);
- notification = (Notification)holder.get();
- assertNull(notification);
- }
+ public static interface FooMBean
+ {
+ void something();
+ }
- public void testAbstractClass() throws Exception
- {
- MBeanServer server = newMBeanServer();
- try {
- server.createMBean(Foo.class.getName(), null);
- fail();
- }
- catch (NotCompliantMBeanException e)
- {
- // ok
- }
- catch (Exception e)
- {
- e.printStackTrace();
- fail();
- }
- }
-
- public static interface FooMBean
- {
- void something();
- }
-
- public static abstract class Foo implements FooMBean
- {
- public void something() {
- }
- }
+ public static abstract class Foo implements FooMBean
+ {
+ public void something()
+ {
+ }
+ }
}
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerBuilderTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerBuilderTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerBuilderTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,277 +6,266 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
-import java.lang.reflect.Method;
import java.util.HashMap;
-import javax.management.AttributeNotFoundException;
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanException;
-import javax.management.MBeanRegistration;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerBuilder;
-import javax.management.MBeanServerDelegate;
-import javax.management.ObjectName;
-import javax.management.ReflectionException;
-
+import mx4j.MX4JTestCase;
import mx4j.server.ChainedMBeanServer;
import mx4j.server.ChainedMBeanServerBuilder;
import mx4j.server.MX4JMBeanServer;
import mx4j.server.MX4JMBeanServerBuilder;
import mx4j.server.MX4JMBeanServerDelegate;
-import test.MX4JTestCase;
/**
* @version $Revision$
*/
public class MBeanServerBuilderTest extends MX4JTestCase
{
- private static final String INITIAL_BUILDER = "javax.management.builder.initial";
+ private static final String INITIAL_BUILDER = "javax.management.builder.initial";
- public MBeanServerBuilderTest(String s)
- {
- super(s);
- }
+ private MBeanServer newMBeanServer()
+ {
+ return MBeanServerFactory.newMBeanServer();
+ }
- public void testDefaultBuilder() throws Exception
- {
- System.getProperties().remove(INITIAL_BUILDER);
- MBeanServer server = newMBeanServer();
- if (!(server instanceof MX4JMBeanServer))
- fail("Wrong default server implementation");
- }
+ public void testDefaultBuilder() throws Exception
+ {
+ System.getProperties().remove(INITIAL_BUILDER);
+ MBeanServer server = newMBeanServer();
+ if (!(server instanceof MX4JMBeanServer))
+ fail("Wrong default server implementation");
+ }
- public void testCustomBuilder() throws Exception
- {
- try
- {
- System.setProperty(INITIAL_BUILDER, CustomBuilder.class.getName());
- MBeanServer server = newMBeanServer();
- if (!(server instanceof CustomMBeanServer))
- fail("Wrong custom server implementation");
- if (!server.isInstanceOf(new ObjectName("JMImplementation", "type", "MBeanServerDelegate"), CustomDelegate.class.getName()))
- fail("wrong delegate implementation");
- }
- finally
- {
- System.getProperties().remove(INITIAL_BUILDER);
- }
- }
+ public void testCustomBuilder() throws Exception
+ {
+ try
+ {
+ System.setProperty(INITIAL_BUILDER, CustomBuilder.class.getName());
+ MBeanServer server = newMBeanServer();
+ if (!(server instanceof CustomMBeanServer))
+ fail("Wrong custom server implementation");
+ if (!server.isInstanceOf(new ObjectName("JMImplementation", "type", "MBeanServerDelegate"), CustomDelegate.class.getName()))
+ fail("wrong delegate implementation");
+ }
+ finally
+ {
+ System.getProperties().remove(INITIAL_BUILDER);
+ }
+ }
+/*
+ public void testMX4JunderJMXRI() throws Exception
+ {
+ ClassLoader jmxriLoader = createJMXRIWithMX4JImplClassLoader();
- public void testMX4JunderJMXRI() throws Exception
- {
- ClassLoader jmxriLoader = createJMXRIWithMX4JImplClassLoader();
+ Class jmxri_c_mBeanServerFactory = jmxriLoader.loadClass("javax.management.MBeanServerFactory");
+ Method jmxri_m_newMBeanServer = jmxri_c_mBeanServerFactory.getMethod("newMBeanServer", new Class[0]);
- Class jmxri_c_mBeanServerFactory = jmxriLoader.loadClass("javax.management.MBeanServerFactory");
- Method jmxri_m_newMBeanServer = jmxri_c_mBeanServerFactory.getMethod("newMBeanServer", new Class[0]);
+ System.getProperties().remove(INITIAL_BUILDER);
+ Object jmxri_MBeanServer = jmxri_m_newMBeanServer.invoke(null, new Object[0]);
- System.getProperties().remove(INITIAL_BUILDER);
- Object jmxri_MBeanServer = jmxri_m_newMBeanServer.invoke(null, new Object[0]);
+ boolean isJMXRImBeanServer = jmxri_MBeanServer.getClass().getName().startsWith("com.sun.jmx.");
+ if (!isJMXRImBeanServer)
+ fail("Failed to make use of JMXRI classes");
- boolean isJMXRImBeanServer = jmxri_MBeanServer.getClass().getName().startsWith("com.sun.jmx.");
- if (!isJMXRImBeanServer)
- fail("Failed to make use of JMXRI classes");
+ final ClassLoader oldContextLoader = Thread.currentThread().getContextClassLoader();
+ try
+ {
+ System.setProperty(INITIAL_BUILDER, MX4JMBeanServerBuilder.class.getName());
+ Thread.currentThread().setContextClassLoader(jmxriLoader);
+ Object mx4j_MBeanServer = jmxri_m_newMBeanServer.invoke(null, new Object[0]);
+ boolean isMX4JMBeanServer = mx4j_MBeanServer.getClass().getName().startsWith("mx4j.server.");
+ if (!isMX4JMBeanServer)
+ fail("Not using MX4J as specified by javax.management.builder.initial");
+ }
+ finally
+ {
+ System.getProperties().remove(INITIAL_BUILDER);
+ Thread.currentThread().setContextClassLoader(oldContextLoader);
+ }
+ }
+*/
+ public void testChainedMBeanServerBuilder() throws Exception
+ {
+ try
+ {
+ System.setProperty(INITIAL_BUILDER, ComplexBuilder.class.getName());
+ MBeanServer server = newMBeanServer();
+ if (!(server instanceof LoggingMBeanServer)) fail();
+ server.registerMBean(new Simple(), new ObjectName(":mbean=simple"));
+ Object vendor = server.getAttribute(new ObjectName("JMImplementation", "type", "MBeanServerDelegate"), "ImplementationVendor");
+ if (!(vendor instanceof HashMap)) fail();
+ if (((HashMap)vendor).size() != 4) fail();
+ }
+ finally
+ {
+ System.getProperties().remove(INITIAL_BUILDER);
+ }
+ }
- final ClassLoader oldContextLoader = Thread.currentThread().getContextClassLoader();
- try
- {
- System.setProperty(INITIAL_BUILDER, MX4JMBeanServerBuilder.class.getName());
- Thread.currentThread().setContextClassLoader(jmxriLoader);
- Object mx4j_MBeanServer = jmxri_m_newMBeanServer.invoke(null, new Object[0]);
- boolean isMX4JMBeanServer = mx4j_MBeanServer.getClass().getName().startsWith("mx4j.server.");
- if (!isMX4JMBeanServer)
- fail("Not using MX4J as specified by javax.management.builder.initial");
- }
- finally
- {
- System.getProperties().remove(INITIAL_BUILDER);
- Thread.currentThread().setContextClassLoader(oldContextLoader);
- }
- }
+ // Support classes
- public void testChainedMBeanServerBuilder() throws Exception
- {
- try
- {
- System.setProperty(INITIAL_BUILDER, ComplexBuilder.class.getName());
- MBeanServer server = newMBeanServer();
- if (!(server instanceof LoggingMBeanServer)) fail();
- server.registerMBean(new Simple(), new ObjectName(":mbean=simple"));
- Object vendor = server.getAttribute(new ObjectName("JMImplementation", "type", "MBeanServerDelegate"), "ImplementationVendor");
- if (!(vendor instanceof HashMap)) fail();
- if (((HashMap)vendor).size() != 4) fail();
- }
- finally
- {
- System.getProperties().remove(INITIAL_BUILDER);
- }
- }
+ /**
+ * This is a simple terminal builder, that is a builder that creates a full MBeanServer implementation.
+ * It cannot be used to chain other builders, it can only be used as the last builder in the chain.
+ */
+ public static class CustomBuilder extends MBeanServerBuilder
+ {
+ public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
+ {
+ return new CustomMBeanServer(defaultDomain, outer, delegate);
+ }
- // Support classes
+ public MBeanServerDelegate newMBeanServerDelegate()
+ {
+ return new CustomDelegate();
+ }
+ }
- /**
- * This is a simple terminal builder, that is a builder that creates a full MBeanServer implementation.
- * It cannot be used to chain other builders, it can only be used as the last builder in the chain.
- */
- public static class CustomBuilder extends MBeanServerBuilder
- {
- public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
- {
- return new CustomMBeanServer(defaultDomain, outer, delegate);
- }
+ /**
+ * Custom delegate class, for testing.
+ */
+ public static class CustomDelegate extends MX4JMBeanServerDelegate
+ {
+ }
- public MBeanServerDelegate newMBeanServerDelegate()
- {
- return new CustomDelegate();
- }
- }
+ public static class CustomMBeanServer extends MX4JMBeanServer
+ {
+ public CustomMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
+ {
+ super(defaultDomain, outer, delegate);
+ }
+ }
- /**
- * Custom delegate class, for testing.
- */
- public static class CustomDelegate extends MX4JMBeanServerDelegate
- {
- }
+ public static class ComplexBuilder extends ChainedMBeanServerBuilder
+ {
+ public ComplexBuilder()
+ {
+ super(new LoggingBuilder(new PerformanceBuilder(new MX4JMBeanServerBuilder())));
+ }
+ }
- public static class CustomMBeanServer extends MX4JMBeanServer
- {
- public CustomMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
- {
- super(defaultDomain, outer, delegate);
- }
- }
+ public static class LoggingBuilder extends ChainedMBeanServerBuilder
+ {
+ public LoggingBuilder(MBeanServerBuilder chain)
+ {
+ super(chain);
+ }
- public static class ComplexBuilder extends ChainedMBeanServerBuilder
- {
- public ComplexBuilder()
- {
- super(new LoggingBuilder(new PerformanceBuilder(new MX4JMBeanServerBuilder())));
- }
- }
+ public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
+ {
+ LoggingMBeanServer external = new LoggingMBeanServer();
+ MBeanServer nested = getMBeanServerBuilder().newMBeanServer(defaultDomain, outer == null ? external : outer, delegate);
+ external.setMBeanServer(nested);
+ return external;
+ }
+ }
- public static class LoggingBuilder extends ChainedMBeanServerBuilder
- {
- public LoggingBuilder(MBeanServerBuilder chain)
- {
- super(chain);
- }
+ public static class PerformanceBuilder extends ChainedMBeanServerBuilder
+ {
+ public PerformanceBuilder(MBeanServerBuilder chain)
+ {
+ super(chain);
+ }
- public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
- {
- LoggingMBeanServer external = new LoggingMBeanServer();
- MBeanServer nested = getMBeanServerBuilder().newMBeanServer(defaultDomain, outer == null ? external : outer, delegate);
- external.setMBeanServer(nested);
- return external;
- }
- }
+ public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
+ {
+ TimingMBeanServer external = new TimingMBeanServer();
+ MBeanServer nested = getMBeanServerBuilder().newMBeanServer(defaultDomain, outer == null ? external : outer, delegate);
+ external.setMBeanServer(new InvocationCounterMBeanServer(nested));
+ return external;
+ }
+ }
- public static class PerformanceBuilder extends ChainedMBeanServerBuilder
- {
- public PerformanceBuilder(MBeanServerBuilder chain)
- {
- super(chain);
- }
+ public static class LoggingMBeanServer extends ChainedMBeanServer
+ {
+ protected void setMBeanServer(MBeanServer server)
+ {
+ super.setMBeanServer(server);
+ }
- public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
- {
- TimingMBeanServer external = new TimingMBeanServer();
- MBeanServer nested = getMBeanServerBuilder().newMBeanServer(defaultDomain, outer == null ? external : outer, delegate);
- external.setMBeanServer(new InvocationCounterMBeanServer(nested));
- return external;
- }
- }
+ public Object getAttribute(ObjectName objectName, String attribute)
+ throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
+ {
+ HashMap map = (HashMap)super.getAttribute(objectName, attribute);
+ map.put("logged", "logged");
+ return map;
+ }
+ }
- public static class LoggingMBeanServer extends ChainedMBeanServer
- {
- protected void setMBeanServer(MBeanServer server)
- {
- super.setMBeanServer(server);
- }
+ public static class TimingMBeanServer extends ChainedMBeanServer
+ {
+ protected void setMBeanServer(MBeanServer server)
+ {
+ super.setMBeanServer(server);
+ }
- public Object getAttribute(ObjectName objectName, String attribute)
- throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
- {
- HashMap map = (HashMap)super.getAttribute(objectName, attribute);
- map.put("logged", "logged");
- return map;
- }
- }
+ public Object getAttribute(ObjectName objectName, String attribute)
+ throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
+ {
+ long start = System.currentTimeMillis();
+ HashMap ret = (HashMap)super.getAttribute(objectName, attribute);
+ long end = System.currentTimeMillis();
+ long elapsed = end - start;
+ System.out.println("Elapsed: " + elapsed);
+ ret.put("elapsed", new Long(elapsed));
+ return ret;
+ }
+ }
- public static class TimingMBeanServer extends ChainedMBeanServer
- {
- protected void setMBeanServer(MBeanServer server)
- {
- super.setMBeanServer(server);
- }
+ public static class InvocationCounterMBeanServer extends ChainedMBeanServer
+ {
+ private ThreadLocal getAttributeCount = new ThreadLocal()
+ {
+ protected Object initialValue()
+ {
+ return new Long(0);
+ }
+ };
- public Object getAttribute(ObjectName objectName, String attribute)
- throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
- {
- long start = System.currentTimeMillis();
- HashMap ret = (HashMap)super.getAttribute(objectName, attribute);
- long end = System.currentTimeMillis();
- long elapsed = end - start;
- System.out.println("Elapsed: " + elapsed);
- ret.put("elapsed", new Long(elapsed));
- return ret;
- }
- }
+ public InvocationCounterMBeanServer(MBeanServer server)
+ {
+ super(server);
+ }
- public static class InvocationCounterMBeanServer extends ChainedMBeanServer
- {
- private ThreadLocal getAttributeCount = new ThreadLocal()
- {
- protected Object initialValue()
- {
- return new Long(0);
- }
- };
+ public Object getAttribute(ObjectName objectName, String attribute)
+ throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
+ {
+ Long count = (Long)getAttributeCount.get();
+ count = new Long(count.longValue() + 1);
+ getAttributeCount.set(count);
+ System.out.println("Counted: " + count);
- public InvocationCounterMBeanServer(MBeanServer server)
- {
- super(server);
- }
+ HashMap map = new HashMap();
+ map.put("result", super.getAttribute(objectName, attribute));
+ map.put("count", count);
- public Object getAttribute(ObjectName objectName, String attribute)
- throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
- {
- Long count = (Long)getAttributeCount.get();
- count = new Long(count.longValue() + 1);
- getAttributeCount.set(count);
- System.out.println("Counted: " + count);
+ return map;
+ }
+ }
- HashMap map = new HashMap();
- map.put("result", super.getAttribute(objectName, attribute));
- map.put("count", count);
+ public interface SimpleMBean
+ {
+ }
- return map;
- }
- }
+ public static class Simple implements SimpleMBean, MBeanRegistration
+ {
+ public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
+ {
+ if (!(server instanceof LoggingMBeanServer)) fail();
+ return name;
+ }
- public interface SimpleMBean
- {
- }
+ public void postRegister(Boolean registrationDone)
+ {
+ }
- public static class Simple implements SimpleMBean, MBeanRegistration
- {
- public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
- {
- if (!(server instanceof LoggingMBeanServer)) fail();
- return name;
- }
+ public void preDeregister() throws Exception
+ {
+ }
- public void postRegister(Boolean registrationDone)
- {
- }
-
- public void preDeregister() throws Exception
- {
- }
-
- public void postDeregister()
- {
- }
- }
+ public void postDeregister()
+ {
+ }
+ }
}
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerFactoryTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerFactoryTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerFactoryTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,13 +6,10 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
import java.util.List;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-
import junit.framework.TestCase;
/**
@@ -20,154 +17,148 @@
*/
public class MBeanServerFactoryTest extends TestCase
{
- public MBeanServerFactoryTest(String s)
- {
- super(s);
- }
+ public void testCreate() throws Exception
+ {
+ MBeanServer server1 = null;
+ try
+ {
+ System.out.print("Creating MBeanServer 1 ... ");
+ server1 = MBeanServerFactory.createMBeanServer();
+ System.out.println("OK");
+ System.out.print("Finding MBeanServer... ");
+ List l = MBeanServerFactory.findMBeanServer(null);
+ if (l.size() != 1)
+ {
+ fail("MBeanServer creation is not tracked");
+ }
+ if (!server1.equals(l.get(0)))
+ {
+ fail("MBeanServer found is different");
+ }
+ System.out.println("Found, OK");
+ }
+ finally
+ {
+ MBeanServerFactory.releaseMBeanServer(server1);
+ }
+ }
- public void testCreate() throws Exception
- {
- MBeanServer server1 = null;
- try
- {
- System.out.print("Creating MBeanServer 1 ... ");
- server1 = MBeanServerFactory.createMBeanServer();
- System.out.println("OK");
- System.out.print("Finding MBeanServer... ");
- List l = MBeanServerFactory.findMBeanServer(null);
- if (l.size() != 1)
- {
- fail("MBeanServer creation is not tracked");
- }
- if (!server1.equals(l.get(0)))
- {
- fail("MBeanServer found is different");
- }
- System.out.println("Found, OK");
- }
- finally
- {
- MBeanServerFactory.releaseMBeanServer(server1);
- }
- }
+ public void testNew() throws Exception
+ {
+ MBeanServer server1 = null;
+ try
+ {
+ System.out.print("Creating MBeanServer 1 ... ");
+ server1 = MBeanServerFactory.createMBeanServer();
+ System.out.println("OK");
+ // newMBeanServer must not keep track of the MBeanServer it creates
+ System.out.print("Newing MBeanServer 2 ... ");
+ MBeanServer server2 = MBeanServerFactory.newMBeanServer();
+ System.out.println("OK");
+ System.out.print("Finding MBeanServer... ");
+ List l = MBeanServerFactory.findMBeanServer(null);
+ if (l.size() != 1)
+ {
+ fail("newMBeanServer tracks creation");
+ }
+ if (!server1.equals(l.get(0)))
+ {
+ fail("MBeanServer found is different");
+ }
+ System.out.println("Found number 1, OK");
+ }
+ finally
+ {
+ MBeanServerFactory.releaseMBeanServer(server1);
+ }
+ }
- public void testNew() throws Exception
- {
- MBeanServer server1 = null;
- try
- {
- System.out.print("Creating MBeanServer 1 ... ");
- server1 = MBeanServerFactory.createMBeanServer();
- System.out.println("OK");
-// newMBeanServer must not keep track of the MBeanServer it creates
- System.out.print("Newing MBeanServer 2 ... ");
- MBeanServer server2 = MBeanServerFactory.newMBeanServer();
- System.out.println("OK");
- System.out.print("Finding MBeanServer... ");
- List l = MBeanServerFactory.findMBeanServer(null);
- if (l.size() != 1)
- {
- fail("newMBeanServer tracks creation");
- }
- if (!server1.equals(l.get(0)))
- {
- fail("MBeanServer found is different");
- }
- System.out.println("Found number 1, OK");
- }
- finally
- {
- MBeanServerFactory.releaseMBeanServer(server1);
- }
- }
+ public void testCreateWithDomain()
+ {
+ MBeanServer server1 = null;
+ MBeanServer server3 = null;
+ try
+ {
+ System.out.print("Creating MBeanServer 1 ... ");
+ server1 = MBeanServerFactory.createMBeanServer();
+ System.out.println("OK");
+ String domain = "test";
- public void testCreateWithDomain()
- {
- MBeanServer server1 = null;
- MBeanServer server3 = null;
- try
- {
- System.out.print("Creating MBeanServer 1 ... ");
- server1 = MBeanServerFactory.createMBeanServer();
- System.out.println("OK");
+ System.out.print("Creating MBeanServer 3 ... ");
+ server3 = MBeanServerFactory.createMBeanServer(domain);
+ System.out.println("OK");
+ System.out.print("Finding MBeanServer... ");
+ List l = MBeanServerFactory.findMBeanServer(null);
+ if (l.size() != 2)
+ {
+ fail("MBeanServer creation is not tracked");
+ }
+ MBeanServer found1 = (MBeanServer)l.get(0);
+ if (!found1.getDefaultDomain().equals(server1.getDefaultDomain()))
+ {
+ fail("MBeanServer found is different");
+ }
+ if (!server3.equals(l.get(1)))
+ {
+ fail("MBeanServer found is different");
+ }
+ if (!server3.getDefaultDomain().equals(domain))
+ {
+ fail("Domain is different");
+ }
+ System.out.println("Found number 1 & 3, OK");
+ }
+ finally
+ {
+ MBeanServerFactory.releaseMBeanServer(server1);
+ MBeanServerFactory.releaseMBeanServer(server3);
+ }
+ }
- String domain = "test";
- System.out.print("Creating MBeanServer 3 ... ");
- server3 = MBeanServerFactory.createMBeanServer(domain);
- System.out.println("OK");
- System.out.print("Finding MBeanServer... ");
- List l = MBeanServerFactory.findMBeanServer(null);
- if (l.size() != 2)
- {
- fail("MBeanServer creation is not tracked");
- }
- MBeanServer found1 = (MBeanServer)l.get(0);
- if (!found1.getDefaultDomain().equals(server1.getDefaultDomain()))
- {
- fail("MBeanServer found is different");
- }
- if (!server3.equals(l.get(1)))
- {
- fail("MBeanServer found is different");
- }
- if (!server3.getDefaultDomain().equals(domain))
- {
- fail("Domain is different");
- }
- System.out.println("Found number 1 & 3, OK");
- }
- finally
- {
- MBeanServerFactory.releaseMBeanServer(server1);
- MBeanServerFactory.releaseMBeanServer(server3);
- }
- }
+ public void testRelease() throws Exception
+ {
+ System.out.print("Creating MBeanServer 1 ... ");
+ MBeanServer server1 = MBeanServerFactory.createMBeanServer();
+ System.out.println("OK");
+ System.out.print("Creating MBeanServer 2 ... ");
+ String domain = "test";
+ MBeanServer server2 = MBeanServerFactory.createMBeanServer(domain);
+ System.out.println("OK");
- public void testRelease() throws Exception
- {
- System.out.print("Creating MBeanServer 1 ... ");
- MBeanServer server1 = MBeanServerFactory.createMBeanServer();
- System.out.println("OK");
+ System.out.print("Releasing MBeanServer 1 ... ");
+ List l = MBeanServerFactory.findMBeanServer(null);
+ MBeanServer found1 = (MBeanServer)l.get(0);
+ MBeanServerFactory.releaseMBeanServer(found1);
+ System.out.println("OK");
- System.out.print("Creating MBeanServer 2 ... ");
- String domain = "test";
- MBeanServer server2 = MBeanServerFactory.createMBeanServer(domain);
- System.out.println("OK");
+ System.out.print("Finding MBeanServer... ");
+ l = MBeanServerFactory.findMBeanServer(null);
+ if (l.size() != 1)
+ {
+ fail("Removed MBeanServer still present");
+ }
+ MBeanServer found2 = (MBeanServer)l.get(0);
+ if (!found2.getDefaultDomain().equals(domain))
+ {
+ fail("Removed wrong MBeanServer");
+ }
+ System.out.println("Found number 2, OK");
- System.out.print("Releasing MBeanServer 1 ... ");
- List l = MBeanServerFactory.findMBeanServer(null);
- MBeanServer found1 = (MBeanServer)l.get(0);
- MBeanServerFactory.releaseMBeanServer(found1);
- System.out.println("OK");
+ System.out.print("Releasing MBeanServer 2 ... ");
+ MBeanServerFactory.releaseMBeanServer(found2);
+ System.out.println("OK");
- System.out.print("Finding MBeanServer... ");
- l = MBeanServerFactory.findMBeanServer(null);
- if (l.size() != 1)
- {
- fail("Removed MBeanServer still present");
- }
- MBeanServer found2 = (MBeanServer)l.get(0);
- if (!found2.getDefaultDomain().equals(domain))
- {
- fail("Removed wrong MBeanServer");
- }
- System.out.println("Found number 2, OK");
-
- System.out.print("Releasing MBeanServer 2 ... ");
- MBeanServerFactory.releaseMBeanServer(found2);
- System.out.println("OK");
-
- System.out.print("Finding MBeanServer... ");
- l = MBeanServerFactory.findMBeanServer(null);
- if (l.size() != 0)
- {
- fail("Removed MBeanServer still present");
- }
- System.out.println("Found none, OK");
- }
+ System.out.print("Finding MBeanServer... ");
+ l = MBeanServerFactory.findMBeanServer(null);
+ if (l.size() != 0)
+ {
+ fail("Removed MBeanServer still present");
+ }
+ System.out.println("Found none, OK");
+ }
}
Modified: trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerInvocationHandlerTest.java
===================================================================
--- trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerInvocationHandlerTest.java 2006-11-24 14:16:46 UTC (rev 2254)
+++ trunk/mx4j/jsr003/src/test/java/javax/management/MBeanServerInvocationHandlerTest.java 2006-12-13 14:31:18 UTC (rev 2255)
@@ -6,535 +6,516 @@
* See the terms of the MX4J License in the documentation provided with this software.
*/
-package test.javax.management;
+package javax.management;
import java.io.IOException;
import java.lang.reflect.UndeclaredThrowableException;
-import javax.management.InstanceNotFoundException;
-import javax.management.ListenerNotFoundException;
-import javax.management.MBeanException;
-import javax.management.MBeanNotificationInfo;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerConnection;
-import javax.management.MBeanServerInvocationHandler;
-import javax.management.Notification;
-import javax.management.NotificationBroadcaster;
-import javax.management.NotificationBroadcasterSupport;
-import javax.management.NotificationEmitter;
-import javax.management.NotificationFilter;
-import javax.management.NotificationListener;
-import javax.management.ObjectName;
-import javax.management.remote.JMXConnector;
-import javax.management.remote.JMXConnectorFactory;
-import javax.management.remote.JMXConnectorServer;
-import javax.management.remote.JMXConnectorServerFactory;
-import javax.management.remote.JMXServiceURL;
import javax.naming.NamingException;
-import test.MX4JTestCase;
+import mx4j.MX4JTestCase;
/**
* @version $Revision$
*/
public class MBeanServerInvocationHandlerTest extends MX4JTestCase
{
- public MBeanServerInvocationHandlerTest(String s)
- {
- super(s);
- }
+ private MBeanServer newMBeanServer()
+ {
+ return MBeanServerFactory.newMBeanServer();
+ }
- public void testBadArguments() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
+ public void testBadArguments() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
- try
- {
- MBeanServerInvocationHandler.newProxyInstance(null, name, LocalServiceMBean.class, false);
- fail("MBeanServerConnection cannot be null");
- }
- catch (IllegalArgumentException x)
- {
- }
+ try
+ {
+ MBeanServerInvocationHandler.newProxyInstance(null, name, LocalServiceMBean.class, false);
+ fail("MBeanServerConnection cannot be null");
+ }
+ catch (IllegalArgumentException x)
+ {
+ }
- try
- {
- MBeanServerInvocationHandler.newProxyInstance(server, null, LocalServiceMBean.class, false);
- fail("ObjectName cannot be null");
- }
- catch (IllegalArgumentException x)
- {
- }
+ try
+ {
+ MBeanServerInvocationHandler.newProxyInstance(server, null, LocalServiceMBean.class, false);
+ fail("ObjectName cannot be null");
+ }
+ catch (IllegalArgumentException x)
+ {
+ }
- try
- {
- MBeanServerInvocationHandler.newProxyInstance(server, name, null, false);
- fail("Class cannot be null");
- }
- catch (IllegalArgumentException x)
- {
- }
+ try
+ {
+ MBeanServerInvocationHandler.newProxyInstance(server, name, null, false);
+ fail("Class cannot be null");
+ }
+ catch (IllegalArgumentException x)
+ {
+ }
- try
- {
- MBeanServerInvocationHandler.newProxyInstance(server, name, LocalService.class, false);
- fail("Class must be an interface");
- }
- catch (IllegalArgumentException x)
- {
- }
- }
+ try
+ {
+ MBeanServerInvocationHandler.newProxyInstance(server, name, LocalService.class, false);
+ fail("Class must be an interface");
+ }
+ catch (IllegalArgumentException x)
+ {
+ }
+ }
- public void testMBeanNotAnEmitter() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ public void testMBeanNotAnEmitter() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- NotificationEmitter emitter = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, true);
+ NotificationEmitter emitter = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, true);
- try
- {
- emitter.addNotificationListener(new TestListener(), null, null);
- fail("The MBean is not a NotificationEmitter");
- }
- catch (IllegalArgumentException x)
- {
- }
- }
+ try
+ {
+ emitter.addNotificationListener(new TestListener(), null, null);
+ fail("The MBean is not a NotificationEmitter");
+ }
+ catch (IllegalArgumentException x)
+ {
+ }
+ }
- public void testDeregisteredMBean() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ public void testDeregisteredMBean() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- // Check what the proxy throws if the ObjectName is removed from the server
- LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
- server.unregisterMBean(name);
- try
- {
- proxy.throwCheckedException();
- fail();
- }
- catch (NamingException x)
- {
- fail("Expecting an InstanceNotFoundException");
- }
- catch (UndeclaredThrowableException x)
- {
- Throwable xx = x.getUndeclaredThrowable();
- if (!(xx instanceof InstanceNotFoundException))
+ // Check what the proxy throws if the ObjectName is removed from the server
+ LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
+ server.unregisterMBean(name);
+ try
+ {
+ proxy.throwCheckedException();
+ fail();
+ }
+ catch (NamingException x)
+ {
fail("Expecting an InstanceNotFoundException");
- }
- }
+ }
+ catch (UndeclaredThrowableException x)
+ {
+ Throwable xx = x.getUndeclaredThrowable();
+ if (!(xx instanceof InstanceNotFoundException))
+ fail("Expecting an InstanceNotFoundException");
+ }
+ }
- public void testCheckedException() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ public void testCheckedException() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
- try
- {
- proxy.throwCheckedException();
- fail();
- }
- catch (NamingException x)
- {
- }
- }
+ LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
+ try
+ {
+ proxy.throwCheckedException();
+ fail();
+ }
+ catch (NamingException x)
+ {
+ }
+ }
- public void testMBeanException() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ public void testMBeanException() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
- try
- {
- proxy.throwMBeanException();
- fail();
- }
- catch (MBeanException x)
- {
- }
- }
+ LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
+ try
+ {
+ proxy.throwMBeanException();
+ fail();
+ }
+ catch (MBeanException x)
+ {
+ }
+ }
- public void testRuntimeException() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ public void testRuntimeException() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
- try
- {
- proxy.throwNullPointerException();
- fail();
- }
- catch (NullPointerException x)
- {
- }
- }
+ LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
+ try
+ {
+ proxy.throwNullPointerException();
+ fail();
+ }
+ catch (NullPointerException x)
+ {
+ }
+ }
- public void testError() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ public void testError() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
- try
- {
- proxy.throwError();
- fail();
- }
- catch (Error x)
- {
- }
- }
+ LocalServiceMBean proxy = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LocalServiceMBean.class, false);
+ try
+ {
+ proxy.throwError();
+ fail();
+ }
+ catch (Error x)
+ {
+ }
+ }
- public void testNotificationBroadcasterProxy() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalBroadcasterService mbean = new LocalBroadcasterService();
- server.registerMBean(mbean, name);
+ public void testNotificationBroadcasterProxy() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalBroadcasterService mbean = new LocalBroadcasterService();
+ server.registerMBean(mbean, name);
- // The returned interface should be NotificationEmitter, even though the MBean only implements NotificationBroadcaster
- NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationBroadcaster.class, true);
- assertNotNull(proxy);
- }
+ // The returned interface should be NotificationEmitter, even though the MBean only implements NotificationBroadcaster
+ NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationBroadcaster.class, true);
+ assertNotNull(proxy);
+ }
- public void testAddNotificationListener() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalEmitterService mbean = new LocalEmitterService();
- server.registerMBean(mbean, name);
+ public void testAddNotificationListener() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalEmitterService mbean = new LocalEmitterService();
+ server.registerMBean(mbean, name);
- NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
- TestListener listener = new TestListener();
- proxy.addNotificationListener(listener, null, null);
- mbean.test();
- if (!listener.received) fail();
- }
+ NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
+ TestListener listener = new TestListener();
+ proxy.addNotificationListener(listener, null, null);
+ mbean.test();
+ if (!listener.received) fail();
+ }
- public void testGetNotificationInfo() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalEmitterService mbean = new LocalEmitterService();
- server.registerMBean(mbean, name);
+ public void testGetNotificationInfo() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalEmitterService mbean = new LocalEmitterService();
+ server.registerMBean(mbean, name);
- NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
- MBeanNotificationInfo[] infos = proxy.getNotificationInfo();
- if (!infos[0].getDescription().equals(LocalEmitterService.DESC)) fail();
- }
+ NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
+ MBeanNotificationInfo[] infos = proxy.getNotificationInfo();
+ if (!infos[0].getDescription().equals(LocalEmitterService.DESC)) fail();
+ }
- public void testSimpleRemoveNotificationListener() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalEmitterService mbean = new LocalEmitterService();
- server.registerMBean(mbean, name);
+ public void testSimpleRemoveNotificationListener() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalEmitterService mbean = new LocalEmitterService();
+ server.registerMBean(mbean, name);
- NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
- TestListener listener = new TestListener();
- proxy.addNotificationListener(listener, null, null);
- proxy.removeNotificationListener(listener);
- mbean.test();
- if (listener.received) fail();
- }
+ NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
+ TestListener listener = new TestListener();
+ proxy.addNotificationListener(listener, null, null);
+ proxy.removeNotificationListener(listener);
+ mbean.test();
+ if (listener.received) fail();
+ }
- public void testRemoveNotificationListener() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalEmitterService mbean = new LocalEmitterService();
- server.registerMBean(mbean, name);
+ public void testRemoveNotificationListener() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalEmitterService mbean = new LocalEmitterService();
+ server.registerMBean(mbean, name);
- NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
- TestListener listener = new TestListener();
- TestFilter filter = new TestFilter();
- Object handback = new Object();
- proxy.addNotificationListener(listener, filter, handback);
- proxy.removeNotificationListener(listener, filter, handback);
- mbean.test();
- if (listener.received) fail();
- }
+ NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
+ TestListener listener = new TestListener();
+ TestFilter filter = new TestFilter();
+ Object handback = new Object();
+ proxy.addNotificationListener(listener, filter, handback);
+ proxy.removeNotificationListener(listener, filter, handback);
+ mbean.test();
+ if (listener.received) fail();
+ }
- public void testRemoveMultiNotificationListener() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalEmitterService mbean = new LocalEmitterService();
- server.registerMBean(mbean, name);
+ public void testRemoveMultiNotificationListener() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalEmitterService mbean = new LocalEmitterService();
+ server.registerMBean(mbean, name);
- NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
- TestListener listener1 = new TestListener();
- TestFilter filter = new TestFilter();
- Object handback = new Object();
- proxy.addNotificationListener(listener1, filter, handback);
+ NotificationEmitter proxy = (NotificationEmitter)MBeanServerInvocationHandler.newProxyInstance(server, name, NotificationEmitter.class, true);
+ TestListener listener1 = new TestListener();
+ TestFilter filter = new TestFilter();
+ Object handback = new Object();
+ proxy.addNotificationListener(listener1, filter, handback);
- TestListener listener2 = new TestListener();
- proxy.addNotificationListener(listener2, null, null);
+ TestListener listener2 = new TestListener();
+ proxy.addNotificationListener(listener2, null, null);
- mbean.test();
- if (!listener1.received) fail();
- if (!listener2.received) fail();
+ mbean.test();
+ if (!listener1.received) fail();
+ if (!listener2.received) fail();
- try
- {
- proxy.removeNotificationListener(listener2, filter, handback);
- fail("Listener is not registered");
- }
- catch (ListenerNotFoundException x)
- {
- }
+ try
+ {
+ proxy.removeNotificationListener(listener2, filter, handback);
+ fail("Listener is not registered");
+ }
+ catch (ListenerNotFoundException x)
+ {
+ }
- proxy.removeNotificationListener(listener2, null, null);
- listener1.received = false;
- listener2.received = false;
+ proxy.removeNotificationListener(listener2, null, null);
+ listener1.received = false;
+ listener2.received = false;
- mbean.test();
- if (!listener1.received) fail();
- if (listener2.received) fail();
- }
+ mbean.test();
+ if (!listener1.received) fail();
+ if (listener2.received) fail();
+ }
+/*
+ public void testRemoteExceptionWithRemoteInterface() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- public void testRemoteExceptionWithRemoteInterface() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost");
+ JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
+ cntorServer.start();
+ JMXConnector cntor = JMXConnectorFactory.connect(cntorServer.getAddress());
+ MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
- JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost");
- JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
- cntorServer.start();
- JMXConnector cntor = JMXConnectorFactory.connect(cntorServer.getAddress());
- MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
+ RemoteService remoteMBean = (RemoteService)MBeanServerInvocationHandler.newProxyInstance(mbsc, name, RemoteService.class, false);
- RemoteService remoteMBean = (RemoteService)MBeanServerInvocationHandler.newProxyInstance(mbsc, name, RemoteService.class, false);
+ // Close everything to get IOException
+ cntor.close();
+ cntorServer.stop();
- // Close everything to get IOException
- cntor.close();
- cntorServer.stop();
+ try
+ {
+ remoteMBean.throwCheckedException();
+ fail("Must not be able to connect");
+ }
+ catch (IOException x)
+ {
+ }
+ }
- try
- {
- remoteMBean.throwCheckedException();
- fail("Must not be able to connect");
- }
- catch (IOException x)
- {
- }
- }
+ public void testRemoteExceptionWithLocalInterface() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- public void testRemoteExceptionWithLocalInterface() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost");
+ JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
+ cntorServer.start();
+ JMXConnector cntor = JMXConnectorFactory.connect(cntorServer.getAddress());
+ MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
- JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost");
- JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
- cntorServer.start();
- JMXConnector cntor = JMXConnectorFactory.connect(cntorServer.getAddress());
- MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
+ LocalServiceMBean remoteMBean = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name, LocalServiceMBean.class, false);
- LocalServiceMBean remoteMBean = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name, LocalServiceMBean.class, false);
+ // Close everything to get IOException
+ cntor.close();
+ cntorServer.stop();
- // Close everything to get IOException
- cntor.close();
- cntorServer.stop();
+ // Now try the local interface
+ try
+ {
+ remoteMBean.throwCheckedException();
+ fail("Must not be able to connect");
+ }
+ catch (UndeclaredThrowableException x)
+ {
+ Throwable xx = x.getUndeclaredThrowable();
+ if (!(xx instanceof IOException)) fail();
+ }
+ }
- // Now try the local interface
- try
- {
- remoteMBean.throwCheckedException();
- fail("Must not be able to connect");
- }
- catch (UndeclaredThrowableException x)
- {
- Throwable xx = x.getUndeclaredThrowable();
- if (!(xx instanceof IOException)) fail();
- }
- }
+ public void testRemoteCheckedException() throws Exception
+ {
+ MBeanServer server = newMBeanServer();
+ ObjectName name = new ObjectName("domain:key=value");
+ LocalService mbean = new LocalService();
+ server.registerMBean(mbean, name);
- public void testRemoteCheckedException() throws Exception
- {
- MBeanServer server = newMBeanServer();
- ObjectName name = new ObjectName("domain:key=value");
- LocalService mbean = new LocalService();
- server.registerMBean(mbean, name);
+ JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost");
+ JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
+ cntorServer.start();
+ JMXConnector cntor = JMXConnectorFactory.connect(cntorServer.getAddress());
+ MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
- JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost");
- JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
- cntorServer.start();
- JMXConnector cntor = JMXConnectorFactory.connect(cntorServer.getAddress());
- MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
+ LocalServiceMBean remoteMBean = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name, LocalServiceMBean.class, false);
+ try
+ {
+ remoteMBean.throwCheckedException();
+ fail();
+ }
+ catch (NamingException x)
+ {
+ }
+ }
+*/
+ public interface LocalServiceMBean
+ {
+ public void throwCheckedException() throws NamingException;
- LocalServiceMBean remoteMBean = (LocalServiceMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name, LocalServiceMBean.class, false);
- try
- {
- remoteMBean.throwCheckedException();
- fail();
- }
- catch (NamingException x)
- {
- }
- }
+ public void throwMBeanException() throws MBeanException;
- public interface LocalServiceMBean
- {
- public void throwCheckedException() throws NamingException;
+ public void throwNullPointerException();
- public void throwMBeanException() throws MBeanException;
+ public void throwError();
+ }
- public void throwNullPointerException();
+ public interface RemoteService
+ {
+ public void throwCheckedException() throws NamingException, IOException;
- public void throwError();
- }
+ public void throwMBeanException() throws MBeanException, IOException;
- public interface RemoteService
- {
- public void throwCheckedException() throws NamingException, IOException;
+ public void throwNullPointerException() throws IOException;
- public void throwMBeanException() throws MBeanException, IOException;
+ public void throwError() throws IOException;
+ }
- public void throwNullPointerException() throws IOException;
+ public class LocalService implements LocalServiceMBean
+ {
+ public void throwCheckedException() throws NamingException
+ {
+ throw new NamingException();
+ }
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV