[lang][LANG-1172] Back and forth on LocaleUtils.toLocale()

2024-09-20 Thread Curry, Josh
Hi All,
  Following up on this as LANG-1172 changed the previously declared contract of 
this method.
Prior to 2.13, the logic and javadocs clearly stated that the separator must be 
underscore, but with this change it now also excepts dash.

Javadocs from 2.12:
"This method validates the input strictly. The language code must be lowercase. 
The country code must be uppercase. The separator must be an underscore. The 
length must be correct.”

This changed the contract and breaks code that were previous using this method 
to verify that their locale strings did not have dash, which was sometimes done 
to differentiate between locales and language tags.
However, the new behavior implies that locales and language tags are fully 
interchangeable, which is also not the case.
While I agree it would be useful to have a method that supported conversion of 
both representations, it would be better to provide that as a new method rather 
than break the existing contract.

TY
Josh


Gary D. Gregory - Wednesday, September 4, 2024 6:51:00 AM PDT

[lang][LANG-1172] Back and forth on LocaleUtils.toLocale()
Hi All,

I'd like to settle on the implementation of LocaleUtils.toLocale() one way or 
another and clearly document expectations.

What should we do?

Please see:
- https://issues.apache.org/jira/browse/LANG-1172
- https://github.com/apache/commons-lang/pull/766
- https://github.com/apache/commons-lang/pull/1271

TY!
Gary



[lang][LANG-1172] Back and forth on LocaleUtils.toLocale()

2024-09-04 Thread Gary D. Gregory
Hi All,

I'd like to settle on the implementation of LocaleUtils.toLocale() one way or 
another and clearly document expectations.

What should we do?

Please see:
- https://issues.apache.org/jira/browse/LANG-1172
- https://github.com/apache/commons-lang/pull/766
- https://github.com/apache/commons-lang/pull/1271

TY!
Gary

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



[ANNOUNCE] Apache Commons Lang 3.17.0

2024-08-29 Thread Gary Gregory
The Apache Commons team is pleased to announce Apache Commons Lang
Version 3.17.0.

Commons Lang is a set of utility functions and reusable components
that should be useful in any Java environment.

Starting with Commons Lang 3.9, we target Java 8, using those features.

For advice on upgrading from 2.x to 3.x, see:

https://commons.apache.org/lang/article3_0.html

Apache Commons Lang, a package of Java utility classes for the classes
that are in java.lang's hierarchy, or are considered to be so standard
as to justify existence in java.lang.

The code is tested using the latest revision of the JDK for supported
LTS releases: 8, 11, 17 and 21 currently. See
https://github.com/apache/commons-lang/blob/master/.github/workflows/maven.yml

Please ensure your build environment is up-to-date and kindly report
any build issues.

This is a feature and maintenance release. Java 8 or later is required.

Historical list of changes:
https://commons.apache.org/proper/commons-lang/changes-report.html

For complete information on Apache Commons Lang, including
instructions on how to submit bug reports, patches, or suggestions for
improvement, see the Apache Commons Lang website:

https://commons.apache.org/proper/commons-lang/

Download page: https://commons.apache.org/proper/commons-lang/download_lang.cgi

Gary Gregory,
Apache Commons Team

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



[RESULT][VOTE] Release Apache Commons Lang 3.17.0 based on RC1

2024-08-29 Thread Gary Gregory
This vote passes with the following binding +1s:

- Gary Gregory (ggregory)
- Henri Biestro (henrib)
- Rob Tompkins (chtompki)

TY all,
Gary

On Thu, Aug 29, 2024 at 1:57 PM Rob Tompkins  wrote:
>
> +1
>
> > On Aug 24, 2024, at 3:21 PM, Gary Gregory  wrote:
> >
> > We have fixed a few bugs and added enhancements since Apache Commons Lang
> > 3.16.0 was released, so I would like to release Apache Commons Lang 3.17.0.
> >
> > Apache Commons Lang 3.17.0 RC1 is available for review here:
> >https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1 (svn
> > revision 71083)
> >
> > The Git tag commons-lang-3.17.0-RC1 commit for this RC is
> > 29ccc7665f3bc5d84155a3092ab2209a053324e6 which you can browse here:
> >
> > https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=29ccc7665f3bc5d84155a3092ab2209a053324e6
> > You may checkout this tag using:
> >git clone https://gitbox.apache.org/repos/asf/commons-lang.git --branch
> > commons-lang-3.17.0-RC1 commons-lang-3.17.0-RC1
> >
> > Maven artifacts are here:
> >
> > https://repository.apache.org/content/repositories/orgapachecommons-1777/org/apache/commons/commons-lang3/3.17.0/
> >
> > These are the artifacts and their hashes:
> >
> > #Release SHA-512s
> > #Sat Aug 24 19:06:25 UTC 2024
> > commons-lang3-3.17.0-bin.tar.gz=8927a406a1bd084b548f89cf15fe4bc7567dcaa50ae8abae54e9c883c1574c648fcc8ad6c3abaa381dfbdf1801727ac5e6c4572063203a1dfac293d122282f05
> > commons-lang3-3.17.0-bin.zip=00ea810d00b0f8a5bf898edfed1fa022e9bd2bf31c9c00859de2ac6c4bc971d6833f3c2e0b24cecad6bb979de2078be8b1cc7eb42ca63c9ec35f70b1490e8c3d
> > commons-lang3-3.17.0-bom.json=b39ff96546bccdcf8fd2547ba3c130988541a99557e08de4b99bae09c43be569bf1939cec9fdba65d54df890c80fe58ba72e5194f9adb26c00b3f497f7f04230
> > commons-lang3-3.17.0-bom.xml=973b469f1395cfd709f281878faaed610cde2a778e66609ccd76408a17718c5291e538f1fe1b09052b7042d0aa7bed1f38f39249b3e2c0ff374d3165d63b443b
> > commons-lang3-3.17.0-javadoc.jar=64a1feec66688bb06486871a6a0bf3075d57efddad8fd36a1d540c88ac8e7c562cf5dbffd5c4e5155cbc808f10b8001210728719727fdc6d246a0536fdc60d35
> > commons-lang3-3.17.0-sources.jar=15954a47f38df821f97282d130c16e4885dcae16503e3876adc5518a3f6f7f3ecfa62b777b98b6ae11878e305f99ed28181c28f3369d4da2a3fb7c696d4be1d2
> > commons-lang3-3.17.0-src.tar.gz=e633b0caeb9556c68384c2bf20e374fbac910b9979b25774c632e50c1bec41e97c14362978dc092c8b5859291e54fe51e76ad7a61c9b2efbe1e4538f46c1e3ee
> > commons-lang3-3.17.0-src.zip=7e715243fd2cd0464eadd5140949c751ae199b87f4f6db6a0b878fe3bcbc513e3a9603f7bc09a2251cb61b794843826f3ea9d5c21a7b3b5f78cae13ab7b10bed
> > commons-lang3-3.17.0-test-sources.jar=bca1775e70313838191d530181ecf41ae832cb5bf041d2713af71e8b6d931307776ed9f10cf27a7f6f45a2b497a6ab717730e2a21605473eddb829738ca9e242
> > commons-lang3-3.17.0-tests.jar=b6138e9e92845ad790b2bbc43440ba16b92478700ee3f4e620b1fbb6d0796c2e110b53ab85f845d05a0d3e56f55417faf7eb01b15efe70339ccdf76ed3da76bc
> > org.apache.commons_commons-lang3-3.17.0.spdx.json=b9ca110a8e4e5304091991db151ad64a43ddd6ac10c170b0759daa84565df333cee5cf8d85af2f600233c692b27b826858db1af1a0ab2add7fcb77a1f3c0
> >
> > I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy -P
> > jacoco -P japicmp clean package site deploy' using:
> >
> > openjdk version "17.0.12" 2024-07-16
> > OpenJDK Runtime Environment Homebrew (build 17.0.12+0)
> > OpenJDK 64-Bit Server VM Homebrew (build 17.0.12+0, mixed mode, sharing)
> >
> > Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
> > Maven home: /usr/local/Cellar/maven/3.9.9/libexec
> > Java version: 17.0.12, vendor: Homebrew, runtime:
> > /usr/local/Cellar/openjdk@17/17.0.12/libexec/openjdk.jdk/Contents/Home
> > Default locale: en_US, platform encoding: UTF-8
> > OS name: "mac os x", version: "14.6.1", arch: "x86_64", family: "mac"
> >
> > Darwin  23.6.0 Darwin Kernel Version 23.6.0: Mon Jul 29 21:13:00 PDT
> > 2024; root:xnu-10063.141.2~1/RELEASE_X86_64 x86_64
> >
> > Details of changes since 3.16.0 are in the release notes:
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/RELEASE-NOTES.txt
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/changes-report.html
> >
> > Site:
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/index.html
> >(note some *relative* links are broken and the 3.17.0 directories are
> > not yet created - these will be OK once the site is deployed.)
> >
> > JApiCmp Report (compared to 3.16.0):
> >
> > https://dist.apache.

Re: [VOTE] Release Apache Commons Lang 3.17.0 based on RC1

2024-08-29 Thread Rob Tompkins
+1

> On Aug 24, 2024, at 3:21 PM, Gary Gregory  wrote:
> 
> We have fixed a few bugs and added enhancements since Apache Commons Lang
> 3.16.0 was released, so I would like to release Apache Commons Lang 3.17.0.
> 
> Apache Commons Lang 3.17.0 RC1 is available for review here:
>https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1 (svn
> revision 71083)
> 
> The Git tag commons-lang-3.17.0-RC1 commit for this RC is
> 29ccc7665f3bc5d84155a3092ab2209a053324e6 which you can browse here:
> 
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=29ccc7665f3bc5d84155a3092ab2209a053324e6
> You may checkout this tag using:
>git clone https://gitbox.apache.org/repos/asf/commons-lang.git --branch
> commons-lang-3.17.0-RC1 commons-lang-3.17.0-RC1
> 
> Maven artifacts are here:
> 
> https://repository.apache.org/content/repositories/orgapachecommons-1777/org/apache/commons/commons-lang3/3.17.0/
> 
> These are the artifacts and their hashes:
> 
> #Release SHA-512s
> #Sat Aug 24 19:06:25 UTC 2024
> commons-lang3-3.17.0-bin.tar.gz=8927a406a1bd084b548f89cf15fe4bc7567dcaa50ae8abae54e9c883c1574c648fcc8ad6c3abaa381dfbdf1801727ac5e6c4572063203a1dfac293d122282f05
> commons-lang3-3.17.0-bin.zip=00ea810d00b0f8a5bf898edfed1fa022e9bd2bf31c9c00859de2ac6c4bc971d6833f3c2e0b24cecad6bb979de2078be8b1cc7eb42ca63c9ec35f70b1490e8c3d
> commons-lang3-3.17.0-bom.json=b39ff96546bccdcf8fd2547ba3c130988541a99557e08de4b99bae09c43be569bf1939cec9fdba65d54df890c80fe58ba72e5194f9adb26c00b3f497f7f04230
> commons-lang3-3.17.0-bom.xml=973b469f1395cfd709f281878faaed610cde2a778e66609ccd76408a17718c5291e538f1fe1b09052b7042d0aa7bed1f38f39249b3e2c0ff374d3165d63b443b
> commons-lang3-3.17.0-javadoc.jar=64a1feec66688bb06486871a6a0bf3075d57efddad8fd36a1d540c88ac8e7c562cf5dbffd5c4e5155cbc808f10b8001210728719727fdc6d246a0536fdc60d35
> commons-lang3-3.17.0-sources.jar=15954a47f38df821f97282d130c16e4885dcae16503e3876adc5518a3f6f7f3ecfa62b777b98b6ae11878e305f99ed28181c28f3369d4da2a3fb7c696d4be1d2
> commons-lang3-3.17.0-src.tar.gz=e633b0caeb9556c68384c2bf20e374fbac910b9979b25774c632e50c1bec41e97c14362978dc092c8b5859291e54fe51e76ad7a61c9b2efbe1e4538f46c1e3ee
> commons-lang3-3.17.0-src.zip=7e715243fd2cd0464eadd5140949c751ae199b87f4f6db6a0b878fe3bcbc513e3a9603f7bc09a2251cb61b794843826f3ea9d5c21a7b3b5f78cae13ab7b10bed
> commons-lang3-3.17.0-test-sources.jar=bca1775e70313838191d530181ecf41ae832cb5bf041d2713af71e8b6d931307776ed9f10cf27a7f6f45a2b497a6ab717730e2a21605473eddb829738ca9e242
> commons-lang3-3.17.0-tests.jar=b6138e9e92845ad790b2bbc43440ba16b92478700ee3f4e620b1fbb6d0796c2e110b53ab85f845d05a0d3e56f55417faf7eb01b15efe70339ccdf76ed3da76bc
> org.apache.commons_commons-lang3-3.17.0.spdx.json=b9ca110a8e4e5304091991db151ad64a43ddd6ac10c170b0759daa84565df333cee5cf8d85af2f600233c692b27b826858db1af1a0ab2add7fcb77a1f3c0
> 
> I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy -P
> jacoco -P japicmp clean package site deploy' using:
> 
> openjdk version "17.0.12" 2024-07-16
> OpenJDK Runtime Environment Homebrew (build 17.0.12+0)
> OpenJDK 64-Bit Server VM Homebrew (build 17.0.12+0, mixed mode, sharing)
> 
> Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
> Maven home: /usr/local/Cellar/maven/3.9.9/libexec
> Java version: 17.0.12, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@17/17.0.12/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.6.1", arch: "x86_64", family: "mac"
> 
> Darwin  23.6.0 Darwin Kernel Version 23.6.0: Mon Jul 29 21:13:00 PDT
> 2024; root:xnu-10063.141.2~1/RELEASE_X86_64 x86_64
> 
> Details of changes since 3.16.0 are in the release notes:
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/RELEASE-NOTES.txt
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/changes-report.html
> 
> Site:
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/index.html
>(note some *relative* links are broken and the 3.17.0 directories are
> not yet created - these will be OK once the site is deployed.)
> 
> JApiCmp Report (compared to 3.16.0):
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/japicmp.html
> 
>***
>Note that the above report notes several errors.
>These are considered OK for the reasons stated below.
>These exceptions are also noted in the Changes and Release Notes.
> 
>Errors reported:
>- methods added to interface: OK because that does not affect binary
> compatibility.
>- etc.
>***
> 
> RAT Report:
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/rat-repo

Re: [VOTE] Release Apache Commons Lang 3.17.0 based on RC1

2024-08-27 Thread Henri Biestro
[ +1 ]

Build & tests ok, javadoc ok, reports look good (nice coverage), site looks 
nice.

Built using: mvn clean install site -s "$HOME/.m2/commons-settings.xml"
On: Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /Users/hbiestro/Java/apache-maven-3.8.6
Java version: 1.8.0_352, vendor: Azul Systems, Inc., runtime: 
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.6.1", arch: "aarch64", family: "mac"

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



Re: [VOTE] Release Apache Commons Lang 3.17.0 based on RC1

2024-08-24 Thread Gary Gregory
My +1

Gary


On Sat, Aug 24, 2024 at 3:21 PM Gary Gregory  wrote:

> We have fixed a few bugs and added enhancements since Apache Commons Lang
> 3.16.0 was released, so I would like to release Apache Commons Lang 3.17.0.
>
> Apache Commons Lang 3.17.0 RC1 is available for review here:
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1 (svn
> revision 71083)
>
> The Git tag commons-lang-3.17.0-RC1 commit for this RC is
> 29ccc7665f3bc5d84155a3092ab2209a053324e6 which you can browse here:
>
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=29ccc7665f3bc5d84155a3092ab2209a053324e6
> You may checkout this tag using:
> git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch commons-lang-3.17.0-RC1 commons-lang-3.17.0-RC1
>
> Maven artifacts are here:
>
> https://repository.apache.org/content/repositories/orgapachecommons-1777/org/apache/commons/commons-lang3/3.17.0/
>
> These are the artifacts and their hashes:
>
> #Release SHA-512s
> #Sat Aug 24 19:06:25 UTC 2024
>
> commons-lang3-3.17.0-bin.tar.gz=8927a406a1bd084b548f89cf15fe4bc7567dcaa50ae8abae54e9c883c1574c648fcc8ad6c3abaa381dfbdf1801727ac5e6c4572063203a1dfac293d122282f05
>
> commons-lang3-3.17.0-bin.zip=00ea810d00b0f8a5bf898edfed1fa022e9bd2bf31c9c00859de2ac6c4bc971d6833f3c2e0b24cecad6bb979de2078be8b1cc7eb42ca63c9ec35f70b1490e8c3d
>
> commons-lang3-3.17.0-bom.json=b39ff96546bccdcf8fd2547ba3c130988541a99557e08de4b99bae09c43be569bf1939cec9fdba65d54df890c80fe58ba72e5194f9adb26c00b3f497f7f04230
>
> commons-lang3-3.17.0-bom.xml=973b469f1395cfd709f281878faaed610cde2a778e66609ccd76408a17718c5291e538f1fe1b09052b7042d0aa7bed1f38f39249b3e2c0ff374d3165d63b443b
>
> commons-lang3-3.17.0-javadoc.jar=64a1feec66688bb06486871a6a0bf3075d57efddad8fd36a1d540c88ac8e7c562cf5dbffd5c4e5155cbc808f10b8001210728719727fdc6d246a0536fdc60d35
>
> commons-lang3-3.17.0-sources.jar=15954a47f38df821f97282d130c16e4885dcae16503e3876adc5518a3f6f7f3ecfa62b777b98b6ae11878e305f99ed28181c28f3369d4da2a3fb7c696d4be1d2
>
> commons-lang3-3.17.0-src.tar.gz=e633b0caeb9556c68384c2bf20e374fbac910b9979b25774c632e50c1bec41e97c14362978dc092c8b5859291e54fe51e76ad7a61c9b2efbe1e4538f46c1e3ee
>
> commons-lang3-3.17.0-src.zip=7e715243fd2cd0464eadd5140949c751ae199b87f4f6db6a0b878fe3bcbc513e3a9603f7bc09a2251cb61b794843826f3ea9d5c21a7b3b5f78cae13ab7b10bed
>
> commons-lang3-3.17.0-test-sources.jar=bca1775e70313838191d530181ecf41ae832cb5bf041d2713af71e8b6d931307776ed9f10cf27a7f6f45a2b497a6ab717730e2a21605473eddb829738ca9e242
>
> commons-lang3-3.17.0-tests.jar=b6138e9e92845ad790b2bbc43440ba16b92478700ee3f4e620b1fbb6d0796c2e110b53ab85f845d05a0d3e56f55417faf7eb01b15efe70339ccdf76ed3da76bc
>
> org.apache.commons_commons-lang3-3.17.0.spdx.json=b9ca110a8e4e5304091991db151ad64a43ddd6ac10c170b0759daa84565df333cee5cf8d85af2f600233c692b27b826858db1af1a0ab2add7fcb77a1f3c0
>
> I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy -P
> jacoco -P japicmp clean package site deploy' using:
>
> openjdk version "17.0.12" 2024-07-16
> OpenJDK Runtime Environment Homebrew (build 17.0.12+0)
> OpenJDK 64-Bit Server VM Homebrew (build 17.0.12+0, mixed mode, sharing)
>
> Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
> Maven home: /usr/local/Cellar/maven/3.9.9/libexec
> Java version: 17.0.12, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@17/17.0.12/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.6.1", arch: "x86_64", family: "mac"
>
> Darwin  23.6.0 Darwin Kernel Version 23.6.0: Mon Jul 29 21:13:00 PDT
> 2024; root:xnu-10063.141.2~1/RELEASE_X86_64 x86_64
>
> Details of changes since 3.16.0 are in the release notes:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/RELEASE-NOTES.txt
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/changes-report.html
>
> Site:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/index.html
> (note some *relative* links are broken and the 3.17.0 directories are
> not yet created - these will be OK once the site is deployed.)
>
> JApiCmp Report (compared to 3.16.0):
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/japicmp.html
>
> ***
> Note that the above report notes several errors.
> These are considered OK for the reasons stated below.
> These exceptions are also noted in the Changes and Release Notes.
>
> Errors reported:
> - methods added to interface: OK because that does not affect binary
> compatibility.
> - etc.
> ***
>
> RAT Report:
>
> https://dist.apache.org/repos

[VOTE] Release Apache Commons Lang 3.17.0 based on RC1

2024-08-24 Thread Gary Gregory
We have fixed a few bugs and added enhancements since Apache Commons Lang
3.16.0 was released, so I would like to release Apache Commons Lang 3.17.0.

Apache Commons Lang 3.17.0 RC1 is available for review here:
https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1 (svn
revision 71083)

The Git tag commons-lang-3.17.0-RC1 commit for this RC is
29ccc7665f3bc5d84155a3092ab2209a053324e6 which you can browse here:

https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=29ccc7665f3bc5d84155a3092ab2209a053324e6
You may checkout this tag using:
git clone https://gitbox.apache.org/repos/asf/commons-lang.git --branch
commons-lang-3.17.0-RC1 commons-lang-3.17.0-RC1

Maven artifacts are here:

https://repository.apache.org/content/repositories/orgapachecommons-1777/org/apache/commons/commons-lang3/3.17.0/

These are the artifacts and their hashes:

#Release SHA-512s
#Sat Aug 24 19:06:25 UTC 2024
commons-lang3-3.17.0-bin.tar.gz=8927a406a1bd084b548f89cf15fe4bc7567dcaa50ae8abae54e9c883c1574c648fcc8ad6c3abaa381dfbdf1801727ac5e6c4572063203a1dfac293d122282f05
commons-lang3-3.17.0-bin.zip=00ea810d00b0f8a5bf898edfed1fa022e9bd2bf31c9c00859de2ac6c4bc971d6833f3c2e0b24cecad6bb979de2078be8b1cc7eb42ca63c9ec35f70b1490e8c3d
commons-lang3-3.17.0-bom.json=b39ff96546bccdcf8fd2547ba3c130988541a99557e08de4b99bae09c43be569bf1939cec9fdba65d54df890c80fe58ba72e5194f9adb26c00b3f497f7f04230
commons-lang3-3.17.0-bom.xml=973b469f1395cfd709f281878faaed610cde2a778e66609ccd76408a17718c5291e538f1fe1b09052b7042d0aa7bed1f38f39249b3e2c0ff374d3165d63b443b
commons-lang3-3.17.0-javadoc.jar=64a1feec66688bb06486871a6a0bf3075d57efddad8fd36a1d540c88ac8e7c562cf5dbffd5c4e5155cbc808f10b8001210728719727fdc6d246a0536fdc60d35
commons-lang3-3.17.0-sources.jar=15954a47f38df821f97282d130c16e4885dcae16503e3876adc5518a3f6f7f3ecfa62b777b98b6ae11878e305f99ed28181c28f3369d4da2a3fb7c696d4be1d2
commons-lang3-3.17.0-src.tar.gz=e633b0caeb9556c68384c2bf20e374fbac910b9979b25774c632e50c1bec41e97c14362978dc092c8b5859291e54fe51e76ad7a61c9b2efbe1e4538f46c1e3ee
commons-lang3-3.17.0-src.zip=7e715243fd2cd0464eadd5140949c751ae199b87f4f6db6a0b878fe3bcbc513e3a9603f7bc09a2251cb61b794843826f3ea9d5c21a7b3b5f78cae13ab7b10bed
commons-lang3-3.17.0-test-sources.jar=bca1775e70313838191d530181ecf41ae832cb5bf041d2713af71e8b6d931307776ed9f10cf27a7f6f45a2b497a6ab717730e2a21605473eddb829738ca9e242
commons-lang3-3.17.0-tests.jar=b6138e9e92845ad790b2bbc43440ba16b92478700ee3f4e620b1fbb6d0796c2e110b53ab85f845d05a0d3e56f55417faf7eb01b15efe70339ccdf76ed3da76bc
org.apache.commons_commons-lang3-3.17.0.spdx.json=b9ca110a8e4e5304091991db151ad64a43ddd6ac10c170b0759daa84565df333cee5cf8d85af2f600233c692b27b826858db1af1a0ab2add7fcb77a1f3c0

I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy -P
jacoco -P japicmp clean package site deploy' using:

openjdk version "17.0.12" 2024-07-16
OpenJDK Runtime Environment Homebrew (build 17.0.12+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.12+0, mixed mode, sharing)

Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: /usr/local/Cellar/maven/3.9.9/libexec
Java version: 17.0.12, vendor: Homebrew, runtime:
/usr/local/Cellar/openjdk@17/17.0.12/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.6.1", arch: "x86_64", family: "mac"

Darwin  23.6.0 Darwin Kernel Version 23.6.0: Mon Jul 29 21:13:00 PDT
2024; root:xnu-10063.141.2~1/RELEASE_X86_64 x86_64

Details of changes since 3.16.0 are in the release notes:

https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/RELEASE-NOTES.txt

https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/changes-report.html

Site:

https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/index.html
(note some *relative* links are broken and the 3.17.0 directories are
not yet created - these will be OK once the site is deployed.)

JApiCmp Report (compared to 3.16.0):

https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/japicmp.html

***
Note that the above report notes several errors.
These are considered OK for the reasons stated below.
These exceptions are also noted in the Changes and Release Notes.

Errors reported:
- methods added to interface: OK because that does not affect binary
compatibility.
- etc.
    ***

RAT Report:

https://dist.apache.org/repos/dist/dev/commons/lang/3.17.0-RC1/site/rat-report.html

KEYS:
  https://downloads.apache.org/commons/KEYS

Please review the release candidate and vote.
This vote will close no sooner than 72 hours from now.

  [ ] +1 Release these artifacts
  [ ] +0 OK, but...
  [ ] -0 OK, but really should fix...
  [ ] -1 I oppose this release because...

Thank you,

Gary Gregory,
Release Manager (using key 86fdc7e2a11262cb)

The following is intended as a helper and refresher for reviewers.

Validating a release candi

Re: [LANG] LANG-1747: Measure the execution time of functional interfaces #1254

2024-08-17 Thread Gary Gregory
Hello all,

Whichever names we pick if we accept the contribution, I think it is best
to look at the method names in context, not standalone.

For example, you would "say":

stopWatch.accept(x -> ...)

and so on.

I find it simpler to match the new names with the delegate but YMMV ;-)

All the names should be consistent in some way. IOW, ALL method names could
be

- stopWatch.add(...), or
- stopWatch.time(...), or
- ...

Wdyt?
Gary

On Sat, Aug 17, 2024, 2:55 PM Peter Burka  wrote:

