[jboss-cvs] JBossAS SVN: r111485 - in projects/jboss-cl/branches/Branch_2_2: classloading/src/main/java/org/jboss/classloading/spi/metadata and 8 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 31 10:18:51 EDT 2011


Author: alesj
Date: 2011-05-31 10:18:50 -0400 (Tue, 31 May 2011)
New Revision: 111485

Added:
   projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedExportFilter.xml
   projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedFilter.xml
   projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleIncludedFilter.xml
   projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedExportFilter.xml
   projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedFilter.xml
   projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleIncludedFilter.xml
Modified:
   projects/jboss-cl/branches/Branch_2_2/
   projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java
   projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/NoopClassLoaderFactory.java
   projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
   projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java
   projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java
   projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java
Log:
Port JBCL-84; better filter xml config


Property changes on: projects/jboss-cl/branches/Branch_2_2
___________________________________________________________________
Modified: svn:mergeinfo
   - /projects/jboss-cl/trunk:111073-111080
   + /projects/jboss-cl/trunk:111073-111080,111484

Modified: projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -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.XmlElement;
 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;
@@ -85,6 +85,15 @@
    private String excludedExportPackages;
 
    /** The included packages */
+   private FilterMetaData includedMetaData;
+
+   /** The excluded packages */
+   private FilterMetaData excludedMetaData;
+
+   /** The excluded export packages */
+   private FilterMetaData excludedExportMetaData;
+
+   /** The included packages */
    private ClassFilter included;
 
    /** The excluded packages */
@@ -213,6 +222,28 @@
    }
 
    /**
+    * Get included metadata.
+    *
+    * @return the included filter metadata
+    */
+   public FilterMetaData getIncludedMetaData()
+   {
+      return includedMetaData;
+   }
+
+   /**
+    * The included filter metadata.
+    *
+    * @param includedMetaData the included metadata
+    */
+   @ManagementProperty(name="includedMetaData")
+   @XmlElement(name="included-filter")
+   public void setIncludedMetaData(FilterMetaData includedMetaData)
+   {
+      this.includedMetaData = includedMetaData;
+   }
+
+   /**
     * Get a filter for the included packages
     * 
     * @return the included packages
@@ -222,7 +253,9 @@
       ClassFilter packageFilter = null;
       if (includedPackages != null)
          packageFilter = PackageClassFilter.createPackageClassFilterFromString(includedPackages);
-      
+      else if (includedMetaData != null)
+         packageFilter = includedMetaData.createFilter();
+
       if (packageFilter == null)
          return included;
       if (included == null)
@@ -264,6 +297,28 @@
    }
 
    /**
+    * Get excluded metadata.
+    *
+    * @return the included filter metadata
+    */
+   public FilterMetaData getExcludedMetaData()
+   {
+      return excludedMetaData;
+   }
+
+   /**
+    * The excluded filter metadata.
+    *
+    * @param excludedMetaData the excluded metadata
+    */
+   @ManagementProperty(name="excludedMetaData")
+   @XmlElement(name="excluded-filter")
+   public void setExcludedMetaData(FilterMetaData excludedMetaData)
+   {
+      this.excludedMetaData = excludedMetaData;
+   }
+
+   /**
     * Get a filter for the excluded packages
     * 
     * @return the excluded packages
@@ -273,6 +328,8 @@
       ClassFilter packageFilter = null;
       if (excludedPackages != null)
          packageFilter = PackageClassFilter.createPackageClassFilterFromString(excludedPackages);
+      else if (excludedMetaData != null)
+         packageFilter = excludedMetaData.createFilter();
       
       if (packageFilter == null)
          return excluded;
@@ -314,7 +371,24 @@
       this.excludedExportPackages = excludedExportPackages;
    }
 
+   public FilterMetaData getExcludedExportMetaData()
+   {
+      return excludedExportMetaData;
+   }
+
    /**
+    * The excluded export filter metadata.
+    *
+    * @param excludedExportMetaData the excluded export metadata
+    */
+   @ManagementProperty(name="excludedExportMetaData")
+   @XmlElement(name="excluded-export-filter")
+   public void setExcludedExportMetaData(FilterMetaData excludedExportMetaData)
+   {
+      this.excludedExportMetaData = excludedExportMetaData;
+   }
+
+   /**
     * Get a filter for the excluded export packages
     * 
     * @return the excluded export packages
@@ -324,6 +398,8 @@
       ClassFilter packageFilter = null;
       if (excludedExportPackages != null)
          packageFilter = PackageClassFilter.createPackageClassFilterFromString(excludedExportPackages);
+      else if (excludedExportMetaData != null)
+         packageFilter = excludedExportMetaData.createFilter();
       
       if (packageFilter == null)
          return excludedExport;

Modified: projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -36,7 +36,7 @@
  */
 @JBossXmlSchema(namespace="urn:jboss:classloading:1.0", elementFormDefault=XmlNsForm.QUALIFIED)
 @XmlRootElement(name="classloading")
