[jboss-cvs] JBossAS SVN: r109624 - projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 1 09:44:15 EST 2010


Author: alesj
Date: 2010-12-01 09:44:14 -0500 (Wed, 01 Dec 2010)
New Revision: 109624

Modified:
   projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/ScanningDeploymentUnitFilter.java
Log:
Ask for explicit delegation, since we already have SMD.

Modified: projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/ScanningDeploymentUnitFilter.java
===================================================================
--- projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/ScanningDeploymentUnitFilter.java	2010-12-01 14:34:51 UTC (rev 109623)
+++ projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/ScanningDeploymentUnitFilter.java	2010-12-01 14:44:14 UTC (rev 109624)
@@ -36,18 +36,38 @@
  */
 public class ScanningDeploymentUnitFilter extends VFS2BaseBridgeDeploymentUnitFilter
 {
+   /** Do we use previous filters and delegate to them as well */
+   private boolean delegate;
+
+   /**
+    * Should we use delegation to existing filters.
+    * By default we check the presence of (ResourceFilter.class.getName() + ".delegate") attachment.
+    *
+    * @param unit the deployment unit
+    * @return true if we should use delegation, false otherwise
+    */
+   protected boolean useDelegation(DeploymentUnit unit)
+   {
+      return unit.isAttachmentPresent(ResourceFilter.class.getName() + ".delegate");
+   }
+
    protected boolean doAccepts(DeploymentUnit unit)
    {
       ScanningMetaData smd = unit.getAttachment(ScanningMetaData.class);
       if (smd != null)
       {
+         boolean useDelegation = delegate && useDelegation(unit);
+
          // recurse
          ResourceFilter recurse = createRecurseFilter(smd);
          if (recurse != null)
          {
-            ResourceFilter previousRecurse = unit.getAttachment(ResourceFilter.class.getName() + ".recurse", ResourceFilter.class);
-            if (previousRecurse != null)
-               recurse = new DelegateResourceFilter(previousRecurse, recurse);
+            if (useDelegation)
+            {
+               ResourceFilter previousRecurse = unit.getAttachment(ResourceFilter.class.getName() + ".recurse", ResourceFilter.class);
+               if (previousRecurse != null)
+                  recurse = new DelegateResourceFilter(previousRecurse, recurse);
+            }
 
             unit.addAttachment(ResourceFilter.class.getName() + ".recurse", recurse, ResourceFilter.class);
          }
@@ -56,9 +76,12 @@
          ResourceFilter filter = createResourceFilter(smd);
          if (filter != null)
          {
-            ResourceFilter previousFilter = unit.getAttachment(ResourceFilter.class.getName() + ".resource", ResourceFilter.class);
-            if (previousFilter != null)
-               filter = new DelegateResourceFilter(previousFilter, filter);
+            if (useDelegation)
+            {
+               ResourceFilter previousFilter = unit.getAttachment(ResourceFilter.class.getName() + ".resource", ResourceFilter.class);
+               if (previousFilter != null)
+                  filter = new DelegateResourceFilter(previousFilter, filter);
+            }
 
             unit.addAttachment(ResourceFilter.class.getName() + ".resource", filter, ResourceFilter.class);
          }
@@ -87,4 +110,14 @@
    {
       return new ScanningMetaDataResourceFilter(smd);
    }
+
+   /**
+    * Set the delegate flag.
+    *
+    * @param delegate the delegate flag
+    */
+   public void setDelegate(boolean delegate)
+   {
+      this.delegate = delegate;
+   }
 }



More information about the jboss-cvs-commits mailing list