[jboss-cvs] JBossAS SVN: r92606 - in projects/profileservice/trunk/core/src: main/java/org/jboss/profileservice/virtual/deployment and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 20 07:43:14 EDT 2009


Author: emuckenhuber
Date: 2009-08-20 07:43:14 -0400 (Thu, 20 Aug 2009)
New Revision: 92606

Modified:
   projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/assembly/BasicVirtualAssemblyContext.java
   projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/deployment/AbstractVirtualPath.java
   projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/StructureMetaDataUnitTestCase.java
   projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/VirtualDeploymentAssemblyUnitTestCase.java
   projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/child/test.jar
   projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/lib/deployment.jar
   projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/deployer.jar
   projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake.jar
   projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake2.jar
Log:
workaround some VFS archive issues.

Modified: projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/assembly/BasicVirtualAssemblyContext.java
===================================================================
--- projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/assembly/BasicVirtualAssemblyContext.java	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/assembly/BasicVirtualAssemblyContext.java	2009-08-20 11:43:14 UTC (rev 92606)
@@ -24,9 +24,9 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 
+import org.jboss.logging.Logger;
 import org.jboss.profileservice.spi.virtual.ClassPathLocation;
 import org.jboss.profileservice.spi.virtual.MetaDataLocation;
 import org.jboss.profileservice.spi.virtual.PathRestriction;
@@ -36,8 +36,6 @@
 import org.jboss.virtual.AssembledDirectory;
 import org.jboss.virtual.VirtualFile;
 import org.jboss.virtual.VirtualFileFilter;
-import org.jboss.virtual.VisitorAttributes;
-import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
 
 /**
  * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
@@ -53,6 +51,9 @@
    /** The virtual deployment assembly. */
    private final AbstractVirtualDeploymentAssembly assembly;
    
+   /** The logger. */
+   private static final Logger log = Logger.getLogger(BasicVirtualAssemblyContext.class);
+   
    public BasicVirtualAssemblyContext(AssembledDirectory root, AbstractVirtualDeploymentAssembly assembly)
    {
       if(root == null)
@@ -164,15 +165,7 @@
    
    protected Collection<String> addVirtualPath(VirtualFile location, VirtualPathMetaData path) throws IOException
    {
-      if(location.isLeaf())
-      {
-         getRoot().addChild(location, location.getName());
-         return Collections.singleton(location.getName());
-      }
-      else
-      {
-         return addVirtualPath(location, path.getIncludes(), path.getExcludes());
-      }
+     return addVirtualPath(location, path.getIncludes(), path.getExcludes());
    }
    
    /**
@@ -195,7 +188,7 @@
       final VirtualFileFilter recurseFilter = new VirtualFileFilter()
       {
          public boolean accepts(VirtualFile file)
-         {
+         {           
             boolean matched = false;
             String path = file.getPathName();
             if(includes == null || includes.isEmpty())
@@ -227,25 +220,61 @@
             return true;
          }
       };
+
+      // FIXME hack the VFS archive recursion madness      
+      recurse(location, recurseFilter, included);
       
-      // Why is this not working?
-      // assembled.addPath(root, recurseFilter);
-      
-      // This should not be here
-      VisitorAttributes va = new VisitorAttributes();
-      va.setLeavesOnly(true);
-      
-      FilterVirtualFileVisitor visitor = new FilterVirtualFileVisitor(recurseFilter, va);
-      location.visit(visitor);
-      List<VirtualFile> files = visitor.getMatched();
-      for (VirtualFile vf : files)
+      return included; 
+   }
+   
+   /**
+    * Recurse through the children. 
+    * 
+    * FIXME this is a hack and should be handled by VFS correctly.
+    * 
+    * @param location the virtual file
+    * @param filter the accept filter
+    * @param included collection where included files are added
+    * @throws IOException
+    */
+   protected void recurse(VirtualFile location, VirtualFileFilter filter, Collection<String> included) throws IOException
+   {
+      if(isLeaf(location) && filter.accepts(location))
       {
-         getRoot().mkdirs(vf.getPathName()).addChild(vf);
-         included.add(vf.getPathName());
+         VirtualFile assembled = getRoot().mkdirs(location.getPathName()).addChild(location, location.getName());
+         included.add(assembled.getName());
+         return;
       }
       
-      return included; 
+      List<VirtualFile> children = location.getChildren();
+      for(VirtualFile vf : children)
+      {
+         if(isLeaf(vf))
+         {
+            if(filter.accepts(vf))
+            {
+               VirtualFile assembled = getRoot().mkdirs(vf.getPathName()).addChild(vf, vf.getName());
+               included.add(assembled.getName());
+            }
+         }
+         else
+         {
+            recurse(vf, filter, included);
+         }
+      }      
    }
    
+   /**
+    * Check if the file is a leaf. We also consider archives
+    * as leaves, as we don't care about their contents.
+    * 
+    * @param vf the virtual file
+    * @return true if the vf is a leaf or archive
+    * @throws IOException
+    */
+   protected static boolean isLeaf(VirtualFile vf) throws IOException
+   {
+      return vf.isLeaf() || vf.isArchive();
+   }
 }
 

