Hi again,

the attachment no contains the same patch, but created using "diff
-Naur" command:

diff -Naur
turbine-unchanged/turbine-2.3.2/src/java/org/apache/turbine/services/intake/validator/StringValidator.java
turbine-2.3.2-JV-20060109/turbine-2.3.2/src/java/org/apache/turbine/services/intake/validator/StringValidator.java
 > StringValidator.java.JV-20060109.patch


also patch to project.properties which changes rependency to JDK1.4 attached

Jindrich Vimr


Jindrich Vimr wrote:
> Hi,
> 
> for our turbine-based application we started use intake for form fields
> validation. Our customers use non-Latin charsets for data entered into
> form fields, but we were unable to validate them using intake.
> Intake currently uses ORO for regexp validation, but ORO doesn't handle
> the unicode perl5 regexps (like \\p{L} for Letters in any encoding, not
> only A-Za-z).
> The sun's java.util.regexp. package these unicode regexps implement, so
> I decided to rewrite the StringValidator in intake to use
> java.util.regexp classes instead of ORO. The patch against turbine-2.3.2
>  is attached bellow. We test this patch internally, but for now it seems
> to work OK. This way turbine is able to handle unicode inputs checked by
> intake.
> If someone has some complains about choosing sun's java.util.regexp for
> this patch, drop me a note. The only downside of choosing
> java.util.regexp is the dependency on JDK1.4 or higher.
> 
> 
> 
> Jindrich Vimr
> 
> the patch:






-- 
Jindrich Vimr                                      <[EMAIL PROTECTED]>
HSF Sokolov, spol. s r.o.                  +420 724 293 903
Morseova 3, Plzen                            http://www.hsf.cz

GPG public key: http://shop.hsf.cz/gpg/vimr/gpgpubkey-vimr_at_hsf.cz.gpg
--- turbine-unchanged/turbine-2.3.2/project.properties	2005-10-03 14:52:31.000000000 +0200
+++ turbine-2.3.2-JV-20060109/turbine-2.3.2/project.properties	2006-01-10 13:13:08.806672376 +0100
@@ -49,8 +49,8 @@
 # Display the version the web site is documenting
 maven.xdoc.version = ${pom.currentVersion}
 
-maven.compile.source = 1.3
-maven.compile.target = 1.3
+maven.compile.source = 1.4
+maven.compile.target = 1.4
 maven.compile.debug = on
 maven.compile.optimize = off
 maven.compile.deprecation = off
--- turbine-unchanged/turbine-2.3.2/src/java/org/apache/turbine/services/intake/validator/StringValidator.java	2005-10-03 14:52:35.000000000 +0200
+++ turbine-2.3.2-JV-20060109/turbine-2.3.2/src/java/org/apache/turbine/services/intake/validator/StringValidator.java	2006-01-10 12:18:31.641877152 +0100
@@ -17,13 +17,12 @@
  */
 
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
 
 import org.apache.commons.lang.StringUtils;
 
-import org.apache.oro.text.regex.MalformedPatternException;
-import org.apache.oro.text.regex.Pattern;
-import org.apache.oro.text.regex.Perl5Compiler;
-import org.apache.oro.text.regex.Perl5Matcher;
 
 /**
  * A validator that will compare a testValue against the following
@@ -41,6 +40,7 @@
  * @author <a href="mailto:[EMAIL PROTECTED]">John McNally</a>
  * @author <a href="mailto:[EMAIL PROTECTED]">Quinton McCombs</a>
  * @author <a href="mailto:[EMAIL PROTECTED]">Colin Chalmers</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Jindrich Vimr HSF.cz</a> - patch to use java.util.regexp
  * @version $Id: StringValidator.java 264148 2005-08-29 14:21:04Z henning $
  */
 public class StringValidator
@@ -49,7 +49,7 @@
     /** The matching mask String as supplied by the XML input */
     protected String maskString = null;
 
-    /** The compiled perl5 Regular expression from the ORO Perl5Compiler */
+    /** The compiled perl5 Regular expression from the java.util.regexp.Pattern */
     protected Pattern maskPattern = null;
 
     /** The message to report if the mask constraint is not satisfied */
@@ -139,11 +139,11 @@
         {
             if (maskPattern != null)
             {
-                /** perl5 matcher */
-                Perl5Matcher patternMatcher = new Perl5Matcher();
+                /** java.util.regexp.Matcher */
+                Matcher patternMatcher = maskPattern.matcher(testValue);
 
                 boolean patternMatch =
-                        patternMatcher.matches(testValue, maskPattern);
+                        patternMatcher.matches();
 
                 log.debug("Trying to match " + testValue
                         + " to pattern " + maskString);
@@ -181,19 +181,18 @@
             throws InvalidMaskException
     {
         /** perl5 compiler, needed for setting up the masks */
-        Perl5Compiler patternCompiler = new Perl5Compiler();
 
         maskString = mask;
 
         // Fixme. We should make this configureable by the XML file -- hps
-        int maskOptions = Perl5Compiler.DEFAULT_MASK;
+        //int maskOptions = Perl5Compiler.DEFAULT_MASK;
 
         try
         {
             log.debug("Compiling pattern " + maskString);
-            maskPattern = patternCompiler.compile(maskString, maskOptions);
+            maskPattern = Pattern.compile(maskString);
         }
-        catch (MalformedPatternException mpe)
+        catch (PatternSyntaxException mpe)
         {
             throw new InvalidMaskException("Could not compile pattern " + maskString, mpe);
         }

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to