remm 2004/09/01 03:10:11 Modified: catalina/src/share/org/apache/catalina/valves RequestFilterValve.java http11/src/java/org/apache/coyote/http11 Http11Processor.java Log: - Use the JDK 1.4 regexp API, which is a straight replacement for jakarta-regexp. It's easy to switch back and forth, obviously, which is quite convinient :) Revision Changes Path 1.9 +14 -14 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/valves/RequestFilterValve.java Index: RequestFilterValve.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/valves/RequestFilterValve.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- RequestFilterValve.java 29 Aug 2004 16:46:14 -0000 1.8 +++ RequestFilterValve.java 1 Sep 2004 10:10:10 -0000 1.9 @@ -20,6 +20,8 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; @@ -27,8 +29,6 @@ import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; import org.apache.catalina.util.StringManager; -import org.apache.regexp.RE; -import org.apache.regexp.RESyntaxException; import org.apache.tomcat.util.compat.JdkCompat; /** @@ -104,13 +104,13 @@ /** * The set of <code>allow</code> regular expressions we will evaluate. */ - protected RE allows[] = new RE[0]; + protected Pattern allows[] = new Pattern[0]; /** * The set of <code>deny</code> regular expressions we will evaluate. */ - protected RE denies[] = new RE[0]; + protected Pattern denies[] = new Pattern[0]; /** @@ -214,13 +214,13 @@ * @exception IllegalArgumentException if one of the patterns has * invalid syntax */ - protected RE[] precalculate(String list) { + protected Pattern[] precalculate(String list) { if (list == null) - return (new RE[0]); + return (new Pattern[0]); list = list.trim(); if (list.length() < 1) - return (new RE[0]); + return (new Pattern[0]); list += ","; ArrayList reList = new ArrayList(); @@ -230,8 +230,8 @@ break; String pattern = list.substring(0, comma).trim(); try { - reList.add(new RE(pattern)); - } catch (RESyntaxException e) { + reList.add(Pattern.compile(pattern)); + } catch (PatternSyntaxException e) { IllegalArgumentException iae = new IllegalArgumentException (sm.getString("requestFilterValve.syntax", pattern)); jdkCompat.chainException(iae, e); @@ -240,8 +240,8 @@ list = list.substring(comma + 1); } - RE reArray[] = new RE[reList.size()]; - return ((RE[]) reList.toArray(reArray)); + Pattern reArray[] = new Pattern[reList.size()]; + return ((Pattern[]) reList.toArray(reArray)); } @@ -263,7 +263,7 @@ // Check the deny patterns, if any for (int i = 0; i < denies.length; i++) { - if (denies[i].match(property)) { + if (denies[i].matcher(property).matches()) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } @@ -271,7 +271,7 @@ // Check the allow patterns, if any for (int i = 0; i < allows.length; i++) { - if (allows[i].match(property)) { + if (allows[i].matcher(property).matches()) { getNext().invoke(request, response); return; } 1.107 +18 -18 jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java Index: Http11Processor.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java,v retrieving revision 1.106 retrieving revision 1.107 diff -u -r1.106 -r1.107 --- Http11Processor.java 31 Aug 2004 23:52:51 -0000 1.106 +++ Http11Processor.java 1 Sep 2004 10:10:11 -0000 1.107 @@ -23,6 +23,8 @@ import java.net.InetAddress; import java.net.Socket; import java.util.StringTokenizer; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; import java.security.AccessController; import java.security.PrivilegedAction; @@ -41,8 +43,6 @@ import org.apache.coyote.http11.filters.VoidInputFilter; import org.apache.coyote.http11.filters.VoidOutputFilter; import org.apache.coyote.http11.filters.BufferedInputFilter; -import org.apache.regexp.RE; -import org.apache.regexp.RESyntaxException; import org.apache.tomcat.util.buf.Ascii; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.HexUtils; @@ -179,7 +179,7 @@ /** * List of restricted user agents. */ - protected RE[] restrictedUserAgents = null; + protected Pattern[] restrictedUserAgents = null; /** @@ -276,7 +276,7 @@ /** * List of user agents to not use gzip with */ - protected RE noCompressionUserAgents[] = null; + protected Pattern noCompressionUserAgents[] = null; /** * List of MIMES which could be gzipped @@ -359,11 +359,11 @@ */ public void addNoCompressionUserAgent(String userAgent) { try { - RE nRule = new RE(userAgent); + Pattern nRule = Pattern.compile(userAgent); noCompressionUserAgents = addREArray(noCompressionUserAgents, nRule); - } catch (RESyntaxException ree) { - log.error("Error parsing regular expression: " + userAgent, ree); + } catch (PatternSyntaxException pse) { + log.error("Error parsing regular expression: " + userAgent, pse); } } @@ -373,7 +373,7 @@ * a large number of connectors, where it would be better to have all of * them referenced a single array). */ - public void setNoCompressionUserAgents(RE[] noCompressionUserAgents) { + public void setNoCompressionUserAgents(Pattern[] noCompressionUserAgents) { this.noCompressionUserAgents = noCompressionUserAgents; } @@ -496,14 +496,14 @@ * @param rArray the REArray * @param value Obj */ - private RE[] addREArray(RE rArray[], RE value) { - RE[] result = null; + private Pattern[] addREArray(Pattern rArray[], Pattern value) { + Pattern[] result = null; if (rArray == null) { - result = new RE[1]; + result = new Pattern[1]; result[0] = value; } else { - result = new RE[rArray.length + 1]; + result = new Pattern[rArray.length + 1]; for (int i = 0; i < rArray.length; i++) result[i] = rArray[i]; result[rArray.length] = value; @@ -555,10 +555,10 @@ */ public void addRestrictedUserAgent(String userAgent) { try { - RE nRule = new RE(userAgent); + Pattern nRule = Pattern.compile(userAgent); restrictedUserAgents = addREArray(restrictedUserAgents, nRule); - } catch (RESyntaxException ree) { - log.error("Error parsing regular expression: " + userAgent, ree); + } catch (PatternSyntaxException pse) { + log.error("Error parsing regular expression: " + userAgent, pse); } } @@ -568,7 +568,7 @@ * a large number of connectors, where it would be better to have all of * them referenced a single array). */ - public void setRestrictedUserAgents(RE[] restrictedUserAgents) { + public void setRestrictedUserAgents(Pattern[] restrictedUserAgents) { this.restrictedUserAgents = restrictedUserAgents; } @@ -1157,7 +1157,7 @@ if(userAgentValueMB != null) { String userAgentValue = userAgentValueMB.toString(); for (int i = 0; i < restrictedUserAgents.length; i++) { - if (restrictedUserAgents[i].match(userAgentValue)) { + if (restrictedUserAgents[i].matcher(userAgentValue).matches()) { http11 = false; keepAlive = false; break; @@ -1383,7 +1383,7 @@ // If one Regexp rule match, disable compression for (int i = 0; i < noCompressionUserAgents.length; i++) - if (noCompressionUserAgents[i].match(userAgentValue)) + if (noCompressionUserAgents[i].matcher(userAgentValue).matches()) return false; } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]