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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Oct 4 09:44:12 EDT 2010


Author: alesj
Date: 2010-10-04 09:44:12 -0400 (Mon, 04 Oct 2010)
New Revision: 108417

Modified:
   projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataRecurseFilter.java
   projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathMetaData.java
   projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathMetaData.java
   projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/metadata/test/ScanningMetaDataTestCase.java
   projects/scanning/trunk/testsuite/src/test/resources/metadata/recurse_filter/META-INF/jboss-scanning.xml
   projects/scanning/trunk/testsuite/src/test/resources/metadata/smoke/META-INF/jboss-scanning.xml
Log:
Allow for explicit path exclude.

Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataRecurseFilter.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataRecurseFilter.java	2010-10-04 13:05:32 UTC (rev 108416)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataRecurseFilter.java	2010-10-04 13:44:12 UTC (rev 108417)
@@ -44,6 +44,8 @@
 {
    /** Path tree roots */
    private Map<String, RootNode> roots;
+   /** All excludes */
+   private boolean allExcluded;
 
    public ScanningMetaDataRecurseFilter(ScanningMetaData smd)
    {
@@ -53,24 +55,32 @@
       List<PathMetaData> paths = smd.getPaths();
       if (paths != null && paths.isEmpty() == false)
       {
+         allExcluded = true; // we have some paths, let's see if they are all explicit excludes
          roots = new HashMap<String, RootNode>();
          for (PathMetaData pmd : paths)
          {
             RootNode pathNode = new RootNode();
             roots.put(pmd.getPathName(), pathNode);
-            Set<PathEntryMetaData> includes = pmd.getIncludes();
-            if (includes != null && includes.isEmpty() == false)
+            pathNode.excluded = pmd.isExcluded();
+
+            if (pathNode.excluded == false)
             {
-               pathNode.explicitInclude = true;
-               for (PathEntryMetaData pemd : includes)
+               allExcluded = false;
+
+               Set<PathEntryMetaData> includes = pmd.getIncludes();
+               if (includes != null && includes.isEmpty() == false)
                {
-                  String name = pemd.getName();
-                  String[] tokens = name.split("\\.");
-                  Node current = pathNode;
-                  for (String token : tokens)
-                     current = current.addChild(token);
-                  if (pemd.isRecurse())
-                     current.recurse = true; // mark last one as recurse
+                  pathNode.explicitInclude = true;
+                  for (PathEntryMetaData pemd : includes)
+                  {
+                     String name = pemd.getName();
+                     String[] tokens = name.split("\\.");
+                     Node current = pathNode;
+                     for (String token : tokens)
+                        current = current.addChild(token);
+                     if (pemd.isRecurse())
+                        current.recurse = true; // mark last one as recurse
+                  }
                }
             }
          }
@@ -89,6 +99,9 @@
          if (urlString.contains(root.getKey()))
          {
             RootNode rootNode = root.getValue();
+            if (rootNode.excluded)
+               return false;
+
             if (rootNode.explicitInclude) // we have explicit includes in path, try tree path
             {
                String resourceName = resource.getResourceName();
@@ -110,7 +123,7 @@
             return true;
          }
       }
-      return false;
+      return allExcluded;
    }
 
    private static class Node
@@ -140,6 +153,7 @@
 
    private static class RootNode extends Node
    {
+      private boolean excluded; // marked as excluded
       private boolean explicitInclude;
    }
 }

Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathMetaData.java	2010-10-04 13:05:32 UTC (rev 108416)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathMetaData.java	2010-10-04 13:44:12 UTC (rev 108417)
@@ -46,6 +46,7 @@
    private static final long serialVersionUID = 1L;
 
    private String pathName;
+   private boolean excluded;
    private Set<PathEntryMetaData> includes;
    private Set<PathEntryMetaData> excludes;
 
@@ -60,6 +61,17 @@
       this.pathName = pathName;
    }
 
+   public boolean isExcluded()
+   {
+      return excluded;
+   }
+
+   @XmlAttribute(name = "excluded")
+   public void setExcluded(boolean excluded)
+   {
+      this.excluded = excluded;
+   }
+
    public Set<PathEntryMetaData> getIncludes()
    {
       return includes;

Modified: projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathMetaData.java	2010-10-04 13:05:32 UTC (rev 108416)
+++ projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathMetaData.java	2010-10-04 13:44:12 UTC (rev 108417)
@@ -39,6 +39,13 @@
    String getPathName();
 
    /**
+    * Is this an exlicitly excluded path.
+    *
+    * @return true if excluded, false otherwise
+    */
+   boolean isExcluded();
+
+   /**
     * Get includes.
     *
     * @return the includes

Modified: projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/metadata/test/ScanningMetaDataTestCase.java
===================================================================
--- projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/metadata/test/ScanningMetaDataTestCase.java	2010-10-04 13:05:32 UTC (rev 108416)
+++ projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/metadata/test/ScanningMetaDataTestCase.java	2010-10-04 13:44:12 UTC (rev 108417)
@@ -72,7 +72,7 @@
             assertNotNull(metaData);
             List<PathMetaData> paths = metaData.getPaths();
             assertNotNull(paths);
-            assertEquals(3, paths.size());
+            assertEquals(4, paths.size());
 
             PathMetaData pmd = paths.get(0);
             assertNotNull(pmd);
@@ -115,6 +115,15 @@
             assertEquals("com.esb.bar", pemd.getName());
             assertNull(pmd.getExcludes());
             assertTrue(pemd.isRecurse());
+
+            pmd = paths.get(3);
+            assertNotNull(pmd);
+            assertEquals("esb.sar/docs", pmd.getPathName());
+            assertTrue(pmd.isExcluded());
+            includes = pmd.getIncludes();
+            assertNull(includes);
+            excludes = pmd.getExcludes();
+            assertNull(excludes);
          }
          finally
          {

Modified: projects/scanning/trunk/testsuite/src/test/resources/metadata/recurse_filter/META-INF/jboss-scanning.xml
===================================================================
--- projects/scanning/trunk/testsuite/src/test/resources/metadata/recurse_filter/META-INF/jboss-scanning.xml	2010-10-04 13:05:32 UTC (rev 108416)
+++ projects/scanning/trunk/testsuite/src/test/resources/metadata/recurse_filter/META-INF/jboss-scanning.xml	2010-10-04 13:44:12 UTC (rev 108417)
@@ -2,4 +2,5 @@
   <path name="simple.jar">
     <include name="org.jboss.test.scanning.annotations.support.jar"/>
   </path>
+  <path name="foobar.jar" excluded="true"/>
 </scanning>

Modified: projects/scanning/trunk/testsuite/src/test/resources/metadata/smoke/META-INF/jboss-scanning.xml
===================================================================
--- projects/scanning/trunk/testsuite/src/test/resources/metadata/smoke/META-INF/jboss-scanning.xml	2010-10-04 13:05:32 UTC (rev 108416)
+++ projects/scanning/trunk/testsuite/src/test/resources/metadata/smoke/META-INF/jboss-scanning.xml	2010-10-04 13:44:12 UTC (rev 108417)
@@ -9,4 +9,5 @@
   <path name="esb.sar/lib/ui.jar">
     <include name="com.esb.bar" recurse="true"/>
   </path>
+  <path name="esb.sar/docs" excluded="true"/>
 </scanning>



More information about the jboss-cvs-commits mailing list