From: <hib...@li...> - 2006-08-11 04:21:37
|
Author: epbernard Date: 2006-08-11 00:21:33 -0400 (Fri, 11 Aug 2006) New Revision: 10242 Modified: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/ExplodedJarVisitor.java trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/FileZippedJarVisitor.java trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/packaging/JarVisitorTest.java Log: Fix bug relating to character escaping in urls and proper usage of URI methods Modified: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/ExplodedJarVisitor.java =================================================================== --- trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/ExplodedJarVisitor.java 2006-08-10 14:26:08 UTC (rev 10241) +++ trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/ExplodedJarVisitor.java 2006-08-11 04:21:33 UTC (rev 10242) @@ -28,7 +28,7 @@ protected void doProcessElements() throws IOException { File jarFile; try { - jarFile = new File( jarUrl.toURI().getPath() ); + jarFile = new File( jarUrl.toURI().getSchemeSpecificPart() ); } catch (URISyntaxException e) { log.warn( "Malformed url: " + jarUrl, e ); Modified: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/FileZippedJarVisitor.java =================================================================== --- trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/FileZippedJarVisitor.java 2006-08-10 14:26:08 UTC (rev 10241) +++ trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/packaging/FileZippedJarVisitor.java 2006-08-11 04:21:33 UTC (rev 10242) @@ -20,18 +20,18 @@ public class FileZippedJarVisitor extends JarVisitor { private static Log log = LogFactory.getLog( FileZippedJarVisitor.class ); - protected FileZippedJarVisitor(String fileName, Filter[] filters) { + public FileZippedJarVisitor(String fileName, Filter[] filters) { super( fileName, filters ); } - protected FileZippedJarVisitor(URL url, Filter[] filters) { + public FileZippedJarVisitor(URL url, Filter[] filters) { super( url, filters ); } protected void doProcessElements() throws IOException { JarFile jarFile; try { - jarFile = new JarFile( jarUrl.toURI().getPath() ); + jarFile = new JarFile( jarUrl.toURI().getSchemeSpecificPart() ); } catch (IOException ze) { log.warn( "Unable to find file (ignored): " + jarUrl, ze ); Modified: trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/packaging/JarVisitorTest.java =================================================================== --- trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/packaging/JarVisitorTest.java 2006-08-10 14:26:08 UTC (rev 10241) +++ trunk/HibernateExt/ejb/src/test/org/hibernate/ejb/test/packaging/JarVisitorTest.java 2006-08-11 04:21:33 UTC (rev 10242) @@ -14,6 +14,7 @@ import org.hibernate.ejb.packaging.ExplodedJarVisitor; import org.hibernate.ejb.packaging.InputStreamZippedJarVisitor; import org.hibernate.ejb.packaging.JarVisitor; +import org.hibernate.ejb.packaging.FileZippedJarVisitor; import org.hibernate.ejb.test.pack.defaultpar.ApplicationServer; import org.hibernate.ejb.test.pack.explodedpar.Carpet; @@ -43,7 +44,7 @@ assertEquals( 0, visitor.getMatchingEntries()[2].size() ); } - public void testZippedJar() throws Exception { + public void testInputStreamZippedJar() throws Exception { String jarFileName = "file:./build/testresources/defaultpar.par"; //JarVisitor jarVisitor = new ZippedJarVisitor( jarFileName, true, true ); JarVisitor.Filter[] filters = getFilters(); @@ -65,6 +66,28 @@ // assertTrue( classes.contains( org.hibernate.ejb.test.pack.defaultpar.Version.class.getName() ) ); } + public void testZippedJar() throws Exception { + String jarFileName = "file:./build/testresources/defaultpar.par"; + //JarVisitor jarVisitor = new ZippedJarVisitor( jarFileName, true, true ); + JarVisitor.Filter[] filters = getFilters(); + JarVisitor jarVisitor = new FileZippedJarVisitor( new URL( jarFileName ), filters ); + assertEquals( "defaultpar", jarVisitor.getUnqualifiedJarName() ); + Set entries = jarVisitor.getMatchingEntries()[1]; + assertEquals( 3, entries.size() ); + JarVisitor.Entry entry = new JarVisitor.Entry( ApplicationServer.class.getName(), null ); + assertTrue( entries.contains( entry ) ); + entry = new JarVisitor.Entry( org.hibernate.ejb.test.pack.defaultpar.Version.class.getName(), null ); + assertTrue( entries.contains( entry ) ); + assertNull( ( (JarVisitor.Entry) entries.iterator().next() ).getInputStream() ); + assertEquals( 2, jarVisitor.getMatchingEntries()[2].size() ); + +// Set<String> classes = jarVisitor.getClassNames(); +// assertEquals( 3, classes.size() ); +// assertTrue( classes.contains( ApplicationServer.class.getName() ) ); +// assertTrue( classes.contains( Mouse.class.getName() ) ); +// assertTrue( classes.contains( org.hibernate.ejb.test.pack.defaultpar.Version.class.getName() ) ); + } + public void testExplodedJar() throws Exception { String jarFileName = "./build/testresources/explodedpar.par"; //JarVisitor jarVisitor = new ExplodedJarVisitor( jarFileName, true, true ); |