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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to