> I think this is a useful addition, but  I wonder if these new APIs are
> misnamed: StopWatch::test doesn't actually test, nor does StopWatch::accept
> consume. Instead, these all wrap lambdas in a timed version of the same
> type. (There's probably some lambda calculus terminology for this.)
>
> I'd propose renaming all of the functional interface-wrapping functions to
> use a single, overloaded name, e.g. StopWatch::timed(...) or
> StopWatch::withTiming(...)
>
> /peter
>
> On Fri, Aug 16, 2024, 10:50 PM Gary Gregory 
> wrote:
>
> > Hi all,
> >
> > Please provide any feedback on
> > - LANG-1747: Measure the execution time of functional interfaces #1254
> > - https://github.com/apache/commons-lang/pull/1254/
> > TY!
> > Gary
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
>


Re: [LANG] LANG-1747: Measure the execution time of functional interfaces #1254

2024-08-17 Thread Peter Burka
I think this is a useful addition, but  I wonder if these new APIs are
misnamed: StopWatch::test doesn't actually test, nor does StopWatch::accept
consume. Instead, these all wrap lambdas in a timed version of the same
type. (There's probably some lambda calculus terminology for this.)

I'd propose renaming all of the functional interface-wrapping functions to
use a single, overloaded name, e.g. StopWatch::timed(...) or
StopWatch::withTiming(...)

/peter

On Fri, Aug 16, 2024, 10:50 PM Gary Gregory  wrote:

> Hi all,
>
> Please provide any feedback on
> - LANG-1747: Measure the execution time of functional interfaces #1254
> - https://github.com/apache/commons-lang/pull/1254/
> TY!
> Gary
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


[LANG] LANG-1747: Measure the execution time of functional interfaces #1254

2024-08-16 Thread Gary Gregory
Hi all,

Please provide any feedback on
- LANG-1747: Measure the execution time of functional interfaces #1254
- https://github.com/apache/commons-lang/pull/1254/
TY!
Gary

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



[lang] Thoughs on merging PR "Support generation of single quotes #1227"

2024-08-13 Thread Gary D. Gregory
Hi All,

I'd like some thoughts on merging 
https://github.com/apache/commons-lang/pull/1227

It seems OK to me.

Anyone else?

TY!
Gary

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



[ANNOUNCE] Apache Commons Lang Version 3.16.0

2024-08-07 Thread Gary Gregory
The Apache Commons team is pleased to announce Apache Commons Lang
Version 3.16.0.

Commons Lang is a set of utility functions and reusable components
that should be useful in any Java environment.

Starting with Commons Lang 3.9, we target Java 8, using those features.

For advice on upgrading from 2.x to 3.x, see:

https://commons.apache.org/lang/article3_0.html

Apache Commons Lang, a package of Java utility classes for the classes
that are in java.lang's hierarchy, or are considered to be so standard
as to justify existence in java.lang.

The code is tested using the latest revision of the JDK for supported
LTS releases: 8, 11, 17 and 21 currently. See
https://github.com/apache/commons-lang/blob/master/.github/workflows/maven.yml

Please ensure your build environment is up-to-date and kindly report
any build issues.

This is a feature and maintenance release. Java 8 or later is required.

Historical list of changes:
https://commons.apache.org/proper/commons-lang/changes-report.html

For complete information on Apache Commons Lang, including
instructions on how to submit bug reports, patches, or suggestions for
improvement, see the Apache Commons Lang website:

https://commons.apache.org/proper/commons-lang/

Download page: https://commons.apache.org/proper/commons-lang/download_lang.cgi

Have fun!
Gary Gregory
Apache Commons Team

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



Re: [VOTE] Release Apache Commons Lang 3.16.0 based on RC1

2024-08-07 Thread Gary Gregory
This vote thread passes with the following +1 votes:

- Rob Tompkins (chtompki, binding)
- Tomas Lanik (non-binding)
- Gary Gregory (ggregory, binding)
- Bruno Kinoshita (kinow, binding)

Gary

On Wed, Aug 7, 2024 at 11:11 AM Bruno P. Kinoshita  wrote:
>
> +1
>
> Build passing on
>
> Apache Maven 3.8.7
> Maven home: /usr/share/maven
> Java version: 17.0.12, vendor: Ubuntu, runtime: 
> /usr/lib/jvm/java-17-openjdk-amd64
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "6.8.0-39-generic", arch: "amd64", family: "unix"
>
> Thanks!!!
>
> On 2024/08/01 12:34:55 Gary Gregory wrote:
> > We have fixed a few bugs and added enhancements since Apache Commons
> > Lang 3.15.0 was released, so I would like to release Apache Commons
> > Lang 3.16.0.
> >
> > Apache Commons Lang 3.16.0 RC1 is available for review here:
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1
> > (svn revision 70651)
> >
> > The Git tag commons-lang-3.16.0-RC1 commit for this RC is
> > 6a2a10d5343cfe37c1d9fa42ac5edda7cab5 which you can browse here:
> > 
> > https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=6a2a10d5343cfe37c1d9fa42ac5edda7cab5
> > You may checkout this tag using:
> > git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> > --branch commons-lang-3.16.0-RC1 commons-lang-3.16.0-RC1
> >
> > Maven artifacts are here:
> > 
> > https://repository.apache.org/content/repositories/orgapachecommons-1763/org/apache/commons/commons-lang3/3.16.0/
> >
> > These are the artifacts and their hashes:
> >
> > #Release SHA-512s
> > #Thu Aug 01 12:24:25 UTC 2024
> > commons-lang3-3.16.0-bin.tar.gz=b028d890edf7e0538461dc325ca7767ae3dd292654ccb2d12560c39ee84e03b9b4304ac49b59a710dbf2dcb21ee605b6737508fc115ca2c92b8320500ab7fac8
> > commons-lang3-3.16.0-bin.zip=c10231ed795bd1747a323805b4cbf294e8eb9176404815d4ac8e65d8792141feed33393adbdbd9e732c9802de3934bad72a19fd69f80976460f52660fe21
> > commons-lang3-3.16.0-bom.json=322bbac48672ac1fe0fe7e6a2cc91e294dd2c09a4e48122cbb9ce2fbe94964dae0c123316d928b5b9d17397028fc500a4f01ce151ea083002b26fc423177b262
> > commons-lang3-3.16.0-bom.xml=3ae1b75ea4e3242188c68c001a0f869a7bfdb0ba0a031c619f586471cd2c2020eb3639dbe65295f34956b97302bfe2c249b95af9f1c4c1ab5fd8fcd342745187
> > commons-lang3-3.16.0-javadoc.jar=5b5301e46b70a23c4fd6b957f86321232bbfe354b9334be0423f497d5714dfb12f4ee1be6b4a8d232c01c6ed4bfeb052494127ce9de311b9b52cebea5c908ec8
> > commons-lang3-3.16.0-sources.jar=b3c71e990f4aeaaba099d8d7e50d44d142641b6f6f594476c873b5132062bc6b450dcd3a5a8fa42dde2813f9f9e7d6b72d5d49c3b04e2654f4b65981ffa696c6
> > commons-lang3-3.16.0-src.tar.gz=f9b36642d6b31b94cd6f32fcdf9364910ccea06dd331f3aa4e474a42d496b9d9f1fb1375f92e563125ecb0dce71d5cccbc4c9965edf7ab8136df272bc03d126c
> > commons-lang3-3.16.0-src.zip=9be57e0814e8e0b59b759ab0ddc538d4a7bfcccfb5fe2bf9c817b68df8b85319c55b76549f5c92b41da383f29442c03e1a6bcd8ccd2f3cf8129d43938ffca363
> > commons-lang3-3.16.0-test-sources.jar=051952f32fd7d51dba5aa3be67bc997d6ca1f316f780af70e807ac43419cb68d700890ab4e474904deb5b136ca683a8aa91bba5f108d7de1a0363ceccea10f4b
> > commons-lang3-3.16.0-tests.jar=4b0147a3a8d0214bf798eb3e52499be9d02f0cb2639d93877217d4b1a76cc394a887213b2043eea3ceeb26659b1298c28c93605f43d8039f10adf9fbfa8d2c49
> > org.apache.commons_commons-lang3-3.16.0.spdx.json=ff9c6d85b84fa97173574a4484f9cb8ff3a8b1e0d2ce49bc303b633bfc03b8c2112454e02c88268042b46a2f81ce48030d323aa42bd8f8da12cdcb88082c9ed4
> >
> > I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> > -P jacoco -P japicmp clean package site deploy' using:
> >
> > openjdk version "21.0.4" 2024-07-16
> > OpenJDK Runtime Environment Homebrew (build 21.0.4)
> > OpenJDK 64-Bit Server VM Homebrew (build 21.0.4, mixed mode, sharing)
> >
> > Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> > Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> > Java version: 21.0.4, vendor: Homebrew, runtime:
> > /usr/local/Cellar/openjdk@21/21.0.4/libexec/openjdk.jdk/Contents/Home
> > Default locale: en_US, platform encoding: UTF-8
> > OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
> >
> > Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> > PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
> >
> > Details of changes since 3.15.0 are in the release notes:
> > 
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/RELEASE-NOTES.txt
> > 
> > https://dist.apache.org/repos/d

Re: [VOTE] Release Apache Commons Lang 3.16.0 based on RC1

2024-08-07 Thread Bruno P. Kinoshita
+1

Build passing on 

Apache Maven 3.8.7
Maven home: /usr/share/maven
Java version: 17.0.12, vendor: Ubuntu, runtime: 
/usr/lib/jvm/java-17-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "6.8.0-39-generic", arch: "amd64", family: "unix"

Thanks!!!

On 2024/08/01 12:34:55 Gary Gregory wrote:
> We have fixed a few bugs and added enhancements since Apache Commons
> Lang 3.15.0 was released, so I would like to release Apache Commons
> Lang 3.16.0.
> 
> Apache Commons Lang 3.16.0 RC1 is available for review here:
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1
> (svn revision 70651)
> 
> The Git tag commons-lang-3.16.0-RC1 commit for this RC is
> 6a2a10d5343cfe37c1d9fa42ac5edda7cab5 which you can browse here:
> 
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=6a2a10d5343cfe37c1d9fa42ac5edda7cab5
> You may checkout this tag using:
> git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch commons-lang-3.16.0-RC1 commons-lang-3.16.0-RC1
> 
> Maven artifacts are here:
> 
> https://repository.apache.org/content/repositories/orgapachecommons-1763/org/apache/commons/commons-lang3/3.16.0/
> 
> These are the artifacts and their hashes:
> 
> #Release SHA-512s
> #Thu Aug 01 12:24:25 UTC 2024
> commons-lang3-3.16.0-bin.tar.gz=b028d890edf7e0538461dc325ca7767ae3dd292654ccb2d12560c39ee84e03b9b4304ac49b59a710dbf2dcb21ee605b6737508fc115ca2c92b8320500ab7fac8
> commons-lang3-3.16.0-bin.zip=c10231ed795bd1747a323805b4cbf294e8eb9176404815d4ac8e65d8792141feed33393adbdbd9e732c9802de3934bad72a19fd69f80976460f52660fe21
> commons-lang3-3.16.0-bom.json=322bbac48672ac1fe0fe7e6a2cc91e294dd2c09a4e48122cbb9ce2fbe94964dae0c123316d928b5b9d17397028fc500a4f01ce151ea083002b26fc423177b262
> commons-lang3-3.16.0-bom.xml=3ae1b75ea4e3242188c68c001a0f869a7bfdb0ba0a031c619f586471cd2c2020eb3639dbe65295f34956b97302bfe2c249b95af9f1c4c1ab5fd8fcd342745187
> commons-lang3-3.16.0-javadoc.jar=5b5301e46b70a23c4fd6b957f86321232bbfe354b9334be0423f497d5714dfb12f4ee1be6b4a8d232c01c6ed4bfeb052494127ce9de311b9b52cebea5c908ec8
> commons-lang3-3.16.0-sources.jar=b3c71e990f4aeaaba099d8d7e50d44d142641b6f6f594476c873b5132062bc6b450dcd3a5a8fa42dde2813f9f9e7d6b72d5d49c3b04e2654f4b65981ffa696c6
> commons-lang3-3.16.0-src.tar.gz=f9b36642d6b31b94cd6f32fcdf9364910ccea06dd331f3aa4e474a42d496b9d9f1fb1375f92e563125ecb0dce71d5cccbc4c9965edf7ab8136df272bc03d126c
> commons-lang3-3.16.0-src.zip=9be57e0814e8e0b59b759ab0ddc538d4a7bfcccfb5fe2bf9c817b68df8b85319c55b76549f5c92b41da383f29442c03e1a6bcd8ccd2f3cf8129d43938ffca363
> commons-lang3-3.16.0-test-sources.jar=051952f32fd7d51dba5aa3be67bc997d6ca1f316f780af70e807ac43419cb68d700890ab4e474904deb5b136ca683a8aa91bba5f108d7de1a0363ceccea10f4b
> commons-lang3-3.16.0-tests.jar=4b0147a3a8d0214bf798eb3e52499be9d02f0cb2639d93877217d4b1a76cc394a887213b2043eea3ceeb26659b1298c28c93605f43d8039f10adf9fbfa8d2c49
> org.apache.commons_commons-lang3-3.16.0.spdx.json=ff9c6d85b84fa97173574a4484f9cb8ff3a8b1e0d2ce49bc303b633bfc03b8c2112454e02c88268042b46a2f81ce48030d323aa42bd8f8da12cdcb88082c9ed4
> 
> I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> -P jacoco -P japicmp clean package site deploy' using:
> 
> openjdk version "21.0.4" 2024-07-16
> OpenJDK Runtime Environment Homebrew (build 21.0.4)
> OpenJDK 64-Bit Server VM Homebrew (build 21.0.4, mixed mode, sharing)
> 
> Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> Java version: 21.0.4, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@21/21.0.4/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
> 
> Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
> 
> Details of changes since 3.15.0 are in the release notes:
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/RELEASE-NOTES.txt
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/changes-report.html
> 
> Site:
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/index.html
> (note some *relative* links are broken and the 3.16.0 directories
> are not yet created - these will be OK once the site is deployed.)
> 
> JApiCmp Report (compared to 3.15.0):
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/japicmp.html
> 
> RAT Report:
> 
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/rat-report.html
> 
> KEYS:

Re: [VOTE] Release Apache Commons Lang 3.16.0 based on RC1

2024-08-02 Thread Gary Gregory
My +1

Gary

On Fri, Aug 2, 2024 at 11:17 AM Rob Tompkins  wrote:
>
> +1 all looks good to me.
>
> Thanks Gary!
>
> -Rob
>
> > On Aug 1, 2024, at 8:34 AM, Gary Gregory  wrote:
> >
> > We have fixed a few bugs and added enhancements since Apache Commons
> > Lang 3.15.0 was released, so I would like to release Apache Commons
> > Lang 3.16.0.
> >
> > Apache Commons Lang 3.16.0 RC1 is available for review here:
> >https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1
> > (svn revision 70651)
> >
> > The Git tag commons-lang-3.16.0-RC1 commit for this RC is
> > 6a2a10d5343cfe37c1d9fa42ac5edda7cab5 which you can browse here:
> >
> > https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=6a2a10d5343cfe37c1d9fa42ac5edda7cab5
> > You may checkout this tag using:
> >git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> > --branch commons-lang-3.16.0-RC1 commons-lang-3.16.0-RC1
> >
> > Maven artifacts are here:
> >
> > https://repository.apache.org/content/repositories/orgapachecommons-1763/org/apache/commons/commons-lang3/3.16.0/
> >
> > These are the artifacts and their hashes:
> >
> > #Release SHA-512s
> > #Thu Aug 01 12:24:25 UTC 2024
> > commons-lang3-3.16.0-bin.tar.gz=b028d890edf7e0538461dc325ca7767ae3dd292654ccb2d12560c39ee84e03b9b4304ac49b59a710dbf2dcb21ee605b6737508fc115ca2c92b8320500ab7fac8
> > commons-lang3-3.16.0-bin.zip=c10231ed795bd1747a323805b4cbf294e8eb9176404815d4ac8e65d8792141feed33393adbdbd9e732c9802de3934bad72a19fd69f80976460f52660fe21
> > commons-lang3-3.16.0-bom.json=322bbac48672ac1fe0fe7e6a2cc91e294dd2c09a4e48122cbb9ce2fbe94964dae0c123316d928b5b9d17397028fc500a4f01ce151ea083002b26fc423177b262
> > commons-lang3-3.16.0-bom.xml=3ae1b75ea4e3242188c68c001a0f869a7bfdb0ba0a031c619f586471cd2c2020eb3639dbe65295f34956b97302bfe2c249b95af9f1c4c1ab5fd8fcd342745187
> > commons-lang3-3.16.0-javadoc.jar=5b5301e46b70a23c4fd6b957f86321232bbfe354b9334be0423f497d5714dfb12f4ee1be6b4a8d232c01c6ed4bfeb052494127ce9de311b9b52cebea5c908ec8
> > commons-lang3-3.16.0-sources.jar=b3c71e990f4aeaaba099d8d7e50d44d142641b6f6f594476c873b5132062bc6b450dcd3a5a8fa42dde2813f9f9e7d6b72d5d49c3b04e2654f4b65981ffa696c6
> > commons-lang3-3.16.0-src.tar.gz=f9b36642d6b31b94cd6f32fcdf9364910ccea06dd331f3aa4e474a42d496b9d9f1fb1375f92e563125ecb0dce71d5cccbc4c9965edf7ab8136df272bc03d126c
> > commons-lang3-3.16.0-src.zip=9be57e0814e8e0b59b759ab0ddc538d4a7bfcccfb5fe2bf9c817b68df8b85319c55b76549f5c92b41da383f29442c03e1a6bcd8ccd2f3cf8129d43938ffca363
> > commons-lang3-3.16.0-test-sources.jar=051952f32fd7d51dba5aa3be67bc997d6ca1f316f780af70e807ac43419cb68d700890ab4e474904deb5b136ca683a8aa91bba5f108d7de1a0363ceccea10f4b
> > commons-lang3-3.16.0-tests.jar=4b0147a3a8d0214bf798eb3e52499be9d02f0cb2639d93877217d4b1a76cc394a887213b2043eea3ceeb26659b1298c28c93605f43d8039f10adf9fbfa8d2c49
> > org.apache.commons_commons-lang3-3.16.0.spdx.json=ff9c6d85b84fa97173574a4484f9cb8ff3a8b1e0d2ce49bc303b633bfc03b8c2112454e02c88268042b46a2f81ce48030d323aa42bd8f8da12cdcb88082c9ed4
> >
> > I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> > -P jacoco -P japicmp clean package site deploy' using:
> >
> > openjdk version "21.0.4" 2024-07-16
> > OpenJDK Runtime Environment Homebrew (build 21.0.4)
> > OpenJDK 64-Bit Server VM Homebrew (build 21.0.4, mixed mode, sharing)
> >
> > Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> > Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> > Java version: 21.0.4, vendor: Homebrew, runtime:
> > /usr/local/Cellar/openjdk@21/21.0.4/libexec/openjdk.jdk/Contents/Home
> > Default locale: en_US, platform encoding: UTF-8
> > OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
> >
> > Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> > PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
> >
> > Details of changes since 3.15.0 are in the release notes:
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/RELEASE-NOTES.txt
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/changes-report.html
> >
> > Site:
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/index.html
> >(note some *relative* links are broken and the 3.16.0 directories
> > are not yet created - these will be OK once the site is deployed.)
> >
> > JApiCmp Report (compared to 3.15.0):
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/j

Re: [VOTE] Release Apache Commons Lang 3.16.0 based on RC1

2024-08-02 Thread Tomas Lanik
[+1]

Thank you!

Tomas Lanik

On Thu, Aug 1, 2024, 14:35 Gary Gregory  wrote:

> We have fixed a few bugs and added enhancements since Apache Commons
> Lang 3.15.0 was released, so I would like to release Apache Commons
> Lang 3.16.0.
>
> Apache Commons Lang 3.16.0 RC1 is available for review here:
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1
> (svn revision 70651)
>
> The Git tag commons-lang-3.16.0-RC1 commit for this RC is
> 6a2a10d5343cfe37c1d9fa42ac5edda7cab5 which you can browse here:
>
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=6a2a10d5343cfe37c1d9fa42ac5edda7cab5
> You may checkout this tag using:
> git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch <https://gitbox.apache.org/repos/asf/commons-lang.git--branch>
> commons-lang-3.16.0-RC1 commons-lang-3.16.0-RC1
>
> Maven artifacts are here:
>
> https://repository.apache.org/content/repositories/orgapachecommons-1763/org/apache/commons/commons-lang3/3.16.0/
>
> These are the artifacts and their hashes:
>
> #Release SHA-512s
> #Thu Aug 01 12:24:25 UTC 2024
>
> commons-lang3-3.16.0-bin.tar.gz=b028d890edf7e0538461dc325ca7767ae3dd292654ccb2d12560c39ee84e03b9b4304ac49b59a710dbf2dcb21ee605b6737508fc115ca2c92b8320500ab7fac8
>
> commons-lang3-3.16.0-bin.zip=c10231ed795bd1747a323805b4cbf294e8eb9176404815d4ac8e65d8792141feed33393adbdbd9e732c9802de3934bad72a19fd69f80976460f52660fe21
>
> commons-lang3-3.16.0-bom.json=322bbac48672ac1fe0fe7e6a2cc91e294dd2c09a4e48122cbb9ce2fbe94964dae0c123316d928b5b9d17397028fc500a4f01ce151ea083002b26fc423177b262
>
> commons-lang3-3.16.0-bom.xml=3ae1b75ea4e3242188c68c001a0f869a7bfdb0ba0a031c619f586471cd2c2020eb3639dbe65295f34956b97302bfe2c249b95af9f1c4c1ab5fd8fcd342745187
>
> commons-lang3-3.16.0-javadoc.jar=5b5301e46b70a23c4fd6b957f86321232bbfe354b9334be0423f497d5714dfb12f4ee1be6b4a8d232c01c6ed4bfeb052494127ce9de311b9b52cebea5c908ec8
>
> commons-lang3-3.16.0-sources.jar=b3c71e990f4aeaaba099d8d7e50d44d142641b6f6f594476c873b5132062bc6b450dcd3a5a8fa42dde2813f9f9e7d6b72d5d49c3b04e2654f4b65981ffa696c6
>
> commons-lang3-3.16.0-src.tar.gz=f9b36642d6b31b94cd6f32fcdf9364910ccea06dd331f3aa4e474a42d496b9d9f1fb1375f92e563125ecb0dce71d5cccbc4c9965edf7ab8136df272bc03d126c
>
> commons-lang3-3.16.0-src.zip=9be57e0814e8e0b59b759ab0ddc538d4a7bfcccfb5fe2bf9c817b68df8b85319c55b76549f5c92b41da383f29442c03e1a6bcd8ccd2f3cf8129d43938ffca363
>
> commons-lang3-3.16.0-test-sources.jar=051952f32fd7d51dba5aa3be67bc997d6ca1f316f780af70e807ac43419cb68d700890ab4e474904deb5b136ca683a8aa91bba5f108d7de1a0363ceccea10f4b
>
> commons-lang3-3.16.0-tests.jar=4b0147a3a8d0214bf798eb3e52499be9d02f0cb2639d93877217d4b1a76cc394a887213b2043eea3ceeb26659b1298c28c93605f43d8039f10adf9fbfa8d2c49
>
> org.apache.commons_commons-lang3-3.16.0.spdx.json=ff9c6d85b84fa97173574a4484f9cb8ff3a8b1e0d2ce49bc303b633bfc03b8c2112454e02c88268042b46a2f81ce48030d323aa42bd8f8da12cdcb88082c9ed4
>
> I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> -P jacoco -P japicmp clean package site deploy' using:
>
> openjdk version "21.0.4" 2024-07-16
> OpenJDK Runtime Environment Homebrew (build 21.0.4)
> OpenJDK 64-Bit Server VM Homebrew (build 21.0.4, mixed mode, sharing)
>
> Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> Java version: 21.0.4, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@21/21.0.4/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
>
> Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
>
> Details of changes since 3.15.0 are in the release notes:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/RELEASE-NOTES.txt
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/changes-report.html
>
> Site:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/index.html
> (note some *relative* links are broken and the 3.16.0 directories
> are not yet created - these will be OK once the site is deployed.)
>
> JApiCmp Report (compared to 3.15.0):
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/japicmp.html
>
> RAT Report:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/rat-report.html
>
> KEYS:
>   https://downloads.apache.org/commons/KEYS
>
> Please review the release candidate and vote.
> This vote will close no sooner than 72 hours from now.
>
>   [ ] +1 Release these artifacts
>   [ ]

Re: [VOTE] Release Apache Commons Lang 3.16.0 based on RC1

2024-08-02 Thread Rob Tompkins
+1 all looks good to me.

Thanks Gary!

-Rob

> On Aug 1, 2024, at 8:34 AM, Gary Gregory  wrote:
> 
> We have fixed a few bugs and added enhancements since Apache Commons
> Lang 3.15.0 was released, so I would like to release Apache Commons
> Lang 3.16.0.
> 
> Apache Commons Lang 3.16.0 RC1 is available for review here:
>https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1
> (svn revision 70651)
> 
> The Git tag commons-lang-3.16.0-RC1 commit for this RC is
> 6a2a10d5343cfe37c1d9fa42ac5edda7cab5 which you can browse here:
>
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=6a2a10d5343cfe37c1d9fa42ac5edda7cab5
> You may checkout this tag using:
>git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch commons-lang-3.16.0-RC1 commons-lang-3.16.0-RC1
> 
> Maven artifacts are here:
>
> https://repository.apache.org/content/repositories/orgapachecommons-1763/org/apache/commons/commons-lang3/3.16.0/
> 
> These are the artifacts and their hashes:
> 
> #Release SHA-512s
> #Thu Aug 01 12:24:25 UTC 2024
> commons-lang3-3.16.0-bin.tar.gz=b028d890edf7e0538461dc325ca7767ae3dd292654ccb2d12560c39ee84e03b9b4304ac49b59a710dbf2dcb21ee605b6737508fc115ca2c92b8320500ab7fac8
> commons-lang3-3.16.0-bin.zip=c10231ed795bd1747a323805b4cbf294e8eb9176404815d4ac8e65d8792141feed33393adbdbd9e732c9802de3934bad72a19fd69f80976460f52660fe21
> commons-lang3-3.16.0-bom.json=322bbac48672ac1fe0fe7e6a2cc91e294dd2c09a4e48122cbb9ce2fbe94964dae0c123316d928b5b9d17397028fc500a4f01ce151ea083002b26fc423177b262
> commons-lang3-3.16.0-bom.xml=3ae1b75ea4e3242188c68c001a0f869a7bfdb0ba0a031c619f586471cd2c2020eb3639dbe65295f34956b97302bfe2c249b95af9f1c4c1ab5fd8fcd342745187
> commons-lang3-3.16.0-javadoc.jar=5b5301e46b70a23c4fd6b957f86321232bbfe354b9334be0423f497d5714dfb12f4ee1be6b4a8d232c01c6ed4bfeb052494127ce9de311b9b52cebea5c908ec8
> commons-lang3-3.16.0-sources.jar=b3c71e990f4aeaaba099d8d7e50d44d142641b6f6f594476c873b5132062bc6b450dcd3a5a8fa42dde2813f9f9e7d6b72d5d49c3b04e2654f4b65981ffa696c6
> commons-lang3-3.16.0-src.tar.gz=f9b36642d6b31b94cd6f32fcdf9364910ccea06dd331f3aa4e474a42d496b9d9f1fb1375f92e563125ecb0dce71d5cccbc4c9965edf7ab8136df272bc03d126c
> commons-lang3-3.16.0-src.zip=9be57e0814e8e0b59b759ab0ddc538d4a7bfcccfb5fe2bf9c817b68df8b85319c55b76549f5c92b41da383f29442c03e1a6bcd8ccd2f3cf8129d43938ffca363
> commons-lang3-3.16.0-test-sources.jar=051952f32fd7d51dba5aa3be67bc997d6ca1f316f780af70e807ac43419cb68d700890ab4e474904deb5b136ca683a8aa91bba5f108d7de1a0363ceccea10f4b
> commons-lang3-3.16.0-tests.jar=4b0147a3a8d0214bf798eb3e52499be9d02f0cb2639d93877217d4b1a76cc394a887213b2043eea3ceeb26659b1298c28c93605f43d8039f10adf9fbfa8d2c49
> org.apache.commons_commons-lang3-3.16.0.spdx.json=ff9c6d85b84fa97173574a4484f9cb8ff3a8b1e0d2ce49bc303b633bfc03b8c2112454e02c88268042b46a2f81ce48030d323aa42bd8f8da12cdcb88082c9ed4
> 
> I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> -P jacoco -P japicmp clean package site deploy' using:
> 
> openjdk version "21.0.4" 2024-07-16
> OpenJDK Runtime Environment Homebrew (build 21.0.4)
> OpenJDK 64-Bit Server VM Homebrew (build 21.0.4, mixed mode, sharing)
> 
> Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> Java version: 21.0.4, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@21/21.0.4/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
> 
> Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
> 
> Details of changes since 3.15.0 are in the release notes:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/RELEASE-NOTES.txt
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/changes-report.html
> 
> Site:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/index.html
>(note some *relative* links are broken and the 3.16.0 directories
> are not yet created - these will be OK once the site is deployed.)
> 
> JApiCmp Report (compared to 3.15.0):
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/japicmp.html
> 
> RAT Report:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/rat-report.html
> 
> KEYS:
>  https://downloads.apache.org/commons/KEYS
> 
> Please review the release candidate and vote.
> This vote will close no sooner than 72 hours from now.
> 
>  [ ] +1 Release these artifacts
>  [ ] +0 OK, but...
>  [ ] -0 OK, but really should fix...
>  [ ] -1

[VOTE] Release Apache Commons Lang 3.16.0 based on RC1

2024-08-01 Thread Gary Gregory
We have fixed a few bugs and added enhancements since Apache Commons
Lang 3.15.0 was released, so I would like to release Apache Commons
Lang 3.16.0.

Apache Commons Lang 3.16.0 RC1 is available for review here:
https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1
(svn revision 70651)

The Git tag commons-lang-3.16.0-RC1 commit for this RC is
6a2a10d5343cfe37c1d9fa42ac5edda7cab5 which you can browse here:

https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=6a2a10d5343cfe37c1d9fa42ac5edda7cab5
You may checkout this tag using:
git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-3.16.0-RC1 commons-lang-3.16.0-RC1

Maven artifacts are here:

https://repository.apache.org/content/repositories/orgapachecommons-1763/org/apache/commons/commons-lang3/3.16.0/

These are the artifacts and their hashes:

#Release SHA-512s
#Thu Aug 01 12:24:25 UTC 2024
commons-lang3-3.16.0-bin.tar.gz=b028d890edf7e0538461dc325ca7767ae3dd292654ccb2d12560c39ee84e03b9b4304ac49b59a710dbf2dcb21ee605b6737508fc115ca2c92b8320500ab7fac8
commons-lang3-3.16.0-bin.zip=c10231ed795bd1747a323805b4cbf294e8eb9176404815d4ac8e65d8792141feed33393adbdbd9e732c9802de3934bad72a19fd69f80976460f52660fe21
commons-lang3-3.16.0-bom.json=322bbac48672ac1fe0fe7e6a2cc91e294dd2c09a4e48122cbb9ce2fbe94964dae0c123316d928b5b9d17397028fc500a4f01ce151ea083002b26fc423177b262
commons-lang3-3.16.0-bom.xml=3ae1b75ea4e3242188c68c001a0f869a7bfdb0ba0a031c619f586471cd2c2020eb3639dbe65295f34956b97302bfe2c249b95af9f1c4c1ab5fd8fcd342745187
commons-lang3-3.16.0-javadoc.jar=5b5301e46b70a23c4fd6b957f86321232bbfe354b9334be0423f497d5714dfb12f4ee1be6b4a8d232c01c6ed4bfeb052494127ce9de311b9b52cebea5c908ec8
commons-lang3-3.16.0-sources.jar=b3c71e990f4aeaaba099d8d7e50d44d142641b6f6f594476c873b5132062bc6b450dcd3a5a8fa42dde2813f9f9e7d6b72d5d49c3b04e2654f4b65981ffa696c6
commons-lang3-3.16.0-src.tar.gz=f9b36642d6b31b94cd6f32fcdf9364910ccea06dd331f3aa4e474a42d496b9d9f1fb1375f92e563125ecb0dce71d5cccbc4c9965edf7ab8136df272bc03d126c
commons-lang3-3.16.0-src.zip=9be57e0814e8e0b59b759ab0ddc538d4a7bfcccfb5fe2bf9c817b68df8b85319c55b76549f5c92b41da383f29442c03e1a6bcd8ccd2f3cf8129d43938ffca363
commons-lang3-3.16.0-test-sources.jar=051952f32fd7d51dba5aa3be67bc997d6ca1f316f780af70e807ac43419cb68d700890ab4e474904deb5b136ca683a8aa91bba5f108d7de1a0363ceccea10f4b
commons-lang3-3.16.0-tests.jar=4b0147a3a8d0214bf798eb3e52499be9d02f0cb2639d93877217d4b1a76cc394a887213b2043eea3ceeb26659b1298c28c93605f43d8039f10adf9fbfa8d2c49
org.apache.commons_commons-lang3-3.16.0.spdx.json=ff9c6d85b84fa97173574a4484f9cb8ff3a8b1e0d2ce49bc303b633bfc03b8c2112454e02c88268042b46a2f81ce48030d323aa42bd8f8da12cdcb88082c9ed4

I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
-P jacoco -P japicmp clean package site deploy' using:

openjdk version "21.0.4" 2024-07-16
OpenJDK Runtime Environment Homebrew (build 21.0.4)
OpenJDK 64-Bit Server VM Homebrew (build 21.0.4, mixed mode, sharing)

Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: /usr/local/Cellar/maven/3.9.8/libexec
Java version: 21.0.4, vendor: Homebrew, runtime:
/usr/local/Cellar/openjdk@21/21.0.4/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"

Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64

Details of changes since 3.15.0 are in the release notes:

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/RELEASE-NOTES.txt

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/changes-report.html

Site:

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/index.html
(note some *relative* links are broken and the 3.16.0 directories
are not yet created - these will be OK once the site is deployed.)

JApiCmp Report (compared to 3.15.0):

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/japicmp.html

RAT Report:

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/rat-report.html

KEYS:
  https://downloads.apache.org/commons/KEYS

Please review the release candidate and vote.
This vote will close no sooner than 72 hours from now.

  [ ] +1 Release these artifacts
  [ ] +0 OK, but...
  [ ] -0 OK, but really should fix...
  [ ] -1 I oppose this release because...

Thank you,

Gary Gregory,
Release Manager (using key 86fdc7e2a11262cb)

The following is intended as a helper and refresher for reviewers.

Validating a release candidate
==

These guidelines are NOT complete.

Requirements: Git, Java, Maven.

You can validate a release from a release candidate (RC) tag as follows.

1a) Clone and checkout the RC tag

git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-3.16.

[ANNOUNCE] Apache Commons Lang Version 3.15.0

2024-07-18 Thread Gary Gregory
The Apache Commons team is pleased to announce Apache Commons Lang
Version 3.15.0.

Commons Lang is a set of utility functions and reusable components
that should be useful in any Java environment.

Starting with Commons Lang 3.9, we target Java 8, using those features.

For advice on upgrading from 2.x to 3.x, see:

https://commons.apache.org/lang/article3_0.html

Apache Commons Lang, a package of Java utility classes for the classes
that are in java.lang's hierarchy, or are considered to be so standard
as to justify existence in java.lang.

The code is tested using the latest revision of the JDK for supported
LTS releases: 8, 11, 17 and 21 currently.

See 
https://github.com/apache/commons-lang/blob/master/.github/workflows/maven.yml

Please ensure your build environment is up-to-date and kindly report
any build issues.

Historical list of changes:
https://commons.apache.org/proper/commons-lang/changes-report.html

For complete information on Apache Commons Lang, including
instructions on how to submit bug reports, patches, or suggestions for
improvement, see the Apache Commons Lang website:

https://commons.apache.org/proper/commons-lang/

Download page: https://commons.apache.org/proper/commons-lang/download_lang.cgi

Have fun!
Gary Gregory
Apache Commons Team

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



[RESULT][VOTE] Release Apache Commons Lang 3.15.0 based on RC2

2024-07-17 Thread Gary Gregory
This vote passes with the following votes:

- Gary Gregory (ggregory, binding)
- Tomas Lanik (non-binding)
- Rob Tompkins (chtompki, binding)
- Henri Biestro (henrib, binding)

Gary

On Wed, Jul 17, 2024 at 2:17 PM Henri Biestro  wrote:
>
> [ +1 ]
>
> Builds and tests ok; site and Javadoc look good, reports are ok (commendable 
> coverage btw, nit JIRA report with no version and Tag List report shows a lot 
> of todo/fixme/etc).
>
> Built using: mvn -P jacoco -P japicmp clean install site -s 
> ~/.m2/commons-settings.xml
> With JDK:
> openjdk version "21.0.3" 2024-04-16 LTS
> OpenJDK Runtime Environment Zulu21.34+19-CA (build 21.0.3+9-LTS)
> OpenJDK 64-Bit Server VM Zulu21.34+19-CA (build 21.0.3+9-LTS, mixed mode, 
> sharing)
> And maven:
> Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
> Maven home: /Users/hbiestro/Java/apache-maven-3.8.6
> Java version: 21.0.3, vendor: Azul Systems, Inc., runtime: 
> /Library/Java/JavaVirtualMachines/zulu-21.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.5", arch: "aarch64", family: "mac"
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

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



Re: [VOTE] Release Apache Commons Lang 3.15.0 based on RC2

2024-07-17 Thread Henri Biestro
[ +1 ]

Builds and tests ok; site and Javadoc look good, reports are ok (commendable 
coverage btw, nit JIRA report with no version and Tag List report shows a lot 
of todo/fixme/etc).

Built using: mvn -P jacoco -P japicmp clean install site -s 
~/.m2/commons-settings.xml
With JDK:
openjdk version "21.0.3" 2024-04-16 LTS
OpenJDK Runtime Environment Zulu21.34+19-CA (build 21.0.3+9-LTS)
OpenJDK 64-Bit Server VM Zulu21.34+19-CA (build 21.0.3+9-LTS, mixed mode, 
sharing)
And maven:
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /Users/hbiestro/Java/apache-maven-3.8.6
Java version: 21.0.3, vendor: Azul Systems, Inc., runtime: 
/Library/Java/JavaVirtualMachines/zulu-21.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.5", arch: "aarch64", family: "mac"

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



Re: [VOTE] Release Apache Commons Lang 3.15.0 based on RC2

2024-07-16 Thread Rob Tompkins
+1 all looks good. Signatures, site release notes, builds java 11, 17, 21.

Thank you Gary!!!

-Rob

> On Jul 13, 2024, at 7:08 PM, Gary Gregory  wrote:
> 
> We have fixed a few bugs and added enhancements since Apache Commons
> Lang 3.14.0 was released, so I would like to release Apache Commons
> Lang 3.15.0.
> 
> Apache Commons Lang 3.15.0 RC2 is available for review here:
>https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2
> (svn revision 70292)
> 
> The Git tag commons-lang-3.15.0-RC2 commit for this RC is
> 535ec32c680a6581739a41bf97ecb8b8718c73b8 which you can browse here:
>
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=535ec32c680a6581739a41bf97ecb8b8718c73b8
> You may checkout this tag using:
>git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch commons-lang-3.15.0-RC2 commons-lang-3.15.0-RC2
> 
> Maven artifacts are here:
>
> https://repository.apache.org/content/repositories/orgapachecommons-1760/org/apache/commons/commons-lang3/3.15.0/
> 
> These are the artifacts and their hashes:
> 
> #Release SHA-512s
> #Sat Jul 13 22:56:40 UTC 2024
> commons-lang3-3.15.0-bin.tar.gz=b202d6d43785ad4813f3379b94603ee50d0ed7fa702d5e413a97e0fe7b24d679448e44547c4408ac1c7831da0baa1396ce91ba8f0a02764e33d4387c2350bcdf
> commons-lang3-3.15.0-bin.zip=8bee18ea4f4c0e87ac83806c805af91786055a96ccc6a9f760323f5abe851355fc7b14637246e3f5f5612c8774d6b0579426d325b21cffe98b623c35703e0434
> commons-lang3-3.15.0-bom.json=7473cb182e0ea855b54459c572cce0673ff780f3703aa3f629bf1d42acc921924792b7bfcd6073df89f5787c503df8def5c0b0581f83560ccc1faf81eff6b3ca
> commons-lang3-3.15.0-bom.xml=cecaf68e2e6ebd9345273defd46bd6f0b31323e2e31ec7e9cb9e439ca26a55db26dfe18e82208f9f398a3256d9f9104d4d3f4fa2bf6f54556c112b6d5f44a6ea
> commons-lang3-3.15.0-javadoc.jar=bc351ba2b94a951f96df59f0b029ea0060e97f8e0896a22308ee51d21a67b4258ef64736597c8660eab2f9df6d21ef3b9f1f10f4c10156a757e449c2bce78219
> commons-lang3-3.15.0-sources.jar=0f567c6eebc73e9dfa98e7cbeda5ef275ef026d1bfbf1d02d96d65594d058bc07961742f270b888f64023b756a20db1e4aa8b29ea7acd6ab079b3d3257f3ad27
> commons-lang3-3.15.0-src.tar.gz=530fa9200d8a004b2bb917e095486d7eebea93b84cdbdaaf8fb952e1c160043306daadc168d67ffdcb277b4b00d3b9db876257a08a5dce5713dcd3abd5ec802b
> commons-lang3-3.15.0-src.zip=a28c41293b0be816db246f8353c12b8636a5ad62a6913446a5462ee2e66d3471beec2dd53f30ab8f6576dc383d5828279ff0c2b32872806ae46633c7a639358e
> commons-lang3-3.15.0-test-sources.jar=b3017447cf41a86677a917493b5ff0cb2530ebd8cde2591b6e9ecd23374e6731dc3cfb3c57898bf5cb9a242fc09e2d54aa68595e22d664b0551ea4c9ef76f1f7
> commons-lang3-3.15.0-tests.jar=7baa621a90c1e3f8264f2a8a5e8f24ad5fa6dc5f81a549a2581dcfb2cf6a8be92f88679aa650c2a48ded8da6cca18caab8a25e7ae9703a8f27ba626c68dd3348
> org.apache.commons_commons-lang3-3.15.0.spdx.json=7511388b70b282639dbdeee9afed69e65e2858e8741170dfd85bc56dbe8d748aab1a3fd880669f03b8ee26c4e710fdce1e673ae8049ecf3e0b984f4b6f8e
> 
> I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> -P jacoco -P japicmp clean package site deploy ' using:
> 
> openjdk version "17.0.11" 2024-04-16
> OpenJDK Runtime Environment Homebrew (build 17.0.11+0)
> OpenJDK 64-Bit Server VM Homebrew (build 17.0.11+0, mixed mode, sharing)
> 
> Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> Java version: 17.0.11, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
> 
> Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
> 
> Details of changes since 3.14.0 are in the release notes:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/RELEASE-NOTES.txt
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/changes-report.html
> 
> Site:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/index.html
>(note some *relative* links are broken and the 3.15.0 directories
> are not yet created - these will be OK once the site is deployed.)
> 
> JApiCmp Report (compared to 3.14.0):
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/japicmp.html
> 
> RAT Report:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/rat-report.html
> 
> KEYS:
>  https://downloads.apache.org/commons/KEYS
> 
> Please review the release candidate and vote.
> This vote will close no sooner than 72 hours from now.
> 
>  [ ] +1 

Re: [VOTE] Release Apache Commons Lang 3.15.0 based on RC2

2024-07-16 Thread Gary D. Gregory
Tomas,

What did you do to review the release candidate?

TY,
Gary

On 2024/07/15 06:47:37 Tomas Lanik wrote:
> My +1
> 
> Tomas Lanik
> 
> On Sun, Jul 14, 2024, 01:09 Gary Gregory  wrote:
> 
> > We have fixed a few bugs and added enhancements since Apache Commons
> > Lang 3.14.0 was released, so I would like to release Apache Commons
> > Lang 3.15.0.
> >
> > Apache Commons Lang 3.15.0 RC2 is available for review here:
> >     https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2
> > (svn revision 70292)
> >
> > The Git tag commons-lang-3.15.0-RC2 commit for this RC is
> > 535ec32c680a6581739a41bf97ecb8b8718c73b8 which you can browse here:
> >
> > https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=535ec32c680a6581739a41bf97ecb8b8718c73b8
> > You may checkout this tag using:
> > git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> > --branch <https://gitbox.apache.org/repos/asf/commons-lang.git--branch>
> > commons-lang-3.15.0-RC2 commons-lang-3.15.0-RC2
> >
> > Maven artifacts are here:
> >
> > https://repository.apache.org/content/repositories/orgapachecommons-1760/org/apache/commons/commons-lang3/3.15.0/
> >
> > These are the artifacts and their hashes:
> >
> > #Release SHA-512s
> > #Sat Jul 13 22:56:40 UTC 2024
> >
> > commons-lang3-3.15.0-bin.tar.gz=b202d6d43785ad4813f3379b94603ee50d0ed7fa702d5e413a97e0fe7b24d679448e44547c4408ac1c7831da0baa1396ce91ba8f0a02764e33d4387c2350bcdf
> >
> > commons-lang3-3.15.0-bin.zip=8bee18ea4f4c0e87ac83806c805af91786055a96ccc6a9f760323f5abe851355fc7b14637246e3f5f5612c8774d6b0579426d325b21cffe98b623c35703e0434
> >
> > commons-lang3-3.15.0-bom.json=7473cb182e0ea855b54459c572cce0673ff780f3703aa3f629bf1d42acc921924792b7bfcd6073df89f5787c503df8def5c0b0581f83560ccc1faf81eff6b3ca
> >
> > commons-lang3-3.15.0-bom.xml=cecaf68e2e6ebd9345273defd46bd6f0b31323e2e31ec7e9cb9e439ca26a55db26dfe18e82208f9f398a3256d9f9104d4d3f4fa2bf6f54556c112b6d5f44a6ea
> >
> > commons-lang3-3.15.0-javadoc.jar=bc351ba2b94a951f96df59f0b029ea0060e97f8e0896a22308ee51d21a67b4258ef64736597c8660eab2f9df6d21ef3b9f1f10f4c10156a757e449c2bce78219
> >
> > commons-lang3-3.15.0-sources.jar=0f567c6eebc73e9dfa98e7cbeda5ef275ef026d1bfbf1d02d96d65594d058bc07961742f270b888f64023b756a20db1e4aa8b29ea7acd6ab079b3d3257f3ad27
> >
> > commons-lang3-3.15.0-src.tar.gz=530fa9200d8a004b2bb917e095486d7eebea93b84cdbdaaf8fb952e1c160043306daadc168d67ffdcb277b4b00d3b9db876257a08a5dce5713dcd3abd5ec802b
> >
> > commons-lang3-3.15.0-src.zip=a28c41293b0be816db246f8353c12b8636a5ad62a6913446a5462ee2e66d3471beec2dd53f30ab8f6576dc383d5828279ff0c2b32872806ae46633c7a639358e
> >
> > commons-lang3-3.15.0-test-sources.jar=b3017447cf41a86677a917493b5ff0cb2530ebd8cde2591b6e9ecd23374e6731dc3cfb3c57898bf5cb9a242fc09e2d54aa68595e22d664b0551ea4c9ef76f1f7
> >
> > commons-lang3-3.15.0-tests.jar=7baa621a90c1e3f8264f2a8a5e8f24ad5fa6dc5f81a549a2581dcfb2cf6a8be92f88679aa650c2a48ded8da6cca18caab8a25e7ae9703a8f27ba626c68dd3348
> >
> > org.apache.commons_commons-lang3-3.15.0.spdx.json=7511388b70b282639dbdeee9afed69e65e2858e8741170dfd85bc56dbe8d748aab1a3fd880669f03b8ee26c4e710fdce1e673ae8049ecf3e0b984f4b6f8e
> >
> > I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> > -P jacoco -P japicmp clean package site deploy ' using:
> >
> > openjdk version "17.0.11" 2024-04-16
> > OpenJDK Runtime Environment Homebrew (build 17.0.11+0)
> > OpenJDK 64-Bit Server VM Homebrew (build 17.0.11+0, mixed mode, sharing)
> >
> > Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> > Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> > Java version: 17.0.11, vendor: Homebrew, runtime:
> > /usr/local/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home
> > Default locale: en_US, platform encoding: UTF-8
> > OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
> >
> > Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> > PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
> >
> > Details of changes since 3.14.0 are in the release notes:
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/RELEASE-NOTES.txt
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/changes-report.html
> >
> > Site:
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/index.html
> > (note some *relative* links are broken and the 3.15.0 directories
> > are not yet created - these will be O

Re: [VOTE] Release Apache Commons Lang 3.15.0 based on RC2

2024-07-14 Thread Tomas Lanik
My +1

Tomas Lanik

On Sun, Jul 14, 2024, 01:09 Gary Gregory  wrote:

> We have fixed a few bugs and added enhancements since Apache Commons
> Lang 3.14.0 was released, so I would like to release Apache Commons
> Lang 3.15.0.
>
> Apache Commons Lang 3.15.0 RC2 is available for review here:
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2
> (svn revision 70292)
>
> The Git tag commons-lang-3.15.0-RC2 commit for this RC is
> 535ec32c680a6581739a41bf97ecb8b8718c73b8 which you can browse here:
>
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=535ec32c680a6581739a41bf97ecb8b8718c73b8
> You may checkout this tag using:
> git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch <https://gitbox.apache.org/repos/asf/commons-lang.git--branch>
> commons-lang-3.15.0-RC2 commons-lang-3.15.0-RC2
>
> Maven artifacts are here:
>
> https://repository.apache.org/content/repositories/orgapachecommons-1760/org/apache/commons/commons-lang3/3.15.0/
>
> These are the artifacts and their hashes:
>
> #Release SHA-512s
> #Sat Jul 13 22:56:40 UTC 2024
>
> commons-lang3-3.15.0-bin.tar.gz=b202d6d43785ad4813f3379b94603ee50d0ed7fa702d5e413a97e0fe7b24d679448e44547c4408ac1c7831da0baa1396ce91ba8f0a02764e33d4387c2350bcdf
>
> commons-lang3-3.15.0-bin.zip=8bee18ea4f4c0e87ac83806c805af91786055a96ccc6a9f760323f5abe851355fc7b14637246e3f5f5612c8774d6b0579426d325b21cffe98b623c35703e0434
>
> commons-lang3-3.15.0-bom.json=7473cb182e0ea855b54459c572cce0673ff780f3703aa3f629bf1d42acc921924792b7bfcd6073df89f5787c503df8def5c0b0581f83560ccc1faf81eff6b3ca
>
> commons-lang3-3.15.0-bom.xml=cecaf68e2e6ebd9345273defd46bd6f0b31323e2e31ec7e9cb9e439ca26a55db26dfe18e82208f9f398a3256d9f9104d4d3f4fa2bf6f54556c112b6d5f44a6ea
>
> commons-lang3-3.15.0-javadoc.jar=bc351ba2b94a951f96df59f0b029ea0060e97f8e0896a22308ee51d21a67b4258ef64736597c8660eab2f9df6d21ef3b9f1f10f4c10156a757e449c2bce78219
>
> commons-lang3-3.15.0-sources.jar=0f567c6eebc73e9dfa98e7cbeda5ef275ef026d1bfbf1d02d96d65594d058bc07961742f270b888f64023b756a20db1e4aa8b29ea7acd6ab079b3d3257f3ad27
>
> commons-lang3-3.15.0-src.tar.gz=530fa9200d8a004b2bb917e095486d7eebea93b84cdbdaaf8fb952e1c160043306daadc168d67ffdcb277b4b00d3b9db876257a08a5dce5713dcd3abd5ec802b
>
> commons-lang3-3.15.0-src.zip=a28c41293b0be816db246f8353c12b8636a5ad62a6913446a5462ee2e66d3471beec2dd53f30ab8f6576dc383d5828279ff0c2b32872806ae46633c7a639358e
>
> commons-lang3-3.15.0-test-sources.jar=b3017447cf41a86677a917493b5ff0cb2530ebd8cde2591b6e9ecd23374e6731dc3cfb3c57898bf5cb9a242fc09e2d54aa68595e22d664b0551ea4c9ef76f1f7
>
> commons-lang3-3.15.0-tests.jar=7baa621a90c1e3f8264f2a8a5e8f24ad5fa6dc5f81a549a2581dcfb2cf6a8be92f88679aa650c2a48ded8da6cca18caab8a25e7ae9703a8f27ba626c68dd3348
>
> org.apache.commons_commons-lang3-3.15.0.spdx.json=7511388b70b282639dbdeee9afed69e65e2858e8741170dfd85bc56dbe8d748aab1a3fd880669f03b8ee26c4e710fdce1e673ae8049ecf3e0b984f4b6f8e
>
> I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> -P jacoco -P japicmp clean package site deploy ' using:
>
> openjdk version "17.0.11" 2024-04-16
> OpenJDK Runtime Environment Homebrew (build 17.0.11+0)
> OpenJDK 64-Bit Server VM Homebrew (build 17.0.11+0, mixed mode, sharing)
>
> Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> Java version: 17.0.11, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
>
> Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
>
> Details of changes since 3.14.0 are in the release notes:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/RELEASE-NOTES.txt
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/changes-report.html
>
> Site:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/index.html
> (note some *relative* links are broken and the 3.15.0 directories
> are not yet created - these will be OK once the site is deployed.)
>
> JApiCmp Report (compared to 3.14.0):
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/japicmp.html
>
> RAT Report:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/rat-report.html
>
> KEYS:
>   https://downloads.apache.org/commons/KEYS
>
> Please review the release candidate and vote.
> This vote will close no sooner than 72 hours from now.
>
>   [ ] +1 Release these artifacts
>   [ ]

Re: [VOTE] Release Apache Commons Lang 3.15.0 based on RC2

2024-07-14 Thread Gary Gregory
My +1

Gary

On Sat, Jul 13, 2024, 7:08 PM Gary Gregory  wrote:

> We have fixed a few bugs and added enhancements since Apache Commons
> Lang 3.14.0 was released, so I would like to release Apache Commons
> Lang 3.15.0.
>
> Apache Commons Lang 3.15.0 RC2 is available for review here:
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2
> (svn revision 70292)
>
> The Git tag commons-lang-3.15.0-RC2 commit for this RC is
> 535ec32c680a6581739a41bf97ecb8b8718c73b8 which you can browse here:
>
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=535ec32c680a6581739a41bf97ecb8b8718c73b8
> You may checkout this tag using:
> git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch <https://gitbox.apache.org/repos/asf/commons-lang.git--branch>
> commons-lang-3.15.0-RC2 commons-lang-3.15.0-RC2
>
> Maven artifacts are here:
>
> https://repository.apache.org/content/repositories/orgapachecommons-1760/org/apache/commons/commons-lang3/3.15.0/
>
> These are the artifacts and their hashes:
>
> #Release SHA-512s
> #Sat Jul 13 22:56:40 UTC 2024
>
> commons-lang3-3.15.0-bin.tar.gz=b202d6d43785ad4813f3379b94603ee50d0ed7fa702d5e413a97e0fe7b24d679448e44547c4408ac1c7831da0baa1396ce91ba8f0a02764e33d4387c2350bcdf
>
> commons-lang3-3.15.0-bin.zip=8bee18ea4f4c0e87ac83806c805af91786055a96ccc6a9f760323f5abe851355fc7b14637246e3f5f5612c8774d6b0579426d325b21cffe98b623c35703e0434
>
> commons-lang3-3.15.0-bom.json=7473cb182e0ea855b54459c572cce0673ff780f3703aa3f629bf1d42acc921924792b7bfcd6073df89f5787c503df8def5c0b0581f83560ccc1faf81eff6b3ca
>
> commons-lang3-3.15.0-bom.xml=cecaf68e2e6ebd9345273defd46bd6f0b31323e2e31ec7e9cb9e439ca26a55db26dfe18e82208f9f398a3256d9f9104d4d3f4fa2bf6f54556c112b6d5f44a6ea
>
> commons-lang3-3.15.0-javadoc.jar=bc351ba2b94a951f96df59f0b029ea0060e97f8e0896a22308ee51d21a67b4258ef64736597c8660eab2f9df6d21ef3b9f1f10f4c10156a757e449c2bce78219
>
> commons-lang3-3.15.0-sources.jar=0f567c6eebc73e9dfa98e7cbeda5ef275ef026d1bfbf1d02d96d65594d058bc07961742f270b888f64023b756a20db1e4aa8b29ea7acd6ab079b3d3257f3ad27
>
> commons-lang3-3.15.0-src.tar.gz=530fa9200d8a004b2bb917e095486d7eebea93b84cdbdaaf8fb952e1c160043306daadc168d67ffdcb277b4b00d3b9db876257a08a5dce5713dcd3abd5ec802b
>
> commons-lang3-3.15.0-src.zip=a28c41293b0be816db246f8353c12b8636a5ad62a6913446a5462ee2e66d3471beec2dd53f30ab8f6576dc383d5828279ff0c2b32872806ae46633c7a639358e
>
> commons-lang3-3.15.0-test-sources.jar=b3017447cf41a86677a917493b5ff0cb2530ebd8cde2591b6e9ecd23374e6731dc3cfb3c57898bf5cb9a242fc09e2d54aa68595e22d664b0551ea4c9ef76f1f7
>
> commons-lang3-3.15.0-tests.jar=7baa621a90c1e3f8264f2a8a5e8f24ad5fa6dc5f81a549a2581dcfb2cf6a8be92f88679aa650c2a48ded8da6cca18caab8a25e7ae9703a8f27ba626c68dd3348
>
> org.apache.commons_commons-lang3-3.15.0.spdx.json=7511388b70b282639dbdeee9afed69e65e2858e8741170dfd85bc56dbe8d748aab1a3fd880669f03b8ee26c4e710fdce1e673ae8049ecf3e0b984f4b6f8e
>
> I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
> -P jacoco -P japicmp clean package site deploy ' using:
>
> openjdk version "17.0.11" 2024-04-16
> OpenJDK Runtime Environment Homebrew (build 17.0.11+0)
> OpenJDK 64-Bit Server VM Homebrew (build 17.0.11+0, mixed mode, sharing)
>
> Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
> Maven home: /usr/local/Cellar/maven/3.9.8/libexec
> Java version: 17.0.11, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"
>
> Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
> PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64
>
> Details of changes since 3.14.0 are in the release notes:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/RELEASE-NOTES.txt
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/changes-report.html
>
> Site:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/index.html
> (note some *relative* links are broken and the 3.15.0 directories
> are not yet created - these will be OK once the site is deployed.)
>
> JApiCmp Report (compared to 3.14.0):
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/japicmp.html
>
> RAT Report:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/rat-report.html
>
> KEYS:
>   https://downloads.apache.org/commons/KEYS
>
> Please review the release candidate and vote.
> This vote will close no sooner than 72 hours from now.
>
>   [ ] +1 Release these artifacts
>   [ ]

RE: [CANCEL][VOTE] Release Apache Commons Lang 3.15.0 based on RC1

2024-07-14 Thread VECHT Kumar
On 2024/07/13 22:41:16 Gary Gregory wrote:
> This RC is canceled. RC2 on the way.
>
> Gary
>
>
> On Sat, Jul 13, 2024 at 6:40 PM Gary Gregory  wrote:
> >
> > Good catch! I'll spin another RC.
> >
> > Gary
> >
> >
> > Gary
> >
> > On Sat, Jul 13, 2024 at 5:04 PM Gilles Sadowski  wrote:
> > >
> > > Le sam. 13 juil. 2024 à 17:13, Gary Gregory  a
écrit :
> > > >
> > > > We have fixed a few bugs and added enhancements since Apache Commons
> > > > Lang 3.14.0 was released, so I would like to release Apache Commons
> > > > Lang 3.15.0.
> > > >
> > >
> > > What about point (2) in
> > >   https://lists.apache.org/thread/d48y7grxs4qoy49r1qk9rg8ym0y6h1o5
> > > ?
> > >
> > > > [...]
> > >
> > > -
> > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > For additional commands, e-mail: dev-h...@commons.apache.org
> > >
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


[VOTE] Release Apache Commons Lang 3.15.0 based on RC2

2024-07-13 Thread Gary Gregory
We have fixed a few bugs and added enhancements since Apache Commons
Lang 3.14.0 was released, so I would like to release Apache Commons
Lang 3.15.0.

Apache Commons Lang 3.15.0 RC2 is available for review here:
https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2
(svn revision 70292)

The Git tag commons-lang-3.15.0-RC2 commit for this RC is
535ec32c680a6581739a41bf97ecb8b8718c73b8 which you can browse here:

https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=535ec32c680a6581739a41bf97ecb8b8718c73b8
You may checkout this tag using:
git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-3.15.0-RC2 commons-lang-3.15.0-RC2

Maven artifacts are here:

https://repository.apache.org/content/repositories/orgapachecommons-1760/org/apache/commons/commons-lang3/3.15.0/

These are the artifacts and their hashes:

#Release SHA-512s
#Sat Jul 13 22:56:40 UTC 2024
commons-lang3-3.15.0-bin.tar.gz=b202d6d43785ad4813f3379b94603ee50d0ed7fa702d5e413a97e0fe7b24d679448e44547c4408ac1c7831da0baa1396ce91ba8f0a02764e33d4387c2350bcdf
commons-lang3-3.15.0-bin.zip=8bee18ea4f4c0e87ac83806c805af91786055a96ccc6a9f760323f5abe851355fc7b14637246e3f5f5612c8774d6b0579426d325b21cffe98b623c35703e0434
commons-lang3-3.15.0-bom.json=7473cb182e0ea855b54459c572cce0673ff780f3703aa3f629bf1d42acc921924792b7bfcd6073df89f5787c503df8def5c0b0581f83560ccc1faf81eff6b3ca
commons-lang3-3.15.0-bom.xml=cecaf68e2e6ebd9345273defd46bd6f0b31323e2e31ec7e9cb9e439ca26a55db26dfe18e82208f9f398a3256d9f9104d4d3f4fa2bf6f54556c112b6d5f44a6ea
commons-lang3-3.15.0-javadoc.jar=bc351ba2b94a951f96df59f0b029ea0060e97f8e0896a22308ee51d21a67b4258ef64736597c8660eab2f9df6d21ef3b9f1f10f4c10156a757e449c2bce78219
commons-lang3-3.15.0-sources.jar=0f567c6eebc73e9dfa98e7cbeda5ef275ef026d1bfbf1d02d96d65594d058bc07961742f270b888f64023b756a20db1e4aa8b29ea7acd6ab079b3d3257f3ad27
commons-lang3-3.15.0-src.tar.gz=530fa9200d8a004b2bb917e095486d7eebea93b84cdbdaaf8fb952e1c160043306daadc168d67ffdcb277b4b00d3b9db876257a08a5dce5713dcd3abd5ec802b
commons-lang3-3.15.0-src.zip=a28c41293b0be816db246f8353c12b8636a5ad62a6913446a5462ee2e66d3471beec2dd53f30ab8f6576dc383d5828279ff0c2b32872806ae46633c7a639358e
commons-lang3-3.15.0-test-sources.jar=b3017447cf41a86677a917493b5ff0cb2530ebd8cde2591b6e9ecd23374e6731dc3cfb3c57898bf5cb9a242fc09e2d54aa68595e22d664b0551ea4c9ef76f1f7
commons-lang3-3.15.0-tests.jar=7baa621a90c1e3f8264f2a8a5e8f24ad5fa6dc5f81a549a2581dcfb2cf6a8be92f88679aa650c2a48ded8da6cca18caab8a25e7ae9703a8f27ba626c68dd3348
org.apache.commons_commons-lang3-3.15.0.spdx.json=7511388b70b282639dbdeee9afed69e65e2858e8741170dfd85bc56dbe8d748aab1a3fd880669f03b8ee26c4e710fdce1e673ae8049ecf3e0b984f4b6f8e

I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
-P jacoco -P japicmp clean package site deploy ' using:

openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment Homebrew (build 17.0.11+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.11+0, mixed mode, sharing)

Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: /usr/local/Cellar/maven/3.9.8/libexec
Java version: 17.0.11, vendor: Homebrew, runtime:
/usr/local/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"

Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64

Details of changes since 3.14.0 are in the release notes:

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/RELEASE-NOTES.txt

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/changes-report.html

Site:

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/index.html
(note some *relative* links are broken and the 3.15.0 directories
are not yet created - these will be OK once the site is deployed.)

JApiCmp Report (compared to 3.14.0):

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/japicmp.html

RAT Report:

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC2/site/rat-report.html

KEYS:
  https://downloads.apache.org/commons/KEYS

Please review the release candidate and vote.
This vote will close no sooner than 72 hours from now.

  [ ] +1 Release these artifacts
  [ ] +0 OK, but...
  [ ] -0 OK, but really should fix...
  [ ] -1 I oppose this release because...

Thank you,

Gary Gregory,
Release Manager (using key 86fdc7e2a11262cb)

The following is intended as a helper and refresher for reviewers.

Validating a release candidate
==

These guidelines are NOT complete.

Requirements: Git, Java, Maven.

You can validate a release from a release candidate (RC) tag as follows.

1a) Clone and checkout the RC tag

git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-

[CANCEL][VOTE] Release Apache Commons Lang 3.15.0 based on RC1

2024-07-13 Thread Gary Gregory
This RC is canceled. RC2 on the way.

Gary


On Sat, Jul 13, 2024 at 6:40 PM Gary Gregory  wrote:
>
> Good catch! I'll spin another RC.
>
> Gary
>
>
> Gary
>
> On Sat, Jul 13, 2024 at 5:04 PM Gilles Sadowski  wrote:
> >
> > Le sam. 13 juil. 2024 à 17:13, Gary Gregory  a écrit :
> > >
> > > We have fixed a few bugs and added enhancements since Apache Commons
> > > Lang 3.14.0 was released, so I would like to release Apache Commons
> > > Lang 3.15.0.
> > >
> >
> > What about point (2) in
> >   https://lists.apache.org/thread/d48y7grxs4qoy49r1qk9rg8ym0y6h1o5
> > ?
> >
> > > [...]
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >

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



Re: [VOTE] Release Apache Commons Lang 3.15.0 based on RC1

2024-07-13 Thread Gary Gregory
Good catch! I'll spin another RC.

Gary


Gary

On Sat, Jul 13, 2024 at 5:04 PM Gilles Sadowski  wrote:
>
> Le sam. 13 juil. 2024 à 17:13, Gary Gregory  a écrit :
> >
> > We have fixed a few bugs and added enhancements since Apache Commons
> > Lang 3.14.0 was released, so I would like to release Apache Commons
> > Lang 3.15.0.
> >
>
> What about point (2) in
>   https://lists.apache.org/thread/d48y7grxs4qoy49r1qk9rg8ym0y6h1o5
> ?
>
> > [...]
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

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



Re: [VOTE] Release Apache Commons Lang 3.15.0 based on RC1

2024-07-13 Thread Gilles Sadowski
Le sam. 13 juil. 2024 à 17:13, Gary Gregory  a écrit :
>
> We have fixed a few bugs and added enhancements since Apache Commons
> Lang 3.14.0 was released, so I would like to release Apache Commons
> Lang 3.15.0.
>

What about point (2) in
  https://lists.apache.org/thread/d48y7grxs4qoy49r1qk9rg8ym0y6h1o5
?

> [...]

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



[VOTE] Release Apache Commons Lang 3.15.0 based on RC1

2024-07-13 Thread Gary Gregory
We have fixed a few bugs and added enhancements since Apache Commons
Lang 3.14.0 was released, so I would like to release Apache Commons
Lang 3.15.0.

Apache Commons Lang 3.15.0 RC1 is available for review here:
https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC1
(svn revision 70284)

The Git tag commons-lang-3.15.0-RC1 commit for this RC is
a0bf7894ca8b8cf312c068c5c1618d24fd064acf which you can browse here:

https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=a0bf7894ca8b8cf312c068c5c1618d24fd064acf
You may checkout this tag using:
git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-3.15.0-RC1 commons-lang-3.15.0-RC1

Maven artifacts are here:

https://repository.apache.org/content/repositories/orgapachecommons-1758/org/apache/commons/commons-lang3/3.15.0/

These are the artifacts and their hashes:

#Release SHA-512s
#Sat Jul 13 15:03:28 UTC 2024
commons-lang3-3.15.0-bin.tar.gz=64ac08ddb74f1fa2f564bdb03ced5f92eeed0a984a3281593e8eb8939bc112e7444cf3d45e5e2a36a77e8981e23b57cacc48f6fa121f08b0e949545787a0f503
commons-lang3-3.15.0-bin.zip=bac4816190bd14395c10fbd431839e88fc1ffdda74c6de763af6f04f62829a555b5a63490db7212c288ddcb2f4bb9306d5e0d158890cec656b011c67042848e0
commons-lang3-3.15.0-bom.json=7473cb182e0ea855b54459c572cce0673ff780f3703aa3f629bf1d42acc921924792b7bfcd6073df89f5787c503df8def5c0b0581f83560ccc1faf81eff6b3ca
commons-lang3-3.15.0-bom.xml=cecaf68e2e6ebd9345273defd46bd6f0b31323e2e31ec7e9cb9e439ca26a55db26dfe18e82208f9f398a3256d9f9104d4d3f4fa2bf6f54556c112b6d5f44a6ea
commons-lang3-3.15.0-javadoc.jar=6ae9e90a4c9313307b5f515349a11b83f3f59c6483d8dc0d5ef9bd2c40985a878ebb5f8b9f170ed9c40739309531e72b07b302a7d89d9c740a0845449a4b34be
commons-lang3-3.15.0-sources.jar=e9eb653025a35785f35dc3362e2a1e1117388ab62bb3fd47820c003fd97d9bbee1d7b9ec165dccdc76bc034a7619b0f88ddc86aaeff11888c991f59d552b93f6
commons-lang3-3.15.0-src.tar.gz=9e618284330b579b2412420e123b46b02eeba0f47e2b3a35f0d215c6bdcb5f8b2bac29104dd577632d74b4799d8f99b8c8c8bdc7426316a38a379102478112b5
commons-lang3-3.15.0-src.zip=f08d669613fc8b34e382f98ffb4ad1d7bfc390ed16aba743f5db5c2f2f56529ad13a28663e11075a543eea47be994cc41e7510ba174305f230888537fcae3ade
commons-lang3-3.15.0-test-sources.jar=361086cc9aa8bed92244123f29a8573cc6ac82d0f2e2b99e87516f4cb354cffb515d52467100f39e766467600c6118489113df5f37451d97def408d24e1d94aa
commons-lang3-3.15.0-tests.jar=0faa61bea772f7b9dda7679004fa2c65de15d3dbbe67073b78e011ab7c4796c80b62057988efa7dca45e0cee881432cbc2a2037eddc09ed1d838995ad111c882
org.apache.commons_commons-lang3-3.15.0.spdx.json=dbadf3540746700c143b0b1dcea1f66b17374cbdd2741e8695b347127dba6dbe38bf24eaa52ad25e911eb2cbd006569ba9375d5f01fc57efdfc39f47b40fea15

I have tested this with 'mvn 'mvn -e -V -Prelease -Ptest-deploy -P
jacoco -P japicmp clean package site deploy' using:

openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment Homebrew (build 17.0.11+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.11+0, mixed mode, sharing)

Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: /usr/local/Cellar/maven/3.9.8/libexec
Java version: 17.0.11, vendor: Homebrew, runtime:
/usr/local/Cellar/openjdk@17/17.0.11/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"

Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64

Details of changes since 3.14.0 are in the release notes:

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC1/RELEASE-NOTES.txt

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC1/site/changes-report.html

Site:

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC1/site/index.html
(note some *relative* links are broken and the 3.15.0 directories
are not yet created - these will be OK once the site is deployed.)

JApiCmp Report (compared to 3.14.0):

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC1/site/japicmp.html

RAT Report:

https://dist.apache.org/repos/dist/dev/commons/lang/3.15.0-RC1/site/rat-report.html

KEYS:
  https://downloads.apache.org/commons/KEYS

Please review the release candidate and vote.
This vote will close no sooner than 72 hours from now.

  [ ] +1 Release these artifacts
  [ ] +0 OK, but...
  [ ] -0 OK, but really should fix...
  [ ] -1 I oppose this release because...

Thank you,

Gary Gregory,
Release Manager (using key 86fdc7e2a11262cb)

The following is intended as a helper and refresher for reviewers.

Validating a release candidate
==

These guidelines are NOT complete.

Requirements: Git, Java, Maven.

You can validate a release from a release candidate (RC) tag as follows.

1a) Clone and checkout the RC tag