- at XmlType(propOrder = {"requirements", "capabilities", "parentPolicy"})
+ at XmlType(propOrder = {"includedMetaData", "excludedMetaData", "excludedExportMetaData", "requirements", "capabilities", "parentPolicy"})
 public class ClassLoadingMetaData10 extends ClassLoadingMetaData
 {
    /** The serialVersionUID */

Modified: projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -21,21 +21,22 @@
 */
 package org.jboss.classloading.spi.metadata;
 
+import java.io.Serializable;
+import java.lang.reflect.Constructor;
 import javax.xml.bind.annotation.XmlAnyElement;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlValue;
 
-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.
- * 
+ * If the value is string, it's split with ',' and turned into String array.
+ * You can ignore this by setting the ignore-split attribute.
+ *
  * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  */
 @XmlType(name="filter", propOrder= {"value"})
@@ -46,6 +47,7 @@
 
    private String filterClassName = PackageClassFilter.class.getName();
    private Object value;
+   private boolean ignoreSplit;
 
    /**
     * Create filter.
@@ -61,11 +63,17 @@
       }
       else
       {
+         Object arg;
+         if (value instanceof String && ignoreSplit == false)
+            arg = ((String) value).split(",");
+         else
+            arg = value;
+
          try
          {
             Class<?> clazz = getClass().getClassLoader().loadClass(filterClassName);
-            Constructor<?> ctor = (value != null) ? clazz.getDeclaredConstructor(value.getClass()) : clazz.getDeclaredConstructor();
-            return (ClassFilter) ctor.newInstance(value);
+            Constructor<?> ctor = (arg != null) ? clazz.getDeclaredConstructor(arg.getClass()) : clazz.getDeclaredConstructor();
+            return (ClassFilter) ((arg != null) ? ctor.newInstance(arg) : ctor.newInstance());
          }
          catch (Throwable t)
          {
@@ -94,23 +102,30 @@
    @ManagementProperty(ignored = true)
    public void setValueObject(Object value)
    {
-      if (value instanceof String)
-         setValueString((String) value);
-      else
-         this.value = value;
+      this.value = value;
    }
 
    @XmlValue
    @ManagementProperty(ignored = true)
    public void setValueString(String value)
    {
-      if (value != null)
-         this.value = value.split(",");
+      this.value = value;
    }
 
+   public boolean isIgnoreSplit()
+   {
+      return ignoreSplit;
+   }
+
+   @XmlAttribute(name = "ignore-split", required = false)
+   public void setIgnoreSplit(boolean ignoreSplit)
+   {
+      this.ignoreSplit = ignoreSplit;
+   }
+
    public int hashCode()
    {
-      return 3 * filterClassName.hashCode() + 7 * (value != null ? value.hashCode() : 0);
+      return 3 * filterClassName.hashCode() + 7 * (value != null ? value.hashCode() : 0) + 11 * Boolean.valueOf(ignoreSplit).hashCode();
    }
 
    public boolean equals(Object obj)
@@ -119,7 +134,8 @@
          return false;
 
       FilterMetaData other = (FilterMetaData) obj;
-      return filterClassName.equals(other.filterClassName) && ClassLoadingMetaData.equals(value, other.value);
+      return filterClassName.equals(other.filterClassName) && ClassLoadingMetaData.equals(value, other.value) && ignoreSplit == other.ignoreSplit;
+
    }
 
    @Override

Modified: projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -25,11 +25,13 @@
 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.FilterMetaData;
 import org.jboss.classloading.spi.metadata.ParentPolicyMetaData;
 import org.jboss.classloading.spi.metadata.RequirementsMetaData;
 import org.jboss.classloading.spi.version.Version;
@@ -42,8 +44,6 @@
 import org.jboss.metatype.api.values.MetaValueFactory;
 import org.jboss.test.BaseTestCase;
 
-import junit.framework.Test;
-
 /**
  * ManagedObjectClassLoadingMetaDataUnitTestCase.
  *
@@ -71,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", "parentPolicy");
+      List<String> expectedProperties = Arrays.asList("name", "version", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "shutdown", "included", "includedMetaData", "excluded", "excludedMetaData", "excludedExport", "excludedExportMetaData", "importAll", "parentFirst", "cache", "blackList", "capabilities", "requirements", "parentPolicy");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -118,8 +118,11 @@
       assertManagedProperty(mo, "exportAll", ExportAll.class, null);
       assertManagedProperty(mo, "shutdown", ShutdownPolicy.class, null);
       assertManagedProperty(mo, "included", String.class, null);
+      assertManagedProperty(mo, "includedMetaData", FilterMetaData.class, null);
       assertManagedProperty(mo, "excluded", String.class, null);
+      assertManagedProperty(mo, "excludedMetaData", FilterMetaData.class, null);
       assertManagedProperty(mo, "excludedExport", String.class, null);
+      assertManagedProperty(mo, "excludedExportMetaData", FilterMetaData.class, null);
       assertManagedProperty(mo, "importAll", boolean.class, false);
       assertManagedProperty(mo, "parentFirst", boolean.class, true);
       assertManagedProperty(mo, "capabilities", CapabilitiesMetaData.class, new CapabilitiesMetaData());
@@ -191,6 +194,15 @@
       assertManagedProperty(mo, "included", String.class, "Included");
    }
 
+   public void testSetIncludedMetaData() throws Exception
+   {
+      ClassLoadingMetaData test = new ClassLoadingMetaData();
+      FilterMetaData fmd = new FilterMetaData();
+      test.setIncludedMetaData(fmd);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "includedMetaData", FilterMetaData.class, fmd);
+   }
+
    public void testSetExcludedPackages() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -199,6 +211,15 @@
       assertManagedProperty(mo, "excluded", String.class, "Excluded");
    }
 
+   public void testSetExcludedMetaData() throws Exception
+   {
+      ClassLoadingMetaData test = new ClassLoadingMetaData();
+      FilterMetaData fmd = new FilterMetaData();
+      test.setExcludedMetaData(fmd);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "excludedMetaData", FilterMetaData.class, fmd);
+   }
+
    public void testSetExcludedExportPackages() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();
@@ -207,6 +228,15 @@
       assertManagedProperty(mo, "excludedExport", String.class, "ExcludedExport");
    }
 
+   public void testSetExcludedExportMetaData() throws Exception
+   {
+      ClassLoadingMetaData test = new ClassLoadingMetaData();
+      FilterMetaData fmd = new FilterMetaData();
+      test.setExcludedExportMetaData(fmd);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "excludedExportMetaData", FilterMetaData.class, fmd);
+   }
+
    public void testSetImportAll() throws Exception
    {
       ClassLoadingMetaData test = new ClassLoadingMetaData();

Modified: projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -21,6 +21,7 @@
  */
 package org.jboss.test.classloading.metadata.xml.test;
 
+import junit.framework.Test;
 import org.jboss.classloader.spi.ShutdownPolicy;
 import org.jboss.classloading.spi.metadata.ClassLoadingDomainMetaData;
 import org.jboss.classloading.spi.metadata.ClassLoadingDomainMetaData10;
@@ -30,8 +31,6 @@
 import org.jboss.javabean.plugins.jaxb.JavaBean20;
 import org.jboss.test.classloading.metadata.xml.AbstractJBossXBTest;
 
-import junit.framework.Test;
-
 /**
  * ClassLoadingDomainMetaDataXmlUnitTestCase.
  * 
@@ -124,7 +123,8 @@
    {
       assertNotNull(expected);
       assertNotNull(result);
-      assertTrue(result instanceof String[]);
+      if (result instanceof String[] == false)
+         result = assertInstanceOf(result, String.class).split(",");
       String[] strings = (String[]) result;
       assertEquals(expected.length, strings.length);
       for (int i = 0; i < expected.length; i++)

Modified: projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -24,8 +24,16 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import junit.framework.Test;
 import org.jboss.classloader.spi.ShutdownPolicy;
-import org.jboss.classloading.spi.metadata.*;
+import org.jboss.classloading.spi.metadata.Capability;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaData10;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
+import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.metadata.FilterMetaData;
+import org.jboss.classloading.spi.metadata.ParentPolicyMetaData;
+import org.jboss.classloading.spi.metadata.Requirement;
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.classloading.spi.version.VersionRange;
 import org.jboss.javabean.plugins.jaxb.JavaBean20;
@@ -33,8 +41,6 @@
 import org.jboss.test.classloading.metadata.xml.support.TestCapability;
 import org.jboss.test.classloading.metadata.xml.support.TestRequirement;
 
-import junit.framework.Test;
-
 /**
  * ClassLoadingMetaDataXmlUnitTestCase.
  * 
@@ -64,8 +70,11 @@
       assertFalse(result.isTopLevelClassLoader());
       assertNull(result.getExportAll());
       assertNull(result.getIncludedPackages());
+      assertNull(result.getIncludedMetaData());
       assertNull(result.getExcludedPackages());
+      assertNull(result.getExcludedMetaData());
       assertNull(result.getExcludedExportPackages());
+      assertNull(result.getExcludedExportMetaData());
       assertFalse(result.isImportAll());
       assertTrue(result.isJ2seClassLoadingCompliance());
       assertTrue(result.isCacheable());
@@ -111,18 +120,54 @@
       assertEquals("Included", result.getIncludedPackages());
    }
 
+   public void testModuleIncludedFilter() throws Exception
+   {
+      FilterMetaData expected = new FilterMetaData();
+      expected.setValueString("org.jboss.acme");
+
+      ClassLoadingMetaData result = unmarshal();
+      FilterMetaData filter = result.getIncludedMetaData();
+      assertEquals(expected, filter);
+
+      assertNotNull(result.getIncluded());
+   }
+
    public void testModuleExcluded() throws Exception
    {
       ClassLoadingMetaData result = unmarshal();
       assertEquals("Excluded", result.getExcludedPackages());
    }
 
+   public void testModuleExcludedFilter() throws Exception
+   {
+      FilterMetaData expected = new FilterMetaData();
+      expected.setValueString("com.redhat.foobar");
+
+      ClassLoadingMetaData result = unmarshal();
+      FilterMetaData filter = result.getExcludedMetaData();
+      assertEquals(expected, filter);
+
+      assertNotNull(result.getExcluded());
+   }
+
    public void testModuleExcludedExport() throws Exception
    {
       ClassLoadingMetaData result = unmarshal();
       assertEquals("ExcludedExport", result.getExcludedExportPackages());
    }
 
+   public void testModuleExcludedExportFilter() throws Exception
+   {
+      FilterMetaData expected = new FilterMetaData();
+      expected.setValueString("org.ceylon.modules");
+
+      ClassLoadingMetaData result = unmarshal();
+      FilterMetaData filter = result.getExcludedExportMetaData();
+      assertEquals(expected, filter);
+
+      assertNotNull(result.getExcludedExport());
+   }
+
    public void testModuleImportAll() throws Exception
    {
       ClassLoadingMetaData result = unmarshal();
@@ -381,7 +426,8 @@
    {
       assertNotNull(expected);
       assertNotNull(result);
-      assertTrue(result instanceof String[]);
+      if (result instanceof String[] == false)
+         result = assertInstanceOf(result, String.class).split(",");
       String[] strings = (String[]) result;
       assertEquals(expected.length, strings.length);
       for (int i = 0; i < expected.length; i++)

Copied: projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedExportFilter.xml (from rev 111484, projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedExportFilter.xml)
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedExportFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedExportFilter.xml	2011-05-31 14:18:50 UTC (rev 111485)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloading xmlns="urn:jboss:classloading:1.0" name="test">
+    <excluded-export-filter>org.ceylon.modules</excluded-export-filter>
+</classloading>

Copied: projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedFilter.xml (from rev 111484, projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedFilter.xml)
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedFilter.xml	2011-05-31 14:18:50 UTC (rev 111485)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloading xmlns="urn:jboss:classloading:1.0" name="test">
+    <excluded-filter>com.redhat.foobar</excluded-filter>
+</classloading>

Copied: projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleIncludedFilter.xml (from rev 111484, projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleIncludedFilter.xml)
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleIncludedFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_2/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleIncludedFilter.xml	2011-05-31 14:18:50 UTC (rev 111485)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloading xmlns="urn:jboss:classloading:1.0" name="test">
+    <included-filter>org.jboss.acme</included-filter>
+</classloading>

Modified: projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -31,11 +31,12 @@
  * VFSClassLoaderFactory.
  * 
  * @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 $
  */
 @JBossXmlSchema(namespace="urn:jboss:classloader:1.0", elementFormDefault=XmlNsForm.QUALIFIED)
 @XmlRootElement(name="classloader")
- at XmlType(propOrder = {"requirements", "capabilities", "roots"})
+ at XmlType(propOrder = {"includedMetaData", "excludedMetaData", "excludedExportMetaData", "requirements", "capabilities", "roots"})
 public class VFSClassLoaderFactory10 extends VFSClassLoaderFactory
 {
    /** The serialVersionUID */

Modified: projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -27,10 +27,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.ClassLoadingMetaDataFactory;
 import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.metadata.FilterMetaData;
 import org.jboss.classloading.spi.metadata.ParentPolicyMetaData;
 import org.jboss.classloading.spi.metadata.RequirementsMetaData;
 import org.jboss.classloading.spi.version.Version;
@@ -44,8 +46,6 @@
 import org.jboss.metatype.api.values.MetaValueFactory;
 import org.jboss.test.BaseTestCase;
 
-import junit.framework.Test;
-
 /**
  * ManagedObjectVFSClassLoaderFactoryUnitTestCase.
  *
@@ -73,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", "parentPolicy");
+      List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "shutdown", "included", "includedMetaData", "excluded", "excludedMetaData", "excludedExport", "excludedExportMetaData", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements", "parentPolicy");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -125,8 +125,11 @@
       assertManagedProperty(mo, "exportAll", ExportAll.class, null);
       assertManagedProperty(mo, "shutdown", ShutdownPolicy.class, null);
       assertManagedProperty(mo, "included", String.class, null);
+      assertManagedProperty(mo, "includedMetaData", FilterMetaData.class, null);
       assertManagedProperty(mo, "excluded", String.class, null);
+      assertManagedProperty(mo, "excludedMetaData", FilterMetaData.class, null);
       assertManagedProperty(mo, "excludedExport", String.class, null);
+      assertManagedProperty(mo, "excludedExportMetaData", FilterMetaData.class, null);
       assertManagedProperty(mo, "importAll", boolean.class, false);
       assertManagedProperty(mo, "parentFirst", boolean.class, true);
       assertManagedProperty(mo, "capabilities", CapabilitiesMetaData.class, new CapabilitiesMetaData());
@@ -206,6 +209,15 @@
       assertManagedProperty(mo, "included", String.class, "Included");
    }
 
+   public void testSetIncludedMetaData() throws Exception
+   {
+      VFSClassLoaderFactory test = new VFSClassLoaderFactory();
+      FilterMetaData fmd = new FilterMetaData();
+      test.setIncludedMetaData(fmd);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "includedMetaData", FilterMetaData.class, fmd);
+   }
+
    public void testSetExcludedPackages() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -214,6 +226,15 @@
       assertManagedProperty(mo, "excluded", String.class, "Excluded");
    }
 
+   public void testSetExcludedMetaData() throws Exception
+   {
+      VFSClassLoaderFactory test = new VFSClassLoaderFactory();
+      FilterMetaData fmd = new FilterMetaData();
+      test.setExcludedMetaData(fmd);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "excludedMetaData", FilterMetaData.class, fmd);
+   }
+
    public void testSetExcludedExportPackages() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();
@@ -222,6 +243,15 @@
       assertManagedProperty(mo, "excludedExport", String.class, "ExcludedExport");
    }
 
+   public void testSetExcludedExportMetaData() throws Exception
+   {
+      VFSClassLoaderFactory test = new VFSClassLoaderFactory();
+      FilterMetaData fmd = new FilterMetaData();
+      test.setExcludedExportMetaData(fmd);
+      ManagedObject mo = assertManagedObject(test);
+      assertManagedProperty(mo, "excludedExportMetaData", FilterMetaData.class, fmd);
+   }
+
    public void testSetImportAll() throws Exception
    {
       VFSClassLoaderFactory test = new VFSClassLoaderFactory();

Modified: projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/NoopClassLoaderFactory.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/NoopClassLoaderFactory.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/NoopClassLoaderFactory.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -39,7 +39,7 @@
  */
 @JBossXmlSchema(namespace="urn:jboss:classloader:1.0", elementFormDefault=XmlNsForm.QUALIFIED)
 @XmlRootElement(name="classloader")
- at XmlType(propOrder = {"requirements", "capabilities", "roots"})
+ at XmlType(propOrder = {"includedMetaData", "excludedMetaData", "excludedExportMetaData", "requirements", "capabilities", "roots"})
 public class NoopClassLoaderFactory extends VFSClassLoaderFactory
 {
    private static final long serialVersionUID = 1l;

Modified: projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java	2011-05-31 13:36:56 UTC (rev 111484)
+++ projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
@@ -25,10 +25,12 @@
 import java.util.Arrays;
 import java.util.List;
 
+import junit.framework.Test;
 import org.jboss.classloader.spi.ShutdownPolicy;
 import org.jboss.classloading.spi.metadata.Capability;
 import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
 import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.metadata.FilterMetaData;
 import org.jboss.classloading.spi.metadata.Requirement;
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.classloading.spi.version.VersionRange;
@@ -38,8 +40,6 @@
 import org.jboss.test.classloading.vfs.metadata.xml.support.TestCapability;
 import org.jboss.test.classloading.vfs.metadata.xml.support.TestRequirement;
 
-import junit.framework.Test;
-
 /**
  * VFSClassLoaderFactoryXMLUnitTestCase.
  * 
@@ -70,8 +70,11 @@
       assertNull(result.getExportAll());
       assertNull(result.getShutdownPolicy());
       assertNull(result.getIncludedPackages());
+      assertNull(result.getIncludedMetaData());
       assertNull(result.getExcludedPackages());
+      assertNull(result.getExcludedMetaData());
       assertNull(result.getExcludedExportPackages());
+      assertNull(result.getExcludedExportMetaData());
       assertFalse(result.isImportAll());
       assertTrue(result.isJ2seClassLoadingCompliance());
       assertTrue(result.isCacheable());
@@ -124,18 +127,54 @@
       assertEquals("Included", result.getIncludedPackages());
    }
 
+   public void testModuleIncludedFilter() throws Exception
+   {
+      FilterMetaData expected = new FilterMetaData();
+      expected.setValueString("org.jboss.acme");
+
+      VFSClassLoaderFactory result = unmarshal();
+      FilterMetaData filter = result.getIncludedMetaData();
+      assertEquals(expected, filter);
+
+      assertNotNull(result.getIncluded());
+   }
+
    public void testModuleExcluded() throws Exception
    {
       VFSClassLoaderFactory result = unmarshal();
       assertEquals("Excluded", result.getExcludedPackages());
    }
 
+   public void testModuleExcludedFilter() throws Exception
+   {
+      FilterMetaData expected = new FilterMetaData();
+      expected.setValueString("com.redhat.foobar");
+
+      VFSClassLoaderFactory result = unmarshal();
+      FilterMetaData filter = result.getExcludedMetaData();
+      assertEquals(expected, filter);
+
+      assertNotNull(result.getExcluded());
+   }
+
    public void testModuleExcludedExport() throws Exception
    {
       VFSClassLoaderFactory result = unmarshal();
       assertEquals("ExcludedExport", result.getExcludedExportPackages());
    }
 
+   public void testModuleExcludedExportFilter() throws Exception
+   {
+      FilterMetaData expected = new FilterMetaData();
+      expected.setValueString("org.ceylon.modules");
+
+      VFSClassLoaderFactory result = unmarshal();
+      FilterMetaData filter = result.getExcludedExportMetaData();
+      assertEquals(expected, filter);
+
+      assertNotNull(result.getExcludedExport());
+   }
+
    public void testModuleImportAll() throws Exception
    {
       VFSClassLoaderFactory result = unmarshal();

Copied: projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedExportFilter.xml (from rev 111484, projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedExportFilter.xml)
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedExportFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedExportFilter.xml	2011-05-31 14:18:50 UTC (rev 111485)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloader xmlns="urn:jboss:classloader:1.0" name="test">
+    <excluded-export-filter>org.ceylon.modules</excluded-export-filter>
+</classloader>

Copied: projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedFilter.xml (from rev 111484, projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedFilter.xml)
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedFilter.xml	2011-05-31 14:18:50 UTC (rev 111485)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloader xmlns="urn:jboss:classloader:1.0" name="test">
+    <excluded-filter>com.redhat.foobar</excluded-filter>
+</classloader>

Copied: projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleIncludedFilter.xml (from rev 111484, projects/jboss-cl/trunk/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleIncludedFilter.xml)
===================================================================
--- projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleIncludedFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_2/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleIncludedFilter.xml	2011-05-31 14:18:50 UTC (rev 111485)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloader xmlns="urn:jboss:classloader:1.0" name="test">
+    <included-filter>org.jboss.acme</included-filter>
+</classloader>



More information about the jboss-cvs-commits mailing list