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