[jboss-cvs] JBossAS SVN: r62723 - in projects/microcontainer/trunk/classloader/src: tests/org/jboss/test/classloader/system/support and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed May 2 07:30:08 EDT 2007
Author: adrian at jboss.org
Date: 2007-05-02 07:30:08 -0400 (Wed, 02 May 2007)
New Revision: 62723
Modified:
projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/ClassLoaderSystem.java
projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/support/MockClassLoaderDomain.java
projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/support/MockClassLoaderSystem.java
projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/test/ClassLoadingSystemNoSecurityUnitTestCase.java
projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/test/ClassLoadingSystemUnitTestCase.java
Log:
[JBOSGI-21] - Some more tests and a fix to stop people unregistering the default domain.
Modified: projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/ClassLoaderSystem.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/ClassLoaderSystem.java 2007-05-02 11:08:46 UTC (rev 62722)
+++ projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/ClassLoaderSystem.java 2007-05-02 11:30:08 UTC (rev 62723)
@@ -230,11 +230,17 @@
String name = domain.getName();
if (isRegistered(name))
- throw new IllegalStateException("A domain is already registered with " + name);
+ throw new IllegalStateException("A domain is already registered with name " + name);
internalRegisterDomain(name, domain);
}
+ /**
+ * Do the registration
+ *
+ * @param name the name
+ * @param domain the domain
+ */
private void internalRegisterDomain(String name, ClassLoaderDomain domain)
{
if (shutdown)
@@ -250,13 +256,16 @@
* Unregister a domain
*
* @param domain the domain
- * @throws IllegalArgumentException for a null domain
+ * @throws IllegalArgumentException for a null domain or if you attempt to unregister the default domain
* @throws IllegalStateException if a domain is not registered
*/
public synchronized void unregisterDomain(ClassLoaderDomain domain)
{
if (isDomainRegistered(domain) == false)
throw new IllegalStateException("Domain is not registered " + domain);
+
+ if (ClassLoaderSystem.DEFAULT_DOMAIN_NAME.equals(domain.getName()))
+ throw new IllegalArgumentException("Cannot unregister the default domain");
registeredDomains.remove(domain.getName());
super.unregisterDomain(domain);
Modified: projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/support/MockClassLoaderDomain.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/support/MockClassLoaderDomain.java 2007-05-02 11:08:46 UTC (rev 62722)
+++ projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/support/MockClassLoaderDomain.java 2007-05-02 11:30:08 UTC (rev 62723)
@@ -43,6 +43,11 @@
super("mock");
}
+ public MockClassLoaderDomain(String name)
+ {
+ super(name);
+ }
+
protected void afterRegisterClassLoader(ClassLoader classLoader, ClassLoaderPolicy policy)
{
added.add(classLoader);
Modified: projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/support/MockClassLoaderSystem.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/support/MockClassLoaderSystem.java 2007-05-02 11:08:46 UTC (rev 62722)
+++ projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/support/MockClassLoaderSystem.java 2007-05-02 11:30:08 UTC (rev 62723)
@@ -35,7 +35,7 @@
@Override
protected ClassLoaderDomain createDomain(String name)
{
- return new MockClassLoaderDomain();
+ return new MockClassLoaderDomain(name);
}
public MockClassLoaderDomain createAndRegisterDomain(String name)
Modified: projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/test/ClassLoadingSystemNoSecurityUnitTestCase.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/test/ClassLoadingSystemNoSecurityUnitTestCase.java 2007-05-02 11:08:46 UTC (rev 62722)
+++ projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/test/ClassLoadingSystemNoSecurityUnitTestCase.java 2007-05-02 11:30:08 UTC (rev 62723)
@@ -48,5 +48,8 @@
{
ClassLoaderSystem instance = ClassLoaderSystem.getInstance();
assertNotNull(instance);
+
+ ClassLoaderSystem instance2 = ClassLoaderSystem.getInstance();
+ assertTrue("Should be the same instance", instance == instance2);
}
}
Modified: projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/test/ClassLoadingSystemUnitTestCase.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/test/ClassLoadingSystemUnitTestCase.java 2007-05-02 11:08:46 UTC (rev 62722)
+++ projects/microcontainer/trunk/classloader/src/tests/org/jboss/test/classloader/system/test/ClassLoadingSystemUnitTestCase.java 2007-05-02 11:30:08 UTC (rev 62723)
@@ -21,6 +21,7 @@
*/
package org.jboss.test.classloader.system.test;
+import java.security.AccessControlException;
import java.util.ArrayList;
import java.util.List;
@@ -50,15 +51,220 @@
super(name);
}
+ public void testGetInstance() throws Exception
+ {
+ try
+ {
+ ClassLoaderSystem.getInstance();
+ fail("Should not be here!");
+ }
+ catch (Exception e)
+ {
+ checkThrowable(AccessControlException.class, e);
+ }
+ }
+
public void testDefaultDomain() throws Exception
{
- ClassLoaderDomain domain = createClassLoaderSystem().getDefaultDomain();
+ ClassLoaderSystem system = createClassLoaderSystem();
+ assertTrue(system.isRegistered(ClassLoaderSystem.DEFAULT_DOMAIN_NAME));
+ ClassLoaderDomain domain = system.getDefaultDomain();
assertNotNull(domain);
assertEquals(ClassLoaderSystem.DEFAULT_DOMAIN_NAME, domain.getName());
+ assertTrue(system.isRegistered(ClassLoaderSystem.DEFAULT_DOMAIN_NAME));
+ assertTrue(system.isDomainRegistered(domain));
}
- public void testRegisterExplicitDomain() throws Exception
+ public void testRegisterDomain() throws Exception
{
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ assertFalse(system.isRegistered("mock"));
+ MockClassLoaderDomain domain = new MockClassLoaderDomain("mock");
+ assertFalse(system.isDomainRegistered(domain));
+
+ system.registerDomain(domain);
+ assertTrue(system.isRegistered("mock"));
+ assertTrue(system.isDomainRegistered(domain));
+ }
+
+ public void testRegisterDomains() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ assertFalse(system.isRegistered("a"));
+ MockClassLoaderDomain a = new MockClassLoaderDomain("a");
+ assertFalse(system.isDomainRegistered(a));
+
+ assertFalse(system.isRegistered("b"));
+ MockClassLoaderDomain b = new MockClassLoaderDomain("b");
+ assertFalse(system.isDomainRegistered(a));
+
+ system.registerDomain(a);
+ system.registerDomain(b);
+
+ assertTrue(system.isRegistered("a"));
+ assertTrue(system.isDomainRegistered(a));
+ assertTrue(system.isRegistered("b"));
+ assertTrue(system.isDomainRegistered(b));
+ }
+
+ public void testRegisterNullDomain() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ try
+ {
+ system.registerDomain(null);
+ fail("Should not be here!");
+ }
+ catch (Exception e)
+ {
+ checkThrowable(IllegalArgumentException.class, e);
+ }
+ }
+
+ public void testRegisterDefaultDomain() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ MockClassLoaderDomain domain = new MockClassLoaderDomain(ClassLoaderSystem.DEFAULT_DOMAIN_NAME);
+ try
+ {
+ system.registerDomain(domain);
+ fail("Should not be here!");
+ }
+ catch (Exception e)
+ {
+ checkThrowable(IllegalStateException.class, e);
+ }
+ }
+
+ public void testRegisterDuplicateDomain() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ assertFalse(system.isRegistered("a"));
+ MockClassLoaderDomain a = new MockClassLoaderDomain("a");
+ assertFalse(system.isDomainRegistered(a));
+
+ system.registerDomain(a);
+
+ assertTrue(system.isRegistered("a"));
+ assertTrue(system.isDomainRegistered(a));
+
+ try
+ {
+ system.registerDomain(a);
+ fail("Should not be here!");
+ }
+ catch (Exception e)
+ {
+ checkThrowable(IllegalStateException.class, e);
+ }
+ }
+
+ public void testRegisterDuplicateDomainName() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ assertFalse(system.isRegistered("a"));
+ MockClassLoaderDomain a = new MockClassLoaderDomain("a");
+ assertFalse(system.isDomainRegistered(a));
+
+ MockClassLoaderDomain b = new MockClassLoaderDomain("a");
+
+ system.registerDomain(a);
+
+ assertTrue(system.isRegistered("a"));
+ assertTrue(system.isDomainRegistered(a));
+
+ try
+ {
+ system.registerDomain(b);
+ fail("Should not be here!");
+ }
+ catch (Exception e)
+ {
+ checkThrowable(IllegalStateException.class, e);
+ }
+ }
+
+ public void testUnregisterDomain() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ MockClassLoaderDomain domain = new MockClassLoaderDomain("mock");
+
+ system.registerDomain(domain);
+ assertTrue(system.isRegistered("mock"));
+ assertTrue(system.isDomainRegistered(domain));
+
+ system.unregisterDomain(domain);
+ assertFalse(system.isRegistered("mock"));
+ assertFalse(system.isDomainRegistered(domain));
+ }
+
+ public void testUnregisterWrongDomain() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ MockClassLoaderDomain domain = new MockClassLoaderDomain("mock");
+
+ system.registerDomain(domain);
+ assertTrue(system.isRegistered("mock"));
+ assertTrue(system.isDomainRegistered(domain));
+
+ MockClassLoaderDomain notDomain = new MockClassLoaderDomain("mock");
+
+ try
+ {
+ system.unregisterDomain(notDomain);
+ fail("Should not be here!");
+ }
+ catch (Exception e)
+ {
+ checkThrowable(IllegalStateException.class, e);
+ }
+ assertTrue(system.isRegistered("mock"));
+ assertTrue(system.isDomainRegistered(domain));
+ }
+
+ public void testUnregisterDefaultDomain() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ ClassLoaderDomain domain = system.getDefaultDomain();
+ try
+ {
+ system.unregisterDomain(domain);
+ fail("Should not be here!");
+ }
+ catch (Exception e)
+ {
+ checkThrowable(IllegalArgumentException.class, e);
+ }
+ assertTrue(system.isRegistered(ClassLoaderSystem.DEFAULT_DOMAIN_NAME));
+ assertTrue(system.isDomainRegistered(domain));
+ }
+
+ public void testUnregisterNullDomain() throws Exception
+ {
+ ClassLoaderSystem system = createClassLoaderSystem();
+
+ try
+ {
+ system.unregisterDomain(null);
+ fail("Should not be here!");
+ }
+ catch (Exception e)
+ {
+ checkThrowable(IllegalArgumentException.class, e);
+ }
+ }
+
+ public void testRegisterClassLoaderExplicitDomain() throws Exception
+ {
MockClassLoaderSystem system = createMockClassLoaderSystem();
MockClassLoaderDomain domain = system.createAndRegisterDomain("mock");
ClassLoader cl1 = createAndRegisterMockClassLoader(system, domain);
@@ -76,7 +282,7 @@
assertEmpty(domain.removed);
}
- public void testUnregisterExplicitDomain() throws Exception
+ public void testUnregisterClassLoaderExplicitDomain() throws Exception
{
MockClassLoaderSystem system = createMockClassLoaderSystem();
MockClassLoaderDomain domain = system.createAndRegisterDomain("mock");
More information about the jboss-cvs-commits
mailing list