[jboss-cvs] JBossAS SVN: r108518 - in projects/jboss-cl/trunk: classloading/src/main/java/org/jboss/classloading/spi/helpers and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 12 08:16:19 EDT 2010


Author: alesj
Date: 2010-10-12 08:16:19 -0400 (Tue, 12 Oct 2010)
New Revision: 108518

Added:
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ParentPolicyMetaData.java
Modified:
   projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/helpers/ClassLoadingMetaDataModule.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/helpers/NameAndVersionSupport.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java
   projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
   projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java
Log:
[JBCL-176]; initial work on declarative domain config.

Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/helpers/ClassLoadingMetaDataModule.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/helpers/ClassLoadingMetaDataModule.java	2010-10-12 12:00:30 UTC (rev 108517)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/helpers/ClassLoadingMetaDataModule.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -23,18 +23,21 @@
 
 import java.util.List;
 
+import org.jboss.classloader.spi.ParentPolicy;
 import org.jboss.classloader.spi.ShutdownPolicy;
 import org.jboss.classloader.spi.filter.ClassFilter;
 import org.jboss.classloading.spi.dependency.Module;
 import org.jboss.classloading.spi.metadata.Capability;
 import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
 import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.metadata.ParentPolicyMetaData;
 import org.jboss.classloading.spi.metadata.Requirement;
 
 /**
  * ClassLoadingMetaDataModule.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision: 1.1 $
  */
 public abstract class ClassLoadingMetaDataModule extends Module
@@ -157,6 +160,15 @@
       return classLoadingMetaData.isJ2seClassLoadingCompliance();
    }
 
