[jboss-cvs] JBossAS SVN: r103405 - in projects/scanning/trunk: scanning-spi/src/main/java/org/jboss/scanning/spi/helpers and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 1 05:11:18 EDT 2010


Author: alesj
Date: 2010-04-01 05:11:16 -0400 (Thu, 01 Apr 2010)
New Revision: 103405

Added:
   projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/FilteredAnnotationScanningPluginFactory.java
Removed:
   projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/MockAnnScanningPluginFactory.java
Modified:
   projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DefaultScanner.java
   projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DeploymentUnitScanner.java
   projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/helpers/AbstractScanningPlugin.java
   projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/helpers/UrlScanner.java
   projects/scanning/trunk/testsuite/src/test/resources/org/jboss/test/scanning/annotations/test/AnnotationsScanningTestCase.xml
Log:
Fix recursion filtering.

Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DefaultScanner.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DefaultScanner.java	2010-04-01 09:05:44 UTC (rev 103404)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DefaultScanner.java	2010-04-01 09:11:16 UTC (rev 103405)
@@ -65,11 +65,7 @@
       }
 
       ScanningPlugin[] array = plugins.toArray(new ScanningPlugin[plugins.size()]);
-      ResourceFilter[] recurseFilters = new ResourceFilter[array.length];
-      for (int i = 0; i < array.length; i++)
-         recurseFilters[i] = array[i].getRecurseFilter();
-
-      FederatedResourceVisitor visitor = new FederatedResourceVisitor(array, array, recurseFilters);
+      FederatedResourceVisitor visitor = new FederatedResourceVisitor(array, array, getRecurseFilters(array));
       ResourceFilter filter = visitor.getFilter();
       ResourceFilter recurseFilter = visitor.getRecurseFilter();
 

Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DeploymentUnitScanner.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DeploymentUnitScanner.java	2010-04-01 09:05:44 UTC (rev 103404)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DeploymentUnitScanner.java	2010-04-01 09:11:16 UTC (rev 103405)
@@ -59,11 +59,7 @@
          throw new IllegalArgumentException("No module found: " + unit);
 
       ScanningPlugin[] array = plugins.toArray(new ScanningPlugin[plugins.size()]);
-      ResourceFilter[] recurseFilters = new ResourceFilter[array.length];
-      for (int i = 0; i < array.length; i++)
-         recurseFilters[i] = array[i].getRecurseFilter();
-
-      FederatedResourceVisitor visitor = new FederatedResourceVisitor(array, array, recurseFilters);
+      FederatedResourceVisitor visitor = new FederatedResourceVisitor(array, array, getRecurseFilters(array));
       ResourceFilter filter = visitor.getFilter();
       ResourceFilter recurseFilter = visitor.getRecurseFilter();
 

Modified: projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/helpers/AbstractScanningPlugin.java
===================================================================
--- projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/helpers/AbstractScanningPlugin.java	2010-04-01 09:05:44 UTC (rev 103404)
+++ projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/helpers/AbstractScanningPlugin.java	2010-04-01 09:11:16 UTC (rev 103405)
@@ -61,6 +61,6 @@
 
    public ResourceFilter getRecurseFilter()
    {
-      return AllRecurseFilter.INSTANCE;
+      return null;
    }
 }
\ No newline at end of file

Modified: projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/helpers/UrlScanner.java
===================================================================
--- projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/helpers/UrlScanner.java	2010-04-01 09:05:44 UTC (rev 103404)
+++ projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/helpers/UrlScanner.java	2010-04-01 09:11:16 UTC (rev 103405)
@@ -30,6 +30,7 @@
 import java.util.Set;
 import java.util.zip.GZIPInputStream;
 
+import org.jboss.classloading.spi.visitor.ResourceFilter;
 import org.jboss.logging.Logger;
 import org.jboss.scanning.spi.ScanningHandle;
 import org.jboss.scanning.spi.ScanningPlugin;
@@ -80,6 +81,19 @@
       scan(federatedPlugins);
    }
 
+   protected ResourceFilter[] getRecurseFilters(ScanningPlugin[] plugins)
+   {
+      boolean explicitFilter = false;
+      ResourceFilter[] recurseFilters = new ResourceFilter[plugins.length];
+      for (int i = 0; i < plugins.length; i++)
+      {
+         ResourceFilter filter = plugins[i].getRecurseFilter();
+         recurseFilters[i] = filter != null ? filter : AllRecurseFilter.INSTANCE;
+         explicitFilter |= filter != null;
+      }
+      return explicitFilter ? recurseFilters : null;
+   }
+
    protected abstract void scan(Set<ScanningPlugin> plugins) throws Exception;
 
    protected InputStream getInputStream(URL url, String key)

