You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2016/05/04 12:47:43 UTC
svn commit: r1742266 - in /tomcat/tc8.5.x/trunk: ./
java/org/apache/catalina/startup/ java/org/apache/jasper/
java/org/apache/jasper/compiler/ java/org/apache/jasper/servlet/
java/org/apache/jasper/xmlparser/ java/org/apache/tomcat/
java/org/apache/tom...
Author: markt
Date: Wed May 4 12:47:43 2016
New Revision: 1742266
URL: http://svn.apache.org/viewvc?rev=1742266&view=rev
Log:
Refactor JarScanning
- Move Jar interface
- Pass Jar rather than URL
- Reduce code duplication
- Clean-up
Added:
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/Jar.java
- copied, changed from r1742248, tomcat/trunk/java/org/apache/tomcat/Jar.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
- copied, changed from r1742246, tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java
Removed:
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/Jar.java
Modified:
tomcat/tc8.5.x/trunk/ (props changed)
tomcat/tc8.5.x/trunk/java/org/apache/catalina/startup/ContextConfig.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/JspCompilationContext.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Compiler.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JavacErrorDetail.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspReader.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspUtil.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Parser.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/ParserController.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TldCache.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/JspServletWrapper.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/TldScanner.java
tomcat/tc8.5.x/trunk/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/JarScannerCallback.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFactory.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlNestedJar.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java
tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/UrlJar.java
tomcat/tc8.5.x/trunk/test/org/apache/jasper/servlet/TestTldScanner.java
tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/bcel/TesterPerformance.java
tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/scan/TestStandardJarScanner.java
Propchange: tomcat/tc8.5.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 4 12:47:43 2016
@@ -1 +1 @@
-/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741501,1741677
,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166
+/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741501,1741677
,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166,1742181,1742184,1742187,1742246,1742248-1742250,1742263-1742264
Modified: tomcat/tc8.5.x/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/catalina/startup/ContextConfig.java Wed May 4 12:47:43 2016
@@ -67,6 +67,7 @@ import org.apache.catalina.util.ContextN
import org.apache.catalina.util.Introspection;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.JarScanType;
import org.apache.tomcat.JarScanner;
import org.apache.tomcat.util.ExceptionUtils;
@@ -103,7 +104,6 @@ import org.apache.tomcat.util.descriptor
import org.apache.tomcat.util.digester.Digester;
import org.apache.tomcat.util.digester.RuleSet;
import org.apache.tomcat.util.res.StringManager;
-import org.apache.tomcat.util.scan.Jar;
import org.apache.tomcat.util.scan.JarFactory;
import org.xml.sax.InputSource;
import org.xml.sax.SAXParseException;
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/JspCompilationContext.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/JspCompilationContext.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/JspCompilationContext.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/JspCompilationContext.java Wed May 4 12:47:43 2016
@@ -39,8 +39,8 @@ import org.apache.jasper.servlet.JasperL
import org.apache.jasper.servlet.JspServletWrapper;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
-import org.apache.tomcat.util.scan.Jar;
/**
* A place holder for various things that are used through out the JSP
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Compiler.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Compiler.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Compiler.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Compiler.java Wed May 4 12:47:43 2016
@@ -36,7 +36,7 @@ import org.apache.jasper.Options;
import org.apache.jasper.servlet.JspServletWrapper;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
-import org.apache.tomcat.util.scan.Jar;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.scan.JarFactory;
/**
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JavacErrorDetail.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JavacErrorDetail.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JavacErrorDetail.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JavacErrorDetail.java Wed May 4 12:47:43 2016
@@ -26,7 +26,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.jasper.JspCompilationContext;
-import org.apache.tomcat.util.scan.Jar;
+import org.apache.tomcat.Jar;
/**
* Class providing details about a javac compilation error.
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java Wed May 4 12:47:43 2016
@@ -32,10 +32,10 @@ import javax.xml.parsers.SAXParserFactor
import org.apache.jasper.Constants;
import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.descriptor.DigesterFactory;
import org.apache.tomcat.util.descriptor.LocalResolver;
import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
-import org.apache.tomcat.util.scan.Jar;
import org.apache.tomcat.util.security.PrivilegedGetTccl;
import org.apache.tomcat.util.security.PrivilegedSetTccl;
import org.xml.sax.Attributes;
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspReader.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspReader.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspReader.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspReader.java Wed May 4 12:47:43 2016
@@ -26,7 +26,7 @@ import org.apache.jasper.JspCompilationC
import org.apache.jasper.util.ExceptionUtils;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
-import org.apache.tomcat.util.scan.Jar;
+import org.apache.tomcat.Jar;
/**
* JspReader is an input buffer for the JSP parser. It should allow
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspUtil.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspUtil.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspUtil.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/JspUtil.java Wed May 4 12:47:43 2016
@@ -26,7 +26,7 @@ import java.util.Vector;
import org.apache.jasper.Constants;
import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
-import org.apache.tomcat.util.scan.Jar;
+import org.apache.tomcat.Jar;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Parser.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Parser.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Parser.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/Parser.java Wed May 4 12:47:43 2016
@@ -29,8 +29,8 @@ import javax.servlet.jsp.tagext.TagLibra
import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
import org.apache.jasper.util.UniqueAttributesImpl;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
-import org.apache.tomcat.util.scan.Jar;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.AttributesImpl;
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/ParserController.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/ParserController.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/ParserController.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/ParserController.java Wed May 4 12:47:43 2016
@@ -24,7 +24,7 @@ import java.util.Stack;
import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
import org.apache.jasper.xmlparser.XMLEncodingDetector;
-import org.apache.tomcat.util.scan.Jar;
+import org.apache.tomcat.Jar;
import org.xml.sax.Attributes;
/**
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java Wed May 4 12:47:43 2016
@@ -36,8 +36,8 @@ import org.apache.jasper.JasperException
import org.apache.jasper.JspCompilationContext;
import org.apache.jasper.runtime.JspSourceDependent;
import org.apache.jasper.servlet.JspServletWrapper;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
-import org.apache.tomcat.util.scan.Jar;
/**
* 1. Processes and extracts the directive info in a tag file. 2. Compiles and
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java Wed May 4 12:47:43 2016
@@ -44,12 +44,12 @@ import javax.servlet.jsp.tagext.Validati
import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.descriptor.tld.TagFileXml;
import org.apache.tomcat.util.descriptor.tld.TagXml;
import org.apache.tomcat.util.descriptor.tld.TaglibXml;
import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
import org.apache.tomcat.util.descriptor.tld.ValidatorXml;
-import org.apache.tomcat.util.scan.Jar;
/**
* Implementation of the TagLibraryInfo class from the JSP spec.
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TldCache.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TldCache.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TldCache.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/compiler/TldCache.java Wed May 4 12:47:43 2016
@@ -27,10 +27,10 @@ import javax.servlet.ServletContext;
import org.apache.jasper.Constants;
import org.apache.jasper.JasperException;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.descriptor.tld.TaglibXml;
import org.apache.tomcat.util.descriptor.tld.TldParser;
import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
-import org.apache.tomcat.util.scan.Jar;
import org.xml.sax.SAXException;
/**
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/JspServletWrapper.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/JspServletWrapper.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/JspServletWrapper.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/JspServletWrapper.java Wed May 4 12:47:43 2016
@@ -47,7 +47,7 @@ import org.apache.jasper.util.FastRemova
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.InstanceManager;
-import org.apache.tomcat.util.scan.Jar;
+import org.apache.tomcat.Jar;
/**
* The JSP engine (a.k.a Jasper).
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/TldScanner.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/TldScanner.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/TldScanner.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/servlet/TldScanner.java Wed May 4 12:47:43 2016
@@ -40,14 +40,13 @@ import org.apache.jasper.compiler.JarSca
import org.apache.jasper.compiler.Localizer;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.JarScanType;
import org.apache.tomcat.JarScanner;
import org.apache.tomcat.JarScannerCallback;
import org.apache.tomcat.util.descriptor.tld.TaglibXml;
import org.apache.tomcat.util.descriptor.tld.TldParser;
import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
-import org.apache.tomcat.util.scan.Jar;
-import org.apache.tomcat.util.scan.JarFactory;
import org.xml.sax.SAXException;
/**
@@ -296,27 +295,24 @@ public class TldScanner {
@Override
- public void scan(URL jarUrl, String webappPath, boolean isWebapp) throws IOException {
+ public void scan(Jar jar, String webappPath, boolean isWebapp) throws IOException {
boolean found = false;
- URL jarFileUrl;
- try (Jar jar = JarFactory.newInstance(jarUrl)) {
- jarFileUrl = jar.getJarFileURL();
- jar.nextEntry();
- for (String entryName = jar.getEntryName();
- entryName != null;
- jar.nextEntry(), entryName = jar.getEntryName()) {
- if (!(entryName.startsWith("META-INF/") &&
- entryName.endsWith(TLD_EXT))) {
- continue;
- }
- found = true;
- TldResourcePath tldResourcePath =
- new TldResourcePath(jarFileUrl, webappPath, entryName);
- try {
- parseTld(tldResourcePath);
- } catch (SAXException e) {
- throw new IOException(e);
- }
+ URL jarFileUrl = jar.getJarFileURL();
+ jar.nextEntry();
+ for (String entryName = jar.getEntryName();
+ entryName != null;
+ jar.nextEntry(), entryName = jar.getEntryName()) {
+ if (!(entryName.startsWith("META-INF/") &&
+ entryName.endsWith(TLD_EXT))) {
+ continue;
+ }
+ found = true;
+ TldResourcePath tldResourcePath =
+ new TldResourcePath(jarFileUrl, webappPath, entryName);
+ try {
+ parseTld(tldResourcePath);
+ } catch (SAXException e) {
+ throw new IOException(e);
}
}
if (found) {
Modified: tomcat/tc8.5.x/trunk/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java Wed May 4 12:47:43 2016
@@ -36,7 +36,7 @@ import org.apache.jasper.JspCompilationC
import org.apache.jasper.compiler.ErrorDispatcher;
import org.apache.jasper.compiler.JspUtil;
import org.apache.jasper.compiler.Localizer;
-import org.apache.tomcat.util.scan.Jar;
+import org.apache.tomcat.Jar;
public class XMLEncodingDetector {
Copied: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/Jar.java (from r1742248, tomcat/trunk/java/org/apache/tomcat/Jar.java)
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/Jar.java?p2=tomcat/tc8.5.x/trunk/java/org/apache/tomcat/Jar.java&p1=tomcat/trunk/java/org/apache/tomcat/Jar.java&r1=1742248&r2=1742266&rev=1742266&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/Jar.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/Jar.java Wed May 4 12:47:43 2016
@@ -19,17 +19,18 @@ package org.apache.tomcat;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-
-import org.apache.tomcat.util.scan.JarFactory;
+import java.util.jar.Manifest;
/**
* Provides an abstraction for use by the various classes that need to scan
- * JARs. The classes provided by the JRE for accessing JARs ({@link java.util.jar.JarFile} and
- * {@link java.util.jar.JarInputStream}) have significantly different performance
- * characteristics depending on the form of the URL used to access the JAR.
- * For file based JAR {@link java.net.URL}s, {@link java.util.jar.JarFile} is faster but for non-file
- * based {@link java.net.URL}s, {@link java.util.jar.JarFile} creates a copy of the JAR in the
- * temporary directory so {@link java.util.jar.JarInputStream} is faster.
+ * JARs. The classes provided by the JRE for accessing JARs
+ * ({@link java.util.jar.JarFile} and {@link java.util.jar.JarInputStream}) have
+ * significantly different performance characteristics depending on the form of
+ * the URL used to access the JAR. For file based JAR {@link java.net.URL}s,
+ * {@link java.util.jar.JarFile} is faster but for non-file based
+ * {@link java.net.URL}s, {@link java.util.jar.JarFile} creates a copy of the
+ * JAR in the temporary directory so {@link java.util.jar.JarInputStream} is
+ * faster.
*/
public interface Jar extends AutoCloseable {
@@ -108,7 +109,8 @@ public interface Jar extends AutoCloseab
* be used, rather the jar:jar:file:... form (that the JRE does not
* understand will be used). Note that this means that any code using these
* URLs will need to understand the jar:jar:file:... form and use the
- * {@link JarFactory} to ensure resources are accessed correctly.
+ * {@link org.apache.tomcat.util.scan.JarFactory} to ensure resources are
+ * accessed correctly.
*
* @param entry The entry to generate the URL for
*
@@ -117,6 +119,15 @@ public interface Jar extends AutoCloseab
String getURL(String entry);
/**
+ * Obtain the manifest for the JAR file.
+ *
+ * @return The manifest for this JAR file.
+ *
+ * @throws IOException If an I/O error occurs trying to obtain the manifest
+ */
+ Manifest getManifest() throws IOException;
+
+ /**
* Resets the internal pointer used to track JAR entries to the beginning of
* the JAR.
*
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/JarScannerCallback.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/JarScannerCallback.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/JarScannerCallback.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/JarScannerCallback.java Wed May 4 12:47:43 2016
@@ -18,7 +18,6 @@ package org.apache.tomcat;
import java.io.File;
import java.io.IOException;
-import java.net.URL;
/**
* This interface is implemented by clients of the {@link JarScanner} to enable
@@ -28,9 +27,9 @@ public interface JarScannerCallback {
/**
* A JAR was found and may be accessed for further processing via the
- * provided URL connection.
+ * provided URL connection. The caller is responsible for closing the JAR.
*
- * @param jarURL The URL for the identified JAR
+ * @param jar The JAR to process
* @param webappPath The path, if any, to the JAR within the web application
* @param isWebapp Indicates if the JAR was found within a web
* application. If <code>false</code> the JAR should
@@ -38,7 +37,7 @@ public interface JarScannerCallback {
*
* @throws IOException if an I/O error occurs while scanning the JAR
*/
- public void scan(URL jarURL, String webappPath, boolean isWebapp)
+ public void scan(Jar jar, String webappPath, boolean isWebapp)
throws IOException;
/**
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java Wed May 4 12:47:43 2016
@@ -21,7 +21,7 @@ import java.io.InputStream;
import java.net.URL;
import java.util.Objects;
-import org.apache.tomcat.util.scan.Jar;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.scan.JarFactory;
/**
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java Wed May 4 12:47:43 2016
@@ -24,9 +24,8 @@ import java.net.URL;
import java.util.HashMap;
import java.util.Map;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.JarScannerCallback;
-import org.apache.tomcat.util.scan.Jar;
-import org.apache.tomcat.util.scan.JarFactory;
import org.xml.sax.InputSource;
/**
@@ -51,9 +50,8 @@ public class FragmentJarScannerCallback
@Override
- public void scan(URL jarUrl, String webappPath, boolean isWebapp) throws IOException {
+ public void scan(Jar jar, String webappPath, boolean isWebapp) throws IOException {
- Jar jar = null;
InputStream is = null;
WebXml fragment = new WebXml();
fragment.setWebappJar(isWebapp);
@@ -65,7 +63,6 @@ public class FragmentJarScannerCallback
// web-fragment.xml files don't need to be parsed if they are never
// going to be used.
if (isWebapp && parseRequired) {
- jar = JarFactory.newInstance(jarUrl);
is = jar.getInputStream(FRAGMENT_LOCATION);
}
@@ -74,7 +71,6 @@ public class FragmentJarScannerCallback
// distributable
fragment.setDistributable(true);
} else {
- @SuppressWarnings("null") // Cannot be null here
String fragmentUrl = jar.getURL(FRAGMENT_LOCATION);
InputSource source = new InputSource(fragmentUrl);
source.setByteStream(is);
@@ -83,14 +79,11 @@ public class FragmentJarScannerCallback
}
}
} finally {
- if (jar != null) {
- jar.close();
- }
- fragment.setURL(jarUrl);
+ fragment.setURL(jar.getJarFileURL());
if (fragment.getName() == null) {
fragment.setName(fragment.getURL().toString());
}
- fragment.setJarName(extractJarFileName(jarUrl));
+ fragment.setJarName(extractJarFileName(jar.getJarFileURL()));
fragments.put(fragment.getName(), fragment);
}
}
@@ -107,6 +100,7 @@ public class FragmentJarScannerCallback
return url.substring(url.lastIndexOf('/') + 1);
}
+
@Override
public void scan(File file, String webappPath, boolean isWebapp) throws IOException {
Copied: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java (from r1742246, tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java)
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java?p2=tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java&p1=tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java&r1=1742246&r2=1742266&rev=1742266&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/AbstractInputStreamJar.java Wed May 4 12:47:43 2016
@@ -20,6 +20,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.jar.JarEntry;
+import java.util.jar.Manifest;
+
+import org.apache.tomcat.Jar;
/**
* Base implementation of Jar for implementations that use a JarInputStream to
@@ -117,6 +120,13 @@ public abstract class AbstractInputStrea
}
+ @Override
+ public Manifest getManifest() throws IOException {
+ reset();
+ return jarInputStream.getManifest();
+ }
+
+
@Override
public void reset() throws IOException {
closeStream();
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFactory.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFactory.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFactory.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFactory.java Wed May 4 12:47:43 2016
@@ -20,6 +20,8 @@ import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
+import org.apache.tomcat.Jar;
+
/**
* Provide a mechanism to obtain objects that implement {@link Jar}.
*/
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java Wed May 4 12:47:43 2016
@@ -25,8 +25,11 @@ import java.net.URL;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
+import java.util.jar.Manifest;
import java.util.zip.ZipEntry;
+import org.apache.tomcat.Jar;
+
/**
* 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!/ or
@@ -144,6 +147,12 @@ public class JarFileUrlJar implements Ja
}
@Override
+ public Manifest getManifest() throws IOException {
+ return jarFile.getManifest();
+ }
+
+
+ @Override
public void reset() throws IOException {
entries = null;
entry = null;
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlNestedJar.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlNestedJar.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlNestedJar.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/JarFileUrlNestedJar.java Wed May 4 12:47:43 2016
@@ -17,28 +17,23 @@
package org.apache.tomcat.util.scan;
import java.io.IOException;
-import java.io.InputStream;
import java.net.JarURLConnection;
import java.net.URL;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
-
/**
- * Implementation of {@link Jar} that is optimised for file based JAR URLs that
- * refer to a JAR file nested inside a WAR
+ * Implementation of {@link org.apache.tomcat.Jar} that is optimised for file
+ * based JAR URLs that refer to a JAR file nested inside a WAR
* (e.g URLs of the form jar:file: ... .war!/ ... .jar).
*/
-public class JarFileUrlNestedJar implements Jar {
+public class JarFileUrlNestedJar extends AbstractInputStreamJar {
- private final URL jarFileURL;
private final JarFile warFile;
private final JarEntry jarEntry;
- private NonClosingJarInputStream jarInputStream = null;
- private JarEntry entry = null;
public JarFileUrlNestedJar(URL url) throws IOException {
- jarFileURL = url;
+ super(url);
JarURLConnection jarConn = (JarURLConnection) url.openConnection();
jarConn.setUseCaches(false);
warFile = jarConn.getJarFile();
@@ -51,77 +46,8 @@ public class JarFileUrlNestedJar impleme
@Override
- public URL getJarFileURL() {
- return jarFileURL;
- }
-
-
-
- @Override
- public boolean entryExists(String name) throws IOException {
- reset();
- JarEntry entry = jarInputStream.getNextJarEntry();
- while (entry != null) {
- if (name.equals(entry.getName())) {
- break;
- }
- entry = jarInputStream.getNextJarEntry();
- }
-
- return entry != null;
- }
-
-
- @Override
- public InputStream getInputStream(String name) throws IOException {
- reset();
- JarEntry entry = jarInputStream.getNextJarEntry();
- while (entry != null) {
- if (name.equals(entry.getName())) {
- break;
- }
- entry = jarInputStream.getNextJarEntry();
- }
-
- if (entry == null) {
- return null;
- } else {
- return jarInputStream;
- }
- }
-
-
- @Override
- public long getLastModified(String name) throws IOException {
- reset();
- JarEntry entry = jarInputStream.getNextJarEntry();
- while (entry != null) {
- if (name.equals(entry.getName())) {
- break;
- }
- entry = jarInputStream.getNextJarEntry();
- }
-
- if (entry == null) {
- return -1;
- } else {
- return entry.getTime();
- }
- }
-
- @Override
- public String getURL(String entry) {
- StringBuilder result = new StringBuilder("jar:");
- result.append(getJarFileURL().toExternalForm());
- result.append("!/");
- result.append(entry);
-
- return result.toString();
- }
-
- @Override
public void close() {
- closeInner();
+ closeStream();
if (warFile != null) {
try {
warFile.close();
@@ -132,61 +58,8 @@ public class JarFileUrlNestedJar impleme
}
- private void closeInner() {
- if (jarInputStream != null) {
- try {
- jarInputStream.reallyClose();
- } catch (IOException ioe) {
- // Ignore
- }
- }
- }
-
- private NonClosingJarInputStream createJarInputStream() throws IOException {
- return new NonClosingJarInputStream(warFile.getInputStream(jarEntry));
- }
-
-
@Override
- public void nextEntry() {
- if (jarInputStream == null) {
- try {
- jarInputStream = createJarInputStream();
- } catch (IOException e) {
- entry = null;
- return;
- }
- }
- try {
- entry = jarInputStream.getNextJarEntry();
- } catch (IOException ioe) {
- entry = null;
- }
- }
-
-
- @Override
- public String getEntryName() {
- if (entry == null) {
- return null;
- } else {
- return entry.getName();
- }
- }
-
-
- @Override
- public InputStream getEntryInputStream() throws IOException {
- if (jarInputStream == null) {
- jarInputStream = createJarInputStream();
- }
- return jarInputStream;
- }
-
-
- @Override
- public void reset() throws IOException {
- closeInner();
- jarInputStream = createJarInputStream();
+ protected NonClosingJarInputStream createJarInputStream() throws IOException {
+ return new NonClosingJarInputStream(warFile.getInputStream(jarEntry));
}
}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java Wed May 4 12:47:43 2016
@@ -30,6 +30,7 @@ import javax.servlet.ServletContext;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.JarScanFilter;
import org.apache.tomcat.JarScanType;
import org.apache.tomcat.JarScanner;
@@ -305,17 +306,20 @@ public class StandardJarScanner implemen
log.trace(sm.getString("jarScan.jarUrlStart", url));
}
- String urlStr = url.toString();
- if (urlStr.startsWith("jar:") || urlStr.endsWith(Constants.JAR_EXT)) {
- callback.scan(url, webappPath, isWebapp);
- } else if (urlStr.startsWith("file:")) {
+ if ("jar".equals(url.getProtocol()) || url.getPath().endsWith(Constants.JAR_EXT)) {
+ try (Jar jar = JarFactory.newInstance(url)) {
+ callback.scan(jar, webappPath, isWebapp);
+ }
+ } else if ("file".equals(url.getProtocol())) {
File f;
try {
f = new File(url.toURI());
if (f.isFile() && isScanAllFiles()) {
// Treat this file as a JAR
URL jarURL = UriUtil.buildJarUrl(f);
- callback.scan(jarURL, webappPath, isWebapp);
+ try (Jar jar = JarFactory.newInstance(jarURL)) {
+ callback.scan(jar, webappPath, isWebapp);
+ }
} else if (f.isDirectory()) {
if (scanType == JarScanType.PLUGGABILITY) {
callback.scan(f, webappPath, isWebapp);
Modified: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/UrlJar.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/UrlJar.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/UrlJar.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/scan/UrlJar.java Wed May 4 12:47:43 2016
@@ -17,134 +17,33 @@
package org.apache.tomcat.util.scan;
import java.io.IOException;
-import java.io.InputStream;
import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLConnection;
-import java.util.jar.JarEntry;
/**
- * Implementation of {@link Jar} that is optimised for non-file based JAR URLs
- * (e.g. JNDI based URLs of the form jar:jndi:...).
+ * Implementation of {@link org.apache.tomcat.Jar} that is optimised for
+ * non-file based JAR URLs (e.g. JNDI based URLs of the form jar:jndi:...).
*/
-public class UrlJar implements Jar {
+public class UrlJar extends AbstractInputStreamJar {
- private NonClosingJarInputStream jarInputStream = null;
- private final URL url;
- private JarEntry entry = null;
-
- public UrlJar(URL url) throws IOException {
- this.url = url;
- this.jarInputStream = createJarInputStream();
+ public UrlJar(URL jarFileURL) {
+ super(jarFileURL);
}
- @Override
- public URL getJarFileURL() {
- return url;
- }
-
- @Override
- public boolean entryExists(String name) throws IOException {
- JarEntry entry = jarInputStream.getNextJarEntry();
- while (entry != null) {
- if (name.equals(entry.getName())) {
- break;
- }
- entry = jarInputStream.getNextJarEntry();
- }
-
- return entry != null;
- }
-
- @Override
- public InputStream getInputStream(String name) throws IOException {
- JarEntry entry = jarInputStream.getNextJarEntry();
- while (entry != null) {
- if (name.equals(entry.getName())) {
- break;
- }
- entry = jarInputStream.getNextJarEntry();
- }
-
- if (entry == null) {
- return null;
- } else {
- return jarInputStream;
- }
- }
@Override
- public long getLastModified(String name) throws IOException {
- JarEntry entry = jarInputStream.getNextJarEntry();
- while (entry != null) {
- if (name.equals(entry.getName())) {
- break;
- }
- entry = jarInputStream.getNextJarEntry();
- }
-
- if (entry == null) {
- return -1;
- } else {
- return entry.getTime();
- }
+ public void close() {
+ closeStream();
}
- @Override
- public String getURL(String entry) {
- StringBuilder result = new StringBuilder("jar:");
- result.append(getJarFileURL().toExternalForm());
- result.append("!/");
- result.append(entry);
-
- return result.toString();
- }
@Override
- public void close() {
- if (jarInputStream != null) {
- try {
- jarInputStream.reallyClose();
- } catch (IOException ioe) {
- // Ignore
- }
- }
- }
-
- private NonClosingJarInputStream createJarInputStream() throws IOException {
- JarURLConnection jarConn = (JarURLConnection) url.openConnection();
+ protected NonClosingJarInputStream createJarInputStream() throws IOException {
+ JarURLConnection jarConn = (JarURLConnection) getJarFileURL().openConnection();
URL resourceURL = jarConn.getJarFileURL();
URLConnection resourceConn = resourceURL.openConnection();
resourceConn.setUseCaches(false);
return new NonClosingJarInputStream(resourceConn.getInputStream());
}
-
- @Override
- public void nextEntry() {
- try {
- entry = jarInputStream.getNextJarEntry();
- } catch (IOException ioe) {
- entry = null;
- }
- }
-
- @Override
- public String getEntryName() {
- if (entry == null) {
- return null;
- } else {
- return entry.getName();
- }
- }
-
- @Override
- public InputStream getEntryInputStream() throws IOException {
- return jarInputStream;
- }
-
- @Override
- public void reset() throws IOException {
- close();
- jarInputStream = createJarInputStream();
- }
}
Modified: tomcat/tc8.5.x/trunk/test/org/apache/jasper/servlet/TestTldScanner.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/jasper/servlet/TestTldScanner.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/test/org/apache/jasper/servlet/TestTldScanner.java (original)
+++ tomcat/tc8.5.x/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Wed May 4 12:47:43 2016
@@ -29,7 +29,9 @@ import org.junit.Test;
import org.apache.catalina.Context;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.scan.JarFactory;
import org.apache.tomcat.util.scan.StandardJarScanner;
import org.easymock.EasyMock;
@@ -109,7 +111,9 @@ public class TestTldScanner extends Tomc
throws Exception {
String fullPath = new File(webapp, path).toURI().toString();
URL jarUrl = new URL("jar:" + fullPath + "!/");
- callback.scan(jarUrl, path, true);
+ try (Jar jar = JarFactory.newInstance(jarUrl)) {
+ callback.scan(jar, path, true);
+ }
}
}
Modified: tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/bcel/TesterPerformance.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/bcel/TesterPerformance.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/bcel/TesterPerformance.java (original)
+++ tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/bcel/TesterPerformance.java Wed May 4 12:47:43 2016
@@ -27,8 +27,8 @@ import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.util.bcel.classfile.ClassParser;
-import org.apache.tomcat.util.scan.Jar;
import org.apache.tomcat.util.scan.JarFactory;
public class TesterPerformance {
Modified: tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/scan/TestStandardJarScanner.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/scan/TestStandardJarScanner.java?rev=1742266&r1=1742265&r2=1742266&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/scan/TestStandardJarScanner.java (original)
+++ tomcat/tc8.5.x/trunk/test/org/apache/tomcat/util/scan/TestStandardJarScanner.java Wed May 4 12:47:43 2016
@@ -27,6 +27,7 @@ import java.util.List;
import org.junit.Assert;
import org.junit.Test;
+import org.apache.tomcat.Jar;
import org.apache.tomcat.JarScanType;
import org.apache.tomcat.JarScannerCallback;
import org.apache.tomcat.unittest.TesterServletContext;
@@ -98,9 +99,9 @@ public class TestStandardJarScanner {
List<String> callbacks = new ArrayList<>();
@Override
- public void scan(URL jarUrl, String webappPath,
+ public void scan(Jar jar, String webappPath,
boolean isWebapp) throws IOException {
- callbacks.add(jarUrl.toString() + "::" + webappPath + "::" + isWebapp);
+ callbacks.add(jar.getJarFileURL().toString() + "::" + webappPath + "::" + isWebapp);
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org