[jboss-cvs] JBossAS SVN: r103680 - in projects/scanning/trunk: scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 8 04:33:18 EDT 2010


Author: alesj
Date: 2010-04-08 04:33:17 -0400 (Thu, 08 Apr 2010)
New Revision: 103680

Modified:
   projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java
   projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathEntryMetaData.java
   projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathEntryMetaData.java
Log:
Allow recursive paths.

Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java	2010-04-08 08:15:00 UTC (rev 103679)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java	2010-04-08 08:33:17 UTC (rev 103680)
@@ -27,6 +27,7 @@
 
 import org.jboss.classloader.spi.filter.ClassFilter;
 import org.jboss.classloader.spi.filter.PackageClassFilter;
+import org.jboss.classloader.spi.filter.RecursivePackageClassFilter;
 import org.jboss.classloading.spi.visitor.ResourceContext;
 import org.jboss.classloading.spi.visitor.ResourceFilter;
 import org.jboss.scanning.spi.metadata.FilterablePathEntry;
@@ -81,14 +82,18 @@
                   }
                }
 
-               Set<PathEntryMetaData> excludes = pmda.getExcludes();
-               if (excludes != null && excludes.isEmpty() == false)
+               // we did not have explicit include, let's check if it's excluded
+               if (explicitInclude == false)
                {
-                  for (PathEntryMetaData pemda : excludes)
+                  Set<PathEntryMetaData> excludes = pmda.getExcludes();
+                  if (excludes != null && excludes.isEmpty() == false)
                   {
-                     ClassFilter filter = getClassFilter(pemda);
-                     if (filter.matchesResourcePath(resourceName))
-                        return false;
+                     for (PathEntryMetaData pemda : excludes)
+                     {
+                        ClassFilter filter = getClassFilter(pemda);
+                        if (filter.matchesResourcePath(resourceName))
+                           return false;
+                     }
                   }
                }
 
@@ -109,6 +114,8 @@
    {
       if (pemd instanceof FilterablePathEntry)
          return ((FilterablePathEntry)pemd).getFilter();
+      else if (pemd.isRecursive())
+         return RecursivePackageClassFilter.createRecursivePackageClassFilter(pemd.getName());
       else
          return PackageClassFilter.createPackageClassFilter(pemd.getName());
    }

Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathEntryMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathEntryMetaData.java	2010-04-08 08:15:00 UTC (rev 103679)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathEntryMetaData.java	2010-04-08 08:33:17 UTC (rev 103680)
@@ -30,6 +30,7 @@
 
 import org.jboss.classloader.spi.filter.ClassFilter;
 import org.jboss.classloader.spi.filter.PackageClassFilter;
+import org.jboss.classloader.spi.filter.RecursivePackageClassFilter;
 import org.jboss.scanning.spi.metadata.FilterablePathEntry;
 import org.jboss.scanning.spi.metadata.PathEntryMetaData;
 
@@ -44,13 +45,16 @@
    private static final long serialVersionUID = 1L;
 
    private String name;
+   private boolean recursive;
    private transient ClassFilter filter;
 
    @XmlTransient
    public ClassFilter getFilter()
    {
       if (filter == null)
-         filter = PackageClassFilter.createPackageClassFilter(getNameInternal());
+         filter = recursive ?
+               RecursivePackageClassFilter.createRecursivePackageClassFilter(getNameInternal()) : 
+               PackageClassFilter.createPackageClassFilter(getNameInternal());
 
       return filter;
    }
@@ -75,6 +79,17 @@
       this.name = name;
    }
 
+   public boolean isRecursive()
+   {
+      return recursive;
+   }
+
+   @XmlAttribute(name="recursive")
+   public void setRecursive(boolean recursive)
+   {
+      this.recursive = recursive;
+   }
+
    @Override
    public int hashCode()
    {

Modified: projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathEntryMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathEntryMetaData.java	2010-04-08 08:15:00 UTC (rev 103679)
+++ projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathEntryMetaData.java	2010-04-08 08:33:17 UTC (rev 103680)
@@ -35,4 +35,11 @@
     * @return the name
     */
    String getName();
+
+   /***
+    * Is path used recursively.
+    *
+    * @return true if recursive, false otherwise
+    */
+   boolean isRecursive();
 }




More information about the jboss-cvs-commits mailing list