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 2013/06/14 09:39:32 UTC
svn commit: r1492975 - in /tomcat/trunk/java/org/apache:
catalina/startup/ContextConfig.java catalina/startup/TldConfig.java
jasper/compiler/TldLocationsCache.java tomcat/JarScannerCallback.java
tomcat/util/scan/StandardJarScanner.java
Author: markt
Date: Fri Jun 14 07:39:32 2013
New Revision: 1492975
URL: http://svn.apache.org/r1492975
Log:
Enable client of JarScanner to determine if JAR is part of a web
application or provided by the container.
Modified:
tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java
tomcat/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java
tomcat/trunk/java/org/apache/tomcat/JarScannerCallback.java
tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java
Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1492975&r1=1492974&r2=1492975&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Fri Jun 14 07:39:32 2013
@@ -2743,7 +2743,8 @@ public class ContextConfig implements Li
private final Map<String,WebXml> fragments = new HashMap<>();
@Override
- public void scan(JarURLConnection jarConn) throws IOException {
+ public void scan(JarURLConnection jarConn, boolean isWebapp)
+ throws IOException {
URL url = jarConn.getURL();
URL resourceURL = jarConn.getJarFileURL();
@@ -2790,7 +2791,7 @@ public class ContextConfig implements Li
}
@Override
- public void scan(File file) throws IOException {
+ public void scan(File file, boolean isWebapp) throws IOException {
InputStream stream = null;
WebXml fragment = new WebXml();
Modified: tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java?rev=1492975&r1=1492974&r2=1492975&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java Fri Jun 14 07:39:32 2013
@@ -287,12 +287,13 @@ public final class TldConfig implements
private class TldJarScannerCallback implements JarScannerCallback {
@Override
- public void scan(JarURLConnection urlConn) throws IOException {
+ public void scan(JarURLConnection urlConn, boolean isWebapp)
+ throws IOException {
tldScanJar(urlConn);
}
@Override
- public void scan(File file) {
+ public void scan(File file, boolean isWebapp) {
File metaInf = new File(file, "META-INF");
if (metaInf.isDirectory()) {
tldScanDir(metaInf);
Modified: tomcat/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java?rev=1492975&r1=1492974&r2=1492975&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java Fri Jun 14 07:39:32 2013
@@ -255,12 +255,13 @@ public class TldLocationsCache {
private class TldJarScannerCallback implements JarScannerCallback {
@Override
- public void scan(JarURLConnection urlConn) throws IOException {
+ public void scan(JarURLConnection urlConn, boolean isWebapp)
+ throws IOException {
tldScanJar(urlConn);
}
@Override
- public void scan(File file) throws IOException {
+ public void scan(File file, boolean isWebapp) throws IOException {
File metaInf = new File(file, "META-INF");
if (metaInf.isDirectory()) {
tldScanDir(metaInf);
Modified: tomcat/trunk/java/org/apache/tomcat/JarScannerCallback.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/JarScannerCallback.java?rev=1492975&r1=1492974&r2=1492975&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/JarScannerCallback.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/JarScannerCallback.java Fri Jun 14 07:39:32 2013
@@ -31,17 +31,24 @@ public interface JarScannerCallback {
* further processing via the provided URL connection.
*
* @param urlConn The connection to the identified JAR
+ * @param isWebapp Indicates if the JAR was found within a web application.
+ * If <code>false</code> the JAR should be treated as
+ * being provided by the container
*/
- public void scan(JarURLConnection urlConn) throws IOException;
+ public void scan(JarURLConnection urlConn, boolean isWebapp)
+ throws IOException;
/**
* A JAR was found (probably in an unpacked WAR or possibly elsewhere on the
* class path) and may be accessed for further processing via the provided
* file.
*
- * @param file The file for the identified JAR.
+ * @param file The file for the identified JAR.
+ * @param isWebapp Indicates if the JAR was found within a web application.
+ * If <code>false</code> the JAR should be treated as
+ * being provided by the container
*/
- public void scan(File file) throws IOException;
+ public void scan(File file, boolean isWebapp) throws IOException;
/**
* A directory structure was found within the web application at
Modified: tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java?rev=1492975&r1=1492974&r2=1492975&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java Fri Jun 14 07:39:32 2013
@@ -174,7 +174,7 @@ public class StandardJarScanner implemen
} else {
url = (new File(realPath)).toURI().toURL();
}
- process(callback, url);
+ process(callback, url, true);
} catch (IOException e) {
log.warn(sm.getString("jarScan.webinflibFail", url), e);
}
@@ -234,7 +234,7 @@ public class StandardJarScanner implemen
log.debug(sm.getString("jarScan.classloaderJarScan", urls[i]));
}
try {
- process(callback, urls[i]);
+ process(callback, urls[i], false);
} catch (IOException ioe) {
log.warn(sm.getString(
"jarScan.classloaderFail",urls[i]), ioe);
@@ -255,7 +255,7 @@ public class StandardJarScanner implemen
* Scan a URL for JARs with the optional extensions to look at all files
* and all directories.
*/
- private void process(JarScannerCallback callback, URL url)
+ private void process(JarScannerCallback callback, URL url, boolean isWebapp)
throws IOException {
if (log.isTraceEnabled()) {
@@ -264,13 +264,14 @@ public class StandardJarScanner implemen
URLConnection conn = url.openConnection();
if (conn instanceof JarURLConnection) {
- callback.scan((JarURLConnection) conn);
+ callback.scan((JarURLConnection) conn, isWebapp);
} else {
String urlStr = url.toString();
if (urlStr.startsWith("file:") || urlStr.startsWith("jndi:")) {
if (urlStr.endsWith(Constants.JAR_EXT)) {
URL jarURL = new URL("jar:" + urlStr + "!/");
- callback.scan((JarURLConnection) jarURL.openConnection());
+ callback.scan((JarURLConnection) jarURL.openConnection(),
+ isWebapp);
} else {
File f;
try {
@@ -278,12 +279,14 @@ public class StandardJarScanner implemen
if (f.isFile() && scanAllFiles) {
// Treat this file as a JAR
URL jarURL = new URL("jar:" + urlStr + "!/");
- callback.scan((JarURLConnection) jarURL.openConnection());
+ callback.scan(
+ (JarURLConnection) jarURL.openConnection(),
+ isWebapp);
} else if (f.isDirectory() && scanAllDirectories) {
File metainf = new File(f.getAbsoluteFile() +
File.separator + "META-INF");
if (metainf.isDirectory()) {
- callback.scan(f);
+ callback.scan(f, isWebapp);
}
}
} catch (URISyntaxException e) {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org