[jboss-cvs] JBossAS SVN: r111486 - in projects/jboss-cl/branches/Branch_2_0: 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 11:01:30 EDT 2011


Author: alesj
Date: 2011-05-31 11:01:30 -0400 (Tue, 31 May 2011)
New Revision: 111486

Added:
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedExportFilter.xml
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedFilter.xml
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleIncludedFilter.xml
   projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java
   projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedExportFilter.xml
   projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedFilter.xml
   projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleIncludedFilter.xml
Modified:
   projects/jboss-cl/branches/Branch_2_0/
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/NoopClassLoaderFactory.java
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/NoopClassLoaderFactoryXMLUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
   projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java
   projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
   projects/jboss-cl/branches/Branch_2_0/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_0
___________________________________________________________________
Added: svn:mergeinfo
   + /projects/jboss-cl/trunk:111484

Modified: projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2011-05-31 14:18:50 UTC (rev 111485)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -23,6 +23,7 @@
 
 import java.util.List;
 import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
 import org.jboss.classloader.plugins.filter.CombiningClassFilter;
@@ -79,6 +80,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 */
@@ -204,6 +214,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
@@ -213,7 +245,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)
@@ -255,6 +289,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
@@ -264,6 +320,8 @@
       ClassFilter packageFilter = null;
       if (excludedPackages != null)
          packageFilter = PackageClassFilter.createPackageClassFilterFromString(excludedPackages);
+      else if (excludedMetaData != null)
+         packageFilter = excludedMetaData.createFilter();
       
       if (packageFilter == null)
          return excluded;
@@ -305,7 +363,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
@@ -315,6 +390,8 @@
       ClassFilter packageFilter = null;
       if (excludedExportPackages != null)
          packageFilter = PackageClassFilter.createPackageClassFilterFromString(excludedExportPackages);
+      else if (excludedExportMetaData != null)
+         packageFilter = excludedExportMetaData.createFilter();
       
       if (packageFilter == null)
          return excludedExport;
@@ -578,7 +655,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;

Modified: projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java	2011-05-31 14:18:50 UTC (rev 111485)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingMetaData10.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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 = {"includedMetaData", "excludedMetaData", "excludedExportMetaData", "requirements", "capabilities"})
 public class ClassLoadingMetaData10 extends ClassLoadingMetaData
 {
    /** The serialVersionUID */

Added: projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/main/java/org/jboss/classloading/spi/metadata/FilterMetaData.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -0,0 +1,153 @@
+/*
+* 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 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 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>
+ */
+ 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;
+   private boolean ignoreSplit;
+
+   /**
+    * Create filter.
+    *
+    * @return the filter
+    */
+   public ClassFilter createFilter()
+   {
+      // perhaps it's JavaBean
+      if (value instanceof ClassFilter)
+      {
+         return (ClassFilter) value;
+      }
+      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 = (arg != null) ? clazz.getDeclaredConstructor(arg.getClass()) : clazz.getDeclaredConstructor();
+            return (ClassFilter) ((arg != null) ? ctor.newInstance(arg) : ctor.newInstance());
+         }
+         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 setValueObject(Object value)
+   {
+      this.value = value;
+   }
+
+   @XmlValue
+   @ManagementProperty(ignored = true)
+   public void setValueString(String value)
+   {
+      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) + 11 * Boolean.valueOf(ignoreSplit).hashCode();
+   }
+
+   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) && ignoreSplit == other.ignoreSplit;
+
+   }
+
+   @Override
+   public FilterMetaData clone()
+   {
+      try
+      {
+         return (FilterMetaData) super.clone();
+      }
+      catch (CloneNotSupportedException e)
+      {
+         throw new RuntimeException("Unexpected", e);
+      }
+   }
+}

Modified: projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/test/ManagedObjectClassLoadingMetaDataUnitTestCase.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -31,6 +31,7 @@
 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.RequirementsMetaData;
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.managed.api.ManagedObject;
@@ -46,6 +47,7 @@
  * 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