git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-

Re: [apache/commons-lang] Reimplement RandomStringUtils on top of SecureRandom#getInstanceStrong() (PR #1235)

2024-06-15 Thread Phil Steitz
On Fri, Jun 14, 2024 at 4:13 PM Fabrice Benhamouda 
wrote:

> Thanks @psteitz <https://github.com/psteitz> ! I am not sure where is the
> best place to post the following comment. If you think it’s more
> appropriate to post it to the mailing list, let me know and I will post it
> there.
>
> To address the point "1) gen time performance cost", I’ve written some
> optimizations on top of the current PR: garydgregory#2
> <https://github.com/garydgregory/commons-lang/pull/2>
>
> Benchmarking using JMH with JDK 8 on an AWS c6a.xlarge instance with
> cryptographic providers SUN/NativePRNG, SUN/SHA1PRNG, ACCP
> <https://github.com/corretto/amazon-corretto-crypto-provider> 1.6, and
> ACCP <https://github.com/corretto/amazon-corretto-crypto-provider> 2.3,
> we have the following results. Compared to the current state (with the
> default java.util.Random/ThreadLocalRandom number generator), when any of
> the above SecureRandom is used with the optimized code, the time to
> generate random alphabetic, alphanumeric, and numeric strings of at least
> 16 characters is less than three times slower (and sometimes even 5x
> faster). For 4-character strings, we observe a slow-down of at most 8x.
>
> If the optimized RandomStringUtils is called concurrently in multiple
> threads, the SUN/NativePrng SecureRandom implementation (the default on
> Linux) may be slower as calls are serialized (due to access to/dev/random.
>
This is the use case I would be most concerned with.  Many web applications
use this class in multi-threaded app server settings.  I would not use the
class in web apps after this change for that reason.  If we do make the
change, we should make it clear in the class javadoc that it is using
SecureRandom and prone to occasional stalls.

Since there was no discussion about why this change is being made, I will
ask again why it is being proposed.  The only rationale that I can see is
that somehow some users are using the class to generate things that should
be cryptographically secure, like passwords or hash salt, so to protect
these users, we make all other users take a potential performance hit.
Much better, IMO, would be to make the recommended improvements in
performance to the vanilla Random-based impl and add a new class or somehow
shoehorn in a secure impl for users that want / need that.

Phil

This seems an unlikely scenario in practice. In addition, switching to ACCP
2 for SecureRandom would fix the performance issue in that case.

> —
> Reply to this email directly, view it on GitHub
> <https://github.com/apache/commons-lang/pull/1235#issuecomment-2168869983>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AALJJ2W2FHEF7BLURVCM3HDZHN2LFAVCNFSM6ABJJE3MF6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRYHA3DSOJYGM>
> .
> You are receiving this because you were mentioned.Message ID:
> 
>


Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-13 Thread Department 8
No problem this was actually my first time engaging in any Open source
contribution, so it was a good way to know what should be done in quality
and quantity for any open source contribution, so thanks for helping me
learn as well.

On Thu, Jun 13, 2024, 19:13 Gary D. Gregory  wrote:

> On 2024/06/13 00:22:13 Department 8 wrote:
> > I see the point you are making. Thanks for taking the time to review it.
>
> And thank you for engaging with us on improving this component! :-)
>
> Gary
>
> >
> > On Wed, Jun 12, 2024, 23:30 Gary Gregory  wrote:
> >
> > > See also my comment in the PR.
> > >
> > > Gary
> > >
> > > On Wed, Jun 12, 2024, 1:22 PM Department 8 
> > > wrote:
> > >
> > > > Haha! It was in fact because of other methods that have simple
> negation
> > > > that I thought maybe giving a PR would be Okay :)
> > > >
> > > > I think that many times, it is the Boolean Logic that may trivial
> for us,
> > > > but for some who may be using them to have a utility methods like
> > > > isNotBlank aka (!isBlank) maybe helpful and would de-clutter the
> client
> > > > code to a good extent. So it is more of a clean fix for them.
> > > >
> > > > Another way may be to - do a for loop on all of them and once you
> find
> > > > NotBlank to be true you return true, else iterate till end and return
> > > false
> > > > (the actual negated logic of isAllBlank) but that would mean for the
> > > > clients of the API to write that helper function for themselves. So
> this
> > > > can provide an easy wrap.
> > > >
> > > > On Wed, 12 Jun 2024 at 22:43, Alex Herbert  >
> > > > wrote:
> > > >
> > > > > On Wed, 12 Jun 2024 at 18:03, Department 8 <
> manstein.fe...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Sorry Alex just now saw your email, before sending out the PR!
> > > > > >
> > > > > > I had done just for isAllEmpty and isAllBlank.
> > > > > >
> > > > > > Can you tell me more on what can be done, when you said the
> > > following:
> > > > > >
> > > > > > If you are simply negating the result of another method then
> this use
> > > > > case
> > > > > > may be better served with addition of a suitable example to the
> > > javadoc
> > > > > of
> > > > > > the method you are negating.
> > > > > >
> > > > > > Like do you want me to add examples of use-cases?
> > > > > >
> > > > >
> > > > > I've seen the PR. The new methods are a simple boolean negation of
> > > > existing
> > > > > methods. So these are not adding functionality that cannot be
> achieved
> > > > with
> > > > > the current API.
> > > > >
> > > > > Note that a quick check in StringUtils for 'return !' finds these
> > > > methods:
> > > > >
> > > > > public static boolean isNoneBlank(final CharSequence... css) {
> > > > >   return !isAnyBlank(css);
> > > > > }
> > > > >
> > > > > public static boolean isNoneEmpty(final CharSequence... css) {
> > > > >   return !isAnyEmpty(css);
> > > > > }
> > > > >
> > > > > There are two others for single CharSequence args as well:
> isNotBlank
> > > and
> > > > > isNotEmpty.
> > > > >
> > > > > So it is not without precedent to add more methods that are simple
> > > > > negations. However we have to consider if this is code bloat, or
> if the
> > > > > addition of simple negation methods is so useful that it warrants
> > > > > inclusion. I would currently consider this as redundant given the
> lack
> > > of
> > > > > actual logic in the methods.
> > > > >
> > > > > Alex
> > > > >
> > > > >
> > > > > >
> > > > > > On Wed, 12 Jun 2024 at 22:29, Department 8 <
> manstein.fe...@gmail.com
> > > >
> > > > > > wrote:
> > > > > >
> > > > > > > I just realized the subject name is bad. But here are the two
> small
> > > > > > > methods I propose - *isAnyNotBlank* and *isAnyNotEmpty*.
> > > > > > >
> > > > > > > Please find the pull request as here:
> > > > > > > https://github.com/apache/commons-lang/pull/1234
> > > > > > >
> > > > > > > On Wed, 12 Jun 2024 at 21:52, Department 8 <
> > > manstein.fe...@gmail.com
> > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > >> Hey!
> > > > > > >>
> > > > > > >> Recently when using StringUtils in one of our projects I had
> felt
> > > > the
> > > > > > >> urgent need to have a utility method like => isAnyNotBlank.
> > > > > > >>
> > > > > > >> I was able to achieve this using the negation of isAllBlank,
> so I
> > > am
> > > > > > >> thinking of introducing the code with all tests.
> > > > > > >>
> > > > > > >> It is ready to be pushed to PR. Do let me know what you think
> and
> > > > what
> > > > > > >> are the next steps for the same?
> > > > > > >>
> > > > > > >>
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-13 Thread Gary D. Gregory
On 2024/06/13 00:22:13 Department 8 wrote:
> I see the point you are making. Thanks for taking the time to review it.

And thank you for engaging with us on improving this component! :-)

Gary

> 
> On Wed, Jun 12, 2024, 23:30 Gary Gregory  wrote:
> 
> > See also my comment in the PR.
> >
> > Gary
> >
> > On Wed, Jun 12, 2024, 1:22 PM Department 8 
> > wrote:
> >
> > > Haha! It was in fact because of other methods that have simple negation
> > > that I thought maybe giving a PR would be Okay :)
> > >
> > > I think that many times, it is the Boolean Logic that may trivial for us,
> > > but for some who may be using them to have a utility methods like
> > > isNotBlank aka (!isBlank) maybe helpful and would de-clutter the client
> > > code to a good extent. So it is more of a clean fix for them.
> > >
> > > Another way may be to - do a for loop on all of them and once you find
> > > NotBlank to be true you return true, else iterate till end and return
> > false
> > > (the actual negated logic of isAllBlank) but that would mean for the
> > > clients of the API to write that helper function for themselves. So this
> > > can provide an easy wrap.
> > >
> > > On Wed, 12 Jun 2024 at 22:43, Alex Herbert 
> > > wrote:
> > >
> > > > On Wed, 12 Jun 2024 at 18:03, Department 8 
> > > > wrote:
> > > >
> > > > > Sorry Alex just now saw your email, before sending out the PR!
> > > > >
> > > > > I had done just for isAllEmpty and isAllBlank.
> > > > >
> > > > > Can you tell me more on what can be done, when you said the
> > following:
> > > > >
> > > > > If you are simply negating the result of another method then this use
> > > > case
> > > > > may be better served with addition of a suitable example to the
> > javadoc
> > > > of
> > > > > the method you are negating.
> > > > >
> > > > > Like do you want me to add examples of use-cases?
> > > > >
> > > >
> > > > I've seen the PR. The new methods are a simple boolean negation of
> > > existing
> > > > methods. So these are not adding functionality that cannot be achieved
> > > with
> > > > the current API.
> > > >
> > > > Note that a quick check in StringUtils for 'return !' finds these
> > > methods:
> > > >
> > > > public static boolean isNoneBlank(final CharSequence... css) {
> > > >   return !isAnyBlank(css);
> > > > }
> > > >
> > > > public static boolean isNoneEmpty(final CharSequence... css) {
> > > >   return !isAnyEmpty(css);
> > > > }
> > > >
> > > > There are two others for single CharSequence args as well: isNotBlank
> > and
> > > > isNotEmpty.
> > > >
> > > > So it is not without precedent to add more methods that are simple
> > > > negations. However we have to consider if this is code bloat, or if the
> > > > addition of simple negation methods is so useful that it warrants
> > > > inclusion. I would currently consider this as redundant given the lack
> > of
> > > > actual logic in the methods.
> > > >
> > > > Alex
> > > >
> > > >
> > > > >
> > > > > On Wed, 12 Jun 2024 at 22:29, Department 8  > >
> > > > > wrote:
> > > > >
> > > > > > I just realized the subject name is bad. But here are the two small
> > > > > > methods I propose - *isAnyNotBlank* and *isAnyNotEmpty*.
> > > > > >
> > > > > > Please find the pull request as here:
> > > > > > https://github.com/apache/commons-lang/pull/1234
> > > > > >
> > > > > > On Wed, 12 Jun 2024 at 21:52, Department 8 <
> > manstein.fe...@gmail.com
> > > >
> > > > > > wrote:
> > > > > >
> > > > > >> Hey!
> > > > > >>
> > > > > >> Recently when using StringUtils in one of our projects I had felt
> > > the
> > > > > >> urgent need to have a utility method like => isAnyNotBlank.
> > > > > >>
> > > > > >> I was able to achieve this using the negation of isAllBlank, so I
> > am
> > > > > >> thinking of introducing the code with all tests.
> > > > > >>
> > > > > >> It is ready to be pushed to PR. Do let me know what you think and
> > > what
> > > > > >> are the next steps for the same?
> > > > > >>
> > > > > >>
> > > > > >>
> > > > >
> > > >
> > >
> >
> 

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



Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-12 Thread Department 8
I see the point you are making. Thanks for taking the time to review it.

On Wed, Jun 12, 2024, 23:30 Gary Gregory  wrote:

> See also my comment in the PR.
>
> Gary
>
> On Wed, Jun 12, 2024, 1:22 PM Department 8 
> wrote:
>
> > Haha! It was in fact because of other methods that have simple negation
> > that I thought maybe giving a PR would be Okay :)
> >
> > I think that many times, it is the Boolean Logic that may trivial for us,
> > but for some who may be using them to have a utility methods like
> > isNotBlank aka (!isBlank) maybe helpful and would de-clutter the client
> > code to a good extent. So it is more of a clean fix for them.
> >
> > Another way may be to - do a for loop on all of them and once you find
> > NotBlank to be true you return true, else iterate till end and return
> false
> > (the actual negated logic of isAllBlank) but that would mean for the
> > clients of the API to write that helper function for themselves. So this
> > can provide an easy wrap.
> >
> > On Wed, 12 Jun 2024 at 22:43, Alex Herbert 
> > wrote:
> >
> > > On Wed, 12 Jun 2024 at 18:03, Department 8 
> > > wrote:
> > >
> > > > Sorry Alex just now saw your email, before sending out the PR!
> > > >
> > > > I had done just for isAllEmpty and isAllBlank.
> > > >
> > > > Can you tell me more on what can be done, when you said the
> following:
> > > >
> > > > If you are simply negating the result of another method then this use
> > > case
> > > > may be better served with addition of a suitable example to the
> javadoc
> > > of
> > > > the method you are negating.
> > > >
> > > > Like do you want me to add examples of use-cases?
> > > >
> > >
> > > I've seen the PR. The new methods are a simple boolean negation of
> > existing
> > > methods. So these are not adding functionality that cannot be achieved
> > with
> > > the current API.
> > >
> > > Note that a quick check in StringUtils for 'return !' finds these
> > methods:
> > >
> > > public static boolean isNoneBlank(final CharSequence... css) {
> > >   return !isAnyBlank(css);
> > > }
> > >
> > > public static boolean isNoneEmpty(final CharSequence... css) {
> > >   return !isAnyEmpty(css);
> > > }
> > >
> > > There are two others for single CharSequence args as well: isNotBlank
> and
> > > isNotEmpty.
> > >
> > > So it is not without precedent to add more methods that are simple
> > > negations. However we have to consider if this is code bloat, or if the
> > > addition of simple negation methods is so useful that it warrants
> > > inclusion. I would currently consider this as redundant given the lack
> of
> > > actual logic in the methods.
> > >
> > > Alex
> > >
> > >
> > > >
> > > > On Wed, 12 Jun 2024 at 22:29, Department 8  >
> > > > wrote:
> > > >
> > > > > I just realized the subject name is bad. But here are the two small
> > > > > methods I propose - *isAnyNotBlank* and *isAnyNotEmpty*.
> > > > >
> > > > > Please find the pull request as here:
> > > > > https://github.com/apache/commons-lang/pull/1234
> > > > >
> > > > > On Wed, 12 Jun 2024 at 21:52, Department 8 <
> manstein.fe...@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > >> Hey!
> > > > >>
> > > > >> Recently when using StringUtils in one of our projects I had felt
> > the
> > > > >> urgent need to have a utility method like => isAnyNotBlank.
> > > > >>
> > > > >> I was able to achieve this using the negation of isAllBlank, so I
> am
> > > > >> thinking of introducing the code with all tests.
> > > > >>
> > > > >> It is ready to be pushed to PR. Do let me know what you think and
> > what
> > > > >> are the next steps for the same?
> > > > >>
> > > > >>
> > > > >>
> > > >
> > >
> >
>


Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-12 Thread Gary Gregory
See also my comment in the PR.

