[Jboss-cvs] JBossAS SVN: r56914 - in projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure: . vfs

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Sep 16 09:14:55 EDT 2006


Author: adrian at jboss.org
Date: 2006-09-16 09:14:51 -0400 (Sat, 16 Sep 2006)
New Revision: 56914

Modified:
   projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/AbstractDeploymentContext.java
   projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/vfs/AbstractStructureDeployer.java
   projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/vfs/CandidateStructureVisitor.java
Log:
We only want to ignore directories in jars when they are not archives.

Modified: projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/AbstractDeploymentContext.java
===================================================================
--- projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/AbstractDeploymentContext.java	2006-09-16 13:12:22 UTC (rev 56913)
+++ projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/AbstractDeploymentContext.java	2006-09-16 13:14:51 UTC (rev 56914)
@@ -408,6 +408,8 @@
       if (child == null)
          throw new IllegalArgumentException("Null child");
       children.add(child);
+      if (log.isTraceEnabled())
+         log.trace("Adding child " + child.getName() + " to " + getName() + " candidate=" + child.isCandidate());
    }
 
    public boolean removeChild(DeploymentContext child)

Modified: projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/vfs/AbstractStructureDeployer.java
===================================================================
--- projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/vfs/AbstractStructureDeployer.java	2006-09-16 13:12:22 UTC (rev 56913)
+++ projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/vfs/AbstractStructureDeployer.java	2006-09-16 13:14:51 UTC (rev 56914)
@@ -51,7 +51,7 @@
     * Add all children as candidates
     * 
     * @param parent the parent context
-    * @param ignoreDirectories whether to ignore directories
+    * @param ignoreDirectories whether to ignore directories that are not archives
     * @throws Exception for any error
     */
    protected void addAllChildren(DeploymentContext parent, boolean ignoreDirectories) throws Exception
@@ -60,9 +60,7 @@
          throw new IllegalArgumentException("Null parent");
       
       VisitorAttributes attributes = VisitorAttributes.DEFAULT;
-      if (ignoreDirectories)
-         attributes = VisitorAttributes.NO_DIRECTORIES;
-      CandidateStructureVisitor visitor = new CandidateStructureVisitor(parent, attributes);
+      CandidateStructureVisitor visitor = new CandidateStructureVisitor(parent, attributes, ignoreDirectories);
 
       VirtualFile root = parent.getRoot();
       root.visit(visitor);

Modified: projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/vfs/CandidateStructureVisitor.java
===================================================================
--- projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/vfs/CandidateStructureVisitor.java	2006-09-16 13:12:22 UTC (rev 56913)
+++ projects/microcontainer/trunk/deployers/src/main/org/jboss/deployers/plugins/structure/vfs/CandidateStructureVisitor.java	2006-09-16 13:14:51 UTC (rev 56914)
@@ -21,8 +21,11 @@
 */
 package org.jboss.deployers.plugins.structure.vfs;
 
+import java.io.IOException;
+
 import org.jboss.deployers.plugins.structure.AbstractDeploymentContext;
 import org.jboss.deployers.spi.structure.DeploymentContext;
+import org.jboss.logging.Logger;
 import org.jboss.virtual.VirtualFile;
 import org.jboss.virtual.VisitorAttributes;
 import org.jboss.virtual.plugins.vfs.helpers.AbstractVirtualFileVisitor;
@@ -35,11 +38,17 @@
  */
 public class CandidateStructureVisitor extends AbstractVirtualFileVisitor
 {
+   /** The log */
+   private static final Logger log = Logger.getLogger(CandidateStructureVisitor.class);
+   
    /** The parent deployment context */
    private final DeploymentContext parent;
 
    /** The meta data location */
    private final String metaDataPath;
+
+   /** Ignore directories */
+   private boolean ignoreDirectories;
    
    /**
     * Create a new CandidateStructureVisitor.
@@ -49,7 +58,7 @@
     */
    public CandidateStructureVisitor(DeploymentContext parent)
    {
-      this(parent, null);
+      this(parent, null, false);
    }
    
    /**
@@ -57,9 +66,10 @@
     * 
     * @param parent the parent
     * @param attributes the attributes
+    * @param ignoreDirectories whether to ignore directories
     * @throws IllegalArgumentException for a null parent
     */
-   public CandidateStructureVisitor(DeploymentContext parent, VisitorAttributes attributes)
+   public CandidateStructureVisitor(DeploymentContext parent, VisitorAttributes attributes, boolean ignoreDirectories)
    {
       super(attributes);
       if (parent == null)
@@ -70,6 +80,7 @@
          metaDataPath = metaDataLocation.getPathName(); 
       else
          metaDataPath = null;
+      this.ignoreDirectories = ignoreDirectories;
    }
    
    public void visit(VirtualFile virtualFile)
@@ -90,6 +101,17 @@
       // Exclude the meta data location
       if (metaDataPath != null && virtualFile.getPathName().startsWith(metaDataPath))
          return null;
+
+      try
+      {
+         if (ignoreDirectories && virtualFile.isDirectory() && virtualFile.isArchive() == false)
+            return null;
+      }
+      catch (IOException e)
+      {
+         log.debug("Ignoring " + virtualFile + " reason=" + e);
+         return null;
+      }
       
       return new AbstractDeploymentContext(virtualFile, true, parent);
    }




More information about the jboss-cvs-commits mailing list