Modified: projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/deployment/AbstractVirtualPath.java
===================================================================
--- projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/deployment/AbstractVirtualPath.java	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/deployment/AbstractVirtualPath.java	2009-08-20 11:43:14 UTC (rev 92606)
@@ -122,5 +122,30 @@
       this.excludes = excludes;
    }
    
+   @Override
+   public String toString()
+   {
+      StringBuffer buffer = new StringBuffer();
+      buffer.append(getClass().getSimpleName());
+      buffer.append("{");
+      toString(buffer);
+      buffer.append("}");
+      return buffer.toString();
+   }
+   
+   /**
+    * For subclasses to override toString()
+    * 
+    * @param buffer the buffer
+    */
+   protected void toString(StringBuffer buffer)
+   {
+      buffer.append("path=").append(getPath());
+      if(getIncludes() != null && getIncludes().isEmpty() == false)
+         buffer.append(", includes=-").append(getIncludes());
+      if(getExcludes() != null && getExcludes().isEmpty() == false)
+         buffer.append(", excludes=").append(getExcludes());
+   }
+   
 }
 

Modified: projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/StructureMetaDataUnitTestCase.java
===================================================================
--- projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/StructureMetaDataUnitTestCase.java	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/StructureMetaDataUnitTestCase.java	2009-08-20 11:43:14 UTC (rev 92606)
@@ -35,7 +35,6 @@
 import org.jboss.profileservice.repository.virtual.VirtualRepositoryMetaData;
 import org.jboss.profileservice.spi.ProfileDeployment;
 import org.jboss.profileservice.spi.virtual.VirtualDeployment;
-import org.jboss.virtual.plugins.context.jar.JarUtils;
 
 /**
  * Test StructureMetaData creation.
@@ -53,9 +52,6 @@
    {
       // Set the jboss.deployment.resources
       System.setProperty("jboss.deployment.resources", getClass().getResource(".").toExternalForm());
-    
-      // Ignore VFS archive stuff
-      JarUtils.clearSuffixes();
       
       // Get the repository meta data
       VirtualRepositoryMetaData repository = unmarshal("repository.xml", VirtualRepositoryMetaData.class);

Modified: projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/VirtualDeploymentAssemblyUnitTestCase.java
===================================================================
--- projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/VirtualDeploymentAssemblyUnitTestCase.java	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/VirtualDeploymentAssemblyUnitTestCase.java	2009-08-20 11:43:14 UTC (rev 92606)
@@ -32,7 +32,6 @@
 import org.jboss.profileservice.virtual.deployment.AbstractVirtualDeploymentRequirement;
 import org.jboss.virtual.AssembledDirectory;
 import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.plugins.context.jar.JarUtils;
 
 /**
  * Test virtual deployment assembly.
@@ -47,9 +46,6 @@
    {
       // Set the jboss.deployment.resources
       System.setProperty("jboss.deployment.resources", getClass().getResource(".").toExternalForm());
-    
-      // Ignore VFS archive stuff
-      JarUtils.clearSuffixes();
       
       // Get the repository meta data
       VirtualRepositoryMetaData repository = unmarshal("repository.xml", VirtualRepositoryMetaData.class);
@@ -71,16 +67,16 @@
       // Check meta data includes/excludes
       assertIncluded(deployer.getRoot(), new String[] {
          "test.xml", "test1.xml", "include.xml"});
-      asssertExcluded(deployer.getRoot(), new String[] {"exclude-beans.xml"});
+      asssertExcluded(deployer.getRoot(), new String[] {"exclude-beans.xml"});     
       // Check class path includes/excludes
       assertIncluded(deployer.getRoot(), new String[] {
          "deployer.jar", "fake.jar", "fake2.jar"});
       asssertExcluded(deployer.getRoot(), new String[] {"bad.jar"});
       // Check requirement
       resolves(simpleVD, deployerVD.getRequires().get(0));
-      
       log.debug(deployer.getRoot());
       
+      
       // Test deployment
       AbstractVirtualDeployment deploymentVD = (AbstractVirtualDeployment) deployments.get("test-deployment");
       ProfileDeployment deployment = factory.createDeployment(deploymentVD);
@@ -96,6 +92,9 @@
       log.debug(deployment.getRoot());
       log.debug(subDeploymentRoot);
       
+      log.debug(deployer.getRoot().getChildrenRecursively());
+      log.debug(deployment.getRoot().getChildrenRecursively());
+      
    }
  
    protected void resolves(AbstractVirtualDeployment capability,

Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/child/test.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/child/test.jar	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/child/test.jar	2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file

Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/lib/deployment.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/lib/deployment.jar	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/lib/deployment.jar	2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file

Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/deployer.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/deployer.jar	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/deployer.jar	2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file

Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake.jar	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake.jar	2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file

Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake2.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake2.jar	2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake2.jar	2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file




More information about the jboss-cvs-commits mailing list