Author: kkolinko
Date: Sun Apr 27 12:57:22 2014
New Revision: 1590387

URL: http://svn.apache.org/r1590387
Log:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56365
Document file name pattern syntax for StandardJarScanner.
When configuring pattern lists: be tolerant of leading/trailing whitespace, 
ignore empty patterns.

Modified:
    tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ContextConfig.java
    tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java
    tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java
    
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java
    tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/scan/TestJarScanner.java
    tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
    tomcat/tc7.0.x/trunk/webapps/docs/config/jar-scanner.xml
    tomcat/tc7.0.x/trunk/webapps/docs/config/systemprops.xml

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1590387&r1=1590386&r2=1590387&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ContextConfig.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/ContextConfig.java 
Sun Apr 27 12:57:22 2014
@@ -167,7 +167,10 @@ public class ContextConfig implements Li
         if (jarList != null) {
             StringTokenizer tokenizer = new StringTokenizer(jarList, ",");
             while (tokenizer.hasMoreElements()) {
-                pluggabilityJarsToSkip.add(tokenizer.nextToken());
+                String token = tokenizer.nextToken().trim();
+                if (token.length() > 0) {
+                    pluggabilityJarsToSkip.add(token);
+                }
             }
         }
 

Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java?rev=1590387&r1=1590386&r2=1590387&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java Sun 
Apr 27 12:57:22 2014
@@ -142,7 +142,10 @@ public final class TldConfig  implements
             }
             StringTokenizer tokenizer = new StringTokenizer(jarNames, ",");
             while (tokenizer.hasMoreElements()) {
-                noTldJars.add(tokenizer.nextToken());
+                String token = tokenizer.nextToken().trim();
+                if (token.length() > 0) {
+                    noTldJars.add(token);
+                }
             }
         }
     }

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java?rev=1590387&r1=1590386&r2=1590387&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/TldLocationsCache.java 
Sun Apr 27 12:57:22 2014
@@ -138,7 +138,10 @@ public class TldLocationsCache {
             }
             StringTokenizer tokenizer = new StringTokenizer(jarNames, ",");
             while (tokenizer.hasMoreElements()) {
-                noTldJars.add(tokenizer.nextToken());
+                String token = tokenizer.nextToken().trim();
+                if (token.length() > 0) {
+                    noTldJars.add(token);
+                }
             }
         }
     }

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=1590387&r1=1590386&r2=1590387&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:57:22 2014
@@ -69,7 +69,10 @@ public class StandardJarScanner implemen
         if (jarList != null) {
             StringTokenizer tokenizer = new StringTokenizer(jarList, ",");
             while (tokenizer.hasMoreElements()) {
-                defaultJarsToSkip.add(tokenizer.nextToken());
+                String token = tokenizer.nextToken().trim();
+                if (token.length() > 0) {
+                    defaultJarsToSkip.add(token);
+                }
             }
         }
     }

