Author: markt
Date: Tue Nov 5 12:07:03 2013
New Revision: 1538960
URL: http://svn.apache.org/r1538960
Log:
Fix failing unit tests after refactoring of Jasper to use the JAR abstraction
from the JAR scanner.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java
tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java?rev=1538960&r1=1538959&r2=1538960&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java Tue Nov 5
12:07:03 2013
@@ -33,10 +33,12 @@ public class JarFactory {
String jarUrl = url.toString();
if (jarUrl.startsWith("jar:file:")) {
if (jarUrl.endsWith("!/")) {
- return new JarFileUrlJar(url);
+ return new JarFileUrlJar(url, true);
} else {
return new JarFileUrlNestedJar(url);
}
+ } else if (jarUrl.startsWith("file:")) {
+ return new JarFileUrlJar(url, false);
} else {
return new UrlJar(url);
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java?rev=1538960&r1=1538959&r2=1538960&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java Tue Nov 5
12:07:03 2013
@@ -16,9 +16,11 @@
*/
package org.apache.tomcat.util.scan;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.JarURLConnection;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.Enumeration;
import java.util.jar.JarEntry;
@@ -27,7 +29,8 @@ import java.util.zip.ZipEntry;
/**
* Implementation of {@link Jar} that is optimised for file based JAR URLs that
- * refer directly to a JAR file (e.g URLs of the form jar:file: ... .jar!/) .
+ * refer directly to a JAR file (e.g URLs of the form jar:file: ... .jar!/ or
+ * file:... .jar) .
*/
public class JarFileUrlJar implements Jar {
@@ -36,11 +39,24 @@ public class JarFileUrlJar implements Ja
private Enumeration<JarEntry> entries;
private JarEntry entry = null;
- public JarFileUrlJar(URL url) throws IOException {
- JarURLConnection jarConn = (JarURLConnection) url.openConnection();
- jarConn.setUseCaches(false);
- jarFile = jarConn.getJarFile();
- jarFileURL = jarConn.getJarFileURL();
+ public JarFileUrlJar(URL url, boolean startsWithJar) throws IOException {
+ if (startsWithJar) {
+ // jar:file:...
+ JarURLConnection jarConn = (JarURLConnection) url.openConnection();
+ jarConn.setUseCaches(false);
+ jarFile = jarConn.getJarFile();
+ jarFileURL = jarConn.getJarFileURL();
+ } else {
+ // file:...
+ File f;
+ try {
+ f = new File(url.toURI());
+ } catch (URISyntaxException e) {
+ throw new IOException(e);
+ }
+ jarFile = new JarFile(f);
+ jarFileURL = url;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]