[jboss-cvs] JBossAS SVN: r108556 - in projects/jboss-cl/trunk: classloading/src/main/java/org/jboss/classloading/spi/metadata and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Oct 13 13:21:07 EDT 2010


Author: alesj
Date: 2010-10-13 13:21:06 -0400 (Wed, 13 Oct 2010)
New Revision: 108556

Added:
   projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/DomainUseLoadClassForParent.xml
Modified:
   projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/ClassLoaderSystem.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingDomainMetaData.java
   projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingDomainMetaDataUnitTestCase.java
   projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java
Log:
[JBCL-176]; useLoadClassForParent tests.
Overload methods on CLSystem.

Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/ClassLoaderSystem.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/ClassLoaderSystem.java	2010-10-13 16:07:26 UTC (rev 108555)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/ClassLoaderSystem.java	2010-10-13 17:21:06 UTC (rev 108556)
@@ -21,23 +21,15 @@
  */
 package org.jboss.classloader.spi;
 
-import java.security.ProtectionDomain;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
-
 import javax.management.MBeanRegistration;
 import javax.management.MBeanServer;
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 
+import java.security.ProtectionDomain;
+import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
+
 import org.jboss.classloader.plugins.system.ClassLoaderSystemBuilder;
 import org.jboss.classloader.spi.base.BaseClassLoaderSystem;
 import org.jboss.classloader.spi.translator.TranslatorUtils;
@@ -211,12 +203,49 @@
     */
    public ClassLoaderDomain createAndRegisterDomain(String name, ParentPolicy parentPolicy, Loader parent)
    {
+      return createAndRegisterDomain(name, parentPolicy, parent, null);
+   }
+
+   /**
+    * Create and register a domain with the given parent classloading policy
+    *
+    * @param name the name of the domain
+    * @param parentPolicy the parent classloading policy
+    * @param parent the parent
+    * @param shutdownPolicy the shutdown policy
+    * @return the domain
+    * @throws IllegalArgumentException for a null argument
+    * @throws IllegalStateException if there already is a domain with that name
+    */
+   public ClassLoaderDomain createAndRegisterDomain(String name, ParentPolicy parentPolicy, Loader parent, ShutdownPolicy shutdownPolicy)
+   {
+      return createAndRegisterDomain(name, parentPolicy, parent, shutdownPolicy, null);
+   }
+
+   /**
+    * Create and register a domain with the given parent classloading policy
+    *
+    * @param name the name of the domain
+    * @param parentPolicy the parent classloading policy
+    * @param parent the parent
+    * @param shutdownPolicy the shutdown policy
+    * @param useLoadClassForParent the use classloader for parent flag
+    * @return the domain
+    * @throws IllegalArgumentException for a null argument
+    * @throws IllegalStateException if there already is a domain with that name
+    */
+   public ClassLoaderDomain createAndRegisterDomain(String name, ParentPolicy parentPolicy, Loader parent, ShutdownPolicy shutdownPolicy, Boolean useLoadClassForParent)
+   {
       ClassLoaderDomain result = createDomain(name);
       if (result == null)
          throw new IllegalArgumentException("Created null domain: " + name);
 
+      if (useLoadClassForParent != null)
+         result.setUseLoadClassForParent(useLoadClassForParent);
       result.setParentPolicy(parentPolicy);
       result.setParent(parent);
+      if (shutdownPolicy != null)
+         result.setShutdownPolicy(shutdownPolicy);
       registerDomain(result);
       return result;
    }

Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingDomainMetaData.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingDomainMetaData.java	2010-10-13 16:07:26 UTC (rev 108555)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingDomainMetaData.java	2010-10-13 17:21:06 UTC (rev 108556)
@@ -54,6 +54,9 @@
    /** The shutdown policy */
    private ShutdownPolicy shutdownPolicy;
 
+   /** The use load class for parent */
+   private Boolean useLoadClassForParent;
+
    // ignore the version property
    public void setTheVersion(Version version)
    {
@@ -147,6 +150,18 @@
       this.shutdownPolicy = shutdownPolicy;
    }
 
+   public Boolean getUseLoadClassForParent()
+   {
+      return useLoadClassForParent;
+   }
+
+   @XmlAttribute
+   @ManagementProperty
+   public void setUseLoadClassForParent(Boolean useLoadClassForParent)
+   {
+      this.useLoadClassForParent = useLoadClassForParent;
+   }
+
    @Override
    public String toString()
    {
@@ -177,6 +192,7 @@
          builder.append(" parent-policy=").append(parentPolicy);
       if (shutdownPolicy != null)
          builder.append(" ").append(shutdownPolicy);
+      builder.append(" use-load-class-for-parent=").append(useLoadClassForParent);
    }
    
    @Override
@@ -197,6 +213,8 @@
          return false;
       if (equals(this.getShutdownPolicy(), other.getShutdownPolicy()) == false)
          return false;
+      if (equals(this.getUseLoadClassForParent(), other.getUseLoadClassForParent()) == false)
+         return false;
       return true;
    }
    

Modified: projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingDomainMetaDataUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingDomainMetaDataUnitTestCase.java	2010-10-13 16:07:26 UTC (rev 108555)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingDomainMetaDataUnitTestCase.java	2010-10-13 17:21:06 UTC (rev 108556)
@@ -64,7 +64,7 @@
    {
       ManagedObject result = moFactory.initManagedObject(test, null, null);
       assertNotNull(result);
-      List<String> expectedProperties = Arrays.asList("name", "parentDomain", "parentPolicy", "shutdown");
+      List<String> expectedProperties = Arrays.asList("name", "parentDomain", "parentPolicy", "shutdown", "useLoadClassForParent");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -107,6 +107,7 @@
       assertManagedProperty(mo, "parentDomain", String.class, null);
       assertManagedProperty(mo, "parentPolicy", ParentPolicyMetaData.class, new ParentPolicyMetaData());
       assertManagedProperty(mo, "shutdown", ShutdownPolicy.class, null);
+      assertManagedProperty(mo, "useLoadClassForParent", Boolean.class, null);
    }
 
    public void testSetName() throws Exception
@@ -140,4 +141,12 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "shutdown", ShutdownPolicy.class, ShutdownPolicy.GARBAGE_COLLECTION);
    }
+
+   public void testSetUseLoadClassForParent() throws Exception
+   {
+      ClassLoadingDomainMetaData test = new ClassLoadingDomainMetaData();
+      test.setUseLoadClassForParent(true);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "useLoadClassForParent", Boolean.class, true);
+   }
 }

Modified: projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java	2010-10-13 16:07:26 UTC (rev 108555)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java	2010-10-13 17:21:06 UTC (rev 108556)
@@ -114,6 +114,12 @@
       assertEquals(ShutdownPolicy.GARBAGE_COLLECTION, result.getShutdownPolicy());
    }
 
+   public void testDomainUseLoadClassForParent() throws Exception
+   {
+      ClassLoadingDomainMetaData result = unmarshal();
+      assertTrue(result.getUseLoadClassForParent());
+   }
+
    public void assertEqualStrings(String[] expected, Object result)
    {
       assertNotNull(expected);

Copied: projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/DomainUseLoadClassForParent.xml (from rev 108545, projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/DomainShutdown.xml)
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/DomainUseLoadClassForParent.xml	                        (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/DomainUseLoadClassForParent.xml	2010-10-13 17:21:06 UTC (rev 108556)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloading-domain xmlns="urn:jboss:classloading:1.0" name="test" use-load-class-for-parent="true"/>



More information about the jboss-cvs-commits mailing list