Author: markt
Date: Tue Nov 20 14:59:07 2018
New Revision: 1847015

URL: http://svn.apache.org/viewvc?rev=1847015&view=rev
Log:
Add an exists(String) method to Tomcat's JAR interface

Modified:
    tomcat/trunk/java/org/apache/tomcat/Jar.java
    tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
    tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java

Modified: tomcat/trunk/java/org/apache/tomcat/Jar.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/Jar.java?rev=1847015&r1=1847014&r2=1847015&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/Jar.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/Jar.java Tue Nov 20 14:59:07 2018
@@ -65,6 +65,18 @@ public interface Jar extends AutoCloseab
     long getLastModified(String name) throws IOException;
 
     /**
+     * Determine if the given resource in present in the JAR.
+     *
+     * @param name  Entry to look for
+     *
+     * @return {@code true} if the entry is present in the JAR, otherwise
+     *         {@code false}
+     *
+     * @throws IOException if an I/O error occurs while processing the JAR file
+     */
+    boolean exists(String name) throws IOException;
+
+    /**
      * Close any resources associated with this JAR.
      */
     @Override

Modified: 
tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java?rev=1847015&r1=1847014&r2=1847015&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java 
Tue Nov 20 14:59:07 2018
@@ -130,6 +130,13 @@ public abstract class AbstractInputStrea
 
 
     @Override
+    public boolean exists(String name) throws IOException {
+        gotoEntry(name);
+        return entry != null;
+    }
+
+
+    @Override
     public String getURL(String entry) {
         StringBuilder result = new StringBuilder("jar:");
         result.append(getJarFileURL().toExternalForm());

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=1847015&r1=1847014&r2=1847015&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 20 
14:59:07 2018
@@ -98,6 +98,13 @@ public class JarFileUrlJar implements Ja
     }
 
     @Override
+    public boolean exists(String name) throws IOException {
+        // JarFile#getEntry() is multi-release aware
+        ZipEntry entry = jarFile.getEntry(name);
+        return entry != null;
+    }
+
+    @Override
     public String getURL(String entry) {
         StringBuilder result = new StringBuilder("jar:");
         result.append(getJarFileURL().toExternalForm());



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to