-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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:
- ---------------
[EMAIL PROTECTED]:/var/data/src/java/turbine> diff
turbine-unchanged/turbine-2.3.2/src/java/org/apache/turbine/services/intake/validator/StringValidator.java
turbine-2.3.2/src/java/org/apache/turbine/services/intake/validator/StringValidator.java

19a20,22
> import java.util.regex.Matcher;
> import java.util.regex.Pattern;
> import java.util.regex.PatternSyntaxException;
23,26d25
< 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;
43a43
>  * @author <a href="mailto:[EMAIL PROTECTED]">Jindrich Vimr HSF.cz</a> -
patch to use java.util.regexp
52c52
<     /** The compiled perl5 Regular expression from the ORO
Perl5Compiler */
- ---
>     /** The compiled perl5 Regular expression from the
java.util.regexp.Pattern */
142,143c142,143
<                 /** perl5 matcher */
<                 Perl5Matcher patternMatcher = new Perl5Matcher();
- ---
>                 /** java.util.regexp.Matcher */
>                 Matcher patternMatcher = maskPattern.matcher(testValue);
146c146
<                         patternMatcher.matches(testValue, maskPattern);
- ---
>                         patternMatcher.matches();
184d183
<         Perl5Compiler patternCompiler = new Perl5Compiler();
189c188
<         int maskOptions = Perl5Compiler.DEFAULT_MASK;
- ---
>         //int maskOptions = Perl5Compiler.DEFAULT_MASK;
194c193
<             maskPattern = patternCompiler.compile(maskString,
maskOptions);
- ---
>             maskPattern = Pattern.compile(maskString);
196c195
<         catch (MalformedPatternException mpe)
- ---
>         catch (PatternSyntaxException mpe)

- ---------------

- --
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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDw5mu2n3TnEdZCPgRAorpAKDJv5fXAkgaBmIyv0+8tzo4qKxX/wCg4nQu
TE/nYM/A8VssjWCJwhOtcjQ=
=SRkk
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to