[jboss-cvs] JBossAS SVN: r83779 - in projects/vfs/trunk/src: test/java/org/jboss/test/virtual/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Feb 2 09:32:30 EST 2009


Author: alesj
Date: 2009-02-02 09:32:30 -0500 (Mon, 02 Feb 2009)
New Revision: 83779

Modified:
   projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java
   projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/TempContext.java
   projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/FileCleanupUnitTestCase.java
Log:
Add new temp lookup/cleanup tests.

Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java	2009-02-02 14:22:39 UTC (rev 83778)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java	2009-02-02 14:32:30 UTC (rev 83779)
@@ -34,11 +34,11 @@
 
 import org.jboss.logging.Logger;
 import org.jboss.util.id.GUID;
+import org.jboss.virtual.VFSUtils;
 import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.VFSUtils;
 import org.jboss.virtual.plugins.context.DelegatingHandler;
+import org.jboss.virtual.plugins.context.file.FileSystemContext;
 import org.jboss.virtual.plugins.context.temp.BasicTempInfo;
-import org.jboss.virtual.plugins.context.file.FileSystemContext;
 import org.jboss.virtual.spi.ExceptionHandler;
 import org.jboss.virtual.spi.VFSContext;
 import org.jboss.virtual.spi.VirtualFileHandler;

Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/TempContext.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/TempContext.java	2009-02-02 14:22:39 UTC (rev 83778)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/TempContext.java	2009-02-02 14:32:30 UTC (rev 83779)
@@ -27,6 +27,7 @@
 
 import org.jboss.virtual.plugins.context.file.FileSystemContext;
 import org.jboss.virtual.spi.VFSContext;
+import org.jboss.virtual.spi.TempInfo;
 
 /**
  * Temp context;
@@ -46,9 +47,21 @@
       super(file);
       this.oldContext = oldContext;
       this.relativePath = relativePath;
+      if (relativePath.endsWith("/") == false)
+         this.relativePath += "/";
    }
 
    @Override
+   public TempInfo getTempInfo(String path)
+   {
+      TempInfo tempInfo = super.getTempInfo(path);
+      if (tempInfo != null)
+         return tempInfo;
+
+      return oldContext.getTempInfo(relativePath + path);
+   }
+
+   @Override
    public void cleanupTempInfo(String path)
    {
       // this path should be ""?

Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/FileCleanupUnitTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/FileCleanupUnitTestCase.java	2009-02-02 14:22:39 UTC (rev 83778)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/FileCleanupUnitTestCase.java	2009-02-02 14:32:30 UTC (rev 83779)
@@ -23,6 +23,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.FilenameFilter;
 import java.lang.reflect.Field;
 import java.net.URI;
 import java.net.URL;
@@ -125,18 +126,35 @@
    {
       File dir = new File(tempDir, "vfs-nested.tmp");
       File[] files = dir.listFiles();
-      assertNotNull(files);
-      assertEquals(size, files.length);
+      if (dir.exists())
+      {
+         assertEquals(size, files.length);
+      }
+      else if (size == 0)
+      {
+         assertNull(files);
+      }
+      else
+      {
+         fail("Illegal dir: " + dir);
+      }
    }
 
    protected void assertCopyMechanismFiles(int size) throws Exception
    {
-      File[] files = tempDir.listFiles();
+      File[] files = tempDir.listFiles(new FilenameFilter()
+      {
+         public boolean accept(File dir, String name)
+         {
+            return name.contains("vfs-nested.tmp") == false;
+         }
+      });
       assertNotNull(files);
       int counter = 0;
       for (File dir : files)
       {
-         counter += dir.listFiles().length;
+         File[] realFiles = dir.listFiles();
+         counter += realFiles.length;
       }
       assertEquals(size, counter);
    }
@@ -195,4 +213,51 @@
       root.cleanup();
       assertNoRegistryEntry(root.toURI());
    }
+
+   public void test3Levels() throws Exception
+   {
+      URL url = getResource("/vfs/test");
+      VFS root = VFS.getVFS(url);
+
+      VirtualFile ear = root.getChild("level1.zip");
+      VirtualFile earCopy = VFSUtils.temp(ear);
+
+      VirtualFile l3 = ear.getChild("level2.zip/level3.zip/test3.txt");
+      assertNotNull(l3);
+      assertTempFiles(2);
+
+      VirtualFile l3copy = earCopy.getChild("level2.zip/level3.zip/test3.txt");
+      assertNotNull(l3copy);
+      assertCopyMechanismFiles(1);
+
+      earCopy.cleanup();
+
+      assertTempFiles(0);
+      assertCopyMechanismFiles(0);
+   }
+
+   public void testDirectURLUsage() throws Exception
+   {
+      URL url = getResource("/vfs/test");
+      VFS root = VFS.getVFS(url);
+
+      VirtualFile ear = root.getChild("level1.zip");
+      assertTempFiles(0);
+      VirtualFile earCopy = VFSUtils.temp(ear);
+
+      VirtualFile l3 = earCopy.getChild("level2.zip/level3.zip/test3.txt");
+      assertNotNull(l3);
+      assertCopyMechanismFiles(1);
+
+      url = new URL(root.getRoot().toURL().toExternalForm() + "level1.zip/level2.zip/level3.zip/test3.txt");
+      VirtualFile l3url = VFS.getRoot(url);
+
+      assertEquals(l3, l3url);
+      assertTempFiles(2);
+      assertCopyMechanismFiles(1);
+
+      earCopy.cleanup();
+
+      assertCopyMechanismFiles(0);
+   }
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list