[jboss-cvs] JBossAS SVN: r81091 - projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Nov 15 07:44:29 EST 2008


Author: mstruk
Date: 2008-11-15 07:44:28 -0500 (Sat, 15 Nov 2008)
New Revision: 81091

Modified:
   projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java
   projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryHandler.java
Log:
JBVFS-77 Fixed the code so that all the tests pass now

Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java	2008-11-15 08:37:40 UTC (rev 81090)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java	2008-11-15 12:44:28 UTC (rev 81091)
@@ -1115,7 +1115,8 @@
 
 
    /**
-    * Make sure url protocol is <em>vfszip</em>
+    * Make sure url protocol is <em>vfszip</em>.
+    * Also remove any '!' from URL
     *
     * @param rootURL the root url
     * @return fixed url
@@ -1123,14 +1124,22 @@
     */
    private static URL fixUrl(URL rootURL) throws MalformedURLException
    {
+      String urlStr = rootURL.toExternalForm();
+      int pos = urlStr.indexOf("!");
+      if (pos != -1)
+      {
+         String tmp = urlStr.substring(0, pos);
+         if (pos < urlStr.length()-1)
+            tmp += urlStr.substring(pos+1);
+         urlStr = tmp;
+      }
       if ("vfszip".equals(rootURL.getProtocol()) == false)
       {
-         String url = rootURL.toString();
-         int pos = url.indexOf(":/");
+         pos = urlStr.indexOf(":/");
          if (pos != -1)
-            url = url.substring(pos);
+            urlStr = urlStr.substring(pos);
 
-         return new URL("vfszip" + url);
+         return new URL("vfszip" + urlStr);
       }
       return rootURL;
    }

Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryHandler.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryHandler.java	2008-11-15 08:37:40 UTC (rev 81090)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryHandler.java	2008-11-15 12:44:28 UTC (rev 81091)
@@ -205,8 +205,23 @@
       VirtualFileHandler peer = getLocalVFSContext().getRootPeer();
 
       if (peer == null)
-         return getZipEntryContext().getRealURL();
+      {
+         URL ctxURL = getZipEntryContext().getRealURL();
+         String ctxURLStr = ctxURL.toExternalForm();
+         if (ctxURLStr.endsWith("!/"))
+         {
+            String lpath = getLocalPathName();
+            if (lpath.startsWith("/"))
+               lpath = lpath.substring(1);
 
+            if (lpath.length() == 0)
+               return ctxURL;
+            else
+               return new URL(ctxURLStr + lpath);
+         }
+         return ctxURL;
+      }
+
       if (peer instanceof AbstractVirtualFileHandler
          && ((AbstractVirtualFileHandler)peer).getLocalVFSContext() instanceof FileSystemContext)
       {




More information about the jboss-cvs-commits mailing list