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