Gary

On Wed, Jun 12, 2024, 1:22 PM Department 8  wrote:

> Haha! It was in fact because of other methods that have simple negation
> that I thought maybe giving a PR would be Okay :)
>
> I think that many times, it is the Boolean Logic that may trivial for us,
> but for some who may be using them to have a utility methods like
> isNotBlank aka (!isBlank) maybe helpful and would de-clutter the client
> code to a good extent. So it is more of a clean fix for them.
>
> Another way may be to - do a for loop on all of them and once you find
> NotBlank to be true you return true, else iterate till end and return false
> (the actual negated logic of isAllBlank) but that would mean for the
> clients of the API to write that helper function for themselves. So this
> can provide an easy wrap.
>
> On Wed, 12 Jun 2024 at 22:43, Alex Herbert 
> wrote:
>
> > On Wed, 12 Jun 2024 at 18:03, Department 8 
> > wrote:
> >
> > > Sorry Alex just now saw your email, before sending out the PR!
> > >
> > > I had done just for isAllEmpty and isAllBlank.
> > >
> > > Can you tell me more on what can be done, when you said the following:
> > >
> > > If you are simply negating the result of another method then this use
> > case
> > > may be better served with addition of a suitable example to the javadoc
> > of
> > > the method you are negating.
> > >
> > > Like do you want me to add examples of use-cases?
> > >
> >
> > I've seen the PR. The new methods are a simple boolean negation of
> existing
> > methods. So these are not adding functionality that cannot be achieved
> with
> > the current API.
> >
> > Note that a quick check in StringUtils for 'return !' finds these
> methods:
> >
> > public static boolean isNoneBlank(final CharSequence... css) {
> >   return !isAnyBlank(css);
> > }
> >
> > public static boolean isNoneEmpty(final CharSequence... css) {
> >   return !isAnyEmpty(css);
> > }
> >
> > There are two others for single CharSequence args as well: isNotBlank and
> > isNotEmpty.
> >
> > So it is not without precedent to add more methods that are simple
> > negations. However we have to consider if this is code bloat, or if the
> > addition of simple negation methods is so useful that it warrants
> > inclusion. I would currently consider this as redundant given the lack of
> > actual logic in the methods.
> >
> > Alex
> >
> >
> > >
> > > On Wed, 12 Jun 2024 at 22:29, Department 8 
> > > wrote:
> > >
> > > > I just realized the subject name is bad. But here are the two small
> > > > methods I propose - *isAnyNotBlank* and *isAnyNotEmpty*.
> > > >
> > > > Please find the pull request as here:
> > > > https://github.com/apache/commons-lang/pull/1234
> > > >
> > > > On Wed, 12 Jun 2024 at 21:52, Department 8  >
> > > > wrote:
> > > >
> > > >> Hey!
> > > >>
> > > >> Recently when using StringUtils in one of our projects I had felt
> the
> > > >> urgent need to have a utility method like => isAnyNotBlank.
> > > >>
> > > >> I was able to achieve this using the negation of isAllBlank, so I am
> > > >> thinking of introducing the code with all tests.
> > > >>
> > > >> It is ready to be pushed to PR. Do let me know what you think and
> what
> > > >> are the next steps for the same?
> > > >>
> > > >>
> > > >>
> > >
> >
>


Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-12 Thread Department 8
Haha! It was in fact because of other methods that have simple negation
that I thought maybe giving a PR would be Okay :)

I think that many times, it is the Boolean Logic that may trivial for us,
but for some who may be using them to have a utility methods like
isNotBlank aka (!isBlank) maybe helpful and would de-clutter the client
code to a good extent. So it is more of a clean fix for them.

Another way may be to - do a for loop on all of them and once you find
NotBlank to be true you return true, else iterate till end and return false
(the actual negated logic of isAllBlank) but that would mean for the
clients of the API to write that helper function for themselves. So this
can provide an easy wrap.

On Wed, 12 Jun 2024 at 22:43, Alex Herbert  wrote:

> On Wed, 12 Jun 2024 at 18:03, Department 8 
> wrote:
>
> > Sorry Alex just now saw your email, before sending out the PR!
> >
> > I had done just for isAllEmpty and isAllBlank.
> >
> > Can you tell me more on what can be done, when you said the following:
> >
> > If you are simply negating the result of another method then this use
> case
> > may be better served with addition of a suitable example to the javadoc
> of
> > the method you are negating.
> >
> > Like do you want me to add examples of use-cases?
> >
>
> I've seen the PR. The new methods are a simple boolean negation of existing
> methods. So these are not adding functionality that cannot be achieved with
> the current API.
>
> Note that a quick check in StringUtils for 'return !' finds these methods:
>
> public static boolean isNoneBlank(final CharSequence... css) {
>   return !isAnyBlank(css);
> }
>
> public static boolean isNoneEmpty(final CharSequence... css) {
>   return !isAnyEmpty(css);
> }
>
> There are two others for single CharSequence args as well: isNotBlank and
> isNotEmpty.
>
> So it is not without precedent to add more methods that are simple
> negations. However we have to consider if this is code bloat, or if the
> addition of simple negation methods is so useful that it warrants
> inclusion. I would currently consider this as redundant given the lack of
> actual logic in the methods.
>
> Alex
>
>
> >
> > On Wed, 12 Jun 2024 at 22:29, Department 8 
> > wrote:
> >
> > > I just realized the subject name is bad. But here are the two small
> > > methods I propose - *isAnyNotBlank* and *isAnyNotEmpty*.
> > >
> > > Please find the pull request as here:
> > > https://github.com/apache/commons-lang/pull/1234
> > >
> > > On Wed, 12 Jun 2024 at 21:52, Department 8 
> > > wrote:
> > >
> > >> Hey!
> > >>
> > >> Recently when using StringUtils in one of our projects I had felt the
> > >> urgent need to have a utility method like => isAnyNotBlank.
> > >>
> > >> I was able to achieve this using the negation of isAllBlank, so I am
> > >> thinking of introducing the code with all tests.
> > >>
> > >> It is ready to be pushed to PR. Do let me know what you think and what
> > >> are the next steps for the same?
> > >>
> > >>
> > >>
> >
>


Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-12 Thread Alex Herbert
On Wed, 12 Jun 2024 at 18:03, Department 8  wrote:

> Sorry Alex just now saw your email, before sending out the PR!
>
> I had done just for isAllEmpty and isAllBlank.
>
> Can you tell me more on what can be done, when you said the following:
>
> If you are simply negating the result of another method then this use case
> may be better served with addition of a suitable example to the javadoc of
> the method you are negating.
>
> Like do you want me to add examples of use-cases?
>

I've seen the PR. The new methods are a simple boolean negation of existing
methods. So these are not adding functionality that cannot be achieved with
the current API.

Note that a quick check in StringUtils for 'return !' finds these methods:

public static boolean isNoneBlank(final CharSequence... css) {
  return !isAnyBlank(css);
}

public static boolean isNoneEmpty(final CharSequence... css) {
  return !isAnyEmpty(css);
}

There are two others for single CharSequence args as well: isNotBlank and
isNotEmpty.

So it is not without precedent to add more methods that are simple
negations. However we have to consider if this is code bloat, or if the
addition of simple negation methods is so useful that it warrants
inclusion. I would currently consider this as redundant given the lack of
actual logic in the methods.

Alex


>
> On Wed, 12 Jun 2024 at 22:29, Department 8 
> wrote:
>
> > I just realized the subject name is bad. But here are the two small
> > methods I propose - *isAnyNotBlank* and *isAnyNotEmpty*.
> >
> > Please find the pull request as here:
> > https://github.com/apache/commons-lang/pull/1234
> >
> > On Wed, 12 Jun 2024 at 21:52, Department 8 
> > wrote:
> >
> >> Hey!
> >>
> >> Recently when using StringUtils in one of our projects I had felt the
> >> urgent need to have a utility method like => isAnyNotBlank.
> >>
> >> I was able to achieve this using the negation of isAllBlank, so I am
> >> thinking of introducing the code with all tests.
> >>
> >> It is ready to be pushed to PR. Do let me know what you think and what
> >> are the next steps for the same?
> >>
> >>
> >>
>


Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-12 Thread Department 8
Sorry Alex just now saw your email, before sending out the PR!

I had done just for isAllEmpty and isAllBlank.

Can you tell me more on what can be done, when you said the following:

If you are simply negating the result of another method then this use case
may be better served with addition of a suitable example to the javadoc of
the method you are negating.

Like do you want me to add examples of use-cases?

On Wed, 12 Jun 2024 at 22:29, Department 8  wrote:

> I just realized the subject name is bad. But here are the two small
> methods I propose - *isAnyNotBlank* and *isAnyNotEmpty*.
>
> Please find the pull request as here:
> https://github.com/apache/commons-lang/pull/1234
>
> On Wed, 12 Jun 2024 at 21:52, Department 8 
> wrote:
>
>> Hey!
>>
>> Recently when using StringUtils in one of our projects I had felt the
>> urgent need to have a utility method like => isAnyNotBlank.
>>
>> I was able to achieve this using the negation of isAllBlank, so I am
>> thinking of introducing the code with all tests.
>>
>> It is ready to be pushed to PR. Do let me know what you think and what
>> are the next steps for the same?
>>
>>
>>


Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-12 Thread Department 8
I just realized the subject name is bad. But here are the two small methods
I propose - *isAnyNotBlank* and *isAnyNotEmpty*.

Please find the pull request as here:
https://github.com/apache/commons-lang/pull/1234

On Wed, 12 Jun 2024 at 21:52, Department 8  wrote:

> Hey!
>
> Recently when using StringUtils in one of our projects I had felt the
> urgent need to have a utility method like => isAnyNotBlank.
>
> I was able to achieve this using the negation of isAllBlank, so I am
> thinking of introducing the code with all tests.
>
> It is ready to be pushed to PR. Do let me know what you think and what are
> the next steps for the same?
>
>
>


Re: [LANG] Add Any Checks for Not Checks in StringUtils

2024-06-12 Thread Alex Herbert
Hi,

On Wed, 12 Jun 2024 at 17:23, Department 8  wrote:

> Hey!
>
> Recently when using StringUtils in one of our projects I had felt the
> urgent need to have a utility method like => isAnyNotBlank.
>
> I was able to achieve this using the negation of isAllBlank, so I am
> thinking of introducing the code with all tests.
>
> It is ready to be pushed to PR. Do let me know what you think and what are
> the next steps for the same?
>

Is this different from:

public static boolean isAnyNotBlank(final CharSequence... css) {
return !isAllBlank(css);
}

If the implementation is as above then you add an extra method that must be
invoked using more characters than:

!StringUtils.isAllBlank(...)

This doesn't seem helpful. If there is more logic to the method then it may
be worth considering.

There are also the other methods that could be similarly negated:

isAllEmpty
isAllLowerCase
isAllUpperCase

If you are simply negating the result of another method then this use case
may be better served with addition of a suitable example to the javadoc of
the method you are negating.

Alex


Re: Re: [LANG] Support single quotes in DurationFormatUtils methods' formats

2024-05-31 Thread Daniel Watson
Honestly I think not supporting empty literals is just as big a limitation
as not supporting single quotes, so IMO we'd just be trading one limitation
for another. i.e. if someone were to need empty literals, the things they
would have to do to use them are the same things they'd have to do to
support single quotes, and I can imagine use cases for both.

On Thu, May 30, 2024 at 2:48 PM Gary D. Gregory  wrote:

> I'm OK with Sebb's solution [1]
>
> Any further thoughts here?
>
> Gary
> [1] https://github.com/apache/commons-lang/pull/1227
>
> On 2024/05/29 13:37:40 Mike Drob wrote:
> > On Wed, May 29, 2024 at 8:17 AM Gary Gregory 
> wrote:
> >
> > > (Sorry for the top post, phone)
> > >
> > > A case I can imagine an empty '' occurring is when the format string
> itself
> > > is built programmatically for example a '%s' or using string
> concatenate of
> > > a variable that holds a string where that string can be empty or an
> "s" to
> > > mark a plural or a quote for example.
> > >
> > > "He said '" + bla + "' to me and I waited mm minutes!"
> > >
> > > Far fetched? Sure 😀
> > >
> > > Gary
> > >
> > > On Wed, May 29, 2024, 8:43 AM sebb  wrote:
> > >
> > > > On Sun, 26 May 2024 at 23:37, sebb  wrote:
> > > > >
> > > > > On Sun, 26 May 2024 at 08:25, Laertes Moustakas <
> lmous...@gmail.com>
> > > > wrote:
> > > > > >
> > > > > > Hello Gary,
> > > > > >
> > > > > > Thank you for your response. Some of the new assertions indeed
> fail
> > > > when interpreting the duplicate single quote as an escaped quote
> instead
> > > of
> > > > a closing and opening quote. In particular, "y' ''years' M 'months'"
> is
> > > > interpreted as "4 'years 0 months" while the expected text lacks the
> > > quote
> > > > before "years". Same for "hello''world": it's interpreted as
> > > "hello'world"
> > > > instead of "helloworld".
> > > > >
> > > > > Please see https://github.com/apache/commons-lang/pull/1227 for an
> > > > > alternate solution.
> > > > > This does not cause issues with any existing tests.
> > > > >
> > > > > However, it does change the behaviour of a duplicate single quote
> > > > > which is found outside an existing opening and closing quote.
> > > > > Instead of the empty string, it generates a lone single quote.
> > > > >
> > > > > Whilst this is a change in behaviour, it seems to me that there
> should
> > > > > be no need for anyone to use a format that uses a pair of adjacent
> > > > > single quotes to generate an empty string in the output, so it
> seems
> > > > > unlikely that this will cause any breakages.
> > > >
> > > > I've since realised that this argument could also apply to the
> > > > existing test cases: is there really a use-case for adjacent constant
> > > > strings?
> > > > Why would anyone want to split a constant string in this way?
> >
> >
> > This is similar to allowable string concatenation in Python, which static
> > analysis flags as a warning and probable bug.
> >
> https://pylint.pycqa.org/en/latest/user_guide/messages/warning/implicit-str-concat.html
> >
> >
> > > > AFAICT it just makes it harder to read the string.
> > > >
> > > > i.e. do the test cases represent a real-world use case?
> > > >
> > > > > > I understand this brings forth a breaking change in formats that
> use
> > > > two single quotes to close and open new literals (or even add an
> empty
> > > > string), but this is consistent with what java.text.SimpleDateFormat
> > > > expects. And I believe that most developers would favor consistency
> > > between
> > > > format strings in equivalent classes. Thus, I think the cases
> described
> > > > above where the two single quotes terminate and begin a literal
> should no
> > > > longer be supported.
> > > >
> > > > I agree.
> > > >
> > > > My alternate solution avoids breaking the test cases, but the
> downside
> > > > is that the syntax is not i

Re: Re: [LANG] Support single quotes in DurationFormatUtils methods' formats

2024-05-30 Thread Gary D. Gregory
I'm OK with Sebb's solution [1]

Any further thoughts here?

Gary
[1] https://github.com/apache/commons-lang/pull/1227

On 2024/05/29 13:37:40 Mike Drob wrote:
> On Wed, May 29, 2024 at 8:17 AM Gary Gregory  wrote:
> 
> > (Sorry for the top post, phone)
> >
> > A case I can imagine an empty '' occurring is when the format string itself
> > is built programmatically for example a '%s' or using string concatenate of
> > a variable that holds a string where that string can be empty or an "s" to
> > mark a plural or a quote for example.
> >
> > "He said '" + bla + "' to me and I waited mm minutes!"
> >
> > Far fetched? Sure 😀
> >
> > Gary
> >
> > On Wed, May 29, 2024, 8:43 AM sebb  wrote:
> >
> > > On Sun, 26 May 2024 at 23:37, sebb  wrote:
> > > >
> > > > On Sun, 26 May 2024 at 08:25, Laertes Moustakas 
> > > wrote:
> > > > >
> > > > > Hello Gary,
> > > > >
> > > > > Thank you for your response. Some of the new assertions indeed fail
> > > when interpreting the duplicate single quote as an escaped quote instead
> > of
> > > a closing and opening quote. In particular, "y' ''years' M 'months'" is
> > > interpreted as "4 'years 0 months" while the expected text lacks the
> > quote
> > > before "years". Same for "hello''world": it's interpreted as
> > "hello'world"
> > > instead of "helloworld".
> > > >
> > > > Please see https://github.com/apache/commons-lang/pull/1227 for an
> > > > alternate solution.
> > > > This does not cause issues with any existing tests.
> > > >
> > > > However, it does change the behaviour of a duplicate single quote
> > > > which is found outside an existing opening and closing quote.
> > > > Instead of the empty string, it generates a lone single quote.
> > > >
> > > > Whilst this is a change in behaviour, it seems to me that there should
> > > > be no need for anyone to use a format that uses a pair of adjacent
> > > > single quotes to generate an empty string in the output, so it seems
> > > > unlikely that this will cause any breakages.
> > >
> > > I've since realised that this argument could also apply to the
> > > existing test cases: is there really a use-case for adjacent constant
> > > strings?
> > > Why would anyone want to split a constant string in this way?
> 
> 
> This is similar to allowable string concatenation in Python, which static
> analysis flags as a warning and probable bug.
> https://pylint.pycqa.org/en/latest/user_guide/messages/warning/implicit-str-concat.html
> 
> 
> > > AFAICT it just makes it harder to read the string.
> > >
> > > i.e. do the test cases represent a real-world use case?
> > >
> > > > > I understand this brings forth a breaking change in formats that use
> > > two single quotes to close and open new literals (or even add an empty
> > > string), but this is consistent with what java.text.SimpleDateFormat
> > > expects. And I believe that most developers would favor consistency
> > between
> > > format strings in equivalent classes. Thus, I think the cases described
> > > above where the two single quotes terminate and begin a literal should no
> > > longer be supported.
> > >
> > > I agree.
> > >
> > > My alternate solution avoids breaking the test cases, but the downside
> > > is that the syntax is not in agreement with
> > > java.text.SimpleDateFormat, and is more verbose where a single-quote
> > > is to be inserted in an existing constant string (it requires 4 single
> > > quotes, rather than 2).
> > >
> > > > >
> > > > > Should this change go forward, I expect it to be part of a major
> > > release (e.g. version 4.0.0, 5.0.0, etc.) instead of 3.x.x, as it does
> > > contain a breaking change.
> > > > >
> > > > > If you have more questions, please don't hesitate to contact me.
> > > > >
> > > > > Best regards,
> > > > > Laertes
> > > > >
> > > > > On 2024/05/25 13:47:23 Gary Gregory wrote:
> > > > > > Hello Laertes,
> > > > > >
> > > > > > Thank you for your interest in improving Ap

Re: Re: [LANG] Support single quotes in DurationFormatUtils methods' formats

2024-05-29 Thread Mike Drob
On Wed, May 29, 2024 at 8:17 AM Gary Gregory  wrote:

> (Sorry for the top post, phone)
>
> A case I can imagine an empty '' occurring is when the format string itself
> is built programmatically for example a '%s' or using string concatenate of
> a variable that holds a string where that string can be empty or an "s" to
> mark a plural or a quote for example.
>
> "He said '" + bla + "' to me and I waited mm minutes!"
>
> Far fetched? Sure 😀
>
> Gary
>
> On Wed, May 29, 2024, 8:43 AM sebb  wrote:
>
> > On Sun, 26 May 2024 at 23:37, sebb  wrote:
> > >
> > > On Sun, 26 May 2024 at 08:25, Laertes Moustakas 
> > wrote:
> > > >
> > > > Hello Gary,
> > > >
> > > > Thank you for your response. Some of the new assertions indeed fail
> > when interpreting the duplicate single quote as an escaped quote instead
> of
> > a closing and opening quote. In particular, "y' ''years' M 'months'" is
> > interpreted as "4 'years 0 months" while the expected text lacks the
> quote
> > before "years". Same for "hello''world": it's interpreted as
> "hello'world"
> > instead of "helloworld".
> > >
> > > Please see https://github.com/apache/commons-lang/pull/1227 for an
> > > alternate solution.
> > > This does not cause issues with any existing tests.
> > >
> > > However, it does change the behaviour of a duplicate single quote
> > > which is found outside an existing opening and closing quote.
> > > Instead of the empty string, it generates a lone single quote.
> > >
> > > Whilst this is a change in behaviour, it seems to me that there should
> > > be no need for anyone to use a format that uses a pair of adjacent
> > > single quotes to generate an empty string in the output, so it seems
> > > unlikely that this will cause any breakages.
> >
> > I've since realised that this argument could also apply to the
> > existing test cases: is there really a use-case for adjacent constant
> > strings?
> > Why would anyone want to split a constant string in this way?


This is similar to allowable string concatenation in Python, which static
analysis flags as a warning and probable bug.
https://pylint.pycqa.org/en/latest/user_guide/messages/warning/implicit-str-concat.html


> > AFAICT it just makes it harder to read the string.
> >
> > i.e. do the test cases represent a real-world use case?
> >
> > > > I understand this brings forth a breaking change in formats that use
> > two single quotes to close and open new literals (or even add an empty
> > string), but this is consistent with what java.text.SimpleDateFormat
> > expects. And I believe that most developers would favor consistency
> between
> > format strings in equivalent classes. Thus, I think the cases described
> > above where the two single quotes terminate and begin a literal should no
> > longer be supported.
> >
> > I agree.
> >
> > My alternate solution avoids breaking the test cases, but the downside
> > is that the syntax is not in agreement with
> > java.text.SimpleDateFormat, and is more verbose where a single-quote
> > is to be inserted in an existing constant string (it requires 4 single
> > quotes, rather than 2).
> >
> > > >
> > > > Should this change go forward, I expect it to be part of a major
> > release (e.g. version 4.0.0, 5.0.0, etc.) instead of 3.x.x, as it does
> > contain a breaking change.
> > > >
> > > > If you have more questions, please don't hesitate to contact me.
> > > >
> > > > Best regards,
> > > > Laertes
> > > >
> > > > On 2024/05/25 13:47:23 Gary Gregory wrote:
> > > > > Hello Laertes,
> > > > >
> > > > > Thank you for your interest in improving Apache Commons Lang :-)
> > > > >
> > > > > Do you foresee any compatibility issues for existing call sites and
> > > > > format strings?
> > > > >
> > > > > For example, can you make your use cases work and still support:
> > > > >
> > > > >
> >
> https://github.com/apache/commons-lang/blob/d861f1b2116a41a45949d1401785220119a57e56/src/test/java/org/apache/commons/lang3/time/DurationFormatUtilsTest.java#L463-L473
> > > > >
> > > > > Or, should these cases no longer be supported?
&

Re: Re: [LANG] Support single quotes in DurationFormatUtils methods' formats

2024-05-29 Thread Gary Gregory
(Sorry for the top post, phone)

A case I can imagine an empty '' occurring is when the format string itself
is built programmatically for example a '%s' or using string concatenate of
a variable that holds a string where that string can be empty or an "s" to
mark a plural or a quote for example.

"He said '" + bla + "' to me and I waited mm minutes!"

Far fetched? Sure 😀

Gary

On Wed, May 29, 2024, 8:43 AM sebb  wrote:

> On Sun, 26 May 2024 at 23:37, sebb  wrote:
> >
> > On Sun, 26 May 2024 at 08:25, Laertes Moustakas 
> wrote:
> > >
> > > Hello Gary,
> > >
> > > Thank you for your response. Some of the new assertions indeed fail
> when interpreting the duplicate single quote as an escaped quote instead of
> a closing and opening quote. In particular, "y' ''years' M 'months'" is
> interpreted as "4 'years 0 months" while the expected text lacks the quote
> before "years". Same for "hello''world": it's interpreted as "hello'world"
> instead of "helloworld".
> >
> > Please see https://github.com/apache/commons-lang/pull/1227 for an
> > alternate solution.
> > This does not cause issues with any existing tests.
> >
> > However, it does change the behaviour of a duplicate single quote
> > which is found outside an existing opening and closing quote.
> > Instead of the empty string, it generates a lone single quote.
> >
> > Whilst this is a change in behaviour, it seems to me that there should
> > be no need for anyone to use a format that uses a pair of adjacent
> > single quotes to generate an empty string in the output, so it seems
> > unlikely that this will cause any breakages.
>
> I've since realised that this argument could also apply to the
> existing test cases: is there really a use-case for adjacent constant
> strings?
> Why would anyone want to split a constant string in this way?
> AFAICT it just makes it harder to read the string.
>
> i.e. do the test cases represent a real-world use case?
>
> > > I understand this brings forth a breaking change in formats that use
> two single quotes to close and open new literals (or even add an empty
> string), but this is consistent with what java.text.SimpleDateFormat
> expects. And I believe that most developers would favor consistency between
> format strings in equivalent classes. Thus, I think the cases described
> above where the two single quotes terminate and begin a literal should no
> longer be supported.
>
> I agree.
>
> My alternate solution avoids breaking the test cases, but the downside
> is that the syntax is not in agreement with
> java.text.SimpleDateFormat, and is more verbose where a single-quote
> is to be inserted in an existing constant string (it requires 4 single
> quotes, rather than 2).
>
> > >
> > > Should this change go forward, I expect it to be part of a major
> release (e.g. version 4.0.0, 5.0.0, etc.) instead of 3.x.x, as it does
> contain a breaking change.
> > >
> > > If you have more questions, please don't hesitate to contact me.
> > >
> > > Best regards,
> > > Laertes
> > >
> > > On 2024/05/25 13:47:23 Gary Gregory wrote:
> > > > Hello Laertes,
> > > >
> > > > Thank you for your interest in improving Apache Commons Lang :-)
> > > >
> > > > Do you foresee any compatibility issues for existing call sites and
> > > > format strings?
> > > >
> > > > For example, can you make your use cases work and still support:
> > > >
> > > >
> https://github.com/apache/commons-lang/blob/d861f1b2116a41a45949d1401785220119a57e56/src/test/java/org/apache/commons/lang3/time/DurationFormatUtilsTest.java#L463-L473
> > > >
> > > > Or, should these cases no longer be supported?
> > > >
> > > > TY!
> > > > Gary
> > > >
> > > > On Fri, May 24, 2024 at 4:15 PM Laertes Moustakas 
> wrote:
> > > > >
> > > > > Greetings,
> > > > >
> > > > > org.apache.commons.lang3.time.DurationFormatUtils contains useful
> methods
> > > > > to format a duration or period of milliseconds in the textual
> > > > > representation given by the format argument. It even allows
> arbitrary text
> > > > > to be printed between single quotes, on the condition that any
> opening
> > > > > single quotes will eventually close with another single quo

Re: Re: [LANG] Support single quotes in DurationFormatUtils methods' formats

2024-05-29 Thread sebb
On Sun, 26 May 2024 at 23:37, sebb  wrote:
>
> On Sun, 26 May 2024 at 08:25, Laertes Moustakas  wrote:
> >
> > Hello Gary,
> >
> > Thank you for your response. Some of the new assertions indeed fail when 
> > interpreting the duplicate single quote as an escaped quote instead of a 
> > closing and opening quote. In particular, "y' ''years' M 'months'" is 
> > interpreted as "4 'years 0 months" while the expected text lacks the quote 
> > before "years". Same for "hello''world": it's interpreted as "hello'world" 
> > instead of "helloworld".
>
> Please see https://github.com/apache/commons-lang/pull/1227 for an
> alternate solution.
> This does not cause issues with any existing tests.
>
> However, it does change the behaviour of a duplicate single quote
> which is found outside an existing opening and closing quote.
> Instead of the empty string, it generates a lone single quote.
>
> Whilst this is a change in behaviour, it seems to me that there should
> be no need for anyone to use a format that uses a pair of adjacent
> single quotes to generate an empty string in the output, so it seems
> unlikely that this will cause any breakages.

I've since realised that this argument could also apply to the
existing test cases: is there really a use-case for adjacent constant
strings?
Why would anyone want to split a constant string in this way?
AFAICT it just makes it harder to read the string.

i.e. do the test cases represent a real-world use case?

> > I understand this brings forth a breaking change in formats that use two 
> > single quotes to close and open new literals (or even add an empty string), 
> > but this is consistent with what java.text.SimpleDateFormat expects. And I 
> > believe that most developers would favor consistency between format strings 
> > in equivalent classes. Thus, I think the cases described above where the 
> > two single quotes terminate and begin a literal should no longer be 
> > supported.

I agree.

My alternate solution avoids breaking the test cases, but the downside
is that the syntax is not in agreement with
java.text.SimpleDateFormat, and is more verbose where a single-quote
is to be inserted in an existing constant string (it requires 4 single
quotes, rather than 2).

> >
> > Should this change go forward, I expect it to be part of a major release 
> > (e.g. version 4.0.0, 5.0.0, etc.) instead of 3.x.x, as it does contain a 
> > breaking change.
> >
> > If you have more questions, please don't hesitate to contact me.
> >
> > Best regards,
> > Laertes
> >
> > On 2024/05/25 13:47:23 Gary Gregory wrote:
> > > Hello Laertes,
> > >
> > > Thank you for your interest in improving Apache Commons Lang :-)
> > >
> > > Do you foresee any compatibility issues for existing call sites and
> > > format strings?
> > >
> > > For example, can you make your use cases work and still support:
> > >
> > > https://github.com/apache/commons-lang/blob/d861f1b2116a41a45949d1401785220119a57e56/src/test/java/org/apache/commons/lang3/time/DurationFormatUtilsTest.java#L463-L473
> > >
> > > Or, should these cases no longer be supported?
> > >
> > > TY!
> > > Gary
> > >
> > > On Fri, May 24, 2024 at 4:15 PM Laertes Moustakas  wrote:
> > > >
> > > > Greetings,
> > > >
> > > > org.apache.commons.lang3.time.DurationFormatUtils contains useful 
> > > > methods
> > > > to format a duration or period of milliseconds in the textual
> > > > representation given by the format argument. It even allows arbitrary 
> > > > text
> > > > to be printed between single quotes, on the condition that any opening
> > > > single quotes will eventually close with another single quote.
> > > >
> > > > For example,
> > > > DurationFormatUtils.formatDuration(64000L, "mm:ss")
> > > > will return "01:04".
> > > >
> > > > While
> > > > DurationFormatUtils.formatDuration(1804000L, "m'min' s'sec'")
> > > > will yield "34min 4sec".
> > > >
> > > > However, as per the JavaDoc page for this class
> > > > <https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DurationFormatUtils.html>
> > > > including
> > > > a single quote is currently not supported. Other classes that format
> > &

Re: Re: [LANG] Support single quotes in DurationFormatUtils methods' formats

2024-05-26 Thread sebb
On Sun, 26 May 2024 at 08:25, Laertes Moustakas  wrote:
>
> Hello Gary,
>
> Thank you for your response. Some of the new assertions indeed fail when 
> interpreting the duplicate single quote as an escaped quote instead of a 
> closing and opening quote. In particular, "y' ''years' M 'months'" is 
> interpreted as "4 'years 0 months" while the expected text lacks the quote 
> before "years". Same for "hello''world": it's interpreted as "hello'world" 
> instead of "helloworld".

Please see https://github.com/apache/commons-lang/pull/1227 for an
alternate solution.
This does not cause issues with any existing tests.

However, it does change the behaviour of a duplicate single quote
which is found outside an existing opening and closing quote.
Instead of the empty string, it generates a lone single quote.

Whilst this is a change in behaviour, it seems to me that there should
be no need for anyone to use a format that uses a pair of adjacent
single quotes to generate an empty string in the output, so it seems
unlikely that this will cause any breakages.

> I understand this brings forth a breaking change in formats that use two 
> single quotes to close and open new literals (or even add an empty string), 
> but this is consistent with what java.text.SimpleDateFormat expects. And I 
> believe that most developers would favor consistency between format strings 
> in equivalent classes. Thus, I think the cases described above where the two 
> single quotes terminate and begin a literal should no longer be supported.
>
> Should this change go forward, I expect it to be part of a major release 
> (e.g. version 4.0.0, 5.0.0, etc.) instead of 3.x.x, as it does contain a 
> breaking change.
>
> If you have more questions, please don't hesitate to contact me.
>
> Best regards,
> Laertes
>
> On 2024/05/25 13:47:23 Gary Gregory wrote:
> > Hello Laertes,
> >
> > Thank you for your interest in improving Apache Commons Lang :-)
> >
> > Do you foresee any compatibility issues for existing call sites and
> > format strings?
> >
> > For example, can you make your use cases work and still support:
> >
> > https://github.com/apache/commons-lang/blob/d861f1b2116a41a45949d1401785220119a57e56/src/test/java/org/apache/commons/lang3/time/DurationFormatUtilsTest.java#L463-L473
> >
> > Or, should these cases no longer be supported?
> >
> > TY!
> > Gary
> >
> > On Fri, May 24, 2024 at 4:15 PM Laertes Moustakas  wrote:
> > >
> > > Greetings,
> > >
> > > org.apache.commons.lang3.time.DurationFormatUtils contains useful methods
> > > to format a duration or period of milliseconds in the textual
> > > representation given by the format argument. It even allows arbitrary text
> > > to be printed between single quotes, on the condition that any opening
> > > single quotes will eventually close with another single quote.
> > >
> > > For example,
> > > DurationFormatUtils.formatDuration(64000L, "mm:ss")
> > > will return "01:04".
> > >
> > > While
> > > DurationFormatUtils.formatDuration(1804000L, "m'min' s'sec'")
> > > will yield "34min 4sec".
> > >
> > > However, as per the JavaDoc page for this class
> > > <https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DurationFormatUtils.html>
> > > including
> > > a single quote is currently not supported. Other classes that format
> > > datetime such as the java.text.SimpleDateFormat do, by putting two single
> > > quotes next to each other.
> > >
> > > So something like
> > > new SimpleDateFormat("mm'' ss'sec'").format(new Date()); // note the two
> > > single quotes after "mm"
> > > will return something like this:
> > > "42' 02sec"
> > >
> > > Instead,
> > > DurationFormatUtils.formatDuration(64000L, "mm'' ss'sec'")
> > > will return "01 04sec".
> > >
> > > I wish to implement support for single quotes in the DurationFormatUtils
> > > format the same way SimpleDateFormat does; by escaping it with two
> > > consecutive single quote characters. I have searched the mailing list and
> > > found no similar request. I have already tested on the copy of a source
> > > code, including adding tests, and no test throughout the commons-lang
> > > project failed.
> > >
> > > Please let me know if this is an acceptable change, and the next steps to
> > > take should this move forward.
> > >
> > > Best regards,
> > > Laertes Moustakas
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >

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



RE: Re: [LANG] Support single quotes in DurationFormatUtils methods' formats

2024-05-26 Thread Laertes Moustakas
Hello Gary,

Thank you for your response. Some of the new assertions indeed fail when 
interpreting the duplicate single quote as an escaped quote instead of a 
closing and opening quote. In particular, "y' ''years' M 'months'" is 
interpreted as "4 'years 0 months" while the expected text lacks the quote 
before "years". Same for "hello''world": it's interpreted as "hello'world" 
instead of "helloworld".

I understand this brings forth a breaking change in formats that use two single 
quotes to close and open new literals (or even add an empty string), but this 
is consistent with what java.text.SimpleDateFormat expects. And I believe that 
most developers would favor consistency between format strings in equivalent 
classes. Thus, I think the cases described above where the two single quotes 
terminate and begin a literal should no longer be supported.

Should this change go forward, I expect it to be part of a major release (e.g. 
version 4.0.0, 5.0.0, etc.) instead of 3.x.x, as it does contain a breaking 
change.

If you have more questions, please don't hesitate to contact me.

Best regards,
Laertes

On 2024/05/25 13:47:23 Gary Gregory wrote:
> Hello Laertes,
>
> Thank you for your interest in improving Apache Commons Lang :-)
>
> Do you foresee any compatibility issues for existing call sites and
> format strings?
>
> For example, can you make your use cases work and still support:
>
> https://github.com/apache/commons-lang/blob/d861f1b2116a41a45949d1401785220119a57e56/src/test/java/org/apache/commons/lang3/time/DurationFormatUtilsTest.java#L463-L473
>
> Or, should these cases no longer be supported?
>
> TY!
> Gary
>
> On Fri, May 24, 2024 at 4:15 PM Laertes Moustakas  wrote:
> >
> > Greetings,
> >
> > org.apache.commons.lang3.time.DurationFormatUtils contains useful methods
> > to format a duration or period of milliseconds in the textual
> > representation given by the format argument. It even allows arbitrary text
> > to be printed between single quotes, on the condition that any opening
> > single quotes will eventually close with another single quote.
> >
> > For example,
> > DurationFormatUtils.formatDuration(64000L, "mm:ss")
> > will return "01:04".
> >
> > While
> > DurationFormatUtils.formatDuration(1804000L, "m'min' s'sec'")
> > will yield "34min 4sec".
> >
> > However, as per the JavaDoc page for this class
> > <https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DurationFormatUtils.html>
> > including
> > a single quote is currently not supported. Other classes that format
> > datetime such as the java.text.SimpleDateFormat do, by putting two single
> > quotes next to each other.
> >
> > So something like
> > new SimpleDateFormat("mm'' ss'sec'").format(new Date()); // note the two
> > single quotes after "mm"
> > will return something like this:
> > "42' 02sec"
> >
> > Instead,
> > DurationFormatUtils.formatDuration(64000L, "mm'' ss'sec'")
> > will return "01 04sec".
> >
> > I wish to implement support for single quotes in the DurationFormatUtils
> > format the same way SimpleDateFormat does; by escaping it with two
> > consecutive single quote characters. I have searched the mailing list and
> > found no similar request. I have already tested on the copy of a source
> > code, including adding tests, and no test throughout the commons-lang
> > project failed.
> >
> > Please let me know if this is an acceptable change, and the next steps to
> > take should this move forward.
> >
> > Best regards,
> > Laertes Moustakas
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


Re: [LANG] Support single quotes in DurationFormatUtils methods' formats

2024-05-25 Thread Gary Gregory
Hello Laertes,

Thank you for your interest in improving Apache Commons Lang :-)

Do you foresee any compatibility issues for existing call sites and
format strings?