+   public ParentPolicy getDeterminedParentPolicy()
+   {
+      ParentPolicyMetaData ppmd = classLoadingMetaData.getParentPolicy();
+      if (ppmd != null)
+         return ppmd.createParentPolicy();
+      else
+         return super.getDeterminedParentPolicy();
+   }
+
    @Override
    public boolean isCacheable()
    {

Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/helpers/NameAndVersionSupport.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/helpers/NameAndVersionSupport.java	2010-10-12 12:00:30 UTC (rev 108517)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/helpers/NameAndVersionSupport.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -21,11 +21,11 @@
 */
 package org.jboss.classloading.spi.helpers;
 
-import java.io.Serializable;
-
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlTransient;
 
+import java.io.Serializable;
+
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.classloading.spi.version.VersionComparatorRegistry;
 import org.jboss.managed.api.annotation.ManagementProperty;
@@ -192,8 +192,7 @@
    {
       try
       {
-         NameAndVersionSupport clone = (NameAndVersionSupport) super.clone();
-         return clone;
+         return (NameAndVersionSupport) super.clone();
       }
       catch (CloneNotSupportedException e)
       {

Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2010-10-12 12:00:30 UTC (rev 108517)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -21,11 +21,11 @@
  */
 package org.jboss.classloading.spi.metadata;
 
-import java.util.List;
-
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlTransient;
 
+import java.util.List;
+
 import org.jboss.classloader.plugins.filter.CombiningClassFilter;
 import org.jboss.classloader.spi.ShutdownPolicy;
 import org.jboss.classloader.spi.filter.ClassFilter;
@@ -38,9 +38,8 @@
 /**
  * ClassLoadingMetaData.
  * 
- * [TODO] Add meaningful javadoc
- * 
  * @author <a href="adrian at jboss.org">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision: 1.1 $
  */
 @ManagementObject(properties=ManagementProperties.EXPLICIT, name="org.jboss.classloading.spi.metadata.ClassLoadingMetaData")
@@ -99,7 +98,10 @@
    
    /** The capabilities */
    private CapabilitiesMetaData capabilities = new CapabilitiesMetaData();
-   
+
+   /** The parent policy */
+   private ParentPolicyMetaData parentPolicy;
+
    /**
     * Get the domain.
     * 
@@ -523,7 +525,28 @@
       this.requirements.setRequirements(requirements);
    }
 
-   @Override 
+   /**
+    * Get parent policy.
+    *
+    * @return the parent policy
+    */
+   public ParentPolicyMetaData getParentPolicy()
+   {
+      return parentPolicy;
+   }
+
+   /**
+    * Set parent policy.
+    *
+    * @param parentPolicy the parent policy
+    */
+   @ManagementProperty
+   public void setParentPolicy(ParentPolicyMetaData parentPolicy)
+   {
+      this.parentPolicy = parentPolicy;
+   }
+
+   @Override
    public String toString()
    {
       StringBuilder builder = new StringBuilder();
@@ -569,6 +592,8 @@
       List<Requirement> requirements = getRequirements().getRequirements();
       if (requirements != null)
          builder.append(" requirements=").append(requirements);
+      if (parentPolicy != null)
+         builder.append(" parent-policy=").append(parentPolicy);
    }
    
    @Override
@@ -601,6 +626,8 @@
          return false;
       if (equals(this.getRequirements().getRequirements(), other.getRequirements().getRequirements()) == false)
          return false;
+      if (equals(this.getParentPolicy(), other.getParentPolicy()) == false)
+         return false;
       return true;
    }
    
@@ -611,7 +638,7 @@
       return super.hashCode();
    }
    
-   private static boolean equals(Object one, Object two)
+   static boolean equals(Object one, Object two)
    {
       if (one == null)
          return two == null;
@@ -622,8 +649,10 @@
    public ClassLoadingMetaData clone()
    {
       ClassLoadingMetaData clone = (ClassLoadingMetaData) super.clone();
-      requirements = clone.requirements.clone();
-      capabilities = clone.capabilities.clone();
+      clone.requirements = requirements.clone();
+      clone.capabilities = capabilities.clone();
+      if (parentPolicy != null)
+         clone.parentPolicy = parentPolicy.clone();
       return clone;
    }
 }

Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java	2010-10-12 12:00:30 UTC (rev 108517)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -31,11 +31,12 @@
  * ClassLoadingMetaData version 1.0.
  * 
  * @author <a href="adrian at jboss.org">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision: 1.1 $
  */
 @JBossXmlSchema(namespace="urn:jboss:classloading:1.0", elementFormDefault=XmlNsForm.QUALIFIED)
 @XmlRootElement(name="classloading")
- at XmlType(propOrder = {"requirements", "capabilities"})
+ at XmlType(propOrder = {"requirements", "capabilities", "parentPolicy"})
 public class ClassLoadingMetaData10 extends ClassLoadingMetaData
 {
    /** The serialVersionUID */

Added: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java	                        (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -0,0 +1,125 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.classloading.spi.metadata;
+
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+import java.io.Serializable;
+import java.lang.reflect.Constructor;
+
+import org.jboss.classloader.spi.filter.ClassFilter;
+import org.jboss.classloader.spi.filter.PackageClassFilter;
+import org.jboss.managed.api.annotation.ManagementProperty;
+
+/**
+ * FilterMetaData.
+ * 
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+ at XmlType(name="filter", propOrder= {"value"})
+public class FilterMetaData implements Serializable, Cloneable
+{
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 1L;
+
+   private String filterClassName = PackageClassFilter.class.getName();
+   private Object value;
+
+   /**
+    * Create filter.
+    *
+    * @return the filter
+    */
+   public ClassFilter createFilter()
+   {
+      // perhaps it's JavaBean
+      if (value instanceof ClassFilter)
+      {
+         return (ClassFilter) value;
+      }
+      else
+      {
+         try
+         {
+            Class<?> clazz = getClass().getClassLoader().loadClass(filterClassName);
+            Constructor<?> ctor = (value != null) ? clazz.getDeclaredConstructor(value.getClass()) : clazz.getDeclaredConstructor();
+            return (ClassFilter) ctor.newInstance(value);
+         }
+         catch (Throwable t)
+         {
+            throw new RuntimeException("Cannot instantiate filter: " + filterClassName + " / " + value, t);
+         }
+      }
+   }
+
+   public String getFilterClassName()
+   {
+      return filterClassName;
+   }
+
+   @XmlAttribute(name = "filter-classname")
+   public void setFilterClassName(String filterClassName)
+   {
+      this.filterClassName = filterClassName;
+   }
+
+   public Object getValue()
+   {
+      return value;
+   }
+
+   @XmlAnyElement
+   @ManagementProperty(ignored = true)
+   public void setValue(Object value)
+   {
+      this.value = value;
+   }
+
+   public int hashCode()
+   {
+      return 3 * filterClassName.hashCode() + 7 * (value != null ? value.hashCode() : 0);
+   }
+
+   public boolean equals(Object obj)
+   {
+      if (obj instanceof FilterMetaData == false)
+         return false;
+
+      FilterMetaData other = (FilterMetaData) obj;
+      return filterClassName.equals(other.filterClassName) && ClassLoadingMetaData.equals(value, other.value);
+   }
+
+   @Override
+   public FilterMetaData clone()
+   {
+      try
+      {
+         return (FilterMetaData) super.clone();
+      }
+      catch (CloneNotSupportedException e)
+      {
+         throw new RuntimeException("Unexpected", e);
+      }
+   }
+}

Copied: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ParentPolicyMetaData.java (from rev 108068, projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/CapabilitiesMetaData.java)
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ParentPolicyMetaData.java	                        (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ParentPolicyMetaData.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -0,0 +1,172 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.classloading.spi.metadata;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+
+import org.jboss.classloader.spi.ParentPolicy;
+import org.jboss.classloader.spi.filter.ClassFilter;
+import org.jboss.classloader.spi.filter.ClassFilterUtils;
+
+/**
+ * ParentPolicyMetaData.
+ * 
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+ at XmlType(name="parentPolicy", propOrder= {"beforeFilter", "afterFilter", "description"})
+ at XmlRootElement(name="parent-policy", namespace="urn:jboss:classloading:1.0")
+public class ParentPolicyMetaData implements Serializable, Cloneable
+{
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 1L;
+
+   private String name;
+   private FilterMetaData beforeFilter;
+   private FilterMetaData afterFilter;
+   private String description;
+
+   private transient ParentPolicy parentPolicy;
+
+   /**
+    * Create parent policy.
+    *
+    * @return the parent policy
+    */
+   public ParentPolicy createParentPolicy()
+   {
+      if (parentPolicy == null)
+      {
+         if (name != null)
+         {
+            String upper = name.toUpperCase();
+            try
+            {
+               Field instance = ParentPolicy.class.getField(upper);
+               parentPolicy = (ParentPolicy) instance.get(null);
+            }
+            catch (Throwable t)
+            {
+               throw new RuntimeException("Cannot create parent-policy, wrong name perhaps? - " + name, t);
+            }
+         }
+         else
+         {
+            ClassFilter before = (beforeFilter != null) ? beforeFilter.createFilter() : ClassFilterUtils.EVERYTHING;
+            ClassFilter after = (afterFilter != null) ? afterFilter.createFilter() : ClassFilterUtils.NOTHING;
+            parentPolicy = new ParentPolicy(before, after, description);
+         }
+      }
+      return parentPolicy;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   @XmlAttribute
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+
+   public FilterMetaData getBeforeFilter()
+   {
+      return beforeFilter;
+   }
+
+   @XmlElement(name = "before-filter")
+   public void setBeforeFilter(FilterMetaData beforeFilter)
+   {
+      this.beforeFilter = beforeFilter;
+   }
+
+   public FilterMetaData getAfterFilter()
+   {
+      return afterFilter;
+   }
+
+   @XmlElement(name = "after-filter")
+   public void setAfterFilter(FilterMetaData afterFilter)
+   {
+      this.afterFilter = afterFilter;
+   }
+
+   public String getDescription()
+   {
+      return description;
+   }
+
+   public void setDescription(String description)
+   {
+      this.description = description;
+   }
+
+   public int hashCode()
+   {
+      return hash(name) + 3 * hash(beforeFilter) + 7 * hash(afterFilter) + 11 * hash(description); 
+   }
+
+   private static int hash(Object obj)
+   {
+      return (obj != null) ? obj.hashCode() : 0;
+   }
+
+   public boolean equals(Object obj)
+   {
+      if (obj instanceof ParentPolicyMetaData == false)
+         return false;
+
+      ParentPolicyMetaData other = (ParentPolicyMetaData) obj;
+      if (ClassLoadingMetaData.equals(name, other.name) == false)
+         return false;
+      if (ClassLoadingMetaData.equals(beforeFilter, other.beforeFilter) == false)
+         return false;
+      if (ClassLoadingMetaData.equals(afterFilter, other.afterFilter) == false)
+         return false;
+      if (ClassLoadingMetaData.equals(description, other.description) == false)
+         return false;
+      return true;
+   }
+
+   @Override
+   public ParentPolicyMetaData clone()
+   {
+      try
+      {
+         ParentPolicyMetaData clone = (ParentPolicyMetaData) super.clone();
+         clone.beforeFilter = beforeFilter.clone();
+         clone.afterFilter = afterFilter.clone();
+         return clone;
+      }
+      catch (CloneNotSupportedException e)
+      {
+         throw new RuntimeException("Unexpected", e);
+      }
+   }
+}

Modified: projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2010-10-12 12:00:30 UTC (rev 108517)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -25,13 +25,12 @@
 import java.util.List;
 import java.util.Set;
 
-import junit.framework.Test;
-
 import org.jboss.classloader.spi.ShutdownPolicy;
 import org.jboss.classloading.spi.metadata.CapabilitiesMetaData;
 import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
 import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
 import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.metadata.ParentPolicyMetaData;
 import org.jboss.classloading.spi.metadata.RequirementsMetaData;
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.managed.api.ManagedObject;
@@ -43,10 +42,13 @@
 import org.jboss.metatype.api.values.MetaValueFactory;
 import org.jboss.test.BaseTestCase;
 
+import junit.framework.Test;
+
 /**
  * ManagedObjectClassLoadingMetaDataUnitTestCase.
  *
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision: 1.1 $
  */
 public class ManagedObjectClassLoadingMetaDataUnitTestCase extends BaseTestCase
@@ -69,7 +71,7 @@
    {
       ManagedObject result = moFactory.initManagedObject(test, null, null);
       assertNotNull(result);
-      List<String> expectedProperties = Arrays.asList("name", "version", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "shutdown", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "capabilities", "requirements");
+      List<String> expectedProperties = Arrays.asList("name", "version", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "shutdown", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "capabilities", "requirements", "parentPolicy");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -106,6 +108,7 @@
    public void testConstructor() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
+      test.setParentPolicy(new ParentPolicyMetaData());
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "name", String.class, "<unknown>");
       assertManagedProperty(mo, "version", Version.class, Version.DEFAULT_VERSION);
@@ -121,6 +124,7 @@
       assertManagedProperty(mo, "parentFirst", boolean.class, true);
       assertManagedProperty(mo, "capabilities", CapabilitiesMetaData.class, new CapabilitiesMetaData());
       assertManagedProperty(mo, "requirements", RequirementsMetaData.class, new RequirementsMetaData());
+      assertManagedProperty(mo, "parentPolicy", ParentPolicyMetaData.class, new ParentPolicyMetaData());
    }
 
    public void testSetName() throws Exception
@@ -254,4 +258,12 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "requirements", RequirementsMetaData.class, test.getRequirements());
    }