Modified: 
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/scan/TestJarScanner.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/scan/TestJarScanner.java?rev=1590387&r1=1590386&r2=1590387&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/scan/TestJarScanner.java 
(original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/scan/TestJarScanner.java 
Sun Apr 27 12:57:22 2014
@@ -19,11 +19,7 @@ package org.apache.tomcat.util.scan;
 
 import java.util.StringTokenizer;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
+import org.junit.Assert;
 import org.junit.Test;
 
 import org.apache.catalina.startup.TomcatBaseTest;
@@ -33,19 +29,43 @@ public class TestJarScanner extends Tomc
     @Test
     public void testJarsToSkipFormat() {
 
-        String jarList = System.getProperty(Constants.SKIP_JARS_PROPERTY);
-        assertNotNull("Jar skip list is null", jarList);
-        assertFalse("Jar skip list is empty", jarList.isEmpty());
+        testJarsToSkipFormat(
+                org.apache.tomcat.util.scan.Constants.SKIP_JARS_PROPERTY, 
false);
+        testJarsToSkipFormat(
+                
org.apache.catalina.startup.Constants.PLUGGABILITY_JARS_TO_SKIP,
+                true);
+        testJarsToSkipFormat(
+                org.apache.catalina.startup.Constants.TLD_JARS_TO_SKIP,
+                true);
+
+    }
+
+    private static void testJarsToSkipFormat(String propertyName, boolean 
allowEmpty) {
+        String jarList = System.getProperty(propertyName);
+        if (jarList == null) {
+            if (!allowEmpty) {
+                Assert.fail("[" + propertyName + "]: Jar skip list property is 
not set");
+            }
+            return;
+        }
+        jarList = jarList.trim();
+        if (jarList.isEmpty()) {
+            if (!allowEmpty) {
+                Assert.fail("[" + propertyName + "]: Jar skip list is empty");
+            }
+            return;
+        }
+
         StringTokenizer tokenizer = new StringTokenizer(jarList, ",");
         String token;
         while (tokenizer.hasMoreElements()) {
-            token = tokenizer.nextToken();
-            assertTrue("Token \"" + token + "\" does not end with \".jar\"",
-                       token.endsWith(".jar"));
-            assertEquals("Token \"" + token + "\" contains sub string 
\".jar\"" +
-                         " or separator \",\" is missing",
-                         token.length() - ".jar".length(),
-                         token.indexOf(".jar"));
+            token = tokenizer.nextToken().trim();
+            Assert.assertTrue("[" + propertyName + "]: Token \"" + token
+                    + "\" does not end with \".jar\"", token.endsWith(".jar"));
+            Assert.assertEquals("[" + propertyName + "]: Token \"" + token
+                    + "\" contains sub string \".jar\""
+                    + " or separator \",\" is missing",
+                    token.length() - ".jar".length(), token.indexOf(".jar"));
         }
     }
 }

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=1590387&r1=1590386&r2=1590387&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:57:22 2014
@@ -82,10 +82,12 @@
         <code>session.invalidate()</code> from the session destroyed event for
         that session. (markt)
       </fix>
-      <scode>
+      <update>
         <bug>56365</bug>: Simplify file name pattern matching code in
-        <code>StandardJarScanner</code>. Improve documentation. (kkolinko)
-      </scode>
+        <code>StandardJarScanner</code>. Ignore leading and trailing whitespace
+        and empty strings when configuring patterns. Improve documentation.
+        (kkolinko)
+      </update>
       <fix>
         <bug>56369</bug>: Ensure that removing an MBean notification listener
         reverts all the operations performed when adding an MBean notification

Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/jar-scanner.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/jar-scanner.xml?rev=1590387&r1=1590386&r2=1590387&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/config/jar-scanner.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/config/jar-scanner.xml Sun Apr 27 
12:57:22 2014
@@ -72,8 +72,21 @@
 
     <p>The standard implementation of <strong>Jar Scanner</strong> is
     <strong>org.apache.tomcat.util.scan.StandardJarScanner</strong>.
-    It supports the following additional attributes (in addition to the
-    common attributes listed above):</p>
+    Additional attributes that it supports (in addition to the common 
attributes
+    listed above) are listed in the table.</p>
+
+    <p>There are several
+    <a href="systemprops.html#JAR_Scanning">system properties</a>
+    that control what JAR files are skipped by JarScanner.
+    Those properties are lists of file name pattern. The
+    patterns are separated by comma (','). The leading and trailing whitespace
+    characters in a pattern are ignored. The patterns are matched
+    case-sensitively. The following two special characters are supported:</p>
+
+    <ul>
+      <li>'*' &#151; means zero or more characters,</li>
+      <li>'?' &#151; means one and only one character.</li>
+    </ul>
 
     <attributes>
 

Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/systemprops.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/systemprops.xml?rev=1590387&r1=1590386&r2=1590387&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/config/systemprops.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/config/systemprops.xml Sun Apr 27 
12:57:22 2014
@@ -528,9 +528,11 @@
 
   <properties>
     <property name="tomcat.util.scan. DefaultJarScanner.jarsToSkip">
-      <p>The comma-separated list of filenames of JARs that Tomcat will not 
scan
-         for configuration information when using the
-         <a href="jar-scanner.html">JarScanner</a> functionality. Note that
+      <p>The comma-separated list of file name patterns of JARs that Tomcat 
will
+         not scan for configuration information when using the
+         <a href="jar-scanner.html">JarScanner</a> functionality. The file name
+         pattern syntax is described in
+         <a href="jar-scanner.html">JarScanner</a> documentation. Note that
          there are additional system properties that enable JARs to be excluded
          from specific scans rather than all scans.</p>
       <p>The coded default is that no JARs are skipped however the system



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

Reply via email to