[jboss-cvs] JBossAS SVN: r86757 - 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
Fri Apr 3 13:27:05 EDT 2009


Author: wolfc
Date: 2009-04-03 13:27:05 -0400 (Fri, 03 Apr 2009)
New Revision: 86757

Modified:
   projects/vfs/trunk/src/main/java/org/jboss/virtual/VFSUtils.java
   projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/VFSUtilTestCase.java
Log:
JBVFS-101: a hack to make VFSUtils.stripProtocol work

Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/VFSUtils.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/VFSUtils.java	2009-04-03 16:57:50 UTC (rev 86756)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/VFSUtils.java	2009-04-03 17:27:05 UTC (rev 86757)
@@ -49,9 +49,9 @@
 import org.jboss.virtual.plugins.copy.UnjarCopyMechanism;
 import org.jboss.virtual.plugins.copy.UnpackCopyMechanism;
 import org.jboss.virtual.spi.LinkInfo;
+import org.jboss.virtual.spi.Options;
 import org.jboss.virtual.spi.VFSContext;
 import org.jboss.virtual.spi.VirtualFileHandler;
-import org.jboss.virtual.spi.Options;
 import org.jboss.virtual.spi.cache.VFSCacheFactory;
 
 /**
@@ -1087,6 +1087,12 @@
    public static String stripProtocol(URI uri)
    {
       String path = uri.getPath();
+      if(path == null)
+      {
+         String s = uri.toString();
+         if(s.startsWith("jar:file:"))
+            path = s.substring("jar:file:".length()).replaceFirst("!/", "/") + "/";
+      }
       if (path != null && path.length() > 0)
       {
          StringBuilder sb = new StringBuilder(path);

Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/VFSUtilTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/VFSUtilTestCase.java	2009-04-03 16:57:50 UTC (rev 86756)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/VFSUtilTestCase.java	2009-04-03 17:27:05 UTC (rev 86757)
@@ -27,6 +27,7 @@
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
+
 import org.jboss.virtual.VFS;
 import org.jboss.virtual.VFSUtils;
 import org.jboss.virtual.VirtualFile;
@@ -117,4 +118,19 @@
       // TODO - JBVFS-77 --> do proper tests!
 	   assertTrue(realURL.toExternalForm().startsWith("file:"));
    }
+   
+   public void testStripProtocol() throws Exception
+   {
+      URL url = getResource("/vfs/test/jar1.jar");
+      
+      VirtualFile manifest = VFS.getRoot(url).getChild("META-INF/MANIFEST.MF");
+      String expected = VFSUtils.stripProtocol(manifest.toURI());
+      
+      URL manifestURL = new URL("jar:" + url.toExternalForm() + "!/META-INF/MANIFEST.MF");
+      System.out.println(manifestURL);
+      System.out.println(manifestURL.toURI());
+      String actual = VFSUtils.stripProtocol(manifestURL.toURI());
+      
+      assertEquals("path from jar:file: url is not usable", expected, actual);
+   }
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list