[jboss-cvs] JBossAS SVN: r57434 - in projects/microcontainer/trunk/container/src/main/org/jboss/virtual: . plugins/context

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Oct 4 19:52:24 EDT 2006


Author: bill.burke at jboss.com
Date: 2006-10-04 19:52:22 -0400 (Wed, 04 Oct 2006)
New Revision: 57434

Modified:
   projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VisitorAttributes.java
   projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractVFSContext.java
Log:
allow ability to avoid recursing on visit if the child is an archive.

Modified: projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VisitorAttributes.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VisitorAttributes.java	2006-10-04 23:47:45 UTC (rev 57433)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/virtual/VisitorAttributes.java	2006-10-04 23:52:22 UTC (rev 57434)
@@ -55,7 +55,20 @@
 
    /** Whether to include hidden files */
    private boolean includeHidden;
-   
+
+   /** Whether to recurse archives or not */
+   private boolean recurseArchives;
+
+   public boolean isRecurseArchives()
+   {
+      return recurseArchives;
+   }
+
+   public void setRecurseArchives(boolean recurseArchives)
+   {
+      this.recurseArchives = recurseArchives;
+   }
+
    /**
     * Whether to visit leaves only<p>
     * 

Modified: projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractVFSContext.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractVFSContext.java	2006-10-04 23:47:45 UTC (rev 57433)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/virtual/plugins/context/AbstractVFSContext.java	2006-10-04 23:52:22 UTC (rev 57434)
@@ -128,8 +128,9 @@
       boolean recurse = attributes.isRecurse();
       boolean ignoreErrors = attributes.isIgnoreErrors();
       boolean includeHidden = attributes.isIncludeHidden();
+      boolean recurseArchives = attributes.isRecurseArchives();
 
-      visit(handler, visitor, includeRoot, leavesOnly, recurse, ignoreErrors, includeHidden);
+      visit(handler, visitor, includeRoot, leavesOnly, recurse, ignoreErrors, includeHidden, recurseArchives);
    }
 
    /**
@@ -145,7 +146,7 @@
     * @param includeHidden whether to include hidden files
     * @throws IOException for any problem accessing the virtual file system
     */
-   protected void visit(VirtualFileHandler handler, VirtualFileHandlerVisitor visitor, boolean includeRoot, boolean leavesOnly, boolean recurse, boolean ignoreErrors, boolean includeHidden) throws IOException
+   protected void visit(VirtualFileHandler handler, VirtualFileHandlerVisitor visitor, boolean includeRoot, boolean leavesOnly, boolean recurse, boolean ignoreErrors, boolean includeHidden, boolean recurseArchives) throws IOException
    {
       // Visit the root when asked
       if (includeRoot)
@@ -176,13 +177,16 @@
          boolean isLeaf = child.isLeaf();
          if (leavesOnly == false || isLeaf)
             visitor.visit(child);
-         
+
+         boolean allowArchives = true;
+         if (child.isArchive() && recurseArchives == false) allowArchives = false;
+
          // Recurse when asked
-         if (recurse && isLeaf == false)
+         if (recurse && isLeaf == false && allowArchives)
          {
             try
             {
-               visit(child, visitor, false, leavesOnly, recurse, ignoreErrors, includeHidden);
+               visit(child, visitor, false, leavesOnly, recurse, ignoreErrors, includeHidden, recurseArchives);
             }
             catch (StackOverflowError e)
             {




More information about the jboss-cvs-commits mailing list