Copied: projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/FilteredAnnotationScanningPluginFactory.java (from rev 103403, projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/MockAnnScanningPluginFactory.java)
===================================================================
--- projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/FilteredAnnotationScanningPluginFactory.java	                        (rev 0)
+++ projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/FilteredAnnotationScanningPluginFactory.java	2010-04-01 09:11:16 UTC (rev 103405)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.test.scanning.annotations.support;
+
+import org.jboss.classloading.spi.visitor.ResourceFilter;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.scanning.annotations.plugins.AnnotationsScanningPlugin;
+import org.jboss.scanning.annotations.plugins.DefaultAnnotationRepository;
+import org.jboss.scanning.annotations.spi.AnnotationIndex;
+import org.jboss.scanning.plugins.DeploymentScanningPluginFactory;
+import org.jboss.scanning.plugins.helpers.DeploymentUtilsFactory;
+import org.jboss.scanning.plugins.helpers.ResourceOwnerFinder;
+import org.jboss.scanning.plugins.visitor.ReflectProvider;
+import org.jboss.scanning.spi.ScanningPlugin;
+
+/**
+ * Annotations scanning plugin factory.
+ *
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class FilteredAnnotationScanningPluginFactory implements DeploymentScanningPluginFactory<DefaultAnnotationRepository, AnnotationIndex>
+{
+   private ResourceFilter filter;
+
+   public FilteredAnnotationScanningPluginFactory(ResourceFilter filter)
+   {
+      this.filter = filter;
+   }
+
+   public boolean isRelevant(DeploymentUnit unit)
+   {
+      // any better check? -- metadata complete is already done elsewhere
+      // see JBossMetaDataDeploymentUnitFilter in JBossAS
+      return true;
+   }
+
+   public ScanningPlugin<DefaultAnnotationRepository, AnnotationIndex> create(DeploymentUnit unit)
+   {
+      ReflectProvider provider = DeploymentUtilsFactory.getProvider(unit);
+      ResourceOwnerFinder finder = DeploymentUtilsFactory.getFinder(unit);
+      return new AnnotationsScanningPlugin(provider, finder, unit.getClassLoader())
+      {
+         @Override
+         public ResourceFilter getRecurseFilter()
+         {
+            return filter;
+         }
+      };
+   }
+}
\ No newline at end of file

Deleted: projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/MockAnnScanningPluginFactory.java
===================================================================
--- projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/MockAnnScanningPluginFactory.java	2010-04-01 09:05:44 UTC (rev 103404)
+++ projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/MockAnnScanningPluginFactory.java	2010-04-01 09:11:16 UTC (rev 103405)
@@ -1,63 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2010, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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.test.scanning.annotations.support;
-
-import org.jboss.classloading.spi.visitor.ResourceFilter;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.scanning.annotations.plugins.AnnotationsScanningPlugin;
-import org.jboss.scanning.annotations.plugins.DefaultAnnotationRepository;
-import org.jboss.scanning.annotations.spi.AnnotationIndex;
-import org.jboss.scanning.plugins.DeploymentScanningPluginFactory;
-import org.jboss.scanning.plugins.helpers.DeploymentUtilsFactory;
-import org.jboss.scanning.plugins.helpers.ResourceOwnerFinder;
-import org.jboss.scanning.plugins.visitor.ReflectProvider;
-import org.jboss.scanning.spi.ScanningPlugin;
-
-/**
- * Annotations scanning plugin factory.
- *
- * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
- */
-public class MockAnnScanningPluginFactory implements DeploymentScanningPluginFactory<DefaultAnnotationRepository, AnnotationIndex>
-{
-   public boolean isRelevant(DeploymentUnit unit)
-   {
-      // any better check? -- metadata complete is already done elsewhere
-      // see JBossMetaDataDeploymentUnitFilter in JBossAS
-      return true;
-   }
-
-   public ScanningPlugin<DefaultAnnotationRepository, AnnotationIndex> create(DeploymentUnit unit)
-   {
-      ReflectProvider provider = DeploymentUtilsFactory.getProvider(unit);
-      ResourceOwnerFinder finder = DeploymentUtilsFactory.getFinder(unit);
-      return new AnnotationsScanningPlugin(provider, finder, unit.getClassLoader())
-      {
-         @Override
-         public ResourceFilter getRecurseFilter()
-         {
-            return new NoExtRecurseFilter();
-         }
-      };
-   }
-}
\ No newline at end of file

Modified: projects/scanning/trunk/testsuite/src/test/resources/org/jboss/test/scanning/annotations/test/AnnotationsScanningTestCase.xml
===================================================================
--- projects/scanning/trunk/testsuite/src/test/resources/org/jboss/test/scanning/annotations/test/AnnotationsScanningTestCase.xml	2010-04-01 09:05:44 UTC (rev 103404)
+++ projects/scanning/trunk/testsuite/src/test/resources/org/jboss/test/scanning/annotations/test/AnnotationsScanningTestCase.xml	2010-04-01 09:11:16 UTC (rev 103405)
@@ -8,6 +8,12 @@
     <uncallback method="removeFactory" />
   </bean>
 
-  <bean name="AnnScanningPlugin" class="org.jboss.test.scanning.annotations.support.MockAnnScanningPluginFactory"/>
+  <bean name="AnnScanningPlugin" class="org.jboss.test.scanning.annotations.support.FilteredAnnotationScanningPluginFactory">
+      <constructor>
+          <parameter>
+              <bean class="org.jboss.test.scanning.annotations.support.NoExtRecurseFilter"/>
+          </parameter>
+      </constructor>
+  </bean>
     
 </deployment>




More information about the jboss-cvs-commits mailing list