@@ -68,7 +70,7 @@
    {
       ManagedObject result = moFactory.initManagedObject(test, null, null);
       assertNotNull(result);
-      List<String> expectedProperties = Arrays.asList("name", "version", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "capabilities", "requirements");
+      List<String> expectedProperties = Arrays.asList("name", "version", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "included", "includedMetaData", "excluded", "excludedMetaData", "excludedExport", "excludedExportMetaData", "importAll", "parentFirst", "cache", "blackList", "capabilities", "requirements");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -113,8 +115,11 @@
       assertManagedProperty(mo, "topLevelClassLoader", boolean.class, false);
       assertManagedProperty(mo, "exportAll", ExportAll.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());
@@ -177,6 +182,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();
@@ -185,6 +199,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();
@@ -193,6 +216,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_0/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingMetaDataXmlUnitTestCase.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -31,6 +31,7 @@
 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.Requirement;
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.classloading.spi.version.VersionRange;
@@ -66,8 +67,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());
@@ -112,18 +116,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();
@@ -332,7 +372,19 @@
          temp.add(requirement);
       assertEquals(temp, metadata.getRequirements().getRequirements());
    }
-   
+
+   public void assertEqualStrings(String[] expected, Object result)
+   {
+      assertNotNull(expected);
+      assertNotNull(result);
+      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++)
+         assertEquals(expected[i], strings[i]);
+   }
+
    protected ClassLoadingMetaData unmarshal(Class<?>... extra) throws Exception
    {
       return unmarshalObject(ClassLoadingMetaData10.class, ClassLoadingMetaData10.class, extra);

Copied: projects/jboss-cl/branches/Branch_2_0/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_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedExportFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedExportFilter.xml	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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_0/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_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleExcludedFilter.xml	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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_0/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_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleIncludedFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_0/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/ModuleIncludedFilter.xml	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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_0/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java	2011-05-31 14:18:50 UTC (rev 111485)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/metadata/VFSClassLoaderFactory10.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/test/ManagedObjectVFSClassLoaderFactoryUnitTestCase.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -32,6 +32,7 @@
 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.RequirementsMetaData;
 import org.jboss.classloading.spi.version.Version;
 import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
@@ -48,6 +49,7 @@
  * 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
@@ -70,7 +72,7 @@
    {
       ManagedObject result = moFactory.initManagedObject(test, null, null);
       assertNotNull(result);
-      List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "included", "excluded", "excludedExport", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements");
+      List<String> expectedProperties = Arrays.asList("name", "version", "context", "domain", "parentDomain", "topLevelClassLoader", "exportAll", "included", "includedMetaData", "excluded", "excludedMetaData", "excludedExport", "excludedExportMetaData", "importAll", "parentFirst", "cache", "blackList", "system", "roots", "capabilities", "requirements");
       Set<String> actualProperties = result.getPropertyNames();
       for (String expected : expectedProperties)
       {
@@ -120,8 +122,11 @@
       assertManagedProperty(mo, "topLevelClassLoader", boolean.class, false);
       assertManagedProperty(mo, "exportAll", ExportAll.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());
@@ -192,6 +197,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();
@@ -200,6 +214,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();
@@ -208,6 +231,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_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/NoopClassLoaderFactory.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/NoopClassLoaderFactory.java	2011-05-31 14:18:50 UTC (rev 111485)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/support/NoopClassLoaderFactory.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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;


Property changes on: projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/NoopClassLoaderFactoryXMLUnitTestCase.java
___________________________________________________________________
Deleted: svn:mergeinfo
   - 

Modified: projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java	2011-05-31 14:18:50 UTC (rev 111485)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/java/org/jboss/test/classloading/vfs/metadata/xml/test/VFSClassLoaderFactoryXMLUnitTestCase.java	2011-05-31 15:01:30 UTC (rev 111486)
@@ -30,6 +30,7 @@
 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;
@@ -43,6 +44,7 @@
  * VFSClassLoaderFactoryXMLUnitTestCase.
  * 
  * @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 VFSClassLoaderFactoryXMLUnitTestCase extends AbstractJBossXBTest
@@ -67,8 +69,11 @@
       assertNull(result.getParentDomain());
       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());
@@ -115,18 +120,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_0/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_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedExportFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedExportFilter.xml	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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_0/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_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleExcludedFilter.xml	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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_0/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_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleIncludedFilter.xml	                        (rev 0)
+++ projects/jboss-cl/branches/Branch_2_0/classloading-vfs/src/test/resources/org/jboss/test/classloading/vfs/metadata/xml/test/ModuleIncludedFilter.xml	2011-05-31 15:01:30 UTC (rev 111486)
@@ -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