For example, can you make your use cases work and still support:

https://github.com/apache/commons-lang/blob/d861f1b2116a41a45949d1401785220119a57e56/src/test/java/org/apache/commons/lang3/time/DurationFormatUtilsTest.java#L463-L473

Or, should these cases no longer be supported?

TY!
Gary

On Fri, May 24, 2024 at 4:15 PM Laertes Moustakas  wrote:
>
> Greetings,
>
> org.apache.commons.lang3.time.DurationFormatUtils contains useful methods
> to format a duration or period of milliseconds in the textual
> representation given by the format argument. It even allows arbitrary text
> to be printed between single quotes, on the condition that any opening
> single quotes will eventually close with another single quote.
>
> For example,
> DurationFormatUtils.formatDuration(64000L, "mm:ss")
> will return "01:04".
>
> While
> DurationFormatUtils.formatDuration(1804000L, "m'min' s'sec'")
> will yield "34min 4sec".
>
> However, as per the JavaDoc page for this class
> <https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DurationFormatUtils.html>
> including
> a single quote is currently not supported. Other classes that format
> datetime such as the java.text.SimpleDateFormat do, by putting two single
> quotes next to each other.
>
> So something like
> new SimpleDateFormat("mm'' ss'sec'").format(new Date()); // note the two
> single quotes after "mm"
> will return something like this:
> "42' 02sec"
>
> Instead,
> DurationFormatUtils.formatDuration(64000L, "mm'' ss'sec'")
> will return "01 04sec".
>
> I wish to implement support for single quotes in the DurationFormatUtils
> format the same way SimpleDateFormat does; by escaping it with two
> consecutive single quote characters. I have searched the mailing list and
> found no similar request. I have already tested on the copy of a source
> code, including adding tests, and no test throughout the commons-lang
> project failed.
>
> Please let me know if this is an acceptable change, and the next steps to
> take should this move forward.
>
> Best regards,
> Laertes Moustakas

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



Re: (commons-lang) branch master updated: Undoing 3322d974876b8d4f934d3544967103ebbcaef726

2024-05-22 Thread Gary Gregory
The build is broken.

This maybe should have been a git revert instead of a plain commit.

Gary

On Wed, May 22, 2024, 2:00 PM  wrote:

> This is an automated email from the ASF dual-hosted git repository.
>
> jochen pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/commons-lang.git
>
>
> The following commit(s) were added to refs/heads/master by this push:
>  new 9980cf11e Undoing 3322d974876b8d4f934d3544967103ebbcaef726
> 9980cf11e is described below
>
> commit 9980cf11e36ee58bf8556188bf252946f290b6c8
> Author: Jochen Wiedmann 
> AuthorDate: Wed May 22 20:00:10 2024 +0200
>
> Undoing 3322d974876b8d4f934d3544967103ebbcaef726
> ---
>  src/changes/changes.xml|  1 -
>  .../apache/commons/lang3/annotations/Insecure.java | 48 -
>  .../org/apache/commons/lang3/annotations/Safe.java | 61
> --
>  .../commons/lang3/annotations/package-info.java| 37 -
>  4 files changed, 147 deletions(-)
>
> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> index b69e1f8a2..34841687a 100644
> --- a/src/changes/changes.xml
> +++ b/src/changes/changes.xml
> @@ -140,7 +140,6 @@ The  type attribute can be
> add,update,fix,remove.
>   due-to="Dependabot">Bump org.apache.commons:commons-text from 1.11.0 to
> 1.12.0 #1200.
>  
>   due-to="Paranoïd User">Drop obsolete JDK 13 Maven profile #1142.
> -Added the
> annotations package, including the Insecure, and Safe annotations.
>
>
>  
> diff --git
> a/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> b/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> deleted file mode 100644
> index 2802f1189..0
> --- a/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -/*
> - * Licensed to the Apache Software Foundation (ASF) under one or more
> - * contributor license agreements.  See the NOTICE file distributed with
> - * this work for additional information regarding copyright ownership.
> - * The ASF licenses this file to You under the Apache License, Version 2.0
> - * (the "License"); you may not use this file except in compliance with
> - * the License.  You may obtain a copy of the License at
> - *
> - *  http://www.apache.org/licenses/LICENSE-2.0
> - *
> - * Unless required by applicable law or agreed to in writing, software
> - * distributed under the License is distributed on an "AS IS" BASIS,
> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> - * See the License for the specific language governing permissions and
> - * limitations under the License.
> - */
> -package org.apache.commons.lang3.annotations;
> -
> -import java.lang.annotation.Documented;
> -import java.lang.annotation.ElementType;
> -import java.lang.annotation.Retention;
> -import java.lang.annotation.RetentionPolicy;
> -import java.lang.annotation.Target;
> -
> -/**
> - * This annotation is used to indicate, that a constructor, or method
> - * is insecure to use, unless the input parameters contain safe
> ("trusted")
> - * values.
> - *
> - * For example, consider a method like 
> - *   {@literal @Insecure}
> - *   public void runCommand(String pCmdLine) {
> - *   }
> - * 
> - *
> - * The example method would invoke {@code /bin/sh} (Linux, Unix, or
> MacOS), or
> - * {@code cmd} (Windows) to run an external command, as given by the
> parameter
> - * {@code pCmdLine}. Obviously, depending on the value of the parameter,
> - * this can be dangerous, unless the API user (downstream developer)
> - * knows, that the parameter value is safe (for example, because
> it
> - * is hard coded, or because it has been compared to a white list of
> - * permissible values).
> - */
> -@Retention(RetentionPolicy.RUNTIME)
> -@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
> -@Documented
> -public @interface Insecure {
> -}
> diff --git a/src/main/java/org/apache/commons/lang3/annotations/Safe.java
> b/src/main/java/org/apache/commons/lang3/annotations/Safe.java
> deleted file mode 100644
> index c3a710cf2..0
> --- a/src/main/java/org/apache/commons/lang3/annotations/Safe.java
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -/*
> - * Licensed to the Apache Software Foundation (ASF) under one or more
> - * contributor license agreements.  See the NOTICE file distributed with
> - * this work for additional information regarding copyright ownership.
> - * The ASF licenses this file to You under the Apache License, Version 2.0
> - * (the "License"); you may not use this file except in compliance with
> - * the License.  You may obtain a copy of the License at
> - *
> - *  http://www.apache.org/licenses/LICENSE-2.0
> - *
> - * Unless required by applicable law or agreed to in writing, software
> - * distributed under the License is distributed on an "AS IS" BASIS,
> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> - * See the

Re: (commons-lang) branch master updated: Adding the @Insecure, and @Safe annotations.

2024-05-16 Thread sebb
On Fri, 17 May 2024 at 00:11, Gary Gregory  wrote:
>
> Can we PLEASE not do this unless we know what the plan is for Commons
> overall? I really don't want to have this stuff copied in all Commons
> Components because I doubt we will want to add Commons Lang as a dependency
> in all Components.

Agreed.

Also if we are to use annotations great care must be taken with the
RetentionPolicy.
Using the wrong setting can mean adding unnecessary runtime
dependencies (this was an issue with the JCIP annotations @ThreadSafe
etc)

> So, what's the plan? Do you plan on copying this stuff
> over and over or depending on Commons Lang all over.
>
> Imaging using code assit and seeing these types being offered from all over
> the place...

And finding they are all slightly different...

>
> Gary
>
> On Thu, May 16, 2024, 6:30 PM  wrote:
>
> > This is an automated email from the ASF dual-hosted git repository.
> >
> > jochen pushed a commit to branch master
> > in repository https://gitbox.apache.org/repos/asf/commons-lang.git
> >
> >
> > The following commit(s) were added to refs/heads/master by this push:
> >  new 3322d9748 Adding the @Insecure, and @Safe annotations.
> > 3322d9748 is described below
> >
> > commit 3322d974876b8d4f934d3544967103ebbcaef726
> > Author: Jochen Wiedmann 
> > AuthorDate: Fri May 17 00:28:39 2024 +0200
> >
> > Adding the @Insecure, and @Safe annotations.
> > ---
> >  src/changes/changes.xml|   1 +
> >  .../apache/commons/lang3/annotations/Insecure.java |  48 
> >  .../org/apache/commons/lang3/annotations/Safe.java |  61 +++
> >  .../commons/lang3/annotations/package-info.java|  37 +++
> >  .../commons/lang3/annotations/AnnotationsTest.java | 122
> > +
> >  5 files changed, 269 insertions(+)
> >
> > diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> > index 34841687a..b69e1f8a2 100644
> > --- a/src/changes/changes.xml
> > +++ b/src/changes/changes.xml
> > @@ -140,6 +140,7 @@ The  type attribute can be
> > add,update,fix,remove.
> >   > due-to="Dependabot">Bump org.apache.commons:commons-text from 1.11.0 to
> > 1.12.0 #1200.
> >  
> >   > due-to="Paranoïd User">Drop obsolete JDK 13 Maven profile #1142.
> > +Added the
> > annotations package, including the Insecure, and Safe annotations.
> >
> >
> >  
> > diff --git
> > a/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> > b/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> > new file mode 100644
> > index 0..2802f1189
> > --- /dev/null
> > +++ b/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> > @@ -0,0 +1,48 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one or more
> > + * contributor license agreements.  See the NOTICE file distributed with
> > + * this work for additional information regarding copyright ownership.
> > + * The ASF licenses this file to You under the Apache License, Version 2.0
> > + * (the "License"); you may not use this file except in compliance with
> > + * the License.  You may obtain a copy of the License at
> > + *
> > + *  http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing, software
> > + * distributed under the License is distributed on an "AS IS" BASIS,
> > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> > implied.
> > + * See the License for the specific language governing permissions and
> > + * limitations under the License.
> > + */
> > +package org.apache.commons.lang3.annotations;
> > +
> > +import java.lang.annotation.Documented;
> > +import java.lang.annotation.ElementType;
> > +import java.lang.annotation.Retention;
> > +import java.lang.annotation.RetentionPolicy;
> > +import java.lang.annotation.Target;
> > +
> > +/**
> > + * This annotation is used to indicate, that a constructor, or method
> > + * is insecure to use, unless the input parameters contain safe
> > ("trusted")
> > + * values.
> > + *
> > + * For example, consider a method like 
> > + *   {@literal @Insecure}
> > + *   public void runCommand(String pCmdLine) {
> > + *   }
> > + * 
> > + *
> > + * The example method would invoke {@code /bin/sh} (Linux, Unix, or
> > MacOS), or
> > + * {@code cmd} (Windows) to run an e

Re: (commons-lang) branch master updated: Adding the @Insecure, and @Safe annotations.

2024-05-16 Thread Gary Gregory
Can we PLEASE not do this unless we know what the plan is for Commons
overall? I really don't want to have this stuff copied in all Commons
Components because I doubt we will want to add Commons Lang as a dependency
in all Components. So, what's the plan? Do you plan on copying this stuff
over and over or depending on Commons Lang all over.

Imaging using code assit and seeing these types being offered from all over
the place...

Gary

Gary

On Thu, May 16, 2024, 6:30 PM  wrote:

> This is an automated email from the ASF dual-hosted git repository.
>
> jochen pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/commons-lang.git
>
>
> The following commit(s) were added to refs/heads/master by this push:
>  new 3322d9748 Adding the @Insecure, and @Safe annotations.
> 3322d9748 is described below
>
> commit 3322d974876b8d4f934d3544967103ebbcaef726
> Author: Jochen Wiedmann 
> AuthorDate: Fri May 17 00:28:39 2024 +0200
>
> Adding the @Insecure, and @Safe annotations.
> ---
>  src/changes/changes.xml|   1 +
>  .../apache/commons/lang3/annotations/Insecure.java |  48 
>  .../org/apache/commons/lang3/annotations/Safe.java |  61 +++
>  .../commons/lang3/annotations/package-info.java|  37 +++
>  .../commons/lang3/annotations/AnnotationsTest.java | 122
> +
>  5 files changed, 269 insertions(+)
>
> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> index 34841687a..b69e1f8a2 100644
> --- a/src/changes/changes.xml
> +++ b/src/changes/changes.xml
> @@ -140,6 +140,7 @@ The  type attribute can be
> add,update,fix,remove.
>   due-to="Dependabot">Bump org.apache.commons:commons-text from 1.11.0 to
> 1.12.0 #1200.
>  
>   due-to="Paranoïd User">Drop obsolete JDK 13 Maven profile #1142.
> +Added the
> annotations package, including the Insecure, and Safe annotations.
>
>
>  
> diff --git
> a/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> b/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> new file mode 100644
> index 0..2802f1189
> --- /dev/null
> +++ b/src/main/java/org/apache/commons/lang3/annotations/Insecure.java
> @@ -0,0 +1,48 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements.  See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License.  You may obtain a copy of the License at
> + *
> + *  http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +package org.apache.commons.lang3.annotations;
> +
> +import java.lang.annotation.Documented;
> +import java.lang.annotation.ElementType;
> +import java.lang.annotation.Retention;
> +import java.lang.annotation.RetentionPolicy;
> +import java.lang.annotation.Target;
> +
> +/**
> + * This annotation is used to indicate, that a constructor, or method
> + * is insecure to use, unless the input parameters contain safe
> ("trusted")
> + * values.
> + *
> + * For example, consider a method like 
> + *   {@literal @Insecure}
> + *   public void runCommand(String pCmdLine) {
> + *   }
> + * 
> + *
> + * The example method would invoke {@code /bin/sh} (Linux, Unix, or
> MacOS), or
> + * {@code cmd} (Windows) to run an external command, as given by the
> parameter
> + * {@code pCmdLine}. Obviously, depending on the value of the parameter,
> + * this can be dangerous, unless the API user (downstream developer)
> + * knows, that the parameter value is safe (for example, because
> it
> + * is hard coded, or because it has been compared to a white list of
> + * permissible values).
> + */
> +@Retention(RetentionPolicy.RUNTIME)
> +@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
> +@Documented
> +public @interface Insecure {
> +}
> diff --git a/src/main/java/org/apache/commons/lang3/annotations/Safe.java
> b/src/main/java/org/apache/commons/lang3/annotations/Safe.java
> new file mode 100644
> index 0..4b5212c71
> --- /dev/null
> +++ b/src/main/java/org/apache/commons/lang3/annotat

Re: (commons-lang) 01/02: Deprecate SystemUtils.getUserName(String) in favor of SystemProperties.getUserName(Supplier)

2024-05-02 Thread Gary D. Gregory
I meant I'll only change the Suppliers to Strings. The deprecations are fine 
IMO. This is how I see it:

- Stock system property access is done through SystemProperties (you get 
Strings)
- More advanced services that require conversions like getting a Stream of 
Paths for a java.class.path is done elsewhere. 
- For example, SystemUtils gives you the 'user.home' string as a File belongs 
where it is now: File file = SystemUtils.getUserHome(). I don't think we need a 
User class for example.

Gary

On 2024/05/02 18:57:04 "Gary D. Gregory" wrote:
> Hi Bernd,
> 
> Sounds reasonable. I'll revert the deprecation and use String defaults 
> instead of Suppliers.
> 
> Gary
> 
> On 2024/05/01 17:56:34 Bernd Eckenfels wrote:
> > Hi Gregory,
> > 
> > What’s the idea behind that deprecation? The implementation is robust and 
> > simple and easy to use. I would guess most user rather want to specify a 
> > literal fallback than a supplier.
> > 
> > Gruss
> > Bernd
> > 
> > ggreg...@apache.org wrote on 1. May 2024 16:07 (GMT +02:00):
> > 
> > > This is an automated email from the ASF dual-hosted git repository.
> > > 
> > > ggregory pushed a commit to branch master
> > > in repository https://gitbox.apache.org/repos/asf/commons-lang.git
> > > 
> > > commit 794f8aaf1e5a573a63ba6ca514eeb794bd39d855
> > > Author: Gary Gregory 
> > > AuthorDate: Wed May 1 09:12:09 2024 -0400
> > > 
> > > Deprecate SystemUtils.getUserName(String) in favor of
> > > SystemProperties.getUserName(Supplier)
> > > ---
> > >  src/changes/changes.xml | 1 +
> > >  src/main/java/org/apache/commons/lang3/SystemUtils.java | 3 +++
> > >  2 files changed, 4 insertions(+)
> > > 
> > > diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> > > index cdd3a0cd0..1d896a999 100644
> > > --- a/src/changes/changes.xml
> > > +++ b/src/changes/changes.xml
> > > @@ -123,6 +123,7 @@ The  type attribute can be
> > > add,update,fix,remove.
> > >  Fix Java version in README.md #1170.
> > >  StringUtils.stripAccents() should handle
> > >  ligatures, UTF32 math blocks, etc. #1201.
> > >   > >  due-to="kijong.youn, Aakash Gupta, Gary
> > >  Gregory">TypeUtils.toString(Type) StackOverflowError for an inner
> > >  class in the inner class parameterized enclosing class #657.
> > > +Deprecate SystemUtils.getUserName(String) in favor of
> > > SystemProperties.getUserName(Supplier).
> > >  
> > >   > >  due-to="Dependabot">Bump commons-parent from 64 to 69 #1194.
> > >   > >  due-to="Dependabot">Bump org.codehaus.mojo:exec-maven-plugin from
> > >  3.1.1 to 3.2.0 #1175.
> > > diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > > b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > > index cbb4721fb..8044fd4b0 100644
> > > --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > > +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > > @@ -17,6 +17,7 @@
> > >  package org.apache.commons.lang3;
> > >  
> > >  import java.io.File;
> > > +import java.util.function.Supplier;
> > >  
> > >  /**
> > >   * Helpers for {@link System}.
> > > @@ -2041,7 +2042,9 @@ public class SystemUtils {
> > >   * access to the specified system property.
> > >   * @see SystemProperties#getUserName()
> > >   * @since 3.10
> > > + * @deprecated Use {@link SystemProperties#getUserName(Supplier)}.
> > >   */
> > > +@Deprecated
> > >  public static String getUserName(final String defaultValue) {
> > >  return System.getProperty(SystemProperties.USER_NAME,
> > >  defaultValue);
> > >  }
> > > 
> > > 
> > 
> > 
> > Gruß
> > Bernd
> > — 
> > https://bernd.eckenfels.net
> > 
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> > 
> > 
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 
> 

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



Re: (commons-lang) 01/02: Deprecate SystemUtils.getUserName(String) in favor of SystemProperties.getUserName(Supplier)

2024-05-02 Thread Gary D. Gregory
Hello Elliotte,

OK, I'll use String defaults instead of Suppliers.

Gary

On 2024/05/02 16:48:48 Elliotte Rusty Harold wrote:
> I'm OK with preferring SystemProperties though I'm not sure that
> alpine justifies a new method and deprecation.
> 
> I second the opinion that a literal string is strongly preferable to a
> Supplier here. Pick the simplest thing that could possibly work. As
> Knuth warned us, premature optimization is the root of all evil in
> programming.
> 
> On Wed, May 1, 2024 at 1:56 PM Bernd Eckenfels  wrote:
> >
> > Hi Gregory,
> >
> > What’s the idea behind that deprecation? The implementation is robust and 
> > simple and easy to use. I would guess most user rather want to specify a 
> > literal fallback than a supplier.
> >
> > Gruss
> > Bernd
> >
> > ggreg...@apache.org wrote on 1. May 2024 16:07 (GMT +02:00):
> >
> > > This is an automated email from the ASF dual-hosted git repository.
> > >
> > > ggregory pushed a commit to branch master
> > > in repository https://gitbox.apache.org/repos/asf/commons-lang.git
> > >
> > > commit 794f8aaf1e5a573a63ba6ca514eeb794bd39d855
> > > Author: Gary Gregory 
> > > AuthorDate: Wed May 1 09:12:09 2024 -0400
> > >
> > > Deprecate SystemUtils.getUserName(String) in favor of
> > > SystemProperties.getUserName(Supplier)
> > > ---
> > >  src/changes/changes.xml | 1 +
> > >  src/main/java/org/apache/commons/lang3/SystemUtils.java | 3 +++
> > >  2 files changed, 4 insertions(+)
> > >
> > > diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> > > index cdd3a0cd0..1d896a999 100644
> > > --- a/src/changes/changes.xml
> > > +++ b/src/changes/changes.xml
> > > @@ -123,6 +123,7 @@ The  type attribute can be
> > > add,update,fix,remove.
> > >  Fix Java version in README.md #1170.
> > >  StringUtils.stripAccents() should handle
> > >  ligatures, UTF32 math blocks, etc. #1201.
> > >   > >  due-to="kijong.youn, Aakash Gupta, Gary
> > >  Gregory">TypeUtils.toString(Type) StackOverflowError for an inner
> > >  class in the inner class parameterized enclosing class #657.
> > > +Deprecate SystemUtils.getUserName(String) in favor of
> > > SystemProperties.getUserName(Supplier).
> > >  
> > >   > >  due-to="Dependabot">Bump commons-parent from 64 to 69 #1194.
> > >   > >  due-to="Dependabot">Bump org.codehaus.mojo:exec-maven-plugin from
> > >  3.1.1 to 3.2.0 #1175.
> > > diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > > b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > > index cbb4721fb..8044fd4b0 100644
> > > --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > > +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > > @@ -17,6 +17,7 @@
> > >  package org.apache.commons.lang3;
> > >
> > >  import java.io.File;
> > > +import java.util.function.Supplier;
> > >
> > >  /**
> > >   * Helpers for {@link System}.
> > > @@ -2041,7 +2042,9 @@ public class SystemUtils {
> > >   * access to the specified system property.
> > >   * @see SystemProperties#getUserName()
> > >   * @since 3.10
> > > + * @deprecated Use {@link SystemProperties#getUserName(Supplier)}.
> > >   */
> > > +@Deprecated
> > >  public static String getUserName(final String defaultValue) {
> > >  return System.getProperty(SystemProperties.USER_NAME,
> > >  defaultValue);
> > >  }
> > >
> > >
> >
> >
> > Gruß
> > Bernd
> > —
> > https://bernd.eckenfels.net
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> 
> 
> -- 
> Elliotte Rusty Harold
> elh...@ibiblio.org
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 
> 

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



Re: (commons-lang) 01/02: Deprecate SystemUtils.getUserName(String) in favor of SystemProperties.getUserName(Supplier)

2024-05-02 Thread Gary D. Gregory
Hi Bernd,

Sounds reasonable. I'll revert the deprecation and use String defaults instead 
of Suppliers.

Gary

On 2024/05/01 17:56:34 Bernd Eckenfels wrote:
> Hi Gregory,
> 
> What’s the idea behind that deprecation? The implementation is robust and 
> simple and easy to use. I would guess most user rather want to specify a 
> literal fallback than a supplier.
> 
> Gruss
> Bernd
> 
> ggreg...@apache.org wrote on 1. May 2024 16:07 (GMT +02:00):
> 
> > This is an automated email from the ASF dual-hosted git repository.
> > 
> > ggregory pushed a commit to branch master
> > in repository https://gitbox.apache.org/repos/asf/commons-lang.git
> > 
> > commit 794f8aaf1e5a573a63ba6ca514eeb794bd39d855
> > Author: Gary Gregory 
> > AuthorDate: Wed May 1 09:12:09 2024 -0400
> > 
> > Deprecate SystemUtils.getUserName(String) in favor of
> > SystemProperties.getUserName(Supplier)
> > ---
> >  src/changes/changes.xml | 1 +
> >  src/main/java/org/apache/commons/lang3/SystemUtils.java | 3 +++
> >  2 files changed, 4 insertions(+)
> > 
> > diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> > index cdd3a0cd0..1d896a999 100644
> > --- a/src/changes/changes.xml
> > +++ b/src/changes/changes.xml
> > @@ -123,6 +123,7 @@ The  type attribute can be
> > add,update,fix,remove.
> >  Fix Java version in README.md #1170.
> >  StringUtils.stripAccents() should handle
> >  ligatures, UTF32 math blocks, etc. #1201.
> >   >  due-to="kijong.youn, Aakash Gupta, Gary
> >  Gregory">TypeUtils.toString(Type) StackOverflowError for an inner
> >  class in the inner class parameterized enclosing class #657.
> > +Deprecate SystemUtils.getUserName(String) in favor of
> > SystemProperties.getUserName(Supplier).
> >  
> >   >  due-to="Dependabot">Bump commons-parent from 64 to 69 #1194.
> >   >  due-to="Dependabot">Bump org.codehaus.mojo:exec-maven-plugin from
> >  3.1.1 to 3.2.0 #1175.
> > diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > index cbb4721fb..8044fd4b0 100644
> > --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > @@ -17,6 +17,7 @@
> >  package org.apache.commons.lang3;
> >  
> >  import java.io.File;
> > +import java.util.function.Supplier;
> >  
> >  /**
> >   * Helpers for {@link System}.
> > @@ -2041,7 +2042,9 @@ public class SystemUtils {
> >   * access to the specified system property.
> >   * @see SystemProperties#getUserName()
> >   * @since 3.10
> > + * @deprecated Use {@link SystemProperties#getUserName(Supplier)}.
> >   */
> > +@Deprecated
> >  public static String getUserName(final String defaultValue) {
> >  return System.getProperty(SystemProperties.USER_NAME,
> >  defaultValue);
> >  }
> > 
> > 
> 
> 
> Gruß
> Bernd
> — 
> https://bernd.eckenfels.net
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 
> 

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



Re: (commons-lang) 01/02: Deprecate SystemUtils.getUserName(String) in favor of SystemProperties.getUserName(Supplier)

2024-05-02 Thread Elliotte Rusty Harold
I'm OK with preferring SystemProperties though I'm not sure that
alpine justifies a new method and deprecation.

I second the opinion that a literal string is strongly preferable to a
Supplier here. Pick the simplest thing that could possibly work. As
Knuth warned us, premature optimization is the root of all evil in
programming.

On Wed, May 1, 2024 at 1:56 PM Bernd Eckenfels  wrote:
>
> Hi Gregory,
>
> What’s the idea behind that deprecation? The implementation is robust and 
> simple and easy to use. I would guess most user rather want to specify a 
> literal fallback than a supplier.
>
> Gruss
> Bernd
>
> ggreg...@apache.org wrote on 1. May 2024 16:07 (GMT +02:00):
>
> > This is an automated email from the ASF dual-hosted git repository.
> >
> > ggregory pushed a commit to branch master
> > in repository https://gitbox.apache.org/repos/asf/commons-lang.git
> >
> > commit 794f8aaf1e5a573a63ba6ca514eeb794bd39d855
> > Author: Gary Gregory 
> > AuthorDate: Wed May 1 09:12:09 2024 -0400
> >
> > Deprecate SystemUtils.getUserName(String) in favor of
> > SystemProperties.getUserName(Supplier)
> > ---
> >  src/changes/changes.xml | 1 +
> >  src/main/java/org/apache/commons/lang3/SystemUtils.java | 3 +++
> >  2 files changed, 4 insertions(+)
> >
> > diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> > index cdd3a0cd0..1d896a999 100644
> > --- a/src/changes/changes.xml
> > +++ b/src/changes/changes.xml
> > @@ -123,6 +123,7 @@ The  type attribute can be
> > add,update,fix,remove.
> >  Fix Java version in README.md #1170.
> >  StringUtils.stripAccents() should handle
> >  ligatures, UTF32 math blocks, etc. #1201.
> >   >  due-to="kijong.youn, Aakash Gupta, Gary
> >  Gregory">TypeUtils.toString(Type) StackOverflowError for an inner
> >  class in the inner class parameterized enclosing class #657.
> > +Deprecate SystemUtils.getUserName(String) in favor of
> > SystemProperties.getUserName(Supplier).
> >  
> >   >  due-to="Dependabot">Bump commons-parent from 64 to 69 #1194.
> >   >  due-to="Dependabot">Bump org.codehaus.mojo:exec-maven-plugin from
> >  3.1.1 to 3.2.0 #1175.
> > diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > index cbb4721fb..8044fd4b0 100644
> > --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > @@ -17,6 +17,7 @@
> >  package org.apache.commons.lang3;
> >
> >  import java.io.File;
> > +import java.util.function.Supplier;
> >
> >  /**
> >   * Helpers for {@link System}.
> > @@ -2041,7 +2042,9 @@ public class SystemUtils {
> >   * access to the specified system property.
> >   * @see SystemProperties#getUserName()
> >   * @since 3.10
> > + * @deprecated Use {@link SystemProperties#getUserName(Supplier)}.
> >   */
> > +@Deprecated
> >  public static String getUserName(final String defaultValue) {
> >  return System.getProperty(SystemProperties.USER_NAME,
> >  defaultValue);
> >  }
> >
> >
>
>
> Gruß
> Bernd
> —
> https://bernd.eckenfels.net
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>


-- 
Elliotte Rusty Harold
elh...@ibiblio.org

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



Re: (commons-lang) 01/02: Deprecate SystemUtils.getUserName(String) in favor of SystemProperties.getUserName(Supplier)

2024-05-01 Thread Gary Gregory
It feels like the supplier version is much better to avoid the use case of
building the string in place.

I would also like to centralize all things related directly to sys props in
the SysProp class. This way, you know to look in one place instead of
sometimes here and sometimes there.

Do you think we need both versions of the API?

Gary

On Wed, May 1, 2024, 1:56 PM Bernd Eckenfels  wrote:

> Hi Gregory,
>
> What’s the idea behind that deprecation? The implementation is robust and
> simple and easy to use. I would guess most user rather want to specify a
> literal fallback than a supplier.
>
> Gruss
> Bernd
>
> ggreg...@apache.org wrote on 1. May 2024 16:07 (GMT +02:00):
>
> > This is an automated email from the ASF dual-hosted git repository.
> >
> > ggregory pushed a commit to branch master
> > in repository https://gitbox.apache.org/repos/asf/commons-lang.git
> >
> > commit 794f8aaf1e5a573a63ba6ca514eeb794bd39d855
> > Author: Gary Gregory 
> > AuthorDate: Wed May 1 09:12:09 2024 -0400
> >
> > Deprecate SystemUtils.getUserName(String) in favor of
> > SystemProperties.getUserName(Supplier)
> > ---
> >  src/changes/changes.xml | 1 +
> >  src/main/java/org/apache/commons/lang3/SystemUtils.java | 3 +++
> >  2 files changed, 4 insertions(+)
> >
> > diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> > index cdd3a0cd0..1d896a999 100644
> > --- a/src/changes/changes.xml
> > +++ b/src/changes/changes.xml
> > @@ -123,6 +123,7 @@ The  type attribute can be
> > add,update,fix,remove.
> >  Fix Java version in README.md #1170.
> >  StringUtils.stripAccents() should
> handle
> >  ligatures, UTF32 math blocks, etc. #1201.
> >   >  due-to="kijong.youn, Aakash Gupta, Gary
> >  Gregory">TypeUtils.toString(Type) StackOverflowError for an inner
> >  class in the inner class parameterized enclosing class
> #657.
> > +Deprecate SystemUtils.getUserName(String) in favor of
> > SystemProperties.getUserName(Supplier).
> >  
> >   >  due-to="Dependabot">Bump commons-parent from 64 to 69
> #1194.
> >   >  due-to="Dependabot">Bump org.codehaus.mojo:exec-maven-plugin from
> >  3.1.1 to 3.2.0 #1175.
> > diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > index cbb4721fb..8044fd4b0 100644
> > --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> > @@ -17,6 +17,7 @@
> >  package org.apache.commons.lang3;
> >
> >  import java.io.File;
> > +import java.util.function.Supplier;
> >
> >  /**
> >   * Helpers for {@link System}.
> > @@ -2041,7 +2042,9 @@ public class SystemUtils {
> >   * access to the specified system property.
> >   * @see SystemProperties#getUserName()
> >   * @since 3.10
> > + * @deprecated Use {@link SystemProperties#getUserName(Supplier)}.
> >   */
> > +@Deprecated
> >  public static String getUserName(final String defaultValue) {
> >  return System.getProperty(SystemProperties.USER_NAME,
> >  defaultValue);
> >  }
> >
> >
>
>
> Gruß
> Bernd
> —
> https://bernd.eckenfels.net
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


Re: (commons-lang) 01/02: Deprecate SystemUtils.getUserName(String) in favor of SystemProperties.getUserName(Supplier)

2024-05-01 Thread Bernd Eckenfels
Hi Gregory,

What’s the idea behind that deprecation? The implementation is robust and 
simple and easy to use. I would guess most user rather want to specify a 
literal fallback than a supplier.

Gruss
Bernd

ggreg...@apache.org wrote on 1. May 2024 16:07 (GMT +02:00):

> This is an automated email from the ASF dual-hosted git repository.
> 
> ggregory pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/commons-lang.git
> 
> commit 794f8aaf1e5a573a63ba6ca514eeb794bd39d855
> Author: Gary Gregory 
> AuthorDate: Wed May 1 09:12:09 2024 -0400
> 
> Deprecate SystemUtils.getUserName(String) in favor of
> SystemProperties.getUserName(Supplier)
> ---
>  src/changes/changes.xml | 1 +
>  src/main/java/org/apache/commons/lang3/SystemUtils.java | 3 +++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> index cdd3a0cd0..1d896a999 100644
> --- a/src/changes/changes.xml
> +++ b/src/changes/changes.xml
> @@ -123,6 +123,7 @@ The  type attribute can be
> add,update,fix,remove.
>  Fix Java version in README.md #1170.
>  StringUtils.stripAccents() should handle
>  ligatures, UTF32 math blocks, etc. #1201.
>due-to="kijong.youn, Aakash Gupta, Gary
>  Gregory">TypeUtils.toString(Type) StackOverflowError for an inner
>  class in the inner class parameterized enclosing class #657.
> +Deprecate SystemUtils.getUserName(String) in favor of
> SystemProperties.getUserName(Supplier).
>  
>due-to="Dependabot">Bump commons-parent from 64 to 69 #1194.
>due-to="Dependabot">Bump org.codehaus.mojo:exec-maven-plugin from
>  3.1.1 to 3.2.0 #1175.
> diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> index cbb4721fb..8044fd4b0 100644
> --- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
> +++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
> @@ -17,6 +17,7 @@
>  package org.apache.commons.lang3;
>  
>  import java.io.File;
> +import java.util.function.Supplier;
>  
>  /**
>   * Helpers for {@link System}.
> @@ -2041,7 +2042,9 @@ public class SystemUtils {
>   * access to the specified system property.
>   * @see SystemProperties#getUserName()
>   * @since 3.10
> + * @deprecated Use {@link SystemProperties#getUserName(Supplier)}.
>   */
> +@Deprecated
>  public static String getUserName(final String defaultValue) {
>  return System.getProperty(SystemProperties.USER_NAME,
>  defaultValue);
>  }
> 
> 