+
+   public void testParentPolicy() throws Exception
+   {
+      ClassLoadingMetaData test = new ClassLoadingMetaData();
+      test.setParentPolicy(new ParentPolicyMetaData());
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "parentPolicy", ParentPolicyMetaData.class, test.getParentPolicy());
+   }
 }

Modified: projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2010-10-12 12:00:30 UTC (rev 108517)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -24,8 +24,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import junit.framework.Test;
-
 import org.jboss.classloading.spi.metadata.Capability;
 import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
 import org.jboss.classloading.spi.metadata.ClassLoadingMetaData10;
@@ -38,6 +36,8 @@
 import org.jboss.test.classloading.metadata.xml.support.TestCapability;
 import org.jboss.test.classloading.metadata.xml.support.TestRequirement;
 
+import junit.framework.Test;
+
 /**
  * ClassLoadingMetaDataXmlUnitTestCase.
  * 
@@ -74,6 +74,7 @@
       assertTrue(result.isBlackListable());
       assertNull(result.getCapabilities().getCapabilities());
       assertNull(result.getRequirements().getRequirements());
+      assertNull(result.getParentPolicy());
    }
 
    public void testModuleVersion() throws Exception

Modified: projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2010-10-12 12:00:30 UTC (rev 108517)
+++ projects/jboss-cl/trunk/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2010-10-12 12:16:19 UTC (rev 108518)
@@ -27,12 +27,11 @@
 import java.util.List;
 import java.util.Set;
 
-import junit.framework.Test;
-
 import org.jboss.classloader.spi.ShutdownPolicy;
 import org.jboss.classloading.spi.metadata.CapabilitiesMetaData;
 import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
 import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.metadata.ParentPolicyMetaData;
 import org.jboss.classloading.spi.metadata.RequirementsMetaData;
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
@@ -45,10 +44,13 @@
 import org.jboss.metatype.api.values.MetaValueFactory;
 import org.jboss.test.BaseTestCase;
 
+import junit.framework.Test;
+
 /**
  * ManagedObjectVFSClassLoaderFactoryUnitTestCase.
  *
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision: 1.1 $
  */
 public class ManagedObjectVFSClassLoaderFactoryUnitTestCase extends BaseTestCase
