[jboss-cvs] JBossAS SVN: r58631 - in projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src: main/org/jboss/virtual main/org/jboss/virtual/plugins/context main/org/jboss/virtual/plugins/context/file resources/tests/vfs/test resources/tests/vfs/test/path with spaces resources/tests/vfs/test/path with spaces/unpacked-tst.jar resources/tests/vfs/test/path with spaces/unpacked-tst.jar/META-INF tests/org/jboss/test/virtual/test

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Nov 19 02:49:59 EST 2006


Author: scott.stark at jboss.org
Date: 2006-11-19 02:49:52 -0500 (Sun, 19 Nov 2006)
New Revision: 58631

Added:
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/tst.jar
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/unpacked-tst.jar/
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/unpacked-tst.jar/META-INF/
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/unpacked-tst.jar/META-INF/MANIFEST.MF
Modified:
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/VFSUtils.java
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/plugins/context/AbstractURLHandler.java
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/plugins/context/file/FileSystemContext.java
   projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/tests/org/jboss/test/virtual/test/FileVFSUnitTestCase.java
Log:
Deal with URLs with spaces that are invalid URIs

Modified: projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/VFSUtils.java
===================================================================
--- projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/VFSUtils.java	2006-11-19 07:29:51 UTC (rev 58630)
+++ projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/VFSUtils.java	2006-11-19 07:49:52 UTC (rev 58631)
@@ -340,4 +340,20 @@
          info.add(link);
       }
    }
+
+   /**
+    * Deal with urls that may include spaces.
+    * 
+    * @param url
+    * @return uri
+    */
+   public static URI toURI(URL url)
+      throws URISyntaxException
+   {
+      String urispec = url.toExternalForm();
+      // Escape any spaces
+      urispec = urispec.replaceAll(" ", "%20");
+      URI uri = new URI(urispec);
+      return uri;
+   }
 }

Modified: projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/plugins/context/AbstractURLHandler.java
===================================================================
--- projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/plugins/context/AbstractURLHandler.java	2006-11-19 07:29:51 UTC (rev 58630)
+++ projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/plugins/context/AbstractURLHandler.java	2006-11-19 07:49:52 UTC (rev 58631)
@@ -29,6 +29,7 @@
 import java.net.URL;
 import java.net.URLConnection;
 
+import org.jboss.virtual.VFSUtils;
 import org.jboss.virtual.spi.VFSContext;
 import org.jboss.virtual.spi.VirtualFileHandler;
 
@@ -106,6 +107,6 @@
 
    public URI toURI() throws URISyntaxException
    {
-      return url.toURI();
+      return VFSUtils.toURI(url);
    }
 }

Modified: projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/plugins/context/file/FileSystemContext.java
===================================================================
--- projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/plugins/context/file/FileSystemContext.java	2006-11-19 07:29:51 UTC (rev 58630)
+++ projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/main/org/jboss/virtual/plugins/context/file/FileSystemContext.java	2006-11-19 07:49:52 UTC (rev 58631)
@@ -110,7 +110,7 @@
     */
    public FileSystemContext(URL rootURL) throws IOException, URISyntaxException
    {
-      this(rootURL.toURI());
+      this(VFSUtils.toURI(rootURL));
    }
 
    /**

Added: projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/tst.jar
===================================================================
(Binary files differ)


Property changes on: projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/tst.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/unpacked-tst.jar/META-INF/MANIFEST.MF
===================================================================
--- projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/unpacked-tst.jar/META-INF/MANIFEST.MF	2006-11-19 07:29:51 UTC (rev 58630)
+++ projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/resources/tests/vfs/test/path with spaces/unpacked-tst.jar/META-INF/MANIFEST.MF	2006-11-19 07:49:52 UTC (rev 58631)
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Ant-Version: Apache Ant 1.6.5
+Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)
+Specification-Title: tst.jar
+Specification-Version: 1.0.0.GA
+Specification-Vendor: JBoss Inc.
+Implementation-Title: tst.jar
+Implementation-URL: www.jboss.org
+Implementation-Version: 1.0.0.GA-jboss
+Implementation-Vendor: JBoss Inc.
+

Modified: projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/tests/org/jboss/test/virtual/test/FileVFSUnitTestCase.java
===================================================================
--- projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/tests/org/jboss/test/virtual/test/FileVFSUnitTestCase.java	2006-11-19 07:29:51 UTC (rev 58630)
+++ projects/microcontainer/tags/JBossMC_2_0_0_Beta/container/src/tests/org/jboss/test/virtual/test/FileVFSUnitTestCase.java	2006-11-19 07:49:52 UTC (rev 58631)
@@ -930,6 +930,40 @@
    }
 
    /**
+    * Validate accessing an packed jar vf and its uri when the vfs path
+    * contains spaces
+    * @throws Exception
+    */
+   public void testJarWithSpacesInPath()
+      throws Exception
+   {
+      URL rootURL = getResource("/vfs/test");
+      VFS vfs = VFS.getVFS(rootURL);
+      VirtualFile tstjar = vfs.findChild("path with spaces/tst.jar");
+      assertNotNull("tstjar != null", tstjar);
+      URI uri = tstjar.toURI();
+      URI expectedURI = new URI("jar:"+rootURL.toString()+"/path%20with%20spaces/tst.jar!/");
+      assertEquals(uri, expectedURI);
+   }
+
+   /**
+    * Validate accessing an unpacked jar vf and its uri when the vfs path
+    * contains spaces
+    * @throws Exception
+    */
+   public void testUnpackedJarWithSpacesInPath()
+      throws Exception
+   {
+      URL rootURL = getResource("/vfs/test");
+      VFS vfs = VFS.getVFS(rootURL);
+      VirtualFile tstjar = vfs.findChild("path with spaces/unpacked-tst.jar");
+      assertNotNull("tstjar != null", tstjar);
+      URI uri = tstjar.toURI();
+      URI expectedURI = new URI(rootURL.toString()+"/path%20with%20spaces/unpacked-tst.jar/");
+      assertEquals(uri, expectedURI);
+   }
+
+   /**
     * Tests that we can find the META-INF/some-data.xml in an unpacked deployment
     */
    public void testGetMetaDataUnpackedJar() throws Exception




More information about the jboss-cvs-commits mailing list