[jboss-cvs] JBossAS SVN: r93591 - in projects/vfs/branches/Branch_2_1/src: main/java/org/jboss/virtual/plugins/context/vfs and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Sep 16 04:55:52 EDT 2009


Author: alesj
Date: 2009-09-16 04:55:51 -0400 (Wed, 16 Sep 2009)
New Revision: 93591

Modified:
   projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/AssembledDirectory.java
   projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/vfs/AssembledDirectoryHandler.java
   projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/AssembledContextTestCase.java
Log:
[JBVFS-116]; remove, clear API in AssembledDirectory.

Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/AssembledDirectory.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/AssembledDirectory.java	2009-09-16 08:16:59 UTC (rev 93590)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/AssembledDirectory.java	2009-09-16 08:55:51 UTC (rev 93591)
@@ -34,6 +34,7 @@
 import org.jboss.virtual.plugins.context.vfs.ByteArrayHandler;
 import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
 import org.jboss.virtual.plugins.vfs.helpers.SuffixesExcludeFilter;
+import org.jboss.virtual.plugins.vfs.helpers.PathTokenizer;
 
 /**
  * Extension of VirtualFile that represents a virtual directory that can be composed of arbitrary files and resources
@@ -178,16 +179,16 @@
       if (path == null)
          throw new IllegalArgumentException("Null path");
 
-      String[] pkgs = path.split("/");
+      List<String> pkgs = PathTokenizer.getTokens(path);
       AssembledDirectoryHandler dir = directory;
-      for (int i = 0; i < pkgs.length - 1; i++)
+      for (int i = 0; i < pkgs.size() - 1; i++)
       {
-         AssembledDirectoryHandler next = (AssembledDirectoryHandler) dir.findChild(pkgs[i]);
+         AssembledDirectoryHandler next = (AssembledDirectoryHandler) dir.findChild(pkgs.get(i));
          if (next == null)
          {
             try
             {
-               next = new AssembledDirectoryHandler(dir.getVFSContext(), dir, pkgs[i]);
+               next = new AssembledDirectoryHandler(dir.getVFSContext(), dir, pkgs.get(i));
             }
             catch (IOException e)
             {
@@ -389,11 +390,7 @@
             return false;
          }
       }
-      if (p < paths.length)
-         return false;
-      if (x < expressions.length)
-         return false;
-      return true;
+      return p >= paths.length && x >= expressions.length;
    }
 
    /**
@@ -591,4 +588,22 @@
          throw new RuntimeException(e);
       }
    }
+
+   /**
+    * Remove path.
+    *
+    * @param path the path to remove
+    */
+   public void remove(String path)
+   {
+      directory.removeChild(path);
+   }
+
+   /**
+    * Clear directory.
+    */
+   public void clear()
+   {
+      directory.cleanup();   
+   }
 }

Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/vfs/AssembledDirectoryHandler.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/vfs/AssembledDirectoryHandler.java	2009-09-16 08:16:59 UTC (rev 93590)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/vfs/AssembledDirectoryHandler.java	2009-09-16 08:55:51 UTC (rev 93591)
@@ -103,6 +103,12 @@
       return false;
    }
 
+   @Override
+   public void cleanup()
+   {
+      children.clear();
+   }
+
    public VirtualFileHandler findChild(String name)
    {
       return children.get(name);

Modified: projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/AssembledContextTestCase.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/AssembledContextTestCase.java	2009-09-16 08:16:59 UTC (rev 93590)
+++ projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/AssembledContextTestCase.java	2009-09-16 08:55:51 UTC (rev 93591)
@@ -273,7 +273,24 @@
    {
       AssembledDirectory directory = AssembledContextFactory.getInstance().create("foo.jar");
       directory.mkdir("META-INF");
-      assertNotNull(directory.findChild("META-INF"));
+      assertNotNull(directory.getChild("META-INF"));
+   }
 
+   public void testRemoveAndClear() throws Exception
+   {
+      AssembledDirectory directory = AssembledContextFactory.getInstance().create("foo.jar");
+      AssembledDirectory metainf = directory.mkdir("META-INF");
+      assertNotNull(directory.getChild("META-INF"));
+
+      VirtualFile resource = metainf.addBytes(new byte[]{1, 2, 3}, "bytes.tmp");
+      assertEquals(resource, metainf.getChild("bytes.tmp"));
+      metainf.remove("bytes.tmp");
+      assertNull(metainf.getChild("bytes.tmp"));
+
+      metainf.addBytes(new byte[]{1, 2, 3}, "bytes1.tmp");
+      metainf.addBytes(new byte[]{1, 2, 3}, "bytes2.tmp");
+      metainf.clear();
+      assertNull(metainf.getChild("bytes1.tmp"));
+      assertNull(metainf.getChild("bytes2.tmp"));
    }
 }




More information about the jboss-cvs-commits mailing list