The Apache Commons Lang team has released version 3.11. This document contains the release notes for the 3.11 version of Apache Commons Lang. Commons Lang is a set of utility functions and reusable components that should be of use in any Java environment.
Lang 3.9 and onwards now targets Java 8, making use of features that arrived with Java 8. For the advice on upgrading from 2.x to 3.x, see the following page: 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. Changes in this version include: New features: o Add ArrayUtils.isSameLength() to compare more array types #430. Thanks to XenoAmess, Gary Gregory. o Added the Locks class as a convenient possibility to deal with locked objects. o LANG-1568: Add to Functions: FailableBooleanSupplier, FailableIntSupplier, FailableLongSupplier, FailableDoubleSupplier, and so on. o LANG-1569: Add ArrayUtils.get(T[], index, T) to provide an out-of-bounds default value. o LANG-1570: Add JavaVersion enum constants for Java 14 and 15. #553. Thanks to Edgar Asatryan. o Add JavaVersion enum constants for Java 16. Thanks to Gary Gregory. o LANG-1556: Use Java 8 lambdas and Map operations. Thanks to XenoAmess. o LANG-1565: Change removeLastFieldSeparator to use endsWith #550. Thanks to XenoAmess. o LANG-1557: Change a Pattern to a static final field, for not letting it compile each time the function invoked. #542. Thanks to XenoAmess, Gary Gregory. o Add ImmutablePair factory methods left() and right(). o Add ObjectUtils.toString(Object, Supplier<String>). o Add org.apache.commons.lang3.StringUtils.substringAfter(String, int). o Add org.apache.commons.lang3.StringUtils.substringAfterLast(String, int). Fixed Bugs: o Fix Javadoc for StringUtils.appendIfMissingIgnoreCase() #507. Thanks to contextshuffling. o LANG-1560: Refine Javadoc #545. Thanks to XenoAmess. o LANG-1554: Fix typos #539. Thanks to XenoAmess. o LANG-1555: Ignored exception `ignored`, should not be called so #540. Thanks to XenoAmess. o LANG-1528: StringUtils.replaceEachRepeatedly gives IllegalStateException #505. Thanks to Edwin Delgado H. o LANG-1543: [JSON string for maps] ToStringBuilder.reflectionToString doesnt render nested maps correctly. Thanks to Swaraj Pal, Wander Costa, Gary Gregory. o Correct Javadocs of methods that use Validate.notNull() and replace some uses of Validate.isTrue() with Validate.notNull(). #525. Thanks to Isira Seneviratne. o LANG-1539: Add allNull() and anyNull() methods to ObjectUtils. #522. Thanks to Isira Seneviratne. Changes: o Refine test output for FastDateParserTest Thanks to Jin Xu. o LANG-1549: CharSequenceUtils.lastIndexOf : remake it Thanks to Jin Xu. o remove encoding and docEncoding and use inherited values from commons-parent Thanks to XenoAmess. o Simplify null checks in Pair.hashCode() using Objects.hashCode(). #517. Thanks to Isira Seneviratne, Bruno P. Kinoshita. o Simplify null checks in Triple.hashCode() using Objects.hashCode(). #516. Thanks to Isira Seneviratne, Bruno P. Kinoshita. o Simplify some if statements in StringUtils. #521. Thanks to Isira Seneviratne, Bruno P. Kinoshita. o LANG-1537: Simplify a null check in the private replaceEach() method of StringUtils. #514. Thanks to Isira Seneviratne, Bruno P. Kinoshita. o LANG-1534: Replace some usages of the ternary operator with calls to Math.max() and Math.min() #512. Thanks to Isira Seneviratne, Bruno P. Kinoshita. o (Javadoc) Fix return tag for throwableOf*() methods #518. Thanks to Arend v. Reinersdorff, Bruno P. Kinoshita. o LANG-1545: CharSequenceUtils.regionMatches is wrong dealing with Georgian. Thanks to XenoAmess, Gary Gregory. o LANG-1550: Optimize ArrayUtils::isArrayIndexValid method. #551. Thanks to Edgar Asatryan. o LANG-1561: Use List.sort instead of Collection.sort #546. Thanks to XenoAmess. o LANG-1563: Use StandardCharsets.UTF_8 #548. Thanks to XenoAmess. o LANG-1564: Use Collections.singletonList insteadof Arrays.asList when there be only one element. #549. Thanks to XenoAmess. o LANG-1553: Change array style from `int a[]` to `int[] a` #537. Thanks to XenoAmess. o LANG-1552: Change from addAll to constructors for some List #536. Thanks to XenoAmess. o LANG-1558: Simplify if as some conditions are covered by others #543. Thanks to XenoAmess. o LANG-1567: Fixed Javadocs for setTestRecursive() #556. Thanks to Miguel Muñoz, Bruno P. Kinoshita, Gary Gregory. o LANG-1542: ToStringBuilder.reflectionToString - Wrong JSON format when object has a List of Enum. Thanks to Tr?n Ng?c Khoa, Gary Gregory. o Make org.apache.commons.lang3.CharSequenceUtils.toCharArray(CharSequence) public. o org.apache.commons:commons-parent 50 -> 51. o org.junit-pioneer:junit-pioneer 0.5.4 -> 0.6.0. o org.junit.jupiter:junit-jupiter 5.6.0 -> 5.6.2. o com.github.spotbugs:spotbugs 4.0.0 -> 4.0.6. o com.puppycrawl.tools:checkstyle 8.29 -> 8.34. o commons.surefire.version 3.0.0-M4 -> 3.0.0-M5.. 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 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