Prepare for the next release candidate

This commit is contained in:
Gary Gregory 2024-07-13 14:06:52 +00:00
parent b1f41de44d
commit e30167b3b3
4 changed files with 183 additions and 31 deletions

View File

@ -41,28 +41,27 @@
Contributing to Apache Commons Lang Contributing to Apache Commons Lang
====================== ======================
You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to Have you found a bug or have an idea for a cool new feature? Contributing code is a great way to give something back to the open-source community.
the open source community. Before you dig right into the code there are a few guidelines that we need contributors to Before you dig right into the code, we need contributors to follow a few guidelines to have a chance of keeping on top of things.
follow so that we can have a chance of keeping on top of things.
Getting Started Getting Started
--------------- ---------------
+ Make sure you have a [JIRA account](https://issues.apache.org/jira/). + Make sure you have a [JIRA account](https://issues.apache.org/jira/).
+ Make sure you have a [GitHub account](https://github.com/signup/free). + Make sure you have a [GitHub account](https://github.com/signup/free). This is not essential, but makes providing patches much easier.
+ If you're planning to implement a new feature it makes sense to discuss your changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons Lang's scope. + If you're planning to implement a new feature it makes sense to discuss your changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons Lang's scope.
+ Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist. + Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist.
+ Clearly describe the issue including steps to reproduce when it is a bug. + Clearly describe the issue including steps to reproduce when it is a bug.
+ Make sure you fill in the earliest version that you know has the issue. + Make sure you fill in the earliest version that you know has the issue.
+ Find the corresponding [repository on GitHub](https://github.com/apache/?query=commons-), + Find the corresponding [repository on GitHub](https://github.com/apache/?query=commons-),
[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository. [fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository. If you don't have a GitHub account, you can still clone the Commons repository.
Making Changes Making Changes
-------------- --------------
+ Create a _topic branch_ for your isolated work. + Create a _topic branch_ for your isolated work.
* Usually you should base your branch on the `master` branch. * Usually you should base your branch on the `master` branch.
* A good topic branch name can be the JIRA bug id plus a keyword, e.g. `LANG-123-InputStream`. * A good topic branch name can be the JIRA bug ID plus a keyword, e.g. `LANG-123-InputStream`.
* If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests. * If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests.
+ Make commits of logical units. + Make commits of logical units.
* Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue. * Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue.
@ -72,7 +71,7 @@ Making Changes
+ Create minimal diffs - disable _On Save_ actions like _Reformat Source Code_ or _Organize Imports_. If you feel the source code should be reformatted create a separate PR for this change first. + Create minimal diffs - disable _On Save_ actions like _Reformat Source Code_ or _Organize Imports_. If you feel the source code should be reformatted create a separate PR for this change first.
+ Check for unnecessary whitespace with `git diff` -- check before committing. + Check for unnecessary whitespace with `git diff` -- check before committing.
+ Make sure you have added the necessary tests for your changes, typically in `src/test/java`. + Make sure you have added the necessary tests for your changes, typically in `src/test/java`.
+ Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken. + Run all the tests with `mvn clean verify` to ensure nothing else was accidentally broken.
Making Trivial Changes Making Trivial Changes
---------------------- ----------------------
@ -109,7 +108,6 @@ Additional Resources
+ [General GitHub documentation](https://help.github.com/) + [General GitHub documentation](https://help.github.com/)
+ [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/) + [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/)
+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons) + [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
+ `#apache-commons` IRC channel on `irc.freenode.net`
[cla]:https://www.apache.org/licenses/#clas [cla]:https://www.apache.org/licenses/#clas
[jira]:https://issues.apache.org/jira/browse/LANG [jira]:https://issues.apache.org/jira/browse/LANG

View File

@ -45,7 +45,7 @@ Apache Commons Lang
[![Java CI](https://github.com/apache/commons-lang/actions/workflows/maven.yml/badge.svg)](https://github.com/apache/commons-lang/actions/workflows/maven.yml) [![Java CI](https://github.com/apache/commons-lang/actions/workflows/maven.yml/badge.svg)](https://github.com/apache/commons-lang/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-lang3/badge.svg?gav=true)](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-lang3/?gav=true) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-lang3/badge.svg?gav=true)](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-lang3/?gav=true)
[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-lang3/3.14.0.svg)](https://javadoc.io/doc/org.apache.commons/commons-lang3/3.14.0) [![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-lang3/3.15.0.svg)](https://javadoc.io/doc/org.apache.commons/commons-lang3/3.15.0)
[![CodeQL](https://github.com/apache/commons-lang/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/apache/commons-lang/actions/workflows/codeql-analysis.yml) [![CodeQL](https://github.com/apache/commons-lang/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/apache/commons-lang/actions/workflows/codeql-analysis.yml)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/apache/commons-lang/badge)](https://api.securityscorecards.dev/projects/github.com/apache/commons-lang) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/apache/commons-lang/badge)](https://api.securityscorecards.dev/projects/github.com/apache/commons-lang)
@ -53,12 +53,11 @@ 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 classes that are in java.lang's hierarchy, or are considered to be so
standard as to justify existence in java.lang. standard as to justify existence in java.lang.
The code is tested using the latest revision of the JDK for supported The code is tested using the latest revision of the JDK for supported
LTS releases. LTS releases: 8, 11, 17 and 21 currently.
These are 8, 11, 17 and 21 currently, see: See https://github.com/apache/commons-lang/blob/master/.github/workflows/maven.yml
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. Please ensure your build environment is up-to-date and kindly report any build issues.
Documentation Documentation
------------- -------------
@ -77,7 +76,7 @@ Alternatively, you can pull it from the central Maven repositories:
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
<version>3.14.0</version> <version>3.15.0</version>
</dependency> </dependency>
``` ```
@ -97,7 +96,9 @@ There are some guidelines which will make applying PRs easier for us:
+ No tabs! Please use spaces for indentation. + No tabs! Please use spaces for indentation.
+ Respect the existing code style for each file. + Respect the existing code style for each file.
+ Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change. + Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
+ Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn```. + Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running `mvn`.
+ Before you pushing a PR, run `mvn` (by itself), this runs the default goal, which contains all build checks.
+ To see the code coverage report, regardless of coverage failures, run `mvn clean site -Dcommons.jacoco.haltOnFailure=false`
If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas). If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas).
You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md). You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md).
@ -119,7 +120,6 @@ Additional Resources
+ [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/LANG) + [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/LANG)
+ [Apache Commons Slack Channel](https://the-asf.slack.com/archives/C60NVB8AD) + [Apache Commons Slack Channel](https://the-asf.slack.com/archives/C60NVB8AD)
+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons) + [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
+ `#apache-commons` IRC channel on `irc.freenode.org`
Apache Commons Components Apache Commons Components
------------------------- -------------------------

View File

@ -15,6 +15,160 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
Apache Commons Lang
Version 3.15.0
Release Notes
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 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.
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.
New features and bug fixes (Java 8 or above).
Changes in this version include:
New features:
o LANG-1724: Customize text pattern in DiffResult#toString(). Thanks to Gary Gregory, Dennis Baerten.
o Add DiffBuilder.Builder. Thanks to Gary Gregory.
o Add DiffBuilder.builder(). Thanks to Gary Gregory.
o Add ReflectionDiffBuilder.Builder. Thanks to Gary Gregory.
o Add ReflectionDiffBuilder.builder(). Thanks to Gary Gregory.
o Add test in TypeUtilsTest #1151. Thanks to Elliotte Rusty Harold.
o Add Streams.failableStream(T), non-varargs variant. Thanks to Gary Gregory.
o Add Streams.nonNull(T), non-varargs variant. Thanks to Gary Gregory.
o Add ArrayUtils.nullTo(T[], T[]). Thanks to Gary Gregory.
o Add T ArrayUtils.arraycopy(T, int, T, int, int) fluent style. Thanks to Gary Gregory.
o Add T ArrayUtils.arraycopy(T, int, int, int, Function) fluent style. Thanks to Gary Gregory.
o Add SystemUtils.IS_JAVA_22. Thanks to Gary Gregory.
o Add JavaVersion.JAVA_22. Thanks to Gary Gregory.
o Add SystemProperties.getUserName(Supplier<String>). Thanks to Gary Gregory.
o Add SystemProperties.getLineSeparator(Supplier<String>). Thanks to Gary Gregory.
o Add SystemProperties.getJavaSpecificationVersion(Supplier<String>). Thanks to Gary Gregory.
o Add SystemProperties constants and methods for system properties as of Java 22. Thanks to Gary Gregory.
o Add MethodUtils.getMethodObject(Class, String, Class...). Thanks to Gary Gregory.
o LANG-1733: Add null-safe Consumers.accept() and Functions.apply() #1215. Thanks to Jongjin Bae, Gary Gregory.
o Add SystemUtils.IS_OS_ANDROID. Thanks to Gary Gregory.
o Add SystemUtils.IS_OS_MAC_OSX_SONOMA. Thanks to Gary Gregory.
o Add RuntimeEnvironment.inContainer() #1241. Thanks to Gary Gregory.
o Add AppendableJoiner and refactor string joining #1244. Thanks to Gary Gregory.
Fixed Bugs:
o Improve Javadoc in ExceptionUtils #1136. Thanks to Miklós Karakó, Gary Gregory.
o Fixed two non-deterministic tests in EnumUtilsTest.java #1131. Thanks to Saiharshith Karuneegar Ramesh, Gary Gregory.
o LANG-1721: Fix wrong number check that cause StringIndexOutOfBoundsException #1140. Thanks to Arthur Chan, Gary Gregory.
o LANG-1722: Rethrow NegativeArraySizeException as SerializationException in SerializationUtils.deserialize(InputStream) #1141. Thanks to Arthur Chan.
o LANG-1723: Throw NumberFormatException instead of IndexOutOfBoundsException in NumberUtils.getMantissa(String, int) #1145. Thanks to Arthur Chan, Gary Gregory.
o Minor grammar fixes #1143. Thanks to Paranoïd User.
o LANG-1713: ArrayUtils will return null when adding two null arrays, but undocumented. Thanks to John Hendrikx, Gary Gregory.
o Let parent POM figure out commons.spdx.version. Thanks to Gary Gregory.
o LANG-1726: Undeprecate ExceptionUtils.rethrow(Throwable). Thanks to Václav Haisman, Gary Gregory.
o LANG-1702: Test the Conversion class #1155. Thanks to Elliotte Rusty Harold.
o Address minor redundancies after code inspection #1148. Thanks to ParanoidUser, Elliotte Rusty Harold, Gary Gregory.
o Allow EventListenerSupport to handle (and ignore) exception from listeners allowing invocation of all listeners #1167. Thanks to Gary Gregory.
o Deprecate AnnotationUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ArchUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ArrayUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate BooleanUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate CharSequenceUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate CharSetUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate CharUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ClassLoaderUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ClassPathUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ClassUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ConstructorUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate DateFormatUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate DateUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate Diff.getType(). Thanks to Gary Gregory.
o Deprecate DiffBuilder.DiffBuilder(T, T, ToStringStyle). Thanks to Gary Gregory.
o Deprecate DiffBuilder.DiffBuilder(T, T, ToStringStyle, boolean). Thanks to Gary Gregory.
o Deprecate DurationFormatUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate DurationUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate EnumUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate EventUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate FieldUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate IEEE754rUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate InheritanceUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate IntStreams 0-argument constructor. Thanks to Gary Gregory.
o Deprecate LocaleUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate LockingVisitors 0-argument constructor. Thanks to Gary Gregory.
o Deprecate MemberUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate MethodUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate NumberUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ObjectUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate RandomStringUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate RandomUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ReflectionDiffBuilder.ReflectionDiffBuilder(T, T, ToStringStyle). Thanks to Gary Gregory.
o Deprecate RegExUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate SerializationUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate Streams 0-argument constructor. Thanks to Gary Gregory.
o Deprecate StringEscapeUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate StringUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate Suppliers 0-argument constructor. Thanks to Gary Gregory.
o Deprecate SystemProperties 0-argument constructor. Thanks to Gary Gregory.
o Deprecate ThreadUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate TypeUtils 0-argument constructor. Thanks to Gary Gregory.
o Make ArrayFill null-safe. Thanks to Gary Gregory.
o Make ArraySorter null-safe. Thanks to Gary Gregory.
o Make ArrayUtils.removeAll() null-safe. Thanks to Gary Gregory.
o Fix Java version in README.md #1170. Thanks to Philipp Trulson, Gary Gregory.
o StringUtils.stripAccents() should handle ligatures, UTF32 math blocks, etc. #1201. Thanks to Stephan Peters, Gary Gregory, Bernd.
o LANG-1524: TypeUtils.toString(Type) StackOverflowError for an inner class in the inner class parameterized enclosing class #657. Thanks to kijong.youn, Aakash Gupta, Gary Gregory.
o Deprecate SystemUtils.getUserName(String) in favor of SystemProperties.getUserName(Supplier). Thanks to Gary Gregory.
o Make LockVisitor.acceptReadLocked(FailableConsumer) null-safe. Thanks to Gary Gregory.
o Make LockVisitor.applyWriteLocked(FailableConsumer) null-safe. Thanks to Gary Gregory.
o Make ObjectUtils.getFirstNonNull(Supplier...) null-safe. Thanks to Gary Gregory.
o Make SystemProperties.getLineSeparator(Supplier). Thanks to Gary Gregory.
o StringUtils.stripAccents(String) doesn't handle "\u0111" and "\u0110" (Vietnamese) #1216. Thanks to hunghhdev.
o StringUtils.stripAccents(String) doesn't handle I with bar. Thanks to Gary Gregory.
o StringUtils.stripAccents(String) doesn't handle U with bar. Thanks to Gary Gregory.
o StringUtils.stripAccents(String) doesn't handle T with stroke. Thanks to Gary Gregory.
o LANG-1735: Fix Javadoc for FluentBitSet.setInclusive(int, int) #1222. Thanks to Tobias Kiecker.
o Same Javadoc changes as [TEXT-234] #1223. Thanks to Tobias Kiecker.
o Remove duplicate static data in SerializationUtils.ClassLoaderAwareObjectInputStream. Thanks to Gary Gregory.
o Reimplement RandomStringUtils on top of SecureRandom#getInstanceStrong() #1235. Thanks to Gary Gregory, Henri Yandell, Fabrice Benhamouda.
o LANG-1657: DiffBuilder: Type constraint for method append(..., DiffResult) too strict #786. Thanks to Matthias Welz, Andrew Thomas, Gary Gregory.
Changes:
o Bump commons-parent from 64 to 71 #1194, #1233. Thanks to Dependabot, Gary Gregory.
o Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.3.0 #1175, #1224. Thanks to Dependabot.
o Bump org.apache.commons:commons-text from 1.11.0 to 1.12.0 #1200. Thanks to Dependabot.
o Bump org.easymock:easymock from 5.2.0 to 5.3.0 #1232. Thanks to Dependabot.
o Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.1.0 #1242. Thanks to Dependabot.
Removed:
o Drop obsolete JDK 13 Maven profile #1142. Thanks to Paranoïd User.
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!
-Apache Commons Team
-----------------------------------------------------------------------------
Apache Commons Lang Apache Commons Lang
Version 3.14.0 Version 3.14.0
Release Notes Release Notes

View File

@ -113,32 +113,32 @@ limitations under the License.
</p> </p>
</subsection> </subsection>
</section> </section>
<section name="Apache Commons Lang 3.14.0 (Java 8+)"> <section name="Apache Commons Lang 3.15.0 (Java 8+)">
<subsection name="Binaries"> <subsection name="Binaries">
<table> <table>
<tr> <tr>
<td><a href="[preferred]/commons/lang/binaries/commons-lang3-3.14.0-bin.tar.gz">commons-lang3-3.14.0-bin.tar.gz</a></td> <td><a href="[preferred]/commons/lang/binaries/commons-lang3-3.15.0-bin.tar.gz">commons-lang3-3.15.0-bin.tar.gz</a></td>
<td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.14.0-bin.tar.gz.sha512">sha512</a></td> <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.15.0-bin.tar.gz.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.14.0-bin.tar.gz.asc">pgp</a></td> <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.15.0-bin.tar.gz.asc">pgp</a></td>
</tr> </tr>
<tr> <tr>
<td><a href="[preferred]/commons/lang/binaries/commons-lang3-3.14.0-bin.zip">commons-lang3-3.14.0-bin.zip</a></td> <td><a href="[preferred]/commons/lang/binaries/commons-lang3-3.15.0-bin.zip">commons-lang3-3.15.0-bin.zip</a></td>
<td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.14.0-bin.zip.sha512">sha512</a></td> <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.15.0-bin.zip.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.14.0-bin.zip.asc">pgp</a></td> <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.15.0-bin.zip.asc">pgp</a></td>
</tr> </tr>
</table> </table>
</subsection> </subsection>
<subsection name="Source"> <subsection name="Source">
<table> <table>
<tr> <tr>
<td><a href="[preferred]/commons/lang/source/commons-lang3-3.14.0-src.tar.gz">commons-lang3-3.14.0-src.tar.gz</a></td> <td><a href="[preferred]/commons/lang/source/commons-lang3-3.15.0-src.tar.gz">commons-lang3-3.15.0-src.tar.gz</a></td>
<td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.14.0-src.tar.gz.sha512">sha512</a></td> <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.15.0-src.tar.gz.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.14.0-src.tar.gz.asc">pgp</a></td> <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.15.0-src.tar.gz.asc">pgp</a></td>
</tr> </tr>
<tr> <tr>
<td><a href="[preferred]/commons/lang/source/commons-lang3-3.14.0-src.zip">commons-lang3-3.14.0-src.zip</a></td> <td><a href="[preferred]/commons/lang/source/commons-lang3-3.15.0-src.zip">commons-lang3-3.15.0-src.zip</a></td>
<td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.14.0-src.zip.sha512">sha512</a></td> <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.15.0-src.zip.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.14.0-src.zip.asc">pgp</a></td> <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.15.0-src.zip.asc">pgp</a></td>
</tr> </tr>
</table> </table>
</subsection> </subsection>