@@ -71,7 +73,7 @@
    {
       ManagedObject result = moFactory.initManagedObject(test, null, null);
       assertNotNull(result);
-      List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "shutdown", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements");
+      List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "shutdown", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements", "parentPolicy");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -113,6 +115,7 @@
    public void testConstructor() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
+      test.setParentPolicy(new ParentPolicyMetaData());
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "name", String.class, "<unknown>");
       assertManagedProperty(mo, "version", Version.class, Version.DEFAULT_VERSION);
@@ -128,6 +131,7 @@
       assertManagedProperty(mo, "parentFirst", boolean.class, true);
       assertManagedProperty(mo, "capabilities", CapabilitiesMetaData.class, new CapabilitiesMetaData());
       assertManagedProperty(mo, "requirements", RequirementsMetaData.class, new RequirementsMetaData());
+      assertManagedProperty(mo, "parentPolicy", ParentPolicyMetaData.class, new ParentPolicyMetaData());
    }
 
    public void testSetName() throws Exception
@@ -289,4 +293,12 @@
       ManagedObject mo = assertManagedObject(test);
       assertManagedProperty(mo, "requirements", RequirementsMetaData.class, test.getRequirements());
    }
+
+   public void testParentPolicy() throws Exception
+   {
+      VFSClassLoaderFactory test = new VFSClassLoaderFactory();
+      test.setParentPolicy(new ParentPolicyMetaData());
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "parentPolicy", ParentPolicyMetaData.class, test.getParentPolicy());
+   }
 }



More information about the jboss-cvs-commits mailing list