[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