You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2014/04/27 14:02:36 UTC
svn commit: r1590381 - in /tomcat/tc7.0.x/trunk:
java/org/apache/tomcat/util/file/Matcher.java
java/org/apache/tomcat/util/scan/StandardJarScanner.java
webapps/docs/changelog.xml
Author: kkolinko
Date: Sun Apr 27 12:02:36 2014
New Revision: 1590381
URL: http://svn.apache.org/r1590381
Log:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56365
Simplify file name pattern matching code in StandardJarScanner.
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/file/Matcher.java
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/file/Matcher.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/file/Matcher.java?rev=1590381&r1=1590380&r2=1590381&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/file/Matcher.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/file/Matcher.java Sun Apr 27 12:02:36 2014
@@ -36,6 +36,30 @@ import org.apache.tomcat.util.res.String
public final class Matcher {
/**
+ * Tests whether or not a given file name matches any file name pattern in
+ * the given set. The match is performed case-sensitively.
+ *
+ * @see #match(String, String, boolean)
+ *
+ * @param patternSet The pattern set to match against. Must not be
+ * <code>null</code>.
+ * @param fileName The file name to match, as a String. Must not be
+ * <code>null</code>. It must be just a file name, without
+ * a path.
+ *
+ * @return <code>true</code> if any pattern in the set matches against the
+ * file name, or <code>false</code> otherwise.
+ */
+ public static boolean matchName(Set<String> patternSet, String fileName) {
+ for (String pattern: patternSet) {
+ if (match(pattern, fileName, true)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
* The pattern that matches an arbitrary number of directories.
*/
public static final String DEEP_TREE_MATCH = "**";
Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java?rev=1590381&r1=1590380&r2=1590381&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java Sun Apr 27 12:02:36 2014
@@ -141,16 +141,12 @@ public class StandardJarScanner implemen
log.trace(sm.getString("jarScan.webinflibStart"));
}
- Set<String> ignoredJars;
+ final Set<String> ignoredJars;
if (jarsToSkip == null) {
ignoredJars = defaultJarsToSkip;
} else {
ignoredJars = jarsToSkip;
}
- Set<String[]> ignoredJarsTokens = new HashSet<String[]>();
- for (String pattern: ignoredJars) {
- ignoredJarsTokens.add(Matcher.tokenizePathAsArray(pattern));
- }
// Scan WEB-INF/lib
Set<String> dirList = context.getResourcePaths(Constants.WEB_INF_LIB);
@@ -159,7 +155,7 @@ public class StandardJarScanner implemen
while (it.hasNext()) {
String path = it.next();
if (path.endsWith(Constants.JAR_EXT) &&
- !Matcher.matchPath(ignoredJarsTokens,
+ !Matcher.matchName(ignoredJars,
path.substring(path.lastIndexOf('/')+1))) {
// Need to scan this JAR
if (log.isDebugEnabled()) {
@@ -211,7 +207,7 @@ public class StandardJarScanner implemen
// Skip JARs known not to be interesting and JARs
// in WEB-INF/lib we have already scanned
if (jarName != null &&
- !(Matcher.matchPath(ignoredJarsTokens, jarName) ||
+ !(Matcher.matchName(ignoredJars, jarName) ||
urls[i].toString().contains(
Constants.WEB_INF_LIB + jarName))) {
if (log.isDebugEnabled()) {
Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1590381&r1=1590380&r2=1590381&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Sun Apr 27 12:02:36 2014
@@ -82,6 +82,10 @@
<code>session.invalidate()</code> from the session destroyed event for
that session. (markt)
</fix>
+ <scode>
+ <bug>56365</bug>: Simplify file name pattern matching code in
+ <code>StandardJarScanner</code>. Improve documentation. (kkolinko)
+ </scode>
<fix>
<bug>56369</bug>: Ensure that removing an MBean notification listener
reverts all the operations performed when adding an MBean notification
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org