Gruß
Bernd
— 
https://bernd.eckenfels.net

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



Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-08 Thread Mark Struberg
gggests to use trySetAccessible. But I fear that will still do nothing
>> and you won't get access to those inner knowledge inside
>> java.util.LinkedList etc.
>>>>>> 
>>>>>> And using equals() on the List sadly won't help either, as the
>> SomeInnerDTO would also get compared with equals(), but that will obviously
>> use identity comparison only :(
>>>>>> 
>>>>>> 
>>>>>> What I did for now (running all tests with a few projects right now,
>> but looks promising):
>>>>>> 
>>>>>> diff --git
>> a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>> b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>>>>>> index ff5276b04..cf878da40 100644
>>>>>> ---
>> a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>>>>>> +++
>> b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>>>>>> @@ -978,6 +978,16 @@ public EqualsBuilder reflectionAppend(final
>> Object lhs, final Object rhs) {
>>>>>>   if (bypassReflectionClasses != null
>>>>>>   && (bypassReflectionClasses.contains(lhsClass) ||
>> bypassReflectionClasses.contains(rhsClass))) {
>>>>>>   isEquals = lhs.equals(rhs);
>>>>>> +} else if (testClass.isAssignableFrom(List.class)) {
>>>>>> +List lList = (List) lhs;
>>>>>> +List rList = (List) rhs;
>>>>>> +if (lList.size() != rList.size()) {
>>>>>> +isEquals = false;
>>>>>> +return this;
>>>>>> +}
>>>>>> +for (int i = 0; i < lList.size(); i++) {
>>>>>> +reflectionAppend(lList.get(i), rList.get(i));
>>>>>> +}
>>>>>>   } else {
>>>>>> 
>>>>>> I'm rather sure this is still not enough and there are plenty other
>> cases to consider. Like e.g. handling Maps etc.
>>>>>> But at least that's the direction I try to approach it right now. And
>> of course this new part should potentially also be enabled by a flag...
>>>>>> 
>>>>>> Will keep you updated.
>>>>>> 
>>>>>> txs and LieGrue,
>>>>>> strub
>>>>>> 
>>>>>> 
>>>>>> [1] https://issues.apache.org/jira/browse/LANG-1711
>>>>>> 
>>>>>>> Am 06.03.2024 um 13:18 schrieb Gary Gregory >> :
>>>>>>> 
>>>>>>> This sounds like a good idea to try. I would call the option
>> something else
>>>>>>> though. We would not skip calling equals if it is defined right? How
>> about
>>>>>>> "useEqualsIfPresent".
>>>>>>> 
>>>>>>> Gary
>>>>>>> 
>>>>>>> On Wed, Mar 6, 2024, 5:03 AM Mark Struberg >> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> Hi!
>>>>>>>> 
>>>>>>>> I have a question about EqualsBuilder#reflectionEquals. From Java9
>> onwards
>>>>>>>> we get more and more nasty module problems. Mainly because the code
>> tries
>>>>>>>> to recurse into java.util.* classes as well.
>>>>>>>> I know that I can use setBypassReflectionClasses for those. But
>> wouldn't
>>>>>>>> it be fine to have an additional switch to 'skipOnCustomEquals' or
>> similar?
>>>>>>>> 
>>>>>>>> The idea is to only use reflection on classes which do not provide
>> their
>>>>>>>> own equals method. One can test this imo rather easily by checking
>> whether
>>>>>>>> classInQuestion.getMethod("equals",
>> Object.class).getDeclaringClass() !=
>>>>>>>> Object.class
>>>>>>>> Do that for lhs and rhs and if both fit the criteria -> invoke
>> equals
>>>>>>>> 
>>>>>>>> Wdyt of that idea? Worth trying or is there already a better
>> solution?
>>>>>>>> With the new flag we can make sure that we do not change the current
>>>>>>>> behaviour for existing use cases.
>>>>>>>> 
>>>>>>>> LieGrue,
>>>>>>>> strub
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>> -
>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> -
>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>>> 
>>>>> 
>>>>> -
>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>> 
>>>> 
>>>> 
>>>> -
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > dev-unsubscr...@commons.apache.org>
>>>> For additional commands, e-mail: dev-h...@commons.apache.org > dev-h...@commons.apache.org>
>>>> 
>>>> 
>>> 
>>> -
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > dev-unsubscr...@commons.apache.org>
>>> For additional commands, e-mail: dev-h...@commons.apache.org > dev-h...@commons.apache.org>
>> 


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



Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-08 Thread Gary Gregory
ilder/EqualsBuilder.java
> >>>> index ff5276b04..cf878da40 100644
> >>>> ---
> a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> >>>> +++
> b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> >>>> @@ -978,6 +978,16 @@ public EqualsBuilder reflectionAppend(final
> Object lhs, final Object rhs) {
> >>>>if (bypassReflectionClasses != null
> >>>>&& (bypassReflectionClasses.contains(lhsClass) ||
> bypassReflectionClasses.contains(rhsClass))) {
> >>>>isEquals = lhs.equals(rhs);
> >>>> +} else if (testClass.isAssignableFrom(List.class)) {
> >>>> +List lList = (List) lhs;
> >>>> +List rList = (List) rhs;
> >>>> +if (lList.size() != rList.size()) {
> >>>> +isEquals = false;
> >>>> +return this;
> >>>> +}
> >>>> +for (int i = 0; i < lList.size(); i++) {
> >>>> +reflectionAppend(lList.get(i), rList.get(i));
> >>>> +}
> >>>>} else {
> >>>>
> >>>> I'm rather sure this is still not enough and there are plenty other
> cases to consider. Like e.g. handling Maps etc.
> >>>> But at least that's the direction I try to approach it right now. And
> of course this new part should potentially also be enabled by a flag...
> >>>>
> >>>> Will keep you updated.
> >>>>
> >>>> txs and LieGrue,
> >>>> strub
> >>>>
> >>>>
> >>>> [1] https://issues.apache.org/jira/browse/LANG-1711
> >>>>
> >>>>> Am 06.03.2024 um 13:18 schrieb Gary Gregory  >:
> >>>>>
> >>>>> This sounds like a good idea to try. I would call the option
> something else
> >>>>> though. We would not skip calling equals if it is defined right? How
> about
> >>>>> "useEqualsIfPresent".
> >>>>>
> >>>>> Gary
> >>>>>
> >>>>> On Wed, Mar 6, 2024, 5:03 AM Mark Struberg  >
> >>>>> wrote:
> >>>>>
> >>>>>> Hi!
> >>>>>>
> >>>>>> I have a question about EqualsBuilder#reflectionEquals. From Java9
> onwards
> >>>>>> we get more and more nasty module problems. Mainly because the code
> tries
> >>>>>> to recurse into java.util.* classes as well.
> >>>>>> I know that I can use setBypassReflectionClasses for those. But
> wouldn't
> >>>>>> it be fine to have an additional switch to 'skipOnCustomEquals' or
> similar?
> >>>>>>
> >>>>>> The idea is to only use reflection on classes which do not provide
> their
> >>>>>> own equals method. One can test this imo rather easily by checking
> whether
> >>>>>> classInQuestion.getMethod("equals",
> Object.class).getDeclaringClass() !=
> >>>>>> Object.class
> >>>>>> Do that for lhs and rhs and if both fit the criteria -> invoke
> equals
> >>>>>>
> >>>>>> Wdyt of that idea? Worth trying or is there already a better
> solution?
> >>>>>> With the new flag we can make sure that we do not change the current
> >>>>>> behaviour for existing use cases.
> >>>>>>
> >>>>>> LieGrue,
> >>>>>> strub
> >>>>>>
> >>>>>>
> >>>>>>
> -
> >>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >>>> -
> >>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >>>> For additional commands, e-mail: dev-h...@commons.apache.org
> >>>>
> >>>
> >>> -
> >>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >>> For additional commands, e-mail: dev-h...@commons.apache.org
> >>>
> >>
> >>
> >> -
> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org  dev-unsubscr...@commons.apache.org>
> >> For additional commands, e-mail: dev-h...@commons.apache.org  dev-h...@commons.apache.org>
> >>
> >>
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org  dev-unsubscr...@commons.apache.org>
> > For additional commands, e-mail: dev-h...@commons.apache.org  dev-h...@commons.apache.org>
>


Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-08 Thread Mark Struberg
 ff5276b04..cf878da40 100644
>>>>> ---
>> a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>>>>> +++
>> b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>>>>> @@ -978,6 +978,16 @@ public EqualsBuilder reflectionAppend(final
>> Object lhs, final Object rhs) {
>>>>>if (bypassReflectionClasses != null
>>>>>&& (bypassReflectionClasses.contains(lhsClass) ||
>> bypassReflectionClasses.contains(rhsClass))) {
>>>>>isEquals = lhs.equals(rhs);
>>>>> +} else if (testClass.isAssignableFrom(List.class)) {
>>>>> +List lList = (List) lhs;
>>>>> +List rList = (List) rhs;
>>>>> +if (lList.size() != rList.size()) {
>>>>> +isEquals = false;
>>>>> +return this;
>>>>> +}
>>>>> +for (int i = 0; i < lList.size(); i++) {
>>>>> +reflectionAppend(lList.get(i), rList.get(i));
>>>>> +}
>>>>>} else {
>>>>> 
>>>>> I'm rather sure this is still not enough and there are plenty other
>> cases to consider. Like e.g. handling Maps etc.
>>>>> But at least that's the direction I try to approach it right now. And
>> of course this new part should potentially also be enabled by a flag...
>>>>> 
>>>>> Will keep you updated.
>>>>> 
>>>>> txs and LieGrue,
>>>>> strub
>>>>> 
>>>>> 
>>>>> [1] https://issues.apache.org/jira/browse/LANG-1711
>>>>> 
>>>>>> Am 06.03.2024 um 13:18 schrieb Gary Gregory >> :
>>>>>> 
>>>>>> This sounds like a good idea to try. I would call the option
>> something else
>>>>>> though. We would not skip calling equals if it is defined right? How
>> about
>>>>>> "useEqualsIfPresent".
>>>>>> 
>>>>>> Gary
>>>>>> 
>>>>>> On Wed, Mar 6, 2024, 5:03 AM Mark Struberg >> 
>>>>>> wrote:
>>>>>> 
>>>>>>> Hi!
>>>>>>> 
>>>>>>> I have a question about EqualsBuilder#reflectionEquals. From Java9
>> onwards
>>>>>>> we get more and more nasty module problems. Mainly because the code
>> tries
>>>>>>> to recurse into java.util.* classes as well.
>>>>>>> I know that I can use setBypassReflectionClasses for those. But
>> wouldn't
>>>>>>> it be fine to have an additional switch to 'skipOnCustomEquals' or
>> similar?
>>>>>>> 
>>>>>>> The idea is to only use reflection on classes which do not provide
>> their
>>>>>>> own equals method. One can test this imo rather easily by checking
>> whether
>>>>>>> classInQuestion.getMethod("equals",
>> Object.class).getDeclaringClass() !=
>>>>>>> Object.class
>>>>>>> Do that for lhs and rhs and if both fit the criteria -> invoke
>> equals
>>>>>>> 
>>>>>>> Wdyt of that idea? Worth trying or is there already a better
>> solution?
>>>>>>> With the new flag we can make sure that we do not change the current
>>>>>>> behaviour for existing use cases.
>>>>>>> 
>>>>>>> LieGrue,
>>>>>>> strub
>>>>>>> 
>>>>>>> 
>>>>>>> 
>> -
>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>>>> -
>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>> 
>>>> 
>>>> -
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>> 
>>> 
>>> 
>>> -
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>> 
>>> 
>> 
>> -
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>> 
>> 


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



Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-08 Thread Mark Struberg
ect rhs) {
>>>>if (bypassReflectionClasses != null
>>>>&& (bypassReflectionClasses.contains(lhsClass) || 
>>>> bypassReflectionClasses.contains(rhsClass))) {
>>>>isEquals = lhs.equals(rhs);
>>>> +} else if (testClass.isAssignableFrom(List.class)) {
>>>> +    List lList = (List) lhs;
>>>> +List rList = (List) rhs;
>>>> +if (lList.size() != rList.size()) {
>>>> +isEquals = false;
>>>> +return this;
>>>> +}
>>>> +for (int i = 0; i < lList.size(); i++) {
>>>> +reflectionAppend(lList.get(i), rList.get(i));
>>>> +}
>>>>} else {
>>>> 
>>>> I'm rather sure this is still not enough and there are plenty other cases 
>>>> to consider. Like e.g. handling Maps etc.
>>>> But at least that's the direction I try to approach it right now. And of 
>>>> course this new part should potentially also be enabled by a flag...
>>>> 
>>>> Will keep you updated.
>>>> 
>>>> txs and LieGrue,
>>>> strub
>>>> 
>>>> 
>>>> [1] https://issues.apache.org/jira/browse/LANG-1711
>>>> 
>>>>> Am 06.03.2024 um 13:18 schrieb Gary Gregory :
>>>>> 
>>>>> This sounds like a good idea to try. I would call the option something 
>>>>> else
>>>>> though. We would not skip calling equals if it is defined right? How about
>>>>> "useEqualsIfPresent".
>>>>> 
>>>>> Gary
>>>>> 
>>>>> On Wed, Mar 6, 2024, 5:03 AM Mark Struberg 
>>>>> wrote:
>>>>> 
>>>>>> Hi!
>>>>>> 
>>>>>> I have a question about EqualsBuilder#reflectionEquals. From Java9 
>>>>>> onwards
>>>>>> we get more and more nasty module problems. Mainly because the code tries
>>>>>> to recurse into java.util.* classes as well.
>>>>>> I know that I can use setBypassReflectionClasses for those. But wouldn't
>>>>>> it be fine to have an additional switch to 'skipOnCustomEquals' or 
>>>>>> similar?
>>>>>> 
>>>>>> The idea is to only use reflection on classes which do not provide their
>>>>>> own equals method. One can test this imo rather easily by checking 
>>>>>> whether
>>>>>> classInQuestion.getMethod("equals", Object.class).getDeclaringClass() !=
>>>>>> Object.class
>>>>>> Do that for lhs and rhs and if both fit the criteria -> invoke equals
>>>>>> 
>>>>>> Wdyt of that idea? Worth trying or is there already a better solution?
>>>>>> With the new flag we can make sure that we do not change the current
>>>>>> behaviour for existing use cases.
>>>>>> 
>>>>>> LieGrue,
>>>>>> strub
>>>>>> 
>>>>>> 
>>>>>> -
>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>>>> -
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>> 
>>> 
>>> -
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>> 
>> 
>> 
>> -
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
>> <mailto:dev-unsubscr...@commons.apache.org>
>> For additional commands, e-mail: dev-h...@commons.apache.org 
>> <mailto:dev-h...@commons.apache.org>
>> 
>> 
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
> <mailto:dev-unsubscr...@commons.apache.org>
> For additional commands, e-mail: dev-h...@commons.apache.org 
> <mailto:dev-h...@commons.apache.org>


Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-07 Thread Daniel Watson
ass)) {
> > >> +List lList = (List) lhs;
> > >> +List rList = (List) rhs;
> > >> +if (lList.size() != rList.size()) {
> > >> +isEquals = false;
> > >> +return this;
> > >> +}
> > >> +for (int i = 0; i < lList.size(); i++) {
> > >> +reflectionAppend(lList.get(i), rList.get(i));
> > >> +}
> > >> } else {
> > >>
> > >> I'm rather sure this is still not enough and there are plenty other
> cases to consider. Like e.g. handling Maps etc.
> > >> But at least that's the direction I try to approach it right now. And
> of course this new part should potentially also be enabled by a flag...
> > >>
> > >> Will keep you updated.
> > >>
> > >> txs and LieGrue,
> > >> strub
> > >>
> > >>
> > >> [1] https://issues.apache.org/jira/browse/LANG-1711
> > >>
> > >>> Am 06.03.2024 um 13:18 schrieb Gary Gregory  >:
> > >>>
> > >>> This sounds like a good idea to try. I would call the option
> something else
> > >>> though. We would not skip calling equals if it is defined right? How
> about
> > >>> "useEqualsIfPresent".
> > >>>
> > >>> Gary
> > >>>
> > >>> On Wed, Mar 6, 2024, 5:03 AM Mark Struberg  >
> > >>> wrote:
> > >>>
> > >>>> Hi!
> > >>>>
> > >>>> I have a question about EqualsBuilder#reflectionEquals. From Java9
> onwards
> > >>>> we get more and more nasty module problems. Mainly because the code
> tries
> > >>>> to recurse into java.util.* classes as well.
> > >>>> I know that I can use setBypassReflectionClasses for those. But
> wouldn't
> > >>>> it be fine to have an additional switch to 'skipOnCustomEquals' or
> similar?
> > >>>>
> > >>>> The idea is to only use reflection on classes which do not provide
> their
> > >>>> own equals method. One can test this imo rather easily by checking
> whether
> > >>>> classInQuestion.getMethod("equals",
> Object.class).getDeclaringClass() !=
> > >>>> Object.class
> > >>>> Do that for lhs and rhs and if both fit the criteria -> invoke
> equals
> > >>>>
> > >>>> Wdyt of that idea? Worth trying or is there already a better
> solution?
> > >>>> With the new flag we can make sure that we do not change the current
> > >>>> behaviour for existing use cases.
> > >>>>
> > >>>> LieGrue,
> > >>>> strub
> > >>>>
> > >>>>
> > >>>>
> -
> > >>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >>>> For additional commands, e-mail: dev-h...@commons.apache.org
> > >>>>
> > >>>>
> > >>
> > >>
> > >> -
> > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >> For additional commands, e-mail: dev-h...@commons.apache.org
> > >>
> > >
> > > -
> > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > For additional commands, e-mail: dev-h...@commons.apache.org
> > >
> >
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-07 Thread Gary D. Gregory
On 2024/03/07 06:58:30 Mark Struberg wrote:
> The question to me is how we can make it more robust.
> In a Collection (but actually also in most lists) the order in which you get 
> the values (Iterator or get(i)) is not deterministic. It can be different in 
> one list than in another - even if they contain the exact same items.

Hm, so to iterate through Lists in parallel would work but not with Sets.

> 
> Not yet sure how to work around this. We can probably try to sort it first, 
> but then again, if they do not implement Comparable it won't help much. Or do 
> a containsElement based on reflection as well - but that would be rather slow.

This is one of those: If you want support for the feature, it'll work, but 
it'll be slow because there is no other way to do it (for now if ever).

Gary

> 
> Same with Maps. There is a good reason why the key at least should implement 
> equals/hashCode. If this is not the case, then we are not able to implement 
> this properly I fear.
> 
> Any ideas?
> 
> LieGrue,
> strub
> 
> > Am 06.03.2024 um 15:53 schrieb Gary Gregory :
> > 
> > Ah, right, custom "non-equalable" _inside_ Collections and Maps...
> > 
> > For the diff, I'd suggest you test and iterable over a Collection
> > instead of a List.
> > 
> > Then you'd need a separate test and traversal for Map instances.
> > 
> > (Still no common super-interface in Java 21 for Collections and Maps...)
> > 
> > Gary
> > 
> > On Wed, Mar 6, 2024 at 7:40 AM Mark Struberg  
> > wrote:
> >> 
> >> Hi Gregory!
> >> 
> >> I did try this out and figured that I didn't think it though. Maybe I need 
> >> to go a few steps back and explain the problem:
> >> 
> >> I have the following constellation
> >> 
> >> public class SomeInnerDTO {int field..} // NOT implements equals!
> >> public class TheOuterDTO{ List innerList;..}
> >> 
> >> My problem is that reflectionEquals (which I use in a unit test) tries to 
> >> introspect fields even in java.util.classes. And for getting the values of 
> >> those classes it tries to call a setAccessible(true);
> >> And obviously here it fails. There is a ticket already open [1] which 
> >> sugggests to use trySetAccessible. But I fear that will still do nothing 
> >> and you won't get access to those inner knowledge inside 
> >> java.util.LinkedList etc.
> >> 
> >> And using equals() on the List sadly won't help either, as the 
> >> SomeInnerDTO would also get compared with equals(), but that will 
> >> obviously use identity comparison only :(
> >> 
> >> 
> >> What I did for now (running all tests with a few projects right now, but 
> >> looks promising):
> >> 
> >> diff --git 
> >> a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java 
> >> b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> >> index ff5276b04..cf878da40 100644
> >> --- a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> >> +++ b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> >> @@ -978,6 +978,16 @@ public EqualsBuilder reflectionAppend(final Object 
> >> lhs, final Object rhs) {
> >> if (bypassReflectionClasses != null
> >> && (bypassReflectionClasses.contains(lhsClass) || 
> >> bypassReflectionClasses.contains(rhsClass))) {
> >> isEquals = lhs.equals(rhs);
> >> +} else if (testClass.isAssignableFrom(List.class)) {
> >> +List lList = (List) lhs;
> >> +List rList = (List) rhs;
> >> +if (lList.size() != rList.size()) {
> >> +isEquals = false;
> >> +return this;
> >> +    }
> >> +for (int i = 0; i < lList.size(); i++) {
> >> +reflectionAppend(lList.get(i), rList.get(i));
> >> +}
> >> } else {
> >> 
> >> I'm rather sure this is still not enough and there are plenty other cases 
> >> to consider. Like e.g. handling Maps etc.
> >> But at least that's the direction I try to approach it right now. And of 
> >> course this new part should potentially also be enabled by a flag...
> >> 
> >> Will keep you updated.
> >> 
> >> txs and LieGrue,
> >> strub
> >> 
> >> 
> >>

Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-07 Thread sebb
Could one calculate the hashes for each entry, sort them, and then
generate the hash for the collection?

On Thu, 7 Mar 2024 at 06:59, Mark Struberg  wrote:
>
> The question to me is how we can make it more robust.
> In a Collection (but actually also in most lists) the order in which you get 
> the values (Iterator or get(i)) is not deterministic. It can be different in 
> one list than in another - even if they contain the exact same items.
>
> Not yet sure how to work around this. We can probably try to sort it first, 
> but then again, if they do not implement Comparable it won't help much. Or do 
> a containsElement based on reflection as well - but that would be rather slow.
>
> Same with Maps. There is a good reason why the key at least should implement 
> equals/hashCode. If this is not the case, then we are not able to implement 
> this properly I fear.
>
> Any ideas?
>
> LieGrue,
> strub
>
> > Am 06.03.2024 um 15:53 schrieb Gary Gregory :
> >
> > Ah, right, custom "non-equalable" _inside_ Collections and Maps...
> >
> > For the diff, I'd suggest you test and iterable over a Collection
> > instead of a List.
> >
> > Then you'd need a separate test and traversal for Map instances.
> >
> > (Still no common super-interface in Java 21 for Collections and Maps...)
> >
> > Gary
> >
> > On Wed, Mar 6, 2024 at 7:40 AM Mark Struberg  
> > wrote:
> >>
> >> Hi Gregory!
> >>
> >> I did try this out and figured that I didn't think it though. Maybe I need 
> >> to go a few steps back and explain the problem:
> >>
> >> I have the following constellation
> >>
> >> public class SomeInnerDTO {int field..} // NOT implements equals!
> >> public class TheOuterDTO{ List innerList;..}
> >>
> >> My problem is that reflectionEquals (which I use in a unit test) tries to 
> >> introspect fields even in java.util.classes. And for getting the values of 
> >> those classes it tries to call a setAccessible(true);
> >> And obviously here it fails. There is a ticket already open [1] which 
> >> sugggests to use trySetAccessible. But I fear that will still do nothing 
> >> and you won't get access to those inner knowledge inside 
> >> java.util.LinkedList etc.
> >>
> >> And using equals() on the List sadly won't help either, as the 
> >> SomeInnerDTO would also get compared with equals(), but that will 
> >> obviously use identity comparison only :(
> >>
> >>
> >> What I did for now (running all tests with a few projects right now, but 
> >> looks promising):
> >>
> >> diff --git 
> >> a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java 
> >> b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> >> index ff5276b04..cf878da40 100644
> >> --- a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> >> +++ b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> >> @@ -978,6 +978,16 @@ public EqualsBuilder reflectionAppend(final Object 
> >> lhs, final Object rhs) {
> >> if (bypassReflectionClasses != null
> >> && (bypassReflectionClasses.contains(lhsClass) || 
> >> bypassReflectionClasses.contains(rhsClass))) {
> >> isEquals = lhs.equals(rhs);
> >> +} else if (testClass.isAssignableFrom(List.class)) {
> >> +List lList = (List) lhs;
> >> +List rList = (List) rhs;
> >> +if (lList.size() != rList.size()) {
> >> +isEquals = false;
> >> +return this;
> >> +    }
> >> +for (int i = 0; i < lList.size(); i++) {
> >> +reflectionAppend(lList.get(i), rList.get(i));
> >> +}
> >> } else {
> >>
> >> I'm rather sure this is still not enough and there are plenty other cases 
> >> to consider. Like e.g. handling Maps etc.
> >> But at least that's the direction I try to approach it right now. And of 
> >> course this new part should potentially also be enabled by a flag...
> >>
> >> Will keep you updated.
> >>
> >> txs and LieGrue,
> >> strub
> >>
> >>
> >> [1] https://issues.apache.org/jira/browse/LANG-1711
> >>
> >>> Am 06.03.2024 um 13:18 schrieb Gary Gregory :
> >>>
> >&

Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-06 Thread Mark Struberg
The question to me is how we can make it more robust.
In a Collection (but actually also in most lists) the order in which you get 
the values (Iterator or get(i)) is not deterministic. It can be different in 
one list than in another - even if they contain the exact same items.

Not yet sure how to work around this. We can probably try to sort it first, but 
then again, if they do not implement Comparable it won't help much. Or do a 
containsElement based on reflection as well - but that would be rather slow.

Same with Maps. There is a good reason why the key at least should implement 
equals/hashCode. If this is not the case, then we are not able to implement 
this properly I fear.

Any ideas?

LieGrue,
strub

> Am 06.03.2024 um 15:53 schrieb Gary Gregory :
> 
> Ah, right, custom "non-equalable" _inside_ Collections and Maps...
> 
> For the diff, I'd suggest you test and iterable over a Collection
> instead of a List.
> 
> Then you'd need a separate test and traversal for Map instances.
> 
> (Still no common super-interface in Java 21 for Collections and Maps...)
> 
> Gary
> 
> On Wed, Mar 6, 2024 at 7:40 AM Mark Struberg  
> wrote:
>> 
>> Hi Gregory!
>> 
>> I did try this out and figured that I didn't think it though. Maybe I need 
>> to go a few steps back and explain the problem:
>> 
>> I have the following constellation
>> 
>> public class SomeInnerDTO {int field..} // NOT implements equals!
>> public class TheOuterDTO{ List innerList;..}
>> 
>> My problem is that reflectionEquals (which I use in a unit test) tries to 
>> introspect fields even in java.util.classes. And for getting the values of 
>> those classes it tries to call a setAccessible(true);
>> And obviously here it fails. There is a ticket already open [1] which 
>> sugggests to use trySetAccessible. But I fear that will still do nothing and 
>> you won't get access to those inner knowledge inside java.util.LinkedList 
>> etc.
>> 
>> And using equals() on the List sadly won't help either, as the SomeInnerDTO 
>> would also get compared with equals(), but that will obviously use identity 
>> comparison only :(
>> 
>> 
>> What I did for now (running all tests with a few projects right now, but 
>> looks promising):
>> 
>> diff --git 
>> a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java 
>> b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>> index ff5276b04..cf878da40 100644
>> --- a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>> +++ b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
>> @@ -978,6 +978,16 @@ public EqualsBuilder reflectionAppend(final Object lhs, 
>> final Object rhs) {
>> if (bypassReflectionClasses != null
>> && (bypassReflectionClasses.contains(lhsClass) || 
>> bypassReflectionClasses.contains(rhsClass))) {
>> isEquals = lhs.equals(rhs);
>> +} else if (testClass.isAssignableFrom(List.class)) {
>> +List lList = (List) lhs;
>> +List rList = (List) rhs;
>> +if (lList.size() != rList.size()) {
>> +isEquals = false;
>> +return this;
>> +}
>> +for (int i = 0; i < lList.size(); i++) {
>> +reflectionAppend(lList.get(i), rList.get(i));
>> +}
>> } else {
>> 
>> I'm rather sure this is still not enough and there are plenty other cases to 
>> consider. Like e.g. handling Maps etc.
>> But at least that's the direction I try to approach it right now. And of 
>> course this new part should potentially also be enabled by a flag...
>> 
>> Will keep you updated.
>> 
>> txs and LieGrue,
>> strub
>> 
>> 
>> [1] https://issues.apache.org/jira/browse/LANG-1711
>> 
>>> Am 06.03.2024 um 13:18 schrieb Gary Gregory :
>>> 
>>> This sounds like a good idea to try. I would call the option something else
>>> though. We would not skip calling equals if it is defined right? How about
>>> "useEqualsIfPresent".
>>> 
>>> Gary
>>> 
>>> On Wed, Mar 6, 2024, 5:03 AM Mark Struberg 
>>> wrote:
>>> 
>>>> Hi!
>>>> 
>>>> I have a question about EqualsBuilder#reflectionEquals. From Java9 onwards
>>>> we get more and more nasty module problems. Mainly because the code tries
>>>> to recurse into java.util.* classes

Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-06 Thread Gary Gregory
Ah, right, custom "non-equalable" _inside_ Collections and Maps...

For the diff, I'd suggest you test and iterable over a Collection
instead of a List.

Then you'd need a separate test and traversal for Map instances.

(Still no common super-interface in Java 21 for Collections and Maps...)

Gary

On Wed, Mar 6, 2024 at 7:40 AM Mark Struberg  wrote:
>
> Hi Gregory!
>
> I did try this out and figured that I didn't think it though. Maybe I need to 
> go a few steps back and explain the problem:
>
> I have the following constellation
>
> public class SomeInnerDTO {int field..} // NOT implements equals!
> public class TheOuterDTO{ List innerList;..}
>
> My problem is that reflectionEquals (which I use in a unit test) tries to 
> introspect fields even in java.util.classes. And for getting the values of 
> those classes it tries to call a setAccessible(true);
> And obviously here it fails. There is a ticket already open [1] which 
> sugggests to use trySetAccessible. But I fear that will still do nothing and 
> you won't get access to those inner knowledge inside java.util.LinkedList etc.
>
> And using equals() on the List sadly won't help either, as the SomeInnerDTO 
> would also get compared with equals(), but that will obviously use identity 
> comparison only :(
>
>
> What I did for now (running all tests with a few projects right now, but 
> looks promising):
>
> diff --git 
> a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java 
> b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> index ff5276b04..cf878da40 100644
> --- a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> +++ b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
> @@ -978,6 +978,16 @@ public EqualsBuilder reflectionAppend(final Object lhs, 
> final Object rhs) {
>  if (bypassReflectionClasses != null
>  && (bypassReflectionClasses.contains(lhsClass) || 
> bypassReflectionClasses.contains(rhsClass))) {
>  isEquals = lhs.equals(rhs);
> +} else if (testClass.isAssignableFrom(List.class)) {
> +List lList = (List) lhs;
> +List rList = (List) rhs;
> +if (lList.size() != rList.size()) {
> +isEquals = false;
> +return this;
> +}
> +for (int i = 0; i < lList.size(); i++) {
> +reflectionAppend(lList.get(i), rList.get(i));
> +}
>  } else {
>
> I'm rather sure this is still not enough and there are plenty other cases to 
> consider. Like e.g. handling Maps etc.
> But at least that's the direction I try to approach it right now. And of 
> course this new part should potentially also be enabled by a flag...
>
> Will keep you updated.
>
> txs and LieGrue,
> strub
>
>
> [1] https://issues.apache.org/jira/browse/LANG-1711
>
> > Am 06.03.2024 um 13:18 schrieb Gary Gregory :
> >
> > This sounds like a good idea to try. I would call the option something else
> > though. We would not skip calling equals if it is defined right? How about
> > "useEqualsIfPresent".
> >
> > Gary
> >
> > On Wed, Mar 6, 2024, 5:03 AM Mark Struberg 
> > wrote:
> >
> >> Hi!
> >>
> >> I have a question about EqualsBuilder#reflectionEquals. From Java9 onwards
> >> we get more and more nasty module problems. Mainly because the code tries
> >> to recurse into java.util.* classes as well.
> >> I know that I can use setBypassReflectionClasses for those. But wouldn't
> >> it be fine to have an additional switch to 'skipOnCustomEquals' or similar?
> >>
> >> The idea is to only use reflection on classes which do not provide their
> >> own equals method. One can test this imo rather easily by checking whether
> >> classInQuestion.getMethod("equals", Object.class).getDeclaringClass() !=
> >> Object.class
> >> Do that for lhs and rhs and if both fit the criteria -> invoke equals
> >>
> >> Wdyt of that idea? Worth trying or is there already a better solution?
> >> With the new flag we can make sure that we do not change the current
> >> behaviour for existing use cases.
> >>
> >> LieGrue,
> >> strub
> >>
> >>
> >> -
> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >>
> >>
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

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



Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-06 Thread Mark Struberg
Hi Gregory!

I did try this out and figured that I didn't think it though. Maybe I need to 
go a few steps back and explain the problem:

I have the following constellation

public class SomeInnerDTO {int field..} // NOT implements equals!
public class TheOuterDTO{ List innerList;..}

My problem is that reflectionEquals (which I use in a unit test) tries to 
introspect fields even in java.util.classes. And for getting the values of 
those classes it tries to call a setAccessible(true); 
And obviously here it fails. There is a ticket already open [1] which sugggests 
to use trySetAccessible. But I fear that will still do nothing and you won't 
get access to those inner knowledge inside java.util.LinkedList etc.

And using equals() on the List sadly won't help either, as the SomeInnerDTO 
would also get compared with equals(), but that will obviously use identity 
comparison only :(


What I did for now (running all tests with a few projects right now, but looks 
promising):

diff --git a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java 
b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
index ff5276b04..cf878da40 100644
--- a/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
+++ b/src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
@@ -978,6 +978,16 @@ public EqualsBuilder reflectionAppend(final Object lhs, 
final Object rhs) {
 if (bypassReflectionClasses != null
 && (bypassReflectionClasses.contains(lhsClass) || 
bypassReflectionClasses.contains(rhsClass))) {
 isEquals = lhs.equals(rhs);
+} else if (testClass.isAssignableFrom(List.class)) {
+List lList = (List) lhs;
+List rList = (List) rhs;
+if (lList.size() != rList.size()) {
+isEquals = false;
+return this;
+}
+for (int i = 0; i < lList.size(); i++) {
+reflectionAppend(lList.get(i), rList.get(i));
+}
 } else {

I'm rather sure this is still not enough and there are plenty other cases to 
consider. Like e.g. handling Maps etc.
But at least that's the direction I try to approach it right now. And of course 
this new part should potentially also be enabled by a flag...

Will keep you updated.

txs and LieGrue,
strub


[1] https://issues.apache.org/jira/browse/LANG-1711

> Am 06.03.2024 um 13:18 schrieb Gary Gregory :
> 
> This sounds like a good idea to try. I would call the option something else
> though. We would not skip calling equals if it is defined right? How about
> "useEqualsIfPresent".
> 
> Gary
> 
> On Wed, Mar 6, 2024, 5:03 AM Mark Struberg 
> wrote:
> 
>> Hi!
>> 
>> I have a question about EqualsBuilder#reflectionEquals. From Java9 onwards
>> we get more and more nasty module problems. Mainly because the code tries
>> to recurse into java.util.* classes as well.
>> I know that I can use setBypassReflectionClasses for those. But wouldn't
>> it be fine to have an additional switch to 'skipOnCustomEquals' or similar?
>> 
>> The idea is to only use reflection on classes which do not provide their
>> own equals method. One can test this imo rather easily by checking whether
>> classInQuestion.getMethod("equals", Object.class).getDeclaringClass() !=
>> Object.class
>> Do that for lhs and rhs and if both fit the criteria -> invoke equals
>> 
>> Wdyt of that idea? Worth trying or is there already a better solution?
>> With the new flag we can make sure that we do not change the current
>> behaviour for existing use cases.
>> 
>> LieGrue,
>> strub
>> 
>> 
>> -
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>> 
>> 


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



Re: [LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-06 Thread Gary Gregory
This sounds like a good idea to try. I would call the option something else
though. We would not skip calling equals if it is defined right? How about
"useEqualsIfPresent".

Gary

On Wed, Mar 6, 2024, 5:03 AM Mark Struberg 
wrote:

> Hi!
>
> I have a question about EqualsBuilder#reflectionEquals. From Java9 onwards
> we get more and more nasty module problems. Mainly because the code tries
> to recurse into java.util.* classes as well.
> I know that I can use setBypassReflectionClasses for those. But wouldn't
> it be fine to have an additional switch to 'skipOnCustomEquals' or similar?
>
> The idea is to only use reflection on classes which do not provide their
> own equals method. One can test this imo rather easily by checking whether
> classInQuestion.getMethod("equals", Object.class).getDeclaringClass() !=
> Object.class
> Do that for lhs and rhs and if both fit the criteria -> invoke equals
>
> Wdyt of that idea? Worth trying or is there already a better solution?
> With the new flag we can make sure that we do not change the current
> behaviour for existing use cases.
>
> LieGrue,
> strub
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


[LANG] EqualsBuilder#reflectionEquals feature brainstorming

2024-03-06 Thread Mark Struberg
Hi!

I have a question about EqualsBuilder#reflectionEquals. From Java9 onwards we 
get more and more nasty module problems. Mainly because the code tries to 
recurse into java.util.* classes as well.
I know that I can use setBypassReflectionClasses for those. But wouldn't it be 
fine to have an additional switch to 'skipOnCustomEquals' or similar?

The idea is to only use reflection on classes which do not provide their own 
equals method. One can test this imo rather easily by checking whether 
classInQuestion.getMethod("equals", Object.class).getDeclaringClass() != 
Object.class
Do that for lhs and rhs and if both fit the criteria -> invoke equals

Wdyt of that idea? Worth trying or is there already a better solution?
With the new flag we can make sure that we do not change the current behaviour 
for existing use cases.

LieGrue,
strub


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



Re: java.desktop dependency in commons-lang

2024-03-05 Thread Gary Gregory
Hello Ethan,

Feel free to provide a PR on GitHub but keep in mind that we cannot break
binary compatibility within the 3.x release line.

Gary


On Tue, Mar 5, 2024, 11:45 AM Ethan McCue  wrote:

> Apologies if this has already been brought to your attention - i'm still a
> bit unclear how to navigate the mailing lists.
>
> There is a dependency on the java.desktop module - i.e. Swing - in
> commons-lang. It lives in AbstractCircuitBreaker here.
>
>
> https://github.com/apache/commons-lang/blob/master/src/main/java/org/apache/commons/lang3/concurrent/AbstractCircuitBreaker.java
>
> I don't know what exactly should be done, but making java.desktop a static
> dependency would be nice.
>


java.desktop dependency in commons-lang

2024-03-05 Thread Ethan McCue
Apologies if this has already been brought to your attention - i'm still a
bit unclear how to navigate the mailing lists.

There is a dependency on the java.desktop module - i.e. Swing - in
commons-lang. It lives in AbstractCircuitBreaker here.

https://github.com/apache/commons-lang/blob/master/src/main/java/org/apache/commons/lang3/concurrent/AbstractCircuitBreaker.java

I don't know what exactly should be done, but making java.desktop a static
dependency would be nice.


Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Charles Stockman
Thank you so much for your help.

I will have more questions tomorrow once I start working on the Jira Issue
that I have selected



On Tue, Dec 12, 2023 at 2:59 PM Gary Gregory  wrote:

> The simplest would to add a comment to the Jira ticket.
>
> Gary
>
> On Tue, Dec 12, 2023, 2:55 PM Charles Stockman  >
> wrote:
>
> > Thanks for your answers.  What is the best practice for letting people
> know
> > you working an issue so they do not duplicate effort.
> >
> > On Tue, Dec 12, 2023 at 2:50 PM Gary Gregory 
> > wrote:
> >
> > > Hi Charles,
> > >
> > > Implementing (1) would cause an infinite loop of builds since the file
> > thw
> > > build would update is in the repo, and I don't think we want to play
> > games
> > > with not triggering builds when this or that file is changed.
> > >
> > > For (2), the file location is standard, so it feels a bit redundant.
> The
> > > Java requirement is in pom.xml. The Maven requirement is unspecified
> > unless
> > > the Maven enforcer plug in is configured.
> > >
> > > There is no hard process for assigning issues. I don't think non-Apache
> > > folk can assign issues. You can ask to be assigned but it's not
> sometimes
> > > usually worth hassling with.
> > >
> > > Gary
> > >
> > > On Tue, Dec 12, 2023, 1:51 PM Charles Stockman <
> > charlesstockm...@gmail.com
> > > >
> > > wrote:
> > >
> > > > Thank you very much for your help.  I have updated to the latest
> > version
> > > of
> > > > java 21 and it worked.
> > > >
> > > > For me, the best place to put the Build Information would be in the
> > Build
> > > > Section of the github pages since I would not expect that information
> > to
> > > be
> > > > in a readme or POM file anymore.  It has become a pseudo standard
> that
> > I
> > > > would look on Github for instructions on building.
> > > >
> > > > Suggestions
> > > >
> > > >1. Is there some that we can dynamically update the GitHub Page so
> > > that
> > > >we can include the version of Java and Maven that the CI has used
> > > >2. In the Github repo under the Build Instructions can we add a
> link
> > > to
> > > >the file that the contains the build information and can it have
> the
> > > > title
> > > >approximating the text "Maven and Java Version needed"
> > > >
> > > > I have selected a Jira Issue that I would enjoy working on.  The
> steps
> > > > should be to create a Jira Account and then do I assign myself to the
> > > issue
> > > > or is there some process.
> > > >
> > > > Thanks for your help
> > > > Charles Stockman.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Tue, Dec 12, 2023 at 11:00 AM sebb  wrote:
> > > >
> > > > > On Tue, 12 Dec 2023 at 14:21, Alex Herbert <
> alex.d.herb...@gmail.com
> > >
> > > > > wrote:
> > > > > >
> > > > > > On Tue, 12 Dec 2023 at 13:20, Gary Gregory <
> garydgreg...@gmail.com
> > >
> > > > > wrote:
> > > > > > >
> > > > > > > What's the best way to document this do you think?
> > > > > >
> > > > > > That lang is tested (and so should be built) with the latest JDK
> of
> > > > > > the respective stable release (8, 11, 17, 21)?
> > > > > >
> > > > > > This could live on the README in the GH repo. This would require
> an
> > > > > > update to the commons-build-plugin that generates it.
> > > > >
> > > > > The build plugin includes the POM description text, so it can be
> > added
> > > > > there.
> > > > >
> > > > > > But for a start
> > > > > > we can add a few sentences to the lang README under the building
> > > > > > section:
> > > > > >
> > > > > > "The code is tested using the latest revision of the JDK for
> > > supported
> > > > > > LTS releases. Please ensure your build environment is up-to-date
> > and
> > > > > > kindly report any build issues."
> > > > > >
> > > > > > This should provide a first indicator to a user that the JDK must
> > be
> > > > > > up-to-date and welcomes any feedback on building. This text may
> not
> > > be
> > > > > > suitable for all repos if they do not test across all LTS
> versions
> > of
> > > > > > the JDK so may need some revision for the build-plugin.
> > > > > >
> > > > > > Alex
> > > > > >
> > > > > >
> > -
> > > > > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > > > > For additional commands, e-mail: dev-h...@commons.apache.org
> > > > > >
> > > > >
> > > > >
> -
> > > > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > > > For additional commands, e-mail: dev-h...@commons.apache.org
> > > > >
> > > > >
> > > >
> > >
> >
>


Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Gary Gregory
The simplest would to add a comment to the Jira ticket.

Gary

On Tue, Dec 12, 2023, 2:55 PM Charles Stockman 
wrote:

> Thanks for your answers.  What is the best practice for letting people know
> you working an issue so they do not duplicate effort.
>
> On Tue, Dec 12, 2023 at 2:50 PM Gary Gregory 
> wrote:
>
> > Hi Charles,
> >
> > Implementing (1) would cause an infinite loop of builds since the file
> thw
> > build would update is in the repo, and I don't think we want to play
> games
> > with not triggering builds when this or that file is changed.
> >
> > For (2), the file location is standard, so it feels a bit redundant. The
> > Java requirement is in pom.xml. The Maven requirement is unspecified
> unless
> > the Maven enforcer plug in is configured.
> >
> > There is no hard process for assigning issues. I don't think non-Apache
> > folk can assign issues. You can ask to be assigned but it's not sometimes
> > usually worth hassling with.
> >
> > Gary
> >
> > On Tue, Dec 12, 2023, 1:51 PM Charles Stockman <
> charlesstockm...@gmail.com
> > >
> > wrote:
> >
> > > Thank you very much for your help.  I have updated to the latest
> version
> > of
> > > java 21 and it worked.
> > >
> > > For me, the best place to put the Build Information would be in the
> Build
> > > Section of the github pages since I would not expect that information
> to
> > be
> > > in a readme or POM file anymore.  It has become a pseudo standard that
> I
> > > would look on Github for instructions on building.
> > >
> > > Suggestions
> > >
> > >1. Is there some that we can dynamically update the GitHub Page so
> > that
> > >we can include the version of Java and Maven that the CI has used
> > >2. In the Github repo under the Build Instructions can we add a link
> > to
> > >the file that the contains the build information and can it have the
> > > title
> > >approximating the text "Maven and Java Version needed"
> > >
> > > I have selected a Jira Issue that I would enjoy working on.  The steps
> > > should be to create a Jira Account and then do I assign myself to the
> > issue
> > > or is there some process.
> > >
> > > Thanks for your help
> > > Charles Stockman.
> > >
> > >
> > >
> > >
> > >
> > > On Tue, Dec 12, 2023 at 11:00 AM sebb  wrote:
> > >
> > > > On Tue, 12 Dec 2023 at 14:21, Alex Herbert  >
> > > > wrote:
> > > > >
> > > > > On Tue, 12 Dec 2023 at 13:20, Gary Gregory  >
> > > > wrote:
> > > > > >
> > > > > > What's the best way to document this do you think?
> > > > >
> > > > > That lang is tested (and so should be built) with the latest JDK of
> > > > > the respective stable release (8, 11, 17, 21)?
> > > > >
> > > > > This could live on the README in the GH repo. This would require an
> > > > > update to the commons-build-plugin that generates it.
> > > >
> > > > The build plugin includes the POM description text, so it can be
> added
> > > > there.
> > > >
> > > > > But for a start
> > > > > we can add a few sentences to the lang README under the building
> > > > > section:
> > > > >
> > > > > "The code is tested using the latest revision of the JDK for
> > supported
> > > > > LTS releases. Please ensure your build environment is up-to-date
> and
> > > > > kindly report any build issues."
> > > > >
> > > > > This should provide a first indicator to a user that the JDK must
> be
> > > > > up-to-date and welcomes any feedback on building. This text may not
> > be
> > > > > suitable for all repos if they do not test across all LTS versions
> of
> > > > > the JDK so may need some revision for the build-plugin.
> > > > >
> > > > > Alex
> > > > >
> > > > >
> -
> > > > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > > > For additional commands, e-mail: dev-h...@commons.apache.org
> > > > >
> > > >
> > > > -
> > > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > > For additional commands, e-mail: dev-h...@commons.apache.org
> > > >
> > > >
> > >
> >
>


Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Charles Stockman
Thanks for your answers.  What is the best practice for letting people know
you working an issue so they do not duplicate effort.

On Tue, Dec 12, 2023 at 2:50 PM Gary Gregory  wrote:

> Hi Charles,
>
> Implementing (1) would cause an infinite loop of builds since the file thw
> build would update is in the repo, and I don't think we want to play games
> with not triggering builds when this or that file is changed.
>
> For (2), the file location is standard, so it feels a bit redundant. The
> Java requirement is in pom.xml. The Maven requirement is unspecified unless
> the Maven enforcer plug in is configured.
>
> There is no hard process for assigning issues. I don't think non-Apache
> folk can assign issues. You can ask to be assigned but it's not sometimes
> usually worth hassling with.
>
> Gary
>
> On Tue, Dec 12, 2023, 1:51 PM Charles Stockman  >
> wrote:
>
> > Thank you very much for your help.  I have updated to the latest version
> of
> > java 21 and it worked.
> >
> > For me, the best place to put the Build Information would be in the Build
> > Section of the github pages since I would not expect that information to
> be
> > in a readme or POM file anymore.  It has become a pseudo standard that I
> > would look on Github for instructions on building.
> >
> > Suggestions
> >
> >1. Is there some that we can dynamically update the GitHub Page so
> that
> >we can include the version of Java and Maven that the CI has used
> >2. In the Github repo under the Build Instructions can we add a link
> to
> >the file that the contains the build information and can it have the
> > title
> >approximating the text "Maven and Java Version needed"
> >
> > I have selected a Jira Issue that I would enjoy working on.  The steps
> > should be to create a Jira Account and then do I assign myself to the
> issue
> > or is there some process.
> >
> > Thanks for your help
> > Charles Stockman.
> >
> >
> >
> >
> >
> > On Tue, Dec 12, 2023 at 11:00 AM sebb  wrote:
> >
> > > On Tue, 12 Dec 2023 at 14:21, Alex Herbert 
> > > wrote:
> > > >
> > > > On Tue, 12 Dec 2023 at 13:20, Gary Gregory 
> > > wrote:
> > > > >
> > > > > What's the best way to document this do you think?
> > > >
> > > > That lang is tested (and so should be built) with the latest JDK of
> > > > the respective stable release (8, 11, 17, 21)?
> > > >
> > > > This could live on the README in the GH repo. This would require an
> > > > update to the commons-build-plugin that generates it.
> > >
> > > The build plugin includes the POM description text, so it can be added
> > > there.
> > >
> > > > But for a start
> > > > we can add a few sentences to the lang README under the building
> > > > section:
> > > >
> > > > "The code is tested using the latest revision of the JDK for
> supported
> > > > LTS releases. Please ensure your build environment is up-to-date and
> > > > kindly report any build issues."
> > > >
> > > > This should provide a first indicator to a user that the JDK must be
> > > > up-to-date and welcomes any feedback on building. This text may not
> be
> > > > suitable for all repos if they do not test across all LTS versions of
> > > > the JDK so may need some revision for the build-plugin.
> > > >
> > > > Alex
> > > >
> > > > -
> > > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > > For additional commands, e-mail: dev-h...@commons.apache.org
> > > >
> > >
> > > -
> > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > For additional commands, e-mail: dev-h...@commons.apache.org
> > >
> > >
> >
>


Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Gary Gregory
Hi Charles,

Implementing (1) would cause an infinite loop of builds since the file thw
build would update is in the repo, and I don't think we want to play games
with not triggering builds when this or that file is changed.

For (2), the file location is standard, so it feels a bit redundant. The
Java requirement is in pom.xml. The Maven requirement is unspecified unless
the Maven enforcer plug in is configured.

There is no hard process for assigning issues. I don't think non-Apache
folk can assign issues. You can ask to be assigned but it's not sometimes
usually worth hassling with.

Gary

On Tue, Dec 12, 2023, 1:51 PM Charles Stockman 
wrote:

> Thank you very much for your help.  I have updated to the latest version of
> java 21 and it worked.
>
> For me, the best place to put the Build Information would be in the Build
> Section of the github pages since I would not expect that information to be
> in a readme or POM file anymore.  It has become a pseudo standard that I
> would look on Github for instructions on building.
>
> Suggestions
>
>1. Is there some that we can dynamically update the GitHub Page so that
>we can include the version of Java and Maven that the CI has used
>2. In the Github repo under the Build Instructions can we add a link to
>the file that the contains the build information and can it have the
> title
>approximating the text "Maven and Java Version needed"
>
> I have selected a Jira Issue that I would enjoy working on.  The steps
> should be to create a Jira Account and then do I assign myself to the issue
> or is there some process.
>
> Thanks for your help
> Charles Stockman.
>
>
>
>
>
> On Tue, Dec 12, 2023 at 11:00 AM sebb  wrote:
>
> > On Tue, 12 Dec 2023 at 14:21, Alex Herbert 
> > wrote:
> > >
> > > On Tue, 12 Dec 2023 at 13:20, Gary Gregory 
> > wrote:
> > > >
> > > > What's the best way to document this do you think?
> > >
> > > That lang is tested (and so should be built) with the latest JDK of
> > > the respective stable release (8, 11, 17, 21)?
> > >
> > > This could live on the README in the GH repo. This would require an
> > > update to the commons-build-plugin that generates it.
> >
> > The build plugin includes the POM description text, so it can be added
> > there.
> >
> > > But for a start
> > > we can add a few sentences to the lang README under the building
> > > section:
> > >
> > > "The code is tested using the latest revision of the JDK for supported
> > > LTS releases. Please ensure your build environment is up-to-date and
> > > kindly report any build issues."
> > >
> > > This should provide a first indicator to a user that the JDK must be
> > > up-to-date and welcomes any feedback on building. This text may not be
> > > suitable for all repos if they do not test across all LTS versions of
> > > the JDK so may need some revision for the build-plugin.
> > >
> > > Alex
> > >
> > > -
> > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > For additional commands, e-mail: dev-h...@commons.apache.org
> > >
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
>


Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Charles Stockman
Thank you very much for your help.  I have updated to the latest version of
java 21 and it worked.

For me, the best place to put the Build Information would be in the Build
Section of the github pages since I would not expect that information to be
in a readme or POM file anymore.  It has become a pseudo standard that I
would look on Github for instructions on building.

Suggestions

   1. Is there some that we can dynamically update the GitHub Page so that
   we can include the version of Java and Maven that the CI has used
   2. In the Github repo under the Build Instructions can we add a link to
   the file that the contains the build information and can it have the title
   approximating the text "Maven and Java Version needed"

I have selected a Jira Issue that I would enjoy working on.  The steps
should be to create a Jira Account and then do I assign myself to the issue
or is there some process.

Thanks for your help
Charles Stockman.





On Tue, Dec 12, 2023 at 11:00 AM sebb  wrote:

> On Tue, 12 Dec 2023 at 14:21, Alex Herbert 
> wrote:
> >
> > On Tue, 12 Dec 2023 at 13:20, Gary Gregory 
> wrote:
> > >
> > > What's the best way to document this do you think?
> >
> > That lang is tested (and so should be built) with the latest JDK of
> > the respective stable release (8, 11, 17, 21)?
> >
> > This could live on the README in the GH repo. This would require an
> > update to the commons-build-plugin that generates it.
>
> The build plugin includes the POM description text, so it can be added
> there.
>
> > But for a start
> > we can add a few sentences to the lang README under the building
> > section:
> >
> > "The code is tested using the latest revision of the JDK for supported
> > LTS releases. Please ensure your build environment is up-to-date and
> > kindly report any build issues."
> >
> > This should provide a first indicator to a user that the JDK must be
> > up-to-date and welcomes any feedback on building. This text may not be
> > suitable for all repos if they do not test across all LTS versions of
> > the JDK so may need some revision for the build-plugin.
> >
> > Alex
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread sebb
On Tue, 12 Dec 2023 at 14:21, Alex Herbert  wrote:
>
> On Tue, 12 Dec 2023 at 13:20, Gary Gregory  wrote:
> >
> > What's the best way to document this do you think?
>
> That lang is tested (and so should be built) with the latest JDK of
> the respective stable release (8, 11, 17, 21)?
>
> This could live on the README in the GH repo. This would require an
> update to the commons-build-plugin that generates it.

The build plugin includes the POM description text, so it can be added there.

> But for a start
> we can add a few sentences to the lang README under the building
> section:
>
> "The code is tested using the latest revision of the JDK for supported
> LTS releases. Please ensure your build environment is up-to-date and
> kindly report any build issues."
>
> This should provide a first indicator to a user that the JDK must be
> up-to-date and welcomes any feedback on building. This text may not be
> suitable for all repos if they do not test across all LTS versions of
> the JDK so may need some revision for the build-plugin.
>
> Alex
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

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



Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Alex Herbert
On Tue, 12 Dec 2023 at 13:20, Gary Gregory  wrote:
>
> What's the best way to document this do you think?

That lang is tested (and so should be built) with the latest JDK of
the respective stable release (8, 11, 17, 21)?

This could live on the README in the GH repo. This would require an
update to the commons-build-plugin that generates it. But for a start
we can add a few sentences to the lang README under the building
section:

"The code is tested using the latest revision of the JDK for supported
LTS releases. Please ensure your build environment is up-to-date and
kindly report any build issues."

This should provide a first indicator to a user that the JDK must be
up-to-date and welcomes any feedback on building. This text may not be
suitable for all repos if they do not test across all LTS versions of
the JDK so may need some revision for the build-plugin.

Alex

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



Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Gary Gregory
What's the best way to document this do you think?

Gary

On Tue, Dec 12, 2023, 7:19 AM Alex Herbert  wrote:

> I updated JDK 17.0.6 to 17.0.9 and lang now builds on my mac:
>
> Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
> Java version: 17.0.9, vendor: Eclipse Adoptium, runtime:
> /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
> Default locale: en_GB, platform encoding: UTF-8
> OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"
>
> So this is a JDK issue.
>
> Alex
>
> On Tue, 12 Dec 2023 at 11:51, Gary Gregory  wrote:
> >
> > See the GutHub builds as well. Make sure you have the latest Java version
> > of the major release line you are using, which is not the case here, and
> > might not matter.
> >
> > Note that some of the tests make allowances for bugs in the JDK date
> > classes.
> >
> > Gary
> >
> > On Tue, Dec 12, 2023, 6:18 AM Alex Herbert 
> wrote:
> >
> > > I can confirm I see 3 test failures in the FastDateParser using:
> > >
> > > Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
> > > Java version: 17.0.6, vendor: Eclipse Adoptium, runtime:
> > > /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
> > > Default locale: en_GB, platform encoding: UTF-8
> > > OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"
> > >
> > > ---
> > > [ERROR]
> > >
> FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_DateFormatSymbols:82->testTimeZoneStrategyPattern_DateFormatSymbols_getZoneStrings:147
> > > java.text.ParseException: Unparseable date: Tempo universale
> > > coordinato: with locale = it, zIndex = 3, tzDisplay = 'Tempo
> > > universale coordinato', parser = 'FastDateParser[z, it, GMT]'
> > > [ERROR]
> > >
> FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_DateFormatSymbols:82->testTimeZoneStrategyPattern_DateFormatSymbols_getZoneStrings:147
> > > java.text.ParseException: Unparseable date: 세계 표준시: with locale = ko,
> > > zIndex = 3, tzDisplay = '세계 표준시', parser = 'FastDateParser[z, ko,
> > > GMT]'
> > > [ERROR]
> > >
> FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_TimeZone:88->testTimeZoneStrategyPattern_TimeZone_getAvailableIDs:172
> > > java.text.ParseException: Unparseable date: normaltid – Kanton: with
> > > locale = nb, id = 'Pacific/Kanton', timeZone =
> > >
> > >
> sun.util.calendar.ZoneInfo[id="Pacific/Kanton",offset=4680,dstSavings=0,useDaylight=false,transitions=5,lastRule=null]
> > > ...
> > > ---
> > >
> > > Build is fine using on MacOS using:
> > >
> > > Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
> > > Java version: 11.0.18, vendor: Eclipse Adoptium, runtime:
> > > /Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home
> > > Default locale: en_GB, platform encoding: UTF-8
> > > OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"
> > >
> > > Build is fine on Linux JDK 17 using:
> > >
> > > Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
> > > Java version: 17.0.4.1, vendor: Oracle Corporation, runtime:
> > > /usr/lib/jvm/jdk-17.0.4.1
> > > Default locale: en_GB, platform encoding: UTF-8
> > > OS name: "linux", version: "5.4.0-167-generic", arch: "amd64", family:
> > > "unix"
> > >
> > > The GH actions builds are green for MacOS latest on all JDKs. I see
> > > you are using a similar OS version to my mac. So this may be a MacOS
> > > Sonoma 14 vs MacOS Ventura 13 issue. It would be good if someone else
> > > can replicate it on MacOS.
> > >
> > > Alex
> > >
> > > On Tue, 12 Dec 2023 at 08:52, Charles Stockman
> > >  wrote:
> > > >
> > > > Hello and thanks for your help.
> > > >
> > > >
> > > > How do I compile or did I find a bug ?
> > > >
> > > >
> > > > I have been been attempting to build the latest version of Apache
> > > >
> > > > Common-Lang.
> > > >
> > > >
> > > > The GitHub repository that I have used is
> > > >
> > > > https://github.com/apache/commons-lang.git
> > > &g

Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Alex Herbert
I updated JDK 17.0.6 to 17.0.9 and lang now builds on my mac:

Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
Java version: 17.0.9, vendor: Eclipse Adoptium, runtime:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"

So this is a JDK issue.

Alex

On Tue, 12 Dec 2023 at 11:51, Gary Gregory  wrote:
>
> See the GutHub builds as well. Make sure you have the latest Java version
> of the major release line you are using, which is not the case here, and
> might not matter.
>
> Note that some of the tests make allowances for bugs in the JDK date
> classes.
>
> Gary
>
> On Tue, Dec 12, 2023, 6:18 AM Alex Herbert  wrote:
>
> > I can confirm I see 3 test failures in the FastDateParser using:
> >
> > Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
> > Java version: 17.0.6, vendor: Eclipse Adoptium, runtime:
> > /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
> > Default locale: en_GB, platform encoding: UTF-8
> > OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"
> >
> > ---
> > [ERROR]
> >  
> > FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_DateFormatSymbols:82->testTimeZoneStrategyPattern_DateFormatSymbols_getZoneStrings:147
> > java.text.ParseException: Unparseable date: Tempo universale
> > coordinato: with locale = it, zIndex = 3, tzDisplay = 'Tempo
> > universale coordinato', parser = 'FastDateParser[z, it, GMT]'
> > [ERROR]
> >  
> > FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_DateFormatSymbols:82->testTimeZoneStrategyPattern_DateFormatSymbols_getZoneStrings:147
> > java.text.ParseException: Unparseable date: 세계 표준시: with locale = ko,
> > zIndex = 3, tzDisplay = '세계 표준시', parser = 'FastDateParser[z, ko,
> > GMT]'
> > [ERROR]
> >  
> > FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_TimeZone:88->testTimeZoneStrategyPattern_TimeZone_getAvailableIDs:172
> > java.text.ParseException: Unparseable date: normaltid – Kanton: with
> > locale = nb, id = 'Pacific/Kanton', timeZone =
> >
> > sun.util.calendar.ZoneInfo[id="Pacific/Kanton",offset=4680,dstSavings=0,useDaylight=false,transitions=5,lastRule=null]
> > ...
> > ---
> >
> > Build is fine using on MacOS using:
> >
> > Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
> > Java version: 11.0.18, vendor: Eclipse Adoptium, runtime:
> > /Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home
> > Default locale: en_GB, platform encoding: UTF-8
> > OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"
> >
> > Build is fine on Linux JDK 17 using:
> >
> > Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
> > Java version: 17.0.4.1, vendor: Oracle Corporation, runtime:
> > /usr/lib/jvm/jdk-17.0.4.1
> > Default locale: en_GB, platform encoding: UTF-8
> > OS name: "linux", version: "5.4.0-167-generic", arch: "amd64", family:
> > "unix"
> >
> > The GH actions builds are green for MacOS latest on all JDKs. I see
> > you are using a similar OS version to my mac. So this may be a MacOS
> > Sonoma 14 vs MacOS Ventura 13 issue. It would be good if someone else
> > can replicate it on MacOS.
> >
> > Alex
> >
> > On Tue, 12 Dec 2023 at 08:52, Charles Stockman
> >  wrote:
> > >
> > > Hello and thanks for your help.
> > >
> > >
> > > How do I compile or did I find a bug ?
> > >
> > >
> > > I have been been attempting to build the latest version of Apache
> > >
> > > Common-Lang.
> > >
> > >
> > > The GitHub repository that I have used is
> > >
> > > https://github.com/apache/commons-lang.git
> > >
> > >
> > > I have the billed instructions mentioned in the following section :
> > >
> > > https://github.com/apache/commons-lang?tab=3Dreadme-ov-file#building
> > >
> > >
> > > The maven and java version that I have used is:
> > >
> > >
> > > Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
> > >
> > > Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
> > >
> > > Java version: 17.0.7, vendor: Eclipse Adoptium, runtime: =
> >

Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Gary Gregory
See the GutHub builds as well. Make sure you have the latest Java version
of the major release line you are using, which is not the case here, and
might not matter.

Note that some of the tests make allowances for bugs in the JDK date
classes.

Gary

On Tue, Dec 12, 2023, 6:18 AM Alex Herbert  wrote:

> I can confirm I see 3 test failures in the FastDateParser using:
>
> Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
> Java version: 17.0.6, vendor: Eclipse Adoptium, runtime:
> /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
> Default locale: en_GB, platform encoding: UTF-8
> OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"
>
> ---
> [ERROR]
>  
> FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_DateFormatSymbols:82->testTimeZoneStrategyPattern_DateFormatSymbols_getZoneStrings:147
> java.text.ParseException: Unparseable date: Tempo universale
> coordinato: with locale = it, zIndex = 3, tzDisplay = 'Tempo
> universale coordinato', parser = 'FastDateParser[z, it, GMT]'
> [ERROR]
>  
> FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_DateFormatSymbols:82->testTimeZoneStrategyPattern_DateFormatSymbols_getZoneStrings:147
> java.text.ParseException: Unparseable date: 세계 표준시: with locale = ko,
> zIndex = 3, tzDisplay = '세계 표준시', parser = 'FastDateParser[z, ko,
> GMT]'
> [ERROR]
>  
> FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_TimeZone:88->testTimeZoneStrategyPattern_TimeZone_getAvailableIDs:172
> java.text.ParseException: Unparseable date: normaltid – Kanton: with
> locale = nb, id = 'Pacific/Kanton', timeZone =
>
> sun.util.calendar.ZoneInfo[id="Pacific/Kanton",offset=4680,dstSavings=0,useDaylight=false,transitions=5,lastRule=null]
> ...
> ---
>
> Build is fine using on MacOS using:
>
> Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
> Java version: 11.0.18, vendor: Eclipse Adoptium, runtime:
> /Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home
> Default locale: en_GB, platform encoding: UTF-8
> OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"
>
> Build is fine on Linux JDK 17 using:
>
> Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
> Java version: 17.0.4.1, vendor: Oracle Corporation, runtime:
> /usr/lib/jvm/jdk-17.0.4.1
> Default locale: en_GB, platform encoding: UTF-8
> OS name: "linux", version: "5.4.0-167-generic", arch: "amd64", family:
> "unix"
>
> The GH actions builds are green for MacOS latest on all JDKs. I see
> you are using a similar OS version to my mac. So this may be a MacOS
> Sonoma 14 vs MacOS Ventura 13 issue. It would be good if someone else
> can replicate it on MacOS.
>
> Alex
>
> On Tue, 12 Dec 2023 at 08:52, Charles Stockman
>  wrote:
> >
> > Hello and thanks for your help.
> >
> >
> > How do I compile or did I find a bug ?
> >
> >
> > I have been been attempting to build the latest version of Apache
> >
> > Common-Lang.
> >
> >
> > The GitHub repository that I have used is
> >
> > https://github.com/apache/commons-lang.git
> >
> >
> > I have the billed instructions mentioned in the following section :
> >
> > https://github.com/apache/commons-lang?tab=3Dreadme-ov-file#building
> >
> >
> > The maven and java version that I have used is:
> >
> >
> > Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
> >
> > Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
> >
> > Java version: 17.0.7, vendor: Eclipse Adoptium, runtime: =
> >
> > /Users/charlesstockman/.sdkman/candidates/java/17.0.7-tem
> >
> > Default locale: en_US, platform encoding: UTF-8
> >
> > OS name: "mac os x", version: "13.4", arch: "aarch64", family: =
> >
> > "mac"
> >
> >
> > The steps were
> >
> >
> > 1. git clone https://github.com/apache/commons-lang.git
> >
> > 1. cd commons-lang
> >
> > 2. mvn
> >
> >
> > I have received the following error and attached the output
> >
> >
> >
> > [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-surefire-plugin:3.2.2:test (default-test) on
> project commons-lang3: There are test failures.
> >
> > [ERROR]
> >
> > [ERROR] Please refer to
> /Users/charlesstockman/otherGit/commons-lang/target/surefire-reports for
> the individual test results.
> >
>

Re: Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Alex Herbert
I can confirm I see 3 test failures in the FastDateParser using:

Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
Java version: 17.0.6, vendor: Eclipse Adoptium, runtime:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"

---
[ERROR]   
FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_DateFormatSymbols:82->testTimeZoneStrategyPattern_DateFormatSymbols_getZoneStrings:147
java.text.ParseException: Unparseable date: Tempo universale
coordinato: with locale = it, zIndex = 3, tzDisplay = 'Tempo
universale coordinato', parser = 'FastDateParser[z, it, GMT]'
[ERROR]   
FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_DateFormatSymbols:82->testTimeZoneStrategyPattern_DateFormatSymbols_getZoneStrings:147
java.text.ParseException: Unparseable date: 세계 표준시: with locale = ko,
zIndex = 3, tzDisplay = '세계 표준시', parser = 'FastDateParser[z, ko,
GMT]'
[ERROR]   
FastDateParser_TimeZoneStrategyTest.testTimeZoneStrategy_TimeZone:88->testTimeZoneStrategyPattern_TimeZone_getAvailableIDs:172
java.text.ParseException: Unparseable date: normaltid – Kanton: with
locale = nb, id = 'Pacific/Kanton', timeZone =
sun.util.calendar.ZoneInfo[id="Pacific/Kanton",offset=4680,dstSavings=0,useDaylight=false,transitions=5,lastRule=null]
...
---

Build is fine using on MacOS using:

Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
Java version: 11.0.18, vendor: Eclipse Adoptium, runtime:
/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "13.4.1", arch: "aarch64", family: "mac"

Build is fine on Linux JDK 17 using:

Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Java version: 17.0.4.1, vendor: Oracle Corporation, runtime:
/usr/lib/jvm/jdk-17.0.4.1
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-167-generic", arch: "amd64", family: "unix"

The GH actions builds are green for MacOS latest on all JDKs. I see
you are using a similar OS version to my mac. So this may be a MacOS
Sonoma 14 vs MacOS Ventura 13 issue. It would be good if someone else
can replicate it on MacOS.

Alex

On Tue, 12 Dec 2023 at 08:52, Charles Stockman
 wrote:
>
> Hello and thanks for your help.
>
>
> How do I compile or did I find a bug ?
>
>
> I have been been attempting to build the latest version of Apache
>
> Common-Lang.
>
>
> The GitHub repository that I have used is
>
> https://github.com/apache/commons-lang.git
>
>
> I have the billed instructions mentioned in the following section :
>
> https://github.com/apache/commons-lang?tab=3Dreadme-ov-file#building
>
>
> The maven and java version that I have used is:
>
>
> Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
>
> Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
>
> Java version: 17.0.7, vendor: Eclipse Adoptium, runtime: =
>
> /Users/charlesstockman/.sdkman/candidates/java/17.0.7-tem
>
> Default locale: en_US, platform encoding: UTF-8
>
> OS name: "mac os x", version: "13.4", arch: "aarch64", family: =
>
> "mac"
>
>
> The steps were
>
>
> 1. git clone https://github.com/apache/commons-lang.git
>
> 1. cd commons-lang
>
> 2. mvn
>
>
> I have received the following error and attached the output
>
>
>
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-surefire-plugin:3.2.2:test (default-test) on 
> project commons-lang3: There are test failures.
>
> [ERROR]
>
> [ERROR] Please refer to 
> /Users/charlesstockman/otherGit/commons-lang/target/surefire-reports for the 
> individual test results.
>
> [ERROR] Please refer to dump files (if any exist) [date].dump, 
> [date]-jvmRun[N].dump and [date].dumpstream.
>
> [ERROR] -> [Help 1]
>
> [ERROR]
>
> [ERROR] To see the full stack trace of the errors, re-run Maven with the -e 
> switch.
>
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
>
> [ERROR]
>
> [ERROR] For more information about the errors and possible solutions, please 
> read the following articles:
>
> [ERROR] [Help 1] 
> http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
>
> charlesstockman@Charless-Mini commons-lang %
>
>
>

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



Apache Common Lang -- How do I compile or did I find a bug

2023-12-12 Thread Charles Stockman
Hello and thanks for your help.

How do I compile or did I find a bug ?

I have been been attempting to build the latest version of Apache 
Common-Lang.

The GitHub repository that I have used is 
https://github.com/apache/commons-lang.git

I have the billed instructions mentioned in the following section : 
https://github.com/apache/commons-lang?tab=3Dreadme-ov-file#building

The maven and java version that I have used is:

	Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
	Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
	Java version: 17.0.7, vendor: Eclipse Adoptium, runtime: =
/Users/charlesstockman/.sdkman/candidates/java/17.0.7-tem
	Default locale: en_US, platform encoding: UTF-8
	OS name: "mac os x", version: "13.4", arch: "aarch64", family: =
"mac"

The steps were
	1. git clone https://github.com/apache/commons-lang.git
	1. cd commons-lang
	2. mvn

I have received the following error and attached the output


[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.2.2:test (default-test) on project commons-lang3: There are test failures.
[ERROR] 
[ERROR] Please refer to /Users/charlesstockman/otherGit/commons-lang/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
charlesstockman@Charless-Mini commons-lang % <>


[ANNOUNCE] Apache Commons Lang Version 3.14.0

2023-11-27 Thread Gary Gregory
The Apache Commons team is pleased to announce Apache Commons Lang
Version 3.14.0.

Commons Lang is a set of utility functions and reusable components
that should be of use in any Java environment.

Starting with Commons Lang 3.9, we target Java 8, making use of those features.

For advice on upgrading from 2.x to 3.x, see:

https://commons.apache.org/lang/article3_0.html

Apache Commons Lang, a package of Java utility classes for the classes
that are in java.lang's hierarchy, or are considered to be so standard
as to justify existence in java.lang.

New features and bug fixes (Java 8 or above).

Historical list of changes:
https://commons.apache.org/proper/commons-lang/changes-report.html

For complete information on Apache Commons Lang, including
instructions on how to submit bug reports, patches, or suggestions for
improvement, see the Apache Commons Lang website:

https://commons.apache.org/proper/commons-lang/

Download page: https://commons.apache.org/proper/commons-lang/download_lang.cgi

Have fun!
Gary Gregory
- Apache Commons Team

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



Re: [LANG] Bad download links in the Download web page (3.13.0)

2023-11-27 Thread Gary Gregory
TY Cpm: Fixed!

Yes, this is the right place :-)

Gary

On Sun, Nov 26, 2023 at 9:38 PM Christian P. MOMON
 wrote:
>
>
>   Hi,
>
>   In the web page "Download Apache Commons Lang"
> (https://commons.apache.org/proper/commons-lang/download_lang.cgi), in
> the section "Apache Commons Lang 3.13.0", the four download links give
> "404 Not Found error":
>
>   - commons-lang3-3.13.0-bin.tar.gz
>   - commons-lang3-3.13.0-bin.zip
>   - commons-lang3-3.13.0-src.tar.gz
>   - commons-lang3-3.13.0-src.zip
>
>   Example:
>
> # curl -I
> https://dlcdn.apache.org//commons/lang/binaries/commons-lang3-3.13.0-bin.tar.gz
>
> HTTP/2 404
>
>   SHA512sum and PGP links are good.
>
>   Request: make download links operational.
>
>   Questions:
> - Where to share the issue?
> - Is this mailing list the right place?
> - Or an issue in the LANG Jira project?
> - Or in the "www.apache.org website" project (ASFSITE)?
>
>   Thank you in advance :-)
>
>   Regards,
>   Cpm.
> --
> DEVINSY sarl - Développements en S.I.
> http://www.devinsy.fr/
> Tél. +33 (0)6 26 72 40 04

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



[LANG] Bad download links in the Download web page (3.13.0)

2023-11-26 Thread Christian P. MOMON


 Hi,

 In the web page "Download Apache Commons Lang" 
(https://commons.apache.org/proper/commons-lang/download_lang.cgi), in 
the section "Apache Commons Lang 3.13.0", the four download links give 
"404 Not Found error":


 - commons-lang3-3.13.0-bin.tar.gz
 - commons-lang3-3.13.0-bin.zip
 - commons-lang3-3.13.0-src.tar.gz
 - commons-lang3-3.13.0-src.zip

 Example:

# curl -I 
https://dlcdn.apache.org//commons/lang/binaries/commons-lang3-3.13.0-bin.tar.gz 


HTTP/2 404

 SHA512sum and PGP links are good.

 Request: make download links operational.

 Questions:
- Where to share the issue?
- Is this mailing list the right place?
- Or an issue in the LANG Jira project?
- Or in the "www.apache.org website" project (ASFSITE)?

 Thank you in advance :-)

 Regards,
 Cpm.
--
DEVINSY sarl - Développements en S.I.
http://www.devinsy.fr/
Tél. +33 (0)6 26 72 40 04


OpenPGP_signature.asc
Description: OpenPGP digital signature


[RESULT][VOTE] Release Apache Commons Lang 3.14.0 based on RC1

2023-11-21 Thread Gary Gregory
This vote thread passes with the following +1 binding votes:

- Bruno Kinoshita
- Rob Tompkins
- Gary Gregory

Gary

On Tue, Nov 21, 2023 at 8:29 PM Gary Gregory  wrote:
>
> My +1
>
> Gary
>
> On Sun, Nov 19, 2023 at 11:05 AM Rob Tompkins  wrote:
> >
> > Looking over the release there are some japicmp curiosities that I think 
> > are k, and the CPD report has a few nits in it.
> > Otherwise all looks good.
> >
> > +1
> >
> > -Rob
> >
> > Thank you for the good work!!!
> >
> > > On Nov 18, 2023, at 10:15 AM, Gary Gregory  wrote:
> > >
> > > We have fixed a few bugs and added some enhancements since Apache
> > > Commons Lang 3.13.0 was released, so I would like to release Apache
> > > Commons Lang 3.14.0.
> > >
> > > Apache Commons Lang 3.14.0 RC1 is available for review here:
> > >https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1
> > > (svn revision 65412)
> > >
> > > The Git tag commons-lang-3.14.0-RC1 commit for this RC is
> > > c8774fa74adbbbcd4e5f915ab6bc3aa10d877419 which you can browse here:
> > >
> > > https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=c8774fa74adbbbcd4e5f915ab6bc3aa10d877419
> > > You may checkout this tag using:
> > >git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> > > --branch commons-lang-3.14.0-RC1 commons-lang-3.14.0-RC1
> > >
> > > Maven artifacts are here:
> > >
> > > https://repository.apache.org/content/repositories/orgapachecommons-1674/org/apache/commons/commons-lang3/3.14.0/
> > >
> > > These are the artifacts and their hashes:
> > >
> > > #Release SHA-512s
> > > #Sat Nov 18 10:03:24 EST 2023
> > > Apache\ Commons\
> > > Lang-3.14.0.spdx.rdf.xml=497cb8e231b7c3421f4ed27063f889c1ff9815d5cc76aa992d7c1f166ffe0ced0313e3a8daf17d0f2eb412ee4ce8923fb87b7abd6e897a6180005d9ce2c97b15
> > > commons-lang3-3.14.0-bin.tar.gz=8e7e62418a49ba810512c13a640a8bf35f878fcd54af32fdaabe37817f58b21b475980ba663fba4887e45ef8d88af8ff17796f20d202e929e8e2574546dc
> > > commons-lang3-3.14.0-bin.zip=444ef65dfe130fdb50450778c757a23ccb16fdf4ac7afe655934ae5b0d3faf7b2001ba951383d9e69baeb1fdc879c81e4542f8ceb47c7044fb5266cdddbc0db6
> > > commons-lang3-3.14.0-bom.json=cce914a85f156c5757df5e6c28b9964f0be04f92035557491dd37dbef28efa812c4e975c391c38e2bfe807a530585ab666e40b544f76cc7ad9fb8a04c6012fbd
> > > commons-lang3-3.14.0-bom.xml=51a55d0d1bcd2f093cb2f0b84870b2381ab9da740582cba04ae02ea6e50a97e0656bd2bc2871a8d6a7fc313f033ab70544134845dec193552ef9ecc8db3a0ecb
> > > commons-lang3-3.14.0-javadoc.jar=40b1d2b1fe6a621d715d1290096942107f1d1bbb41a51096c70292be0803d5a6f9214fd8b5810ad154848d20bb498871ae9d2f8ad11649f0affaaa00f7c8e25c
> > > commons-lang3-3.14.0-sources.jar=16363e06b52908ecbec9a62f4b1e0a39cf3de9c646504f0cee5bbe845739cbfb99f01438808bab2c407fc72d4adf212487886422415d9972614c5ee96273deab
> > > commons-lang3-3.14.0-src.tar.gz=1ee4176c3588c11594a79f416a1f34b063cddb10c2124a37640fee48e5d8135091573002b6bf1eda5a60a324c1125665dadc93f9bfda32c9270c35113b6e1bea
> > > commons-lang3-3.14.0-src.zip=8c1cc37e2be29e71cfb80775c4887b2c6cd466ef05bb59a4afc11bc5fbe9b253dc57bda5e29b05ca6f1e9b497d84c56a5573c1e64b659a43bedcbe5bc3105b11
> > > commons-lang3-3.14.0-test-sources.jar=dd8d9670cf91b4504804f855c74c75109060c86e87eeb5c56f31ff9241ffde272855fac21ce456303dac1578e5c58238cb59e0e628854ae9d4f1451e15f969b8
> > > commons-lang3-3.14.0-tests.jar=e5cc518ba310db0a20361502a0bb8896f05f0c0552b8170a37485922030e15a1221e9e027753ad522202af2326664cb2f0c14d409bac6bfe44b9065fc07bbc02
> > >
> > > I have tested this with 'mvn -V -Prelease -Ptest-deploy -P jacoco -P
> > > japicmp clean package site deploy'
> > >
> > > using:
> > >
> > > Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
> > > Maven home: /usr/local/Cellar/maven/3.9.5/libexec
> > > Java version: 21.0.1, vendor: Homebrew, runtime:
> > > /usr/local/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
> > > Default locale: en_US, platform encoding: UTF-8
> > > OS name: "mac os x", version: "14.1.1", arch: "x86_64", family: "mac"
> > > Darwin gdg-mac-mini.local 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct
> > > 9 21:27:27 PDT 2023; root:xnu-10002.41.9~6/RELEASE_X86_64 x86_64
> > >
> > > Details of changes since 3.13.0 are in the release notes:
> > >
> > > https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/RELEASE-NOTES.txt
> > >
> >

Re: [VOTE] Release Apache Commons Lang 3.14.0 based on RC1

2023-11-21 Thread Gary Gregory
My +1

Gary

On Sun, Nov 19, 2023 at 11:05 AM Rob Tompkins  wrote:
>
> Looking over the release there are some japicmp curiosities that I think are 
> k, and the CPD report has a few nits in it.
> Otherwise all looks good.
>
> +1
>
> -Rob
>
> Thank you for the good work!!!
>
> > On Nov 18, 2023, at 10:15 AM, Gary Gregory  wrote:
> >
> > We have fixed a few bugs and added some enhancements since Apache
> > Commons Lang 3.13.0 was released, so I would like to release Apache
> > Commons Lang 3.14.0.
> >
> > Apache Commons Lang 3.14.0 RC1 is available for review here:
> >https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1
> > (svn revision 65412)
> >
> > The Git tag commons-lang-3.14.0-RC1 commit for this RC is
> > c8774fa74adbbbcd4e5f915ab6bc3aa10d877419 which you can browse here:
> >
> > https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=c8774fa74adbbbcd4e5f915ab6bc3aa10d877419
> > You may checkout this tag using:
> >git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> > --branch commons-lang-3.14.0-RC1 commons-lang-3.14.0-RC1
> >
> > Maven artifacts are here:
> >
> > https://repository.apache.org/content/repositories/orgapachecommons-1674/org/apache/commons/commons-lang3/3.14.0/
> >
> > These are the artifacts and their hashes:
> >
> > #Release SHA-512s
> > #Sat Nov 18 10:03:24 EST 2023
> > Apache\ Commons\
> > Lang-3.14.0.spdx.rdf.xml=497cb8e231b7c3421f4ed27063f889c1ff9815d5cc76aa992d7c1f166ffe0ced0313e3a8daf17d0f2eb412ee4ce8923fb87b7abd6e897a6180005d9ce2c97b15
> > commons-lang3-3.14.0-bin.tar.gz=8e7e62418a49ba810512c13a640a8bf35f878fcd54af32fdaabe37817f58b21b475980ba663fba4887e45ef8d88af8ff17796f20d202e929e8e2574546dc
> > commons-lang3-3.14.0-bin.zip=444ef65dfe130fdb50450778c757a23ccb16fdf4ac7afe655934ae5b0d3faf7b2001ba951383d9e69baeb1fdc879c81e4542f8ceb47c7044fb5266cdddbc0db6
> > commons-lang3-3.14.0-bom.json=cce914a85f156c5757df5e6c28b9964f0be04f92035557491dd37dbef28efa812c4e975c391c38e2bfe807a530585ab666e40b544f76cc7ad9fb8a04c6012fbd
> > commons-lang3-3.14.0-bom.xml=51a55d0d1bcd2f093cb2f0b84870b2381ab9da740582cba04ae02ea6e50a97e0656bd2bc2871a8d6a7fc313f033ab70544134845dec193552ef9ecc8db3a0ecb
> > commons-lang3-3.14.0-javadoc.jar=40b1d2b1fe6a621d715d1290096942107f1d1bbb41a51096c70292be0803d5a6f9214fd8b5810ad154848d20bb498871ae9d2f8ad11649f0affaaa00f7c8e25c
> > commons-lang3-3.14.0-sources.jar=16363e06b52908ecbec9a62f4b1e0a39cf3de9c646504f0cee5bbe845739cbfb99f01438808bab2c407fc72d4adf212487886422415d9972614c5ee96273deab
> > commons-lang3-3.14.0-src.tar.gz=1ee4176c3588c11594a79f416a1f34b063cddb10c2124a37640fee48e5d8135091573002b6bf1eda5a60a324c1125665dadc93f9bfda32c9270c35113b6e1bea
> > commons-lang3-3.14.0-src.zip=8c1cc37e2be29e71cfb80775c4887b2c6cd466ef05bb59a4afc11bc5fbe9b253dc57bda5e29b05ca6f1e9b497d84c56a5573c1e64b659a43bedcbe5bc3105b11
> > commons-lang3-3.14.0-test-sources.jar=dd8d9670cf91b4504804f855c74c75109060c86e87eeb5c56f31ff9241ffde272855fac21ce456303dac1578e5c58238cb59e0e628854ae9d4f1451e15f969b8
> > commons-lang3-3.14.0-tests.jar=e5cc518ba310db0a20361502a0bb8896f05f0c0552b8170a37485922030e15a1221e9e027753ad522202af2326664cb2f0c14d409bac6bfe44b9065fc07bbc02
> >
> > I have tested this with 'mvn -V -Prelease -Ptest-deploy -P jacoco -P
> > japicmp clean package site deploy'
> >
> > using:
> >
> > Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
> > Maven home: /usr/local/Cellar/maven/3.9.5/libexec
> > Java version: 21.0.1, vendor: Homebrew, runtime:
> > /usr/local/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
> > Default locale: en_US, platform encoding: UTF-8
> > OS name: "mac os x", version: "14.1.1", arch: "x86_64", family: "mac"
> > Darwin gdg-mac-mini.local 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct
> > 9 21:27:27 PDT 2023; root:xnu-10002.41.9~6/RELEASE_X86_64 x86_64
> >
> > Details of changes since 3.13.0 are in the release notes:
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/RELEASE-NOTES.txt
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/changes-report.html
> >
> > Site:
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/index.html
> >(note some *relative* links are broken and the 3.14.0 directories
> > are not yet created - these will be OK once the site is deployed.)
> >
> > JApiCmp Report (compared to 3.13.0):
> >
> > https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/japicmp.html
> >
> >

Re: [VOTE] Release Apache Commons Lang 3.14.0 based on RC1

2023-11-19 Thread Rob Tompkins
Looking over the release there are some japicmp curiosities that I think are 
k, and the CPD report has a few nits in it.
Otherwise all looks good.

+1

-Rob

Thank you for the good work!!!

> On Nov 18, 2023, at 10:15 AM, Gary Gregory  wrote:
> 
> We have fixed a few bugs and added some enhancements since Apache
> Commons Lang 3.13.0 was released, so I would like to release Apache
> Commons Lang 3.14.0.
> 
> Apache Commons Lang 3.14.0 RC1 is available for review here:
>https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1
> (svn revision 65412)
> 
> The Git tag commons-lang-3.14.0-RC1 commit for this RC is
> c8774fa74adbbbcd4e5f915ab6bc3aa10d877419 which you can browse here:
>
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=c8774fa74adbbbcd4e5f915ab6bc3aa10d877419
> You may checkout this tag using:
>git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch commons-lang-3.14.0-RC1 commons-lang-3.14.0-RC1
> 
> Maven artifacts are here:
>
> https://repository.apache.org/content/repositories/orgapachecommons-1674/org/apache/commons/commons-lang3/3.14.0/
> 
> These are the artifacts and their hashes:
> 
> #Release SHA-512s
> #Sat Nov 18 10:03:24 EST 2023
> Apache\ Commons\
> Lang-3.14.0.spdx.rdf.xml=497cb8e231b7c3421f4ed27063f889c1ff9815d5cc76aa992d7c1f166ffe0ced0313e3a8daf17d0f2eb412ee4ce8923fb87b7abd6e897a6180005d9ce2c97b15
> commons-lang3-3.14.0-bin.tar.gz=8e7e62418a49ba810512c13a640a8bf35f878fcd54af32fdaabe37817f58b21b475980ba663fba4887e45ef8d88af8ff17796f20d202e929e8e2574546dc
> commons-lang3-3.14.0-bin.zip=444ef65dfe130fdb50450778c757a23ccb16fdf4ac7afe655934ae5b0d3faf7b2001ba951383d9e69baeb1fdc879c81e4542f8ceb47c7044fb5266cdddbc0db6
> commons-lang3-3.14.0-bom.json=cce914a85f156c5757df5e6c28b9964f0be04f92035557491dd37dbef28efa812c4e975c391c38e2bfe807a530585ab666e40b544f76cc7ad9fb8a04c6012fbd
> commons-lang3-3.14.0-bom.xml=51a55d0d1bcd2f093cb2f0b84870b2381ab9da740582cba04ae02ea6e50a97e0656bd2bc2871a8d6a7fc313f033ab70544134845dec193552ef9ecc8db3a0ecb
> commons-lang3-3.14.0-javadoc.jar=40b1d2b1fe6a621d715d1290096942107f1d1bbb41a51096c70292be0803d5a6f9214fd8b5810ad154848d20bb498871ae9d2f8ad11649f0affaaa00f7c8e25c
> commons-lang3-3.14.0-sources.jar=16363e06b52908ecbec9a62f4b1e0a39cf3de9c646504f0cee5bbe845739cbfb99f01438808bab2c407fc72d4adf212487886422415d9972614c5ee96273deab
> commons-lang3-3.14.0-src.tar.gz=1ee4176c3588c11594a79f416a1f34b063cddb10c2124a37640fee48e5d8135091573002b6bf1eda5a60a324c1125665dadc93f9bfda32c9270c35113b6e1bea
> commons-lang3-3.14.0-src.zip=8c1cc37e2be29e71cfb80775c4887b2c6cd466ef05bb59a4afc11bc5fbe9b253dc57bda5e29b05ca6f1e9b497d84c56a5573c1e64b659a43bedcbe5bc3105b11
> commons-lang3-3.14.0-test-sources.jar=dd8d9670cf91b4504804f855c74c75109060c86e87eeb5c56f31ff9241ffde272855fac21ce456303dac1578e5c58238cb59e0e628854ae9d4f1451e15f969b8
> commons-lang3-3.14.0-tests.jar=e5cc518ba310db0a20361502a0bb8896f05f0c0552b8170a37485922030e15a1221e9e027753ad522202af2326664cb2f0c14d409bac6bfe44b9065fc07bbc02
> 
> I have tested this with 'mvn -V -Prelease -Ptest-deploy -P jacoco -P
> japicmp clean package site deploy'
> 
> using:
> 
> Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
> Maven home: /usr/local/Cellar/maven/3.9.5/libexec
> Java version: 21.0.1, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.1.1", arch: "x86_64", family: "mac"
> Darwin gdg-mac-mini.local 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct
> 9 21:27:27 PDT 2023; root:xnu-10002.41.9~6/RELEASE_X86_64 x86_64
> 
> Details of changes since 3.13.0 are in the release notes:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/RELEASE-NOTES.txt
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/changes-report.html
> 
> Site:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/index.html
>    (note some *relative* links are broken and the 3.14.0 directories
> are not yet created - these will be OK once the site is deployed.)
> 
> JApiCmp Report (compared to 3.13.0):
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/japicmp.html
> 
> RAT Report:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/rat-report.html
> 
> KEYS:
>  https://downloads.apache.org/commons/KEYS
> 
> Please review the release candidate and vote.
> This vote will close no sooner than 72 hours from now.
> 
>  [ ] +1 Release these artifacts
>  [ ] +0 OK, but...
>  [ ] -0 OK, but really should fix...
>  [ ] -1 I oppose this release because...
> 
>

Re: [VOTE] Release Apache Commons Lang 3.14.0 based on RC1

2023-11-18 Thread Bruno Kinoshita
   [x] +1 Release these artifacts

Building fine on

Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: /opt/apache-maven-3.8.5
Java version: 17.0.8.1, vendor: Private Build, runtime:
/usr/lib/jvm/java-17-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-88-generic", arch: "amd64", family:
"unix"

Site generated OK, inspected dist area archives and found no issues, site
reports look good too.

Thanks!

On Sat, 18 Nov 2023 at 16:15, Gary Gregory  wrote:

> We have fixed a few bugs and added some enhancements since Apache
> Commons Lang 3.13.0 was released, so I would like to release Apache
> Commons Lang 3.14.0.
>
> Apache Commons Lang 3.14.0 RC1 is available for review here:
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1
> (svn revision 65412)
>
> The Git tag commons-lang-3.14.0-RC1 commit for this RC is
> c8774fa74adbbbcd4e5f915ab6bc3aa10d877419 which you can browse here:
>
> https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=c8774fa74adbbbcd4e5f915ab6bc3aa10d877419
> You may checkout this tag using:
> git clone https://gitbox.apache.org/repos/asf/commons-lang.git
> --branch <https://gitbox.apache.org/repos/asf/commons-lang.git--branch>
> commons-lang-3.14.0-RC1 commons-lang-3.14.0-RC1
>
> Maven artifacts are here:
>
> https://repository.apache.org/content/repositories/orgapachecommons-1674/org/apache/commons/commons-lang3/3.14.0/
>
> These are the artifacts and their hashes:
>
> #Release SHA-512s
> #Sat Nov 18 10:03:24 EST 2023
> Apache\ Commons\
>
> Lang-3.14.0.spdx.rdf.xml=497cb8e231b7c3421f4ed27063f889c1ff9815d5cc76aa992d7c1f166ffe0ced0313e3a8daf17d0f2eb412ee4ce8923fb87b7abd6e897a6180005d9ce2c97b15
>
> commons-lang3-3.14.0-bin.tar.gz=8e7e62418a49ba810512c13a640a8bf35f878fcd54af32fdaabe37817f58b21b475980ba663fba4887e45ef8d88af8ff17796f20d202e929e8e2574546dc
>
> commons-lang3-3.14.0-bin.zip=444ef65dfe130fdb50450778c757a23ccb16fdf4ac7afe655934ae5b0d3faf7b2001ba951383d9e69baeb1fdc879c81e4542f8ceb47c7044fb5266cdddbc0db6
>
> commons-lang3-3.14.0-bom.json=cce914a85f156c5757df5e6c28b9964f0be04f92035557491dd37dbef28efa812c4e975c391c38e2bfe807a530585ab666e40b544f76cc7ad9fb8a04c6012fbd
>
> commons-lang3-3.14.0-bom.xml=51a55d0d1bcd2f093cb2f0b84870b2381ab9da740582cba04ae02ea6e50a97e0656bd2bc2871a8d6a7fc313f033ab70544134845dec193552ef9ecc8db3a0ecb
>
> commons-lang3-3.14.0-javadoc.jar=40b1d2b1fe6a621d715d1290096942107f1d1bbb41a51096c70292be0803d5a6f9214fd8b5810ad154848d20bb498871ae9d2f8ad11649f0affaaa00f7c8e25c
>
> commons-lang3-3.14.0-sources.jar=16363e06b52908ecbec9a62f4b1e0a39cf3de9c646504f0cee5bbe845739cbfb99f01438808bab2c407fc72d4adf212487886422415d9972614c5ee96273deab
>
> commons-lang3-3.14.0-src.tar.gz=1ee4176c3588c11594a79f416a1f34b063cddb10c2124a37640fee48e5d8135091573002b6bf1eda5a60a324c1125665dadc93f9bfda32c9270c35113b6e1bea
>
> commons-lang3-3.14.0-src.zip=8c1cc37e2be29e71cfb80775c4887b2c6cd466ef05bb59a4afc11bc5fbe9b253dc57bda5e29b05ca6f1e9b497d84c56a5573c1e64b659a43bedcbe5bc3105b11
>
> commons-lang3-3.14.0-test-sources.jar=dd8d9670cf91b4504804f855c74c75109060c86e87eeb5c56f31ff9241ffde272855fac21ce456303dac1578e5c58238cb59e0e628854ae9d4f1451e15f969b8
>
> commons-lang3-3.14.0-tests.jar=e5cc518ba310db0a20361502a0bb8896f05f0c0552b8170a37485922030e15a1221e9e027753ad522202af2326664cb2f0c14d409bac6bfe44b9065fc07bbc02
>
> I have tested this with 'mvn -V -Prelease -Ptest-deploy -P jacoco -P
> japicmp clean package site deploy'
>
> using:
>
> Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
> Maven home: /usr/local/Cellar/maven/3.9.5/libexec
> Java version: 21.0.1, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "14.1.1", arch: "x86_64", family: "mac"
> Darwin gdg-mac-mini.local 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct
>  9 21:27:27 PDT 2023; root:xnu-10002.41.9~6/RELEASE_X86_64 x86_64
>
> Details of changes since 3.13.0 are in the release notes:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/RELEASE-NOTES.txt
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/changes-report.html
>
> Site:
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/index.html
> (note some *relative* links are broken and the 3.14.0 directories
> are not yet created - these will be OK once the site is deployed.)
>
> JApiCmp Report (compared to 3.13.0):
>
> https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/japicmp.html
>
> RAT Report:
>
> https://dist.apache.org

[VOTE] Release Apache Commons Lang 3.14.0 based on RC1

2023-11-18 Thread Gary Gregory
We have fixed a few bugs and added some enhancements since Apache
Commons Lang 3.13.0 was released, so I would like to release Apache
Commons Lang 3.14.0.

Apache Commons Lang 3.14.0 RC1 is available for review here:
https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1
(svn revision 65412)

The Git tag commons-lang-3.14.0-RC1 commit for this RC is
c8774fa74adbbbcd4e5f915ab6bc3aa10d877419 which you can browse here:

https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=c8774fa74adbbbcd4e5f915ab6bc3aa10d877419
You may checkout this tag using:
git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-3.14.0-RC1 commons-lang-3.14.0-RC1

Maven artifacts are here:

https://repository.apache.org/content/repositories/orgapachecommons-1674/org/apache/commons/commons-lang3/3.14.0/

These are the artifacts and their hashes:

#Release SHA-512s
#Sat Nov 18 10:03:24 EST 2023
Apache\ Commons\
Lang-3.14.0.spdx.rdf.xml=497cb8e231b7c3421f4ed27063f889c1ff9815d5cc76aa992d7c1f166ffe0ced0313e3a8daf17d0f2eb412ee4ce8923fb87b7abd6e897a6180005d9ce2c97b15
commons-lang3-3.14.0-bin.tar.gz=8e7e62418a49ba810512c13a640a8bf35f878fcd54af32fdaabe37817f58b21b475980ba663fba4887e45ef8d88af8ff17796f20d202e929e8e2574546dc
commons-lang3-3.14.0-bin.zip=444ef65dfe130fdb50450778c757a23ccb16fdf4ac7afe655934ae5b0d3faf7b2001ba951383d9e69baeb1fdc879c81e4542f8ceb47c7044fb5266cdddbc0db6
commons-lang3-3.14.0-bom.json=cce914a85f156c5757df5e6c28b9964f0be04f92035557491dd37dbef28efa812c4e975c391c38e2bfe807a530585ab666e40b544f76cc7ad9fb8a04c6012fbd
commons-lang3-3.14.0-bom.xml=51a55d0d1bcd2f093cb2f0b84870b2381ab9da740582cba04ae02ea6e50a97e0656bd2bc2871a8d6a7fc313f033ab70544134845dec193552ef9ecc8db3a0ecb
commons-lang3-3.14.0-javadoc.jar=40b1d2b1fe6a621d715d1290096942107f1d1bbb41a51096c70292be0803d5a6f9214fd8b5810ad154848d20bb498871ae9d2f8ad11649f0affaaa00f7c8e25c
commons-lang3-3.14.0-sources.jar=16363e06b52908ecbec9a62f4b1e0a39cf3de9c646504f0cee5bbe845739cbfb99f01438808bab2c407fc72d4adf212487886422415d9972614c5ee96273deab
commons-lang3-3.14.0-src.tar.gz=1ee4176c3588c11594a79f416a1f34b063cddb10c2124a37640fee48e5d8135091573002b6bf1eda5a60a324c1125665dadc93f9bfda32c9270c35113b6e1bea
commons-lang3-3.14.0-src.zip=8c1cc37e2be29e71cfb80775c4887b2c6cd466ef05bb59a4afc11bc5fbe9b253dc57bda5e29b05ca6f1e9b497d84c56a5573c1e64b659a43bedcbe5bc3105b11
commons-lang3-3.14.0-test-sources.jar=dd8d9670cf91b4504804f855c74c75109060c86e87eeb5c56f31ff9241ffde272855fac21ce456303dac1578e5c58238cb59e0e628854ae9d4f1451e15f969b8
commons-lang3-3.14.0-tests.jar=e5cc518ba310db0a20361502a0bb8896f05f0c0552b8170a37485922030e15a1221e9e027753ad522202af2326664cb2f0c14d409bac6bfe44b9065fc07bbc02

I have tested this with 'mvn -V -Prelease -Ptest-deploy -P jacoco -P
japicmp clean package site deploy'

using:

Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /usr/local/Cellar/maven/3.9.5/libexec
Java version: 21.0.1, vendor: Homebrew, runtime:
/usr/local/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.1.1", arch: "x86_64", family: "mac"
Darwin gdg-mac-mini.local 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct
 9 21:27:27 PDT 2023; root:xnu-10002.41.9~6/RELEASE_X86_64 x86_64

Details of changes since 3.13.0 are in the release notes:
    
https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/RELEASE-NOTES.txt
    
https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/changes-report.html

Site:
    
https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/index.html
(note some *relative* links are broken and the 3.14.0 directories
are not yet created - these will be OK once the site is deployed.)

JApiCmp Report (compared to 3.13.0):
    
https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/japicmp.html

RAT Report:
    
https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/site/rat-report.html

KEYS:
  https://downloads.apache.org/commons/KEYS

Please review the release candidate and vote.
This vote will close no sooner than 72 hours from now.

  [ ] +1 Release these artifacts
  [ ] +0 OK, but...
  [ ] -0 OK, but really should fix...
  [ ] -1 I oppose this release because...

Thank you,

Gary Gregory,
Release Manager (using key 86fdc7e2a11262cb)

For following is intended as a helper and refresher for reviewers.

Validating a release candidate
==

These guidelines are NOT complete.

Requirements: Git, Java, Maven.

You can validate a release from a release candidate (RC) tag as follows.

1a) Clone and checkout the RC tag

git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-3.14.0-RC1 commons-lang-3.14.0-RC1
cd commons-lang-3.14.0-RC1

1b) Download and unpack the source archive from:

https://dist.apache.org/repos/dist/dev/commons/lang/3.14.0-RC1/source

2) C

Re: [lang] DurationFormatUtils does not calculate duration for some specific dates and times

2023-11-06 Thread Sujan Biswas
Please ignore the email. I need to pass the TimeZone for calculation,
otherwise it was taking the system default timezone which changes during
DayLight Saving.

Thanks,
Sujan

On Mon, 6 Nov 2023 at 16:35, Sujan Biswas  wrote:

> Hi Team,
>
> Please find the below test case and observation which seems to be a bug in
> the DurationFormatUtils class. If you look at the calculated duration it
> says "Duration : *00-1113023530*" with output format as
> MMddHHmmssSSS.
>
> org.apache.commons
> commons-lang3
> 3.12.0
> provided
>
> @Test
> void getElapsedTimerTest() {
>
> String DATE_TIME_FORMAT = "MMddHHmmssSSS";
> long startEpochMillis = 1698541052000L; //Date and time (GMT): Sunday, 29
> October 2023 00:57:32
> long endEpochMillis = 1698544232000L; //Date and time (GMT): Sunday, 29
> October 2023 01:50:32
>
> String duration = DurationFormatUtils.formatPeriod(startEpochMillis,
> endEpochMillis, DATE_TIME_FORMAT);
>
> System.out.println("Start Time : " + Instant.ofEpochMilli
> (startEpochMillis));
> System.out.println("End Time : " + Instant.ofEpochMilli(endEpochMillis));
> System.out.println("Duration : " + duration);
>
>
> }
>
> Console Output:
>
> Start Time : 2023-10-29T00:57:32Z End Time : 2023-10-29T01:50:32Z Duration
> : *00-1113023530*
>
> Regards,
> Sujan Biswas
>


[lang] DurationFormatUtils does not calculate duration for some specific dates and times

2023-11-06 Thread Sujan Biswas
Hi Team,

Please find the below test case and observation which seems to be a bug in
the DurationFormatUtils class. If you look at the calculated duration it
says "Duration : *00-1113023530*" with output format as
MMddHHmmssSSS.

org.apache.commons
commons-lang3
3.12.0
provided

@Test
void getElapsedTimerTest() {

String DATE_TIME_FORMAT = "MMddHHmmssSSS";
long startEpochMillis = 1698541052000L; //Date and time (GMT): Sunday, 29
October 2023 00:57:32
long endEpochMillis = 1698544232000L; //Date and time (GMT): Sunday, 29
October 2023 01:50:32

String duration = DurationFormatUtils.formatPeriod(startEpochMillis,
endEpochMillis, DATE_TIME_FORMAT);

System.out.println("Start Time : " + Instant.ofEpochMilli(startEpochMillis))
;
System.out.println("End Time : " + Instant.ofEpochMilli(endEpochMillis));
System.out.println("Duration : " + duration);


}

Console Output:

Start Time : 2023-10-29T00:57:32Z End Time : 2023-10-29T01:50:32Z Duration
: *00-1113023530*

Regards,
Sujan Biswas


Re: [lang] RandomStringUtilsTest.testRandomStringUtilsHomog fails a lot

2023-10-20 Thread Alex Herbert
I opened a PR after changing the expected failure probability to 1e-5.

I had an old version of the GH build file when I estimated it used 4
runs. The latest CI runs 4 JDKs on 3 platforms plus CodeQL and
coverage. So this is 14 runs. We should see failures with a
probability of:

(1 - (1 - 1e-5)**14) = 0.0001399, or approximately 1 in 7143.

Compare that to previously:

(1 - (1 - 1e-3)**14) = 0.01391, or approximately 1 in 71.89.

If this is still a problem moving forward then we can replace with a
fixed random number generator calling the underlying method and test
coverage of the original method by other means.

Alex

On Fri, 20 Oct 2023 at 20:16, Gary D. Gregory  wrote:
>
> Hi Alex,
>
> I'd prefer if you could give a shot at adjusting this test when you can take 
> the time.
>
> TY,
> Gary
>
> On 2023/10/20 18:17:35 Alex Herbert wrote:
> > On Fri, 20 Oct 2023 at 18:55, Alex Herbert  wrote:
> > >
> > > The chi-square critical value (13.82) is correct:
> > >
> > > >>> from scipy.stats import chi2
> > > >>> chi2(2).isf(0.001)
> > > 13.815510557964274
> > >
> > > The test seems to fail with the expected frequency when run locally. I
> > > annotated with:
> > >
> > > @RepeatedTest(value = 10)
> > >
> > > I observe 93 failures (just under 1 in 1000). So it is strange this
> > > fails a lot on the GH CI build.
> > >
> > > We could just use a fixed Random argument to the call that is
> > > ultimately performing the random string generation:
> > >
> > > random(count, 0, chars.length, false, false, chars, random());
> > >
> > > Switch the test to:
> > >
> > > Random rng = new Random(0xdeadbeef)
> > >
> > > gen = RandomStringUtils.random(6, 0, 3, false, false, chars, rng);
> > >
> > > You will see a drop in coverage by not exercising the public API.
> > >
> > > The alternative is to change the chi-square critical value:
> > >
> > > 1 in 10,000: 18.420680743952364
> > > 1 in 100,000: 23.025850929940457
> > > 1 in 1,000,000: 27.631021115928547
> > >
> > > Alex
> >
> > Also note that although the test fails 1 in 1000 times, we run 4
> > builds in CI (coverage + 3 JDKS). So we expect to see failure with a
> > p-value of:
> >
> > 1 - (1 - 0.001)^4 = 0.00399
> >
> > This is the probability of not seeing a failure subtracted from 1. It
> > is approximately 1 in 250.
> >
> > I did check the computation of the chi-square statistic and AFAIK it is 
> > correct.
> >
> > My suggestion for a first change is to bump the critical value to the
> > level for 1 in 100,000. We should then see failures every 25,000 GH
> > builds. If the frequency is more than that then we have to assume that
> > the ThreadLocalRandom instance is not uniformly sampling from the set
> > of size 3. I find this unlikely as the underlying algorithm for
> > ThreadLocalRandom is good [1].
> >
> > Alex
> >
> > [1] IIRC it passes the Test U01 BigCrush test for random generators
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

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



Re: [lang] RandomStringUtilsTest.testRandomStringUtilsHomog fails a lot

2023-10-20 Thread Gary D. Gregory
Hi Alex,

I'd prefer if you could give a shot at adjusting this test when you can take 
the time.

TY,
Gary

On 2023/10/20 18:17:35 Alex Herbert wrote:
> On Fri, 20 Oct 2023 at 18:55, Alex Herbert  wrote:
> >
> > The chi-square critical value (13.82) is correct:
> >
> > >>> from scipy.stats import chi2
> > >>> chi2(2).isf(0.001)
> > 13.815510557964274
> >
> > The test seems to fail with the expected frequency when run locally. I
> > annotated with:
> >
> > @RepeatedTest(value = 10)
> >
> > I observe 93 failures (just under 1 in 1000). So it is strange this
> > fails a lot on the GH CI build.
> >
> > We could just use a fixed Random argument to the call that is
> > ultimately performing the random string generation:
> >
> > random(count, 0, chars.length, false, false, chars, random());
> >
> > Switch the test to:
> >
> > Random rng = new Random(0xdeadbeef)
> >
> > gen = RandomStringUtils.random(6, 0, 3, false, false, chars, rng);
> >
> > You will see a drop in coverage by not exercising the public API.
> >
> > The alternative is to change the chi-square critical value:
> >
> > 1 in 10,000: 18.420680743952364
> > 1 in 100,000: 23.025850929940457
> > 1 in 1,000,000: 27.631021115928547
> >
> > Alex
> 
> Also note that although the test fails 1 in 1000 times, we run 4
> builds in CI (coverage + 3 JDKS). So we expect to see failure with a
> p-value of:
> 
> 1 - (1 - 0.001)^4 = 0.00399
> 
> This is the probability of not seeing a failure subtracted from 1. It
> is approximately 1 in 250.
> 
> I did check the computation of the chi-square statistic and AFAIK it is 
> correct.
> 
> My suggestion for a first change is to bump the critical value to the
> level for 1 in 100,000. We should then see failures every 25,000 GH
> builds. If the frequency is more than that then we have to assume that
> the ThreadLocalRandom instance is not uniformly sampling from the set
> of size 3. I find this unlikely as the underlying algorithm for
> ThreadLocalRandom is good [1].
> 
> Alex
> 
> [1] IIRC it passes the Test U01 BigCrush test for random generators
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 
> 

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



Re: [lang] RandomStringUtilsTest.testRandomStringUtilsHomog fails a lot

2023-10-20 Thread Alex Herbert
On Fri, 20 Oct 2023 at 18:55, Alex Herbert  wrote:
>
> The chi-square critical value (13.82) is correct:
>
> >>> from scipy.stats import chi2
> >>> chi2(2).isf(0.001)
> 13.815510557964274
>
> The test seems to fail with the expected frequency when run locally. I
> annotated with:
>
> @RepeatedTest(value = 10)
>
> I observe 93 failures (just under 1 in 1000). So it is strange this
> fails a lot on the GH CI build.
>
> We could just use a fixed Random argument to the call that is
> ultimately performing the random string generation:
>
> random(count, 0, chars.length, false, false, chars, random());
>
> Switch the test to:
>
> Random rng = new Random(0xdeadbeef)
>
> gen = RandomStringUtils.random(6, 0, 3, false, false, chars, rng);
>
> You will see a drop in coverage by not exercising the public API.
>
> The alternative is to change the chi-square critical value:
>
> 1 in 10,000: 18.420680743952364
> 1 in 100,000: 23.025850929940457
> 1 in 1,000,000: 27.631021115928547
>
> Alex

Also note that although the test fails 1 in 1000 times, we run 4
builds in CI (coverage + 3 JDKS). So we expect to see failure with a
p-value of:

1 - (1 - 0.001)^4 = 0.00399

This is the probability of not seeing a failure subtracted from 1. It
is approximately 1 in 250.

I did check the computation of the chi-square statistic and AFAIK it is correct.

My suggestion for a first change is to bump the critical value to the
level for 1 in 100,000. We should then see failures every 25,000 GH
builds. If the frequency is more than that then we have to assume that
the ThreadLocalRandom instance is not uniformly sampling from the set
of size 3. I find this unlikely as the underlying algorithm for
ThreadLocalRandom is good [1].

Alex

[1] IIRC it passes the Test U01 BigCrush test for random generators

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



Re: [lang] RandomStringUtilsTest.testRandomStringUtilsHomog fails a lot

2023-10-20 Thread Alex Herbert
The chi-square critical value (13.82) is correct:

>>> from scipy.stats import chi2
>>> chi2(2).isf(0.001)
13.815510557964274

The test seems to fail with the expected frequency when run locally. I
annotated with:

@RepeatedTest(value = 10)

I observe 93 failures (just under 1 in 1000). So it is strange this
fails a lot on the GH CI build.

We could just use a fixed Random argument to the call that is
ultimately performing the random string generation:

random(count, 0, chars.length, false, false, chars, random());

Switch the test to:

Random rng = new Random(0xdeadbeef)

gen = RandomStringUtils.random(6, 0, 3, false, false, chars, rng);

You will see a drop in coverage by not exercising the public API.

The alternative is to change the chi-square critical value:

1 in 10,000: 18.420680743952364
1 in 100,000: 23.025850929940457
1 in 1,000,000: 27.631021115928547

Alex

On Fri, 20 Oct 2023 at 18:44, Elliotte Rusty Harold  wrote:
>
> It's possible the chi square test is miscalculated. Perhaps some stats
> expert can check that. It's also possible the chi square test isn't
> the right one to use here. Again, consult a stats expert.
>
> It's also very possible that the randomness is not nearly as random as
> it's supposed to be. That's incredibly common, and that might be
> noticeable given the very short three-letter character set [a, b, c]
> being picked from.
>
> On Fri, Oct 20, 2023 at 1:31 PM Gary D. Gregory  wrote:
> >
> > Despite the failure comment:
> >
> > RandomStringUtilsTest.testRandomStringUtilsHomog:474 test homogeneity -- 
> > will fail about 1 in 1000 times ==> expected:  but was: 
> >
> > This test fails a LOT more than once every 1000 times, based on how many 
> > GitHub builds I need to restart every week.
> >
> > What can be done to make this test more resilient?
> >
> > TY!
> > Gary
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
>
>
> --
> Elliotte Rusty Harold
> elh...@ibiblio.org
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

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



Re: [lang] RandomStringUtilsTest.testRandomStringUtilsHomog fails a lot

2023-10-20 Thread Elliotte Rusty Harold
It's possible the chi square test is miscalculated. Perhaps some stats
expert can check that. It's also possible the chi square test isn't
the right one to use here. Again, consult a stats expert.

It's also very possible that the randomness is not nearly as random as
it's supposed to be. That's incredibly common, and that might be
noticeable given the very short three-letter character set [a, b, c]
being picked from.

On Fri, Oct 20, 2023 at 1:31 PM Gary D. Gregory  wrote:
>
> Despite the failure comment:
>
> RandomStringUtilsTest.testRandomStringUtilsHomog:474 test homogeneity -- will 
> fail about 1 in 1000 times ==> expected:  but was: 
>
> This test fails a LOT more than once every 1000 times, based on how many 
> GitHub builds I need to restart every week.
>
> What can be done to make this test more resilient?
>
> TY!
> Gary
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>


-- 
Elliotte Rusty Harold
elh...@ibiblio.org

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



  1   2   3   4   5   6   7   8   9   10   >