[ 
https://issues.apache.org/jira/browse/TEXT-96?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16071800#comment-16071800
 ] 

Peter Phillips commented on TEXT-96:
------------------------------------

Thanks very much to [~ameyjadiye] for the work and PR.  I can see that 
{{RandomStringGenerator}} serves a useful purpose, but I would still propose 
that simpler methods are required if it is to replace {{RandomStringUtils}}.

For existing code using {{RandomStringUtils}} I wouldn't choose to do a search 
and replace to convert to {{RandomStringGenerator}}.  I would instead choose to 
use an older version of commons-lang3 when {{RandomStringUtils}} eventually 
gets removed, or alternatively just copy the class into my projects.  I would 
have thought that the majority of developers would do the same.

> Convenience methods needed for RandomStringGenerator
> ----------------------------------------------------
>
>                 Key: TEXT-96
>                 URL: https://issues.apache.org/jira/browse/TEXT-96
>             Project: Commons Text
>          Issue Type: Improvement
>    Affects Versions: 1.1
>            Reporter: Peter Phillips
>            Priority: Minor
>
> {{RandomStringGenerator}} is extremely verbose compared to the deprecated 
> commons.lang3 {{RandomStringUtils}}.
> Previously we could write:
> {code:java}
> RandomStringUtils.randomNumeric(10)
> {code}
> to generate a numeric string whereas this now has become:
> {code:java}
> new RandomStringGenerator.Builder().withinRange('0', '9').build().generate(10)
> {code}
> although in practice we would then also use static imports too.
> The {{randomAlphabetic}} conversion is even more verbose:
> {code:java}
> new RandomStringGenerator.Builder().withinRange('A', 'z').filteredBy(new 
> CharacterPredicate() {
>                     @Override
>                     public boolean test(int codePoint) {
>                         return codePoint >= 'a' || codePoint <= 'Z';
>                     }
>                 }).build().generate(10))
> {code} and at that point I lost enthusiam with trying to replicate 
> {{randomAlphanumeric}}.
> I don't think the average java developer would understand what a code point 
> is in the first place so then trying to get our automation testers to use the 
> new API to implement random alphanumeric character generation would be 
> difficult.
> I therefore suggest that commons-text should have a copy of 
> {{RandomStringUtils}} which can even delegate to {{RandomStringGenerator}} or 
> alternatively convenience static methods for the common use cases.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to