> On Jan 4, 2018, at 11:45 AM, Gary Gregory <garydgreg...@gmail.com> wrote: > > On Thu, Jan 4, 2018 at 9:43 AM, Rob Tompkins <chtom...@gmail.com > <mailto:chtom...@gmail.com>> wrote: > >> So with comments, I’m thinking I’ll submit a component vote. Any >> opposition? >> > > Do you already have a git repo, JIRA project and all that?
Oh not at all….I’m going to put it up for a vote before creating any repos. Before I start all that. I was thinking that we’d use COMMONSSITE as the jira for it because that’s what we use for the [build-plugin]….thoughts? -Rob > > Gary > >> >>> On Jan 4, 2018, at 11:28 AM, Gary Gregory <garydgreg...@gmail.com> >> wrote: >>> >>> That looks good. Thank you Rob! >>> >>> Gary >>> >>>> On Thu, Jan 4, 2018 at 5:47 AM, Rob Tompkins <chtom...@gmail.com> >> wrote: >>>> >>>> @Gary - Below is the result from my release plugin with [lang3]. Give >> it a >>>> looking over and let me know what you think. >>>> >>>> -Rob >>>> >>>>> On Jan 4, 2018, at 7:45 AM, chtom...@apache.org wrote: >>>>> >>>>> Author: chtompki >>>>> Date: Thu Jan 4 12:45:36 2018 >>>>> New Revision: 24009 >>>>> >>>>> Log: >>>>> Staging release: commons-lang3, version: 3.8-SNAPSHOT >>>>> >>>>> Added: >>>>> dev/commons/lang/RELEASE-NOTES.txt >>>>> dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.tar.gz >>>> (with props) >>>>> dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.tar.gz.asc >>>>> dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.tar.gz.md5 >>>>> dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.tar.gz.sha1 >>>>> dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip (with >>>> props) >>>>> dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.asc >>>>> dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.md5 >>>>> dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.sha1 >>>>> dev/commons/lang/site.zip (with props) >>>>> dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz >>>> (with props) >>>>> dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.asc >>>>> dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.md5 >>>>> dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.sha1 >>>>> dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip (with >>>> props) >>>>> dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.asc >>>>> dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.md5 >>>>> dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.sha1 >>>>> >>>>> Added: dev/commons/lang/RELEASE-NOTES.txt >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/RELEASE-NOTES.txt (added) >>>>> +++ dev/commons/lang/RELEASE-NOTES.txt Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1,1176 @@ >>>>> + >>>>> +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. >>>>> + >>>>> + >>>>> + Apache Commons Lang >>>>> + Version 3.7 >>>>> + Release Notes >>>>> + >>>>> + >>>>> +INTRODUCTION: >>>>> + >>>>> +This document contains the release notes for the 3.7 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.0 and onwards now targets Java 5.0, making use of features that >>>> arrived with Java 5.0 such as generics, >>>>> +variable arguments, autoboxing, concurrency and formatted output. >>>>> + >>>>> +For the advice on upgrading from 2.x to 3.x, see the following page: >>>>> + >>>>> + http://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. Requires Java 7, supports Java 8, 9, 10. >>>>> + >>>>> +Changes in this version include: >>>>> + >>>>> +New features: >>>>> +o LANG-1355: TimeZone.getTimeZone() in FastDateParser causes resource >>>> contention (PR #296.) Thanks to Chas Honton. >>>>> +o LANG-1360: Add methods to ObjectUtils to get various forms of class >>>> names in a null-safe manner Thanks to Gary Gregory. >>>>> + >>>>> +Fixed Bugs: >>>>> +o LANG-1362: Fix tests DateUtilsTest for Java 9 with en_GB locale >>>> Thanks to Stephen Colebourne. >>>>> +o LANG-1365: Fix NullPointerException in isJavaVersionAtLeast on Java >>>> 10, add SystemUtils.IS_JAVA_10, add JavaVersion.JAVA_10 Thanks to Gary >>>> Gregory. >>>>> +o LANG-1348: StackOverflowError on TypeUtils.toString(...) for a >>>> generic return type of Enum.valueOf Thanks to mbusso. >>>>> +o LANG-1350: ConstructorUtils.invokeConstructor(Class, Object...) >>>> regression Thanks to Brett Kail. >>>>> +o LANG-1349: EqualsBuilder#isRegistered: swappedPair construction bug >>>> Thanks to Naman Nigam. >>>>> +o LANG-1357: org.apache.commons.lang3.time.FastDateParser should use >>>> toUpperCase(Locale) Thanks to BruceKuiLiu. >>>>> + >>>>> +Changes: >>>>> +o LANG-1358: Improve StringUtils#replace throughput Thanks to Stephane >>>> Landelle. >>>>> +o LANG-1346: Remove deprecation from RandomStringUtils >>>>> +o LANG-1361: ExceptionUtils.getThrowableList() is using deprecated >>>> ExceptionUtils.getCause() Thanks to Ana. >>>>> + >>>>> + >>>>> +Historical list of changes: http://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: >>>>> + >>>>> +http://commons.apache.org/proper/commons-lang/ >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Apache Commons Lang >>>>> + Version 3.6 >>>>> + Release Notes >>>>> + >>>>> + >>>>> +INTRODUCTION: >>>>> + >>>>> +This document contains the release notes for the 3.6 version of >>>>> +Apache Commons Lang as well as a history all changes in the Commons >>>> Lang 3.x >>>>> +release line. Commons Lang is a set of utility functions and reusable >>>>> +components that should be of use in any Java environment. Commons Lang >>>> 3.6 at >>>>> +least requires Java 7.0. Note that this has changed from Commons Lang >>>> 3.5, which >>>>> +only required Java 1.6. >>>>> + >>>>> +For the advice on upgrading from 2.x to 3.x, see the following page: >>>>> + >>>>> + http://commons.apache.org/lang/article3_0.html >>>>> + >>>>> +HIGHLIGHTS >>>>> +========== >>>>> + >>>>> +Some of the highlights in this release include: >>>>> + >>>>> +o The class org.apache.commons.lang3.concurrent.Memoizer is an >>>> implementation >>>>> + of the Memoizer pattern as shown in >>>>> + Goetz, Brian et al. (2006) - Java Concurrency in Practice, p. 108. >>>>> +o The class org.apache.commons.lang3.ArchUtils has been added. >>>> ArchUtils is >>>>> + a utility class for the "os.arch" system property. >>>>> + >>>>> +DEPRECATIONS >>>>> +============ >>>>> + >>>>> +The Apache Commons Community has recently set up the Commons Text >>>> component >>>>> +as a home for algorithms working on strings. For this reason most of >>>> the string >>>>> +focused functionality in Commons Lang has been deprecated and moved to >>>>> +Commons Text. This includes: >>>>> + >>>>> +o All classes in the org.apache.commons.lang3.text and the >>>>> + org.apache.commons.lang3.text.translate packages >>>>> +o org.apache.commons.lang3.StringEscapeUtils >>>>> +o org.apache.commons.lang3.RandomStringUtils >>>>> +o The methods org.apache.commons.lang3.StringUtils. >> getJaroWinklerDistance >>>> and >>>>> + org.apache.commons.lang3.StringUtils.getLevenshteinDistance >>>>> + >>>>> +For more information see the Commons Text website: >>>>> + >>>>> + http://commons.apache.org/text >>>>> + >>>>> +The class org.apache.commons.lang3.CharEncoding has been deprecated >> in >>>> favor of >>>>> +java.nio.charset.StandardCharsets. >>>>> + >>>>> +The following methods have been deprecated in >>>>> +org.apache.commons.lang3.ArrayUtils in favor of the corresponding >>>> insert >>>>> +methods. Note that the handling for null inputs differs between add >> and >>>> insert. >>>>> + >>>>> +o add(boolean[], int, boolean) -> insert(int, boolean[], boolean...) >>>>> +o add(byte[], int, boolean) -> insert(int, byte[], byte...) >>>>> +o add(char[], int, boolean) -> insert(int, char[], char...) >>>>> +o add(double[], int, boolean) -> insert(int, double[], double...) >>>>> +o add(float[], int, boolean) -> insert(int, float[], float...) >>>>> +o add(int[], int, boolean) -> insert(int, int[], int...) >>>>> +o add(long[], int, boolean) -> insert(int, long[], long...) >>>>> +o add(short[], int, boolean) -> insert(int, short[], short...) >>>>> +o add(T[], int, boolean) -> insert(int, T[], T...) >>>>> + >>>>> + >>>>> +COMPATIBILITY WITH JAVA 9 >>>>> +================== >>>>> + >>>>> +The MANIFEST.MF now contains an additional entry: >>>>> + >>>>> + Automatic-Module-Name: org.apache.commons.lang3 >>>>> + >>>>> +This should make it possible to use Commons Lang 3.6 as a module in >> the >>>> Java 9 >>>>> +module system. For more information see the corresponding issue and >> the >>>>> +referenced mailing list discussions: >>>>> + >>>>> + https://issues.apache.org/jira/browse/LANG-1338 >>>>> + >>>>> +The build problems present in the 3.5 release have been resolved. >>>> Building >>>>> +Commons Lang 3.6 should work out of the box with the latest Java 9 EA >>>> build. >>>>> +Please report any Java 9 related issues at: >>>>> + >>>>> + https://issues.apache.org/jira/browse/LANG >>>>> + >>>>> +NEW FEATURES >>>>> +============ >>>>> + >>>>> +o LANG-1336: Add NUL Byte To CharUtils. Thanks to Beluga Behr. >>>>> +o LANG-1304: Add method in StringUtils to determine if string contains >>>> both >>>>> + mixed cased characters. Thanks to Andy Klimczak. >>>>> +o LANG-1325: Increase test coverage of ToStringBuilder class to 100%. >>>>> + Thanks to Arshad Basha. >>>>> +o LANG-1307: Add a method in StringUtils to extract only digits out of >>>> input >>>>> + string. Thanks to Arshad Basha. >>>>> +o LANG-1256: Add JMH maven dependencies. Thanks to C0rWin. >>>>> +o LANG-1167: Add null filter to ReflectionToStringBuilder. >>>>> + Thanks to Mark Dacek. >>>>> +o LANG-1299: Add method for converting string to an array of code >>>> points. >>>>> +o LANG-660: Add methods to insert arrays into arrays at an index. >>>>> +o LANG-1034: Add support for recursive comparison to >>>>> + EqualsBuilder#reflectionEquals. Thanks to Yathos UG. >>>>> +o LANG-1067: Add a reflection-based variant of DiffBuilder. >>>>> +o LANG-740: Implementation of a Memomizer. Thanks to James Sawle. >>>>> +o LANG-1258: Add ArrayUtils#toStringArray method. >>>>> + Thanks to IG, Grzegorz Rożniecki. >>>>> +o LANG-1160: StringUtils#abbreviate should support 'custom ellipses' >>>> parameter. >>>>> +o LANG-1293: Add StringUtils#isAllEmpty and #isAllBlank methods. >>>>> + Thanks to Pierre Templier, Martin Tarjanyi. >>>>> +o LANG-1313: Add ArchUtils - An utility class for the "os.arch" system >>>> property. >>>>> + Thanks to Tomschi. >>>>> +o LANG-1272: Add shuffle methods to ArrayUtils. >>>>> +o LANG-1317: Add MethodUtils#findAnnotation and extend >>>>> + MethodUtils#getMethodsWithAnnotation for non-public, >>>> super-class >>>>> + and interface methods. Thanks to Yasser Zamani. >>>>> +o LANG-1331: Add ImmutablePair.nullPair(). >>>>> +o LANG-1332: Add ImmutableTriple.nullTriple(). >>>>> + >>>>> +FIXED BUGS >>>>> +========== >>>>> + >>>>> +o LANG-1337: Fix test failures in IBM JDK 8 for ToStringBuilderTest. >>>>> +o LANG-1319: MultilineRecursiveToStringStyle StackOverflowError when >>>> object is >>>>> + an array. >>>>> +o LANG-1320: LocaleUtils#toLocale does not support language followed >> by >>>> UN M.49 >>>>> + numeric-3 area code followed by variant. >>>>> +o LANG-1300: Clarify or improve behaviour of int-based indexOf methods >>>> in >>>>> + StringUtils. Thanks to Mark Dacek. >>>>> +o LANG-1286: RandomStringUtils random method can overflow and return >>>> characters >>>>> + outside of specified range. >>>>> +o LANG-1292: WordUtils.wrap throws StringIndexOutOfBoundsException. >>>>> +o LANG-1287: RandomStringUtils#random can enter infinite loop if end >>>> parameter >>>>> + is to small. Thanks to Ivan Morozov. >>>>> +o LANG-1285: NullPointerException in FastDateParser$TimeZoneStrategy. >>>>> + Thanks to Francesco Chicchiriccò. >>>>> +o LANG-1281: Javadoc of StringUtils.ordinalIndexOf is contradictory. >>>>> + Thanks to Andreas Lundblad. >>>>> +o LANG-1188: StringUtils#join(T...): warning: [unchecked] Possible >> heap >>>>> + pollution from parameterized vararg type T. >>>>> +o LANG-1144: Multiple calls of >>>>> + org.apache.commons.lang3.concurrent.LazyInitializer. >>>> initialize() >>>>> + are possible. Thanks to Waldemar Maier, Gary Gregory. >>>>> +o LANG-1276: StrBuilder#replaceAll ArrayIndexOutOfBoundsException. >>>>> + Thanks to Andy Klimczak. >>>>> +o LANG-1278: BooleanUtils javadoc issues. Thanks to Duke Yin. >>>>> +o LANG-1070: ArrayUtils#add confusing example in javadoc. >>>>> + Thanks to Paul Pogonyshev. >>>>> +o LANG-1271: StringUtils#isAnyEmpty and #isAnyBlank should return >> false >>>> for an >>>>> + empty array. Thanks to Pierre Templier. >>>>> +o LANG-1155: Add StringUtils#unwrap. Thanks to Saif Asif, Thiago >>>> Andrade. >>>>> +o LANG-1311: TypeUtils.toString() doesn't handle primitive and Object >>>> arrays >>>>> + correctly. Thanks to Aaron Digulla. >>>>> +o LANG-1312: LocaleUtils#toLocale does not support language followed >> by >>>> UN M.49 >>>>> + numeric-3 area code. >>>>> +o LANG-1265: Build failures when building with Java 9 EA. >>>>> +o LANG-1314: javadoc creation broken with Java 8. Thanks to Allon >>>> Murienik. >>>>> +o LANG-1310: MethodUtils.invokeMethod throws ArrayStoreException if >>>> using >>>>> + varargs arguments and smaller types than the method >>>> defines. >>>>> + Thanks to Don Jeba. >>>>> + >>>>> +CHANGES >>>>> +======= >>>>> + >>>>> +o LANG-1338: Add Automatic-Module-Name MANIFEST entry for Java 9 >>>>> + compatibility. >>>>> +o LANG-1334: Deprecate CharEncoding in favour of >>>>> + java.nio.charset.StandardCharsets. >>>>> +o LANG-1110: Implement HashSetvBitSetTest using JMH. >>>>> + Thanks to Bruno P. Kinoshita. >>>>> +o LANG-1290: Increase test coverage of org.apache.commons.lang3. >>>> ArrayUtils. >>>>> + Thanks to Andrii Abramov. >>>>> +o LANG-1274: StrSubstitutor should state its thread safety. >>>>> +o LANG-1277: StringUtils#getLevenshteinDistance reduce memory >>>> consumption. >>>>> + Thanks to yufcuy. >>>>> +o LANG-1279: Update Java requirement from Java 6 to 7. >>>>> +o LANG-1143: StringUtils should use toXxxxCase(int) rather than >>>>> + toXxxxCase(char). Thanks to sebb. >>>>> +o LANG-1297: Add SystemUtils.getHostName() API. >>>>> +o LANG-1301: Moving apache-rat-plugin configuration into >>>> pluginManagement. >>>>> + Thanks to Karl Heinz Marbaise. >>>>> +o LANG-1316: Deprecate classes/methods moved to commons-text. >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.5 >>>>> + >>>>> + >>>>> +HIGHLIGHTS >>>>> +========== >>>>> + >>>>> +Some of the highlights in this release include: >>>>> + >>>>> +o Added Java 9 detection to org.apache.commons.lang3.SystemUtils. >>>>> +o Support for shifting and swapping elements in >>>>> + org.apache.commons.lang3.ArrayUtils. >>>>> +o New methods for generating random strings from different character >>>> classes >>>>> + including alphabetic, alpha-numeric and ASCII added to >>>>> + org.apache.commons.lang3.RandomStringUtils. >>>>> +o Numerous extensions to org.apache.commons.lang3.StringUtils >> including >>>>> + null safe compare variants, more remove and replace variants, >>>> rotation and >>>>> + truncation. >>>>> +o Added org.apache.commons.lang3.ThreadUtils - a utility class to >> work >>>> with >>>>> + instances of java.lang.Thread and java.lang.ThreadGroup. >>>>> +o Added annotations @EqualsExclude, @HashCodeExclude and >>>> @ToStringEclude to >>>>> + mark fields which should be ignored by the reflective builders in >>>> the >>>>> + org.apache.commons.lang3.builder package. >>>>> +o Support for various modify and retrieve value use cases added to the >>>> classes >>>>> + in org.apache.commons.lang3.mutable. >>>>> + >>>>> +COMPATIBILITY >>>>> +============= >>>>> + >>>>> +Apache Commons Lang 3.5 is binary compatible with the 3.4 release. >> Users >>>>> +should not experience any problems when upgrading from 3.4 to 3.5. >>>>> + >>>>> +There has been an addition to the org.apache.commons.lang3.time. >>>> DatePrinter >>>>> +interface: >>>>> + >>>>> +o Added method 'public boolean parse(java.lang.String, >>>> java.text.ParsePosition, >>>>> + java.util.Calendar)' >>>>> +o Added method 'public java.lang.Appendable format(long, >>>> java.lang.Appendable)' >>>>> +o Added method 'public java.lang.Appendable format(java.util.Date, >>>>> + java.lang.Appendable)' >>>>> +o Added method 'public java.lang.Appendable format(java.util.Calendar, >>>>> + java.lang.Appendable)' >>>>> + >>>>> +For this reason 3.5 is not strictly source compatible to 3.4. Since >> the >>>>> +DatePrinter interface is not meant to be implemented by clients, this >>>>> +change it not considered to cause any problems. >>>>> + >>>>> +JAVA 9 SUPPORT >>>>> +============== >>>>> + >>>>> +Java 9 introduces a new version-string scheme. Details of this new >>>> scheme are >>>>> +documented in JEP-223 (http://openjdk.java.net/jeps/223). In order to >>>> support >>>>> +JEP-223 two classes had to be changed: >>>>> + >>>>> +o org.apache.commons.lang3.JavaVersion >>>>> + deprecated enum constant JAVA_1_9 >>>>> + introduced enum constant JAVA_9 >>>>> + >>>>> +o org.apache.commons.lang3.SystemUtils >>>>> + deprecated constant IS_JAVA_1_9 >>>>> + introduced constant IS_JAVA_9 >>>>> + >>>>> +For more information see LANG-1197 >>>>> +(https://issues.apache.org/jira/browse/LANG-1197). All other APIs are >>>> expected >>>>> +to work with Java 9. >>>>> + >>>>> +BUILDING ON JAVA 9 >>>>> +================== >>>>> + >>>>> +Java 8 introduced the Unicode Consortium's Common Locale Data >>>> Repository as >>>>> +alternative source for locale data. Java 9 will use the CLDR provider >> as >>>>> +default provider for locale data (see http://openjdk.java.net/jeps/ >> 252). >>>> This >>>>> +causes an number of locale-sensitive test in Commons Lang to fail. In >>>> order >>>>> +to build Commons Lang 3.5 on Java 9, the locale provider has to be set >>>> to >>>>> +'JRE': >>>>> + >>>>> + mvn -Djava.locale.providers=JRE clean install >>>>> + >>>>> +We are currently investigating ways to support building on Java 9 >>>> without >>>>> +further configuration. For more information see: >>>>> +https://issues.apache.org/jira/browse/LANG-1265 >>>>> + >>>>> + >>>>> +NEW FEATURES >>>>> +============== >>>>> + >>>>> +o LANG-1275: Added a tryAcquire() method to TimedSemaphore. >>>>> +o LANG-1255: Add DateUtils.toCalendar(Date, TimeZone). Thanks to >>>> Kaiyuan Wang. >>>>> +o LANG-1023: Add WordUtils.wrap overload with customizable breakable >>>> character. >>>>> + Thanks to Marko Bekhta. >>>>> +o LANG-787: Add method removeIgnoreCase(String, String) to >>>> StringUtils. Thanks >>>>> + to Gokul Nanthakumar C. >>>>> +o LANG-1224: Extend RandomStringUtils with methods that generate >> strings >>>>> + between a min and max length. Thanks to Caleb Cushing. >>>>> +o LANG-1257: Add APIs StringUtils.wrapIfMissing(String, char|String). >>>> Thanks to >>>>> + Gary Gregory. >>>>> +o LANG-1253: Add RandomUtils#nextBoolean() method. Thanks to adilek. >>>>> +o LANG-1085: Add a circuit breaker implementation. Thanks to Oliver >>>> Heger and >>>>> + Bruno P. Kinoshita. >>>>> +o LANG-1013: Add StringUtils.truncate(). Thanks to Thiago Andrade. >>>>> +o LANG-1195: Enhance MethodUtils to allow invocation of private >>>> methods. Thanks >>>>> + to Derek C. Ashmore. >>>>> +o LANG-1189: Add getAndIncrement/getAndDecrement/getAndAdd/ >>>> incrementAndGet/ >>>>> + decrementAndGet/addAndGet in Mutable* classes. Thanks to >>>>> + Haiyang Li and Matthew Bartenschlag. >>>>> +o LANG-1225: Add RandomStringUtils#randomGraph and #randomPrint which >>>> match >>>>> + corresponding regular expression class. Thanks to Caleb >>>> Cushing. >>>>> +o LANG-1223: Add StopWatch#getTime(TimeUnit). Thanks to Nick Manley. >>>>> +o LANG-781: Add methods to ObjectUtils class to check for null >>>> elements in the >>>>> + array. Thanks to Krzysztof Wolny. >>>>> +o LANG-1228: Prefer Throwable.getCause() in ExceptionUtils.getCause(). >>>>> + Thanks to Brad Hess. >>>>> +o LANG-1233: DiffBuilder add method to allow appending from a >>>> DiffResult. >>>>> + Thanks to Nick Manley. >>>>> +o LANG-1168: Add SystemUtils.IS_OS_WINDOWS_10 property. >>>>> + Thanks to Pascal Schumacher. >>>>> +o LANG-1115: Add support for varargs in ConstructorUtils, MemberUtils, >>>> and >>>>> + MethodUtils. Thanks to Jim Lloyd and Joe Ferner. >>>>> +o LANG-1134: Add methods to check numbers against NaN and inifinite to >>>>> + Validate. Thanks to Alan Smithee. >>>>> +o LANG-1220: Add tests for missed branches in DateUtils. >>>>> + Thanks to Casey Scarborough. >>>>> +o LANG-1146: z/OS identification in SystemUtils. >>>>> + Thanks to Gabor Liptak. >>>>> +o LANG-1192: FastDateFormat support of the week-year component >>>> (uppercase 'Y'). >>>>> + Thanks to Dominik Stadler. >>>>> +o LANG-1169: Add StringUtils methods to compare a string to multiple >>>> strings. >>>>> + Thanks to Rafal Glowinski, Robert Parr and Arman Sharif. >>>>> +o LANG-1185: Add remove by regular expression methods in StringUtils. >>>>> +o LANG-1139: Add replace by regular expression methods in StringUtils. >>>>> +o LANG-1171: Add compare methods in StringUtils. >>>>> +o LANG-1174: Add sugar to RandomUtils. Thanks to Punkratz312. >>>>> +o LANG-1154: FastDateFormat APIs that use a StringBuilder. Thanks to >>>>> + Gary Gregory. >>>>> +o LANG-1149: Ability to throw checked exceptions without declaring >>>> them. Thanks >>>>> + to Gregory Zak. >>>>> +o LANG-1153: Implement ParsePosition api for FastDateParser. >>>>> +o LANG-1137: Add check for duplicate event listener in >>>> EventListenerSupport. >>>>> + Thanks to Matthew Aguirre. >>>>> +o LANG-1135: Add method containsAllWords to WordUtils. Thanks to >>>>> + Eduardo Martins. >>>>> +o LANG-1132: ReflectionToStringBuilder doesn't throw >>>> IllegalArgumentException >>>>> + when the constructor's object param is null. Thanks to >>>> Jack Tan. >>>>> +o LANG-701: StringUtils join with var args. Thanks to James Sawle. >>>>> +o LANG-1105: Add ThreadUtils - A utility class which provides helper >>>> methods >>>>> + related to java.lang.Thread Issue: LANG-1105. Thanks to >>>>> + Hendrik Saly. >>>>> +o LANG-1031: Add annotations to exclude fields from >>>> ReflectionEqualsBuilder, >>>>> + ReflectionToStringBuilder and ReflectionHashCodeBuilder. >>>> Thanks >>>>> + to Felipe Adorno. >>>>> +o LANG-1127: Use JUnit rules to set and reset the default Locale and >>>> TimeZone. >>>>> +o LANG-1119: Add rotate(string, int) method to StringUtils. Thanks to >>>>> + Loic Guibert. >>>>> +o LANG-1099: Add swap and shift operations for arrays to ArrayUtils. >>>> Thanks to >>>>> + Adrian Ber. >>>>> +o LANG-1050: Change nullToEmpty methods to generics. Thanks to James >>>> Sawle. >>>>> +o LANG-1074: Add a method to ArrayUtils for removing all occurrences >> of >>>> a given >>>>> + element Issue: LANG-1074. Thanks to Haiyang Li. >>>>> + >>>>> +FIXED BUGS >>>>> +============ >>>>> + >>>>> +o LANG-1261: ArrayUtils.contains returns false for instances of >>>> subtypes. >>>>> +o LANG-1252: Rename NumberUtils.isNumber, isCreatable to better >> reflect >>>>> + createNumber. Also, accommodated for "+" symbol as prefix >>>> in >>>>> + isCreatable and isNumber. Thanks to Rob Tompkins. >>>>> +o LANG-1230: Remove unnecessary synchronization from registry lookup >> in >>>>> + EqualsBuilder and HashCodeBuilder. Thanks to Philippe >>>> Marschall. >>>>> +o LANG-1214: Handle "void" in ClassUtils.getClass(). Thanks to Henry >>>> Tung. >>>>> +o LANG-1250: SerializationUtils#deserialize has unnecessary code and a >>>> comment >>>>> + for that. Thanks to Glease Wang. >>>>> +o LANG-1190: TypeUtils.isAssignable throws NullPointerException when >>>> fromType >>>>> + has type variables and toType generic superclass >> specifies >>>> type >>>>> + variable. Thanks to Pascal Schumacher. >>>>> +o LANG-1226: StringUtils#normalizeSpace does not trim the string >>>> anymore. >>>>> + Thanks to Pascal Schumacher. >>>>> +o LANG-1251: SerializationUtils.ClassLoaderAwareObjectInputStream >>>> should use >>>>> + static initializer to initialize primitiveTypes map. >>>> Thanks to >>>>> + Takuya Ueshin. >>>>> +o LANG-1248: FastDatePrinter Memory allocation regression. Thanks to >>>>> + Benoit Wiart. >>>>> +o LANG-1018: Fix precision loss on NumberUtils.createNumber(String). >>>> Thanks to >>>>> + Nick Manley. >>>>> +o LANG-1199: Fix implementation of StringUtils. >> getJaroWinklerDistance(). >>>> Thanks >>>>> + to M. Steiger. >>>>> +o LANG-1244: Fix dead links in StringUtils.getLevenshteinDistance() >>>> javadoc. >>>>> + Thanks to jjbankert. >>>>> +o LANG-1242: "\u2284":"?" mapping missing from >>>>> + EntityArrays#HTML40_EXTENDED_ESCAPE. Thanks to Neal >>>> Stewart. >>>>> +o LANG-901: StringUtils#startsWithAny/endsWithAny is case sensitive >> - >>>>> + documented as case insensitive. Thanks to Matthew >>>> Bartenschlag. >>>>> +o LANG-1232: DiffBuilder: Add null check on fieldName when appending >>>> Object or >>>>> + Object[]. Thanks to Nick Manley. >>>>> +o LANG-1178: ArrayUtils.removeAll(Object array, int... indices) should >>>> do the >>>>> + clone, not its callers. Thanks to Henri Yandell. >>>>> +o LANG-1120: StringUtils.stripAccents should remove accents from "Å " >>>> and "Å‚". >>>>> + Thanks to kaching88. >>>>> +o LANG-1205: NumberUtils.createNumber() behaves inconsistently with >>>>> + NumberUtils.isNumber(). Thanks to pbrose. >>>>> +o LANG-1222: Fix for incorrect comment on >> StringUtils.containsIgnoreCase >>>>> + method. Thanks to Adam J. >>>>> +o LANG-1221: Fix typo on appendIfMissing javadoc. Thanks to Pierre >>>> Templier. >>>>> +o LANG-1202: parseDateStrictly does't pass specified locale. Thanks to >>>>> + Markus Jelsma. >>>>> +o LANG-1219: FastDateFormat doesn't respect summer daylight in some >>>> localized >>>>> + strings. Thanks to Jarek. >>>>> +o LANG-1175: Remove Ant-based build. >>>>> +o LANG-1194: Limit max heap memory for consistent Travis CI build. >>>>> +o LANG-1186: Fix NullPointerException in FastDateParser$ >>>> TimeZoneStrategy. >>>>> + Thanks to NickManley. >>>>> +o LANG-1193: ordinalIndexOf("abc", "ab", 1) gives incorrect answer of >> -1 >>>>> + (correct answer should be 0); revert fix for LANG-1077. >>>> Thanks to >>>>> + Qin Li. >>>>> +o LANG-1002: Several predefined ISO FastDateFormats in DateFormatUtils >>>> are >>>>> + incorrect. Thanks to Michael Osipov. >>>>> +o LANG-1152: StringIndexOutOfBoundsException or field over-write for >>>> large year >>>>> + fields in FastDateParser. Thanks to Pas Filip. >>>>> +o LANG-1141: StrLookup.systemPropertiesLookup() no longer reacts on >>>> changes on >>>>> + system properties. >>>>> +o LANG-1147: EnumUtils *BitVector issue with more than 32 values Enum. >>>> Thanks >>>>> + to Loic Guibert. >>>>> +o LANG-1059: Capitalize javadoc is incorrect. Thanks to Colin Casey. >>>>> +o LANG-1122: Inconsistent behavior of swap for malformed inputs. >> Thanks >>>> to >>>>> + Adrian Ber. >>>>> +o LANG-1130: Fix critical issues reported by SonarQube. >>>>> +o LANG-1131: StrBuilder.equals(StrBuilder) doesn't check for null >>>> inputs. >>>>> +o LANG-1128: JsonToStringStyle doesn't handle chars and objects >>>> correctly. >>>>> + Thanks to Jack Tan. >>>>> +o LANG-1126: DateFormatUtilsTest.testSMTP depends on the default >> Locale. >>>>> +o LANG-1123: Unit test FastDatePrinterTimeZonesTest needs a timezone >>>> set. >>>>> + Thanks to Christian P. Momon. >>>>> +o LANG-916: DateFormatUtils.format does not correctly change Calendar >>>>> + TimeZone in certain situations. Thanks to Christian P. >>>> Momon. >>>>> +o LANG-1116: DateUtilsTest.testLang530 fails for some timezones. >> Thanks >>>> to >>>>> + Aaron Sheldon. >>>>> +o LANG-1114: TypeUtils.ParameterizedType#equals doesn't work with >>>> wildcard >>>>> + types. Thanks to Andy Coates. >>>>> +o LANG-1118: StringUtils.repeat('z', -1) throws >>>> NegativeArraySizeException. >>>>> + Thanks to Loic Guibert. >>>>> +o LANG-1111: Fix FindBugs warnings in DurationFormatUtils. >>>>> +o LANG-1162: StringUtils#equals fails with Index OOBE on non-Strings >>>> with >>>>> + identical leading prefix.. >>>>> +o LANG-1163: There are no tests for CharSequenceUtils.regionMatches. >>>>> +o LANG-1200: Fix JavaDoc of StringUtils.ordinalIndexOf. Thanks to >>>> BarkZhang. >>>>> +o LANG-1191: Incorrect Javadoc >>>>> + StringUtils.containsAny(CharSequence, CharSequence...). >>>> Thanks to >>>>> + qed, Brent Worden and Gary Gregory. >>>>> + >>>>> +CHANGES >>>>> +========= >>>>> +o LANG-1197: Prepare Java 9 detection. >>>>> +o LANG-1262: CompareToBuilder.append(Object, Object, Comparator) >>>> method is too >>>>> + big to be inlined. Thanks to Ruslan Cheremin. >>>>> +o LANG-1259: JavaDoc for ArrayUtils.isNotEmpty() is slightly >>>> misleading. Thanks >>>>> + to Dominik Stadler. >>>>> +o LANG-1247: FastDatePrinter generates extra Date objects. Thanks to >>>>> + Benoit Wiart. >>>>> +o LANG-1229: HashCodeBuilder.append(Object,Object) is too big to be >>>> inlined, >>>>> + which prevents whole builder to be scalarized. Thanks to >>>>> + Ruslan Cheremin. >>>>> +o LANG-1243: Simplify ArrayUtils removeElements by using new >>>> decrementAndGet() >>>>> + method. >>>>> +o LANG-1240: Optimize BitField constructor implementation. Thanks to >>>> zhanhb. >>>>> +o LANG-1206: Improve CharSetUtils.squeeze() performance. Thanks to >>>>> + Mohammed Alfallaj. >>>>> +o LANG-1176: Improve ArrayUtils removeElements time complexity to >> O(n). >>>> Thanks >>>>> + to Jeffery Yuan. >>>>> +o LANG-1234: getLevenshteinDistance with a threshold: optimize >>>> implementation >>>>> + if the strings lengths differ more than the threshold. >>>> Thanks to >>>>> + Jonatan Jönsson. >>>>> +o LANG-1151: Performance improvements for NumberUtils.isParsable. >>>> Thanks to >>>>> + Juan Pablo Santos RodrÃguez. >>>>> +o LANG-1218: EqualsBuilder.append(Object,Object) is too big to be >>>> inlined, >>>>> + which prevents whole builder to be scalarized. Thanks to >>>>> + Ruslan Cheremin. >>>>> +o LANG-1210: StringUtils#startsWithAny has error in Javadoc. Thanks to >>>>> + Matthias Niehoff. >>>>> +o LANG-1208: StrSubstitutor can preserve escapes. Thanks to Samuel >> Karp. >>>>> +o LANG-1182: Clarify JavaDoc of StringUtils.containsAny(). Thanks to >>>>> + Larry West and Pascal Schumacher. >>>>> +o LANG-1183: Making replacePattern/removePattern methods null safe in >>>>> + StringUtils. >>>>> +o LANG-1057: Replace StringBuilder with String concatenation for >> better >>>>> + optimization. Thanks to Otávio Santana. >>>>> +o LANG-1075: Deprecate SystemUtils.FILE_SEPARATOR and >>>>> + SystemUtils.PATH_SEPARATOR. >>>>> +o LANG-979: TypeUtils.parameterizeWithOwner - wrong format >> descriptor >>>> for >>>>> + "invalid number of type parameters". Thanks to Bruno P. >>>> Kinoshita. >>>>> +o LANG-1112: MultilineRecursiveToStringStyle largely unusable due to >>>> being >>>>> + package-private. >>>>> +o LANG-1058: StringUtils.uncapitalize performance improvement. Thanks >> to >>>>> + Leo Wang. >>>>> +o LANG-1069: CharSet.getInstance documentation does not clearly >> explain >>>> how >>>>> + to include negation character in set. Thanks to Arno >>>> Noordover. >>>>> +o LANG-1107: Fix parsing edge cases in FastDateParser. >>>>> +o LANG-1273: Added new property IS_OS_MAC_OSX_EL_CAPITAN in >>>> SystemUtils. Thanks >>>>> + to Jake Wang. >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.4 >>>>> + >>>>> + >>>>> +COMPATIBILITY >>>>> +============= >>>>> + >>>>> +Commons Lang 3.4 is fully binary compatible to the last release and >> can >>>>> +therefore be used as a drop in replacement for 3.3.2. Note that the >>>> value of >>>>> +org.apache.commons.lang3.time.DurationFormatUtils.ISO_ >>>> EXTENDED_FORMAT_PATTERN >>>>> +has changed, which may affect clients using the constant. Furthermore >>>> the >>>>> +constant is used internally in >>>>> +o DurationFormatUtils.formatDurationISO(long) >>>>> +o DurationFormatUtils.formatPeriodISO(long, long) >>>>> + >>>>> +For more information see https://issues.apache.org/ >>>> jira/browse/LANG-1000. >>>>> + >>>>> +NEW FEATURES >>>>> +============== >>>>> + >>>>> +o LANG-821: Support OS X versions in SystemUtils. Thanks to Timo >>>> Kockert. >>>>> +o LANG-1103: Add SystemUtils.IS_JAVA_1_9 >>>>> +o LANG-1093: Add ClassUtils.getAbbreviatedName(). Thanks to Fabian >>>> Lange. >>>>> +o LANG-1082: Add option to disable the "objectsTriviallyEqual" test in >>>>> + DiffBuilder. Thanks to Jonathan Baker. >>>>> +o LANG-1015: Add JsonToStringStyle implementation to ToStringStyle. >>>> Thanks to >>>>> + Thiago Andrade. >>>>> +o LANG-1080: Add NoClassNameToStringStyle implementation of >>>> ToStringStyle. >>>>> + Thanks to Innokenty Shuvalov. >>>>> +o LANG-883: Add StringUtils.containsAny(CharSequence, >>>> CharSequence...) method. >>>>> + Thanks to Daniel Stewart. >>>>> +o LANG-1052: Multiline recursive to string style. Thanks to Jan >>>> Matèrne. >>>>> +o LANG-536: Add isSorted() to ArrayUtils. Thanks to James Sawle. >>>>> +o LANG-1033: Add StringUtils.countMatches(CharSequence, char) >>>>> +o LANG-1021: Provide methods to retrieve all fields/methods annotated >>>> with a >>>>> + specific type. Thanks to Alexander Müller. >>>>> +o LANG-1016: NumberUtils#isParsable method(s). Thanks to >>>>> + Juan Pablo Santos RodrÃguez. >>>>> +o LANG-999: Add fuzzy String matching logic to StringUtils. Thanks to >>>>> + Ben Ripkens. >>>>> +o LANG-994: Add zero copy read method to StrBuilder. Thanks to >>>>> + Mikhail Mazursky. >>>>> +o LANG-993: Add zero copy write method to StrBuilder. Thanks to >>>>> + Mikhail Mazursky. >>>>> +o LANG-1044: Add method MethodUtils.invokeExactMethod(Object, String) >>>>> +o LANG-1045: Add method MethodUtils.invokeMethod(Object, String) >>>>> + >>>>> +FIXED BUGS >>>>> +============ >>>>> + >>>>> +o LANG-794: SystemUtils.IS_OS_WINDOWS_2008, VISTA are incorrect. >>>> Thanks to >>>>> + Timo Kockert. >>>>> +o LANG-1104: Parse test fails for TimeZone America/Sao_Paulo >>>>> +o LANG-948: Exception while using ExtendedMessageFormat and escaping >>>> braces. >>>>> + Thanks to Andrey Khobnya. >>>>> +o LANG-1092: Wrong formating of time zones with daylight saving time >> in >>>>> + FastDatePrinter >>>>> +o LANG-1090: FastDateParser does not set error indication in >>>> ParsePosition >>>>> +o LANG-1089: FastDateParser does not handle excess hours as per >>>>> + SimpleDateFormat >>>>> +o LANG-1061: FastDateParser error - timezones not handled correctly. >>>> Thanks to >>>>> + dmeneses. >>>>> +o LANG-1087: NumberUtils#createNumber() returns positive BigDecimal >> when >>>>> + negative Float is expected. Thanks to Renat Zhilkibaev. >>>>> +o LANG-1081: DiffBuilder.append(String, Object left, Object right) >> does >>>> not do >>>>> + a left.equals(right) check. Thanks to Jonathan Baker. >>>>> +o LANG-1055: StrSubstitutor.replaceSystemProperties does not work >>>> consistently. >>>>> + Thanks to Jonathan Baker. >>>>> +o LANG-1083: Add (T) casts to get unit tests to pass in old JDK. >> Thanks >>>> to >>>>> + Jonathan Baker. >>>>> +o LANG-1073: Read wrong component type of array in add in ArrayUtils. >>>>> + Thanks to haiyang li. >>>>> +o LANG-1077: StringUtils.ordinalIndexOf("aaaaaa", "aa", 2) != 3 in >>>> StringUtils. >>>>> + Thanks to haiyang li. >>>>> +o LANG-1072: Duplicated "0x" check in createBigInteger in NumberUtils. >>>> Thanks >>>>> + to haiyang li. >>>>> +o LANG-1064: StringUtils.abbreviate description doesn't agree with the >>>>> + examples. Thanks to B.J. Herbison. >>>>> +o LANG-1041: Fix MethodUtilsTest so it does not depend on JDK method >>>> ordering. >>>>> + Thanks to Alexandre Bartel. >>>>> +o LANG-1000: ParseException when trying to parse UTC dates with Z as >>>> zone >>>>> + designator using DateFormatUtils.ISO_DATETIME_ >>>> TIME_ZONE_FORMAT >>>>> +o LANG-1035: Javadoc for EqualsBuilder.reflectionEquals() is unclear >>>>> +o LANG-1001: ISO 8601 misspelled throughout the Javadocs. Thanks to >>>>> + Michael Osipov. >>>>> +o LANG-1088: FastDateParser should be case insensitive >>>>> +o LANG-995: Fix bug with stripping spaces on last line in >>>> WordUtils.wrap(). >>>>> + Thanks to Andrey Khobnya. >>>>> + >>>>> +CHANGES >>>>> +========= >>>>> + >>>>> +o LANG-1102: Make logic for comparing OS versions in SystemUtils >> smarter >>>>> +o LANG-1091: Shutdown thread pools in test cases. Thanks to Fabian >>>> Lange. >>>>> +o LANG-1101: FastDateParser and FastDatePrinter support 'X' format >>>>> +o LANG-1100: Avoid memory allocation when using date formating to >>>> StringBuffer. >>>>> + Thanks to mbracher. >>>>> +o LANG-935: Possible performance improvement on string escape >>>> functions. >>>>> + Thanks to Fabian Lange, Thomas Neidhart. >>>>> +o LANG-1098: Avoid String allocation in StrBuilder.append( >> CharSequence). >>>> Thanks >>>>> + to Mikhail Mazurskiy, Fabian Lange. >>>>> +o LANG-1098: Update maven-checkstyle-plugin to 2.14. Thanks to Micha? >>>> Kordas. >>>>> +o LANG-1097: Update org.easymock:easymock to 3.3.1. Thanks to Micha? >>>> Kordas. >>>>> +o LANG-1096: Update maven-pmd-plugin to 3.4. Thanks to Micha? Kordas. >>>>> +o LANG-1095: Update maven-antrun-plugin to 1.8. Thanks to Micha? >> Kordas. >>>>> +o LANG-877: Performance improvements for StringEscapeUtils. Thanks to >>>>> + Fabian Lange. >>>>> +o LANG-1071: Fix wrong examples in JavaDoc of >>>>> + StringUtils.replaceEachRepeatedly(...), >>>>> + StringUtils.replaceEach(...) Thanks to Arno Noordover. >>>>> +o LANG-827: CompareToBuilder's doc doesn't specify precedence of >>>> fields it >>>>> + uses in performing comparisons >>>>> +o LANG-1020: Improve performance of normalize space. Thanks to Libor >>>> Ondrusek. >>>>> +o LANG-1027: org.apache.commons.lang3.SystemUtils# >> isJavaVersionAtLeast >>>> should >>>>> + return true by default >>>>> +o LANG-1026: Bring static method references in StringUtils to >>>> consistent style. >>>>> + Thanks to Alex Yursha. >>>>> +o LANG-1017: Use non-ASCII digits in Javadoc examples for >>>>> + StringUtils.isNumeric. Thanks to Christoph Schneegans. >>>>> +o LANG-1008: Change min/max methods in NumberUtils/IEEE754rUtils from >>>> array >>>>> + input parameters to varargs. Thanks to Thiago Andrade. >>>>> +o LANG-1006: Add wrap (with String or char) to StringUtils. Thanks to >>>>> + Thiago Andrade. >>>>> +o LANG-1005: Extend DurationFormatUtils#formatDurationISO default >>>> pattern to >>>>> + match #formatDurationHMS. Thanks to Michael Osipov. >>>>> +o LANG-1007: Fixing NumberUtils JAVADoc comments for max methods. >>>> Thanks to >>>>> + Thiago Andrade. >>>>> +o LANG-731: Better Javadoc for BitField class >>>>> +o LANG-1004: DurationFormatUtils#formatDurationHMS implementation >> does >>>> not >>>>> + correspond to Javadoc and vice versa. Thanks to Michael >>>> Osipov. >>>>> +o LANG-1003: DurationFormatUtils are not able to handle negative >>>>> + durations/periods >>>>> +o LANG-998: Javadoc is not clear on preferred pattern to instantiate >>>>> + FastDateParser / FastDatePrinter >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.3.2 >>>>> + >>>>> +NEW FEATURES >>>>> +============== >>>>> + >>>>> +o LANG-989: Add org.apache.commons.lang3.SystemUtils.IS_JAVA_1_8 >>>>> + >>>>> +FIXED BUGS >>>>> +============ >>>>> + >>>>> +o LANG-992: NumberUtils#isNumber() returns false for "0.0", "0.4790", >>>> et al >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.3.1 >>>>> + >>>>> +FIXED BUGS >>>>> +============ >>>>> + >>>>> +o LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) >> returns >>>> wrong >>>>> + days >>>>> +o LANG-983: DurationFormatUtils does not describe format string fully >>>>> +o LANG-981: DurationFormatUtils#lexx does not detect unmatched quote >>>> char >>>>> +o LANG-984: DurationFormatUtils does not handle large durations >>>> correctly >>>>> +o LANG-982: DurationFormatUtils.formatDuration(61999, "s.SSSS") - ms >>>> field >>>>> + size should be 4 digits >>>>> +o LANG-978: Failing tests with Java 8 b128 >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.3 >>>>> + >>>>> +NEW FEATURES >>>>> +============== >>>>> + >>>>> +o LANG-955: Add methods for removing all invalid characters according >>>> to >>>>> + XML 1.0 and XML 1.1 in an input string to >>>> StringEscapeUtils. >>>>> + Thanks to Adam Hooper. >>>>> +o LANG-970: Add APIs MutableBoolean setTrue() and setFalse() >>>>> +o LANG-962: Add SerializationUtils.roundtrip(T extends Serializable) >> to >>>>> + serialize then deserialize >>>>> +o LANG-637: There should be a DifferenceBuilder with a >>>>> + ReflectionDifferenceBuilder implementation >>>>> +o LANG-944: Add the Jaro-Winkler string distance algorithm to >>>> StringUtils. >>>>> + Thanks to Rekha Joshi. >>>>> +o LANG-417: New class ClassPathUtils with methods for turning FQN >> into >>>>> + resource path >>>>> +o LANG-834: Validate: add inclusiveBetween and exclusiveBetween >>>> overloads >>>>> + for primitive types >>>>> +o LANG-900: New RandomUtils class. Thanks to Duncan Jones. >>>>> +o LANG-966: Add IBM OS/400 detection >>>>> + >>>>> +FIXED BUGS >>>>> +============ >>>>> + >>>>> +o LANG-621: ReflectionToStringBuilder.toString does not debug 3rd >>>> party object >>>>> + fields within 3rd party object. Thanks to Philip Hodges, >>>>> + Thomas Neidhart. >>>>> +o LANG-977: NumericEntityEscaper incorrectly encodes supplementary >>>> characters. >>>>> + Thanks to Chris Karcher. >>>>> +o LANG-973: Make some private fields final >>>>> +o LANG-971: NumberUtils#isNumber(String) fails to reject invalid >> Octal >>>> numbers >>>>> +o LANG-972: NumberUtils#isNumber does not allow for hex 0XABCD >>>>> +o LANG-969: StringUtils.toEncodedString(byte[], Charset) needlessly >>>> throws >>>>> + UnsupportedEncodingException. Thanks to Matt Bishop. >>>>> +o LANG-946: ConstantInitializerTest fails when building with IBM JDK >> 7 >>>>> +o LANG-954: uncaught PatternSyntaxException in FastDateFormat on >>>> Android. >>>>> + Thanks to Michael Keppler. >>>>> +o LANG-936: StringUtils.getLevenshteinDistance with too big of a >>>> threshold >>>>> + returns wrong result. Thanks to Yaniv Kunda, Eli Lindsey. >>>>> +o LANG-943: Test DurationFormatUtilsTest.testEdgeDuration fails in >>>>> + JDK 1.6, 1.7 and 1.8, BRST time zone >>>>> +o LANG-613: ConstructorUtils.getAccessibleConstructor() Does Not >>>> Check the >>>>> + Accessibility of Enclosing Classes >>>>> +o LANG-951: Fragments are wrong by 1 day when using fragment YEAR or >>>> MONTH. >>>>> + Thanks to Sebastian Götz. >>>>> +o LANG-950: FastDateParser does not handle two digit year parsing >> like >>>>> + SimpleDateFormat >>>>> +o LANG-949: FastDateParserTest.testParses does not test >> FastDateParser >>>>> +o LANG-915: Wrong locale handling in LocaleUtils.toLocale(). >>>>> + Thanks to Sergio Fernández. >>>>> + >>>>> +CHANGES >>>>> +========= >>>>> + >>>>> +o LANG-961: org.apache.commons.lang3.reflect.FieldUtils. >>>> removeFinalModifier(Field) >>>>> + does not clean up after itself >>>>> +o LANG-958: FastDateParser javadoc incorrectly states that >>>> SimpleDateFormat >>>>> + is used internally >>>>> +o LANG-956: Improve JavaDoc of WordUtils.wrap methods >>>>> +o LANG-939: Move Documentation from user guide to package-info files >>>>> +o LANG-953: Convert package.html files to package-info.java files >>>>> +o LANG-940: Fix deprecation warnings >>>>> +o LANG-819: EnumUtils.generateBitVector needs a "? extends" >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.2.1 >>>>> + >>>>> +BUG FIXES >>>>> +=========== >>>>> + >>>>> +o LANG-937: Fix missing Hamcrest dependency in Ant Build >>>>> +o LANG-941: Test failure in LocaleUtilsTest when building with JDK 8 >>>>> +o LANG-942: Test failure in FastDateParserTest and >>>> FastDateFormat_ParserTest >>>>> + when building with JDK8. Thanks to Bruno P. Kinoshita, >>>>> + Henri Yandell. >>>>> +o LANG-938: Build fails with test failures when building with JDK 8 >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.2 >>>>> + >>>>> +COMPATIBILITY WITH 3.1 >>>>> +======================== >>>>> + >>>>> +This release introduces backwards incompatible changes in >>>>> +org.apache.commons.lang3.time.FastDateFormat: >>>>> +o Method 'protected java.util.List parsePattern()' has been removed >>>>> +o Method 'protected java.lang.String parseToken(java.lang.String, >>>> int[])' has >>>>> + been removed >>>>> +o Method 'protected org.apache.commons.lang3.time. >>>> FastDateFormat$NumberRule >>>>> + selectNumberRule(int, int)' has been removed >>>>> + >>>>> +These changes were the result of [LANG-462]. It is assumed that this >>>> change >>>>> +will not break clients as Charles Honton pointed out on 25/Jan/12: >>>>> +" >>>>> + 1. Methods "FastDateFormat$NumberRule selectNumberRule(int, int)" and >>>>> + "List<Rule> parsePattern()" couldn't have been overridden because >>>>> + NumberRule and Rule were private to FastDateFormat. >>>>> + 2. Due to the factory pattern used, it's unlikely other two methods >>>> would have >>>>> + been overridden. >>>>> + 3. The four methods are highly implementation specific. I consider >> it a >>>>> + mistake that the methods were exposed. >>>>> +" >>>>> +For more information see https://issues.apache.org/ >> jira/browse/LANG-462 >>>> . >>>>> + >>>>> +NEW FEATURES >>>>> +============== >>>>> + >>>>> +o LANG-934: Add removeFinalModifier to FieldUtils >>>>> +o LANG-863: Method returns number of inheritance hops between parent >>>> and >>>>> + subclass. Thanks to Daneel S. Yaitskov. >>>>> +o LANG-774: Added isStarted, isSuspended and isStopped to StopWatch. >>>>> + Thanks to Erhan Bagdemir. >>>>> +o LANG-848: Added StringUtils.isBlank/isEmpty CharSequence... >> methods. >>>>> + Thanks to Alexander Muthmann. >>>>> +o LANG-926: Added ArrayUtils.reverse(array, from, to) methods. >>>>> +o LANG-795: StringUtils.toString(byte[], String) deprecated in favour >>>> of a new >>>>> + StringUtils.toString(byte[], CharSet). Thanks to Aaron >>>> Digulla. >>>>> +o LANG-893: StrSubstitutor now supports default values for variables. >>>>> + Thanks to Woonsan Ko. >>>>> +o LANG-913: Adding .gitignore to commons-lang. Thanks to Allon >>>> Mureinik. >>>>> +o LANG-837: Add ObjectUtils.toIdentityString methods that support >>>>> + StringBuilder, StrBuilder, and Appendable. >>>>> +o LANG-886: Added CharSetUtils.containsAny(String, String). >>>>> +o LANG-797: Added escape/unescapeJson to StringEscapeUtils. >>>>> +o LANG-875: Added appendIfMissing and prependIfMissing methods to >>>> StringUtils. >>>>> +o LANG-870: Add StringUtils.LF and StringUtils.CR values. >>>>> +o LANG-873: Add FieldUtils getAllFields() to return all the fields >>>> defined in >>>>> + the given class and super classes. >>>>> +o LANG-835: StrBuilder should support StringBuilder as an input >>>> parameter. >>>>> +o LANG-857: StringIndexOutOfBoundsException in >> CharSequenceTranslator. >>>>> +o LANG-856: Code refactoring in NumberUtils. >>>>> +o LANG-855: NumberUtils#createBigInteger does not allow for hex and >>>> octal >>>>> + numbers. >>>>> +o LANG-854: NumberUtils#createNumber - does not allow for hex numbers >>>> to be >>>>> + larger than Long. >>>>> +o LANG-853: StringUtils join APIs for primitives. >>>>> +o LANG-841: Add StringUtils API to call String.replaceAll in DOTALL >>>> a.k.a. >>>>> + single-line mode. >>>>> +o LANG-825: Create StrBuilder APIs similar to >>>>> + String.format(String, Object...). >>>>> +o LANG-675: Add Triple class (ternary version of Pair). >>>>> +o LANG-462: FastDateFormat supports parse methods. >>>>> + >>>>> +BUG FIXES >>>>> +=========== >>>>> + >>>>> +o LANG-932: Spelling fixes. Thanks to Ville Skyttä. >>>>> +o LANG-929: OctalUnescaper tried to parse all of \279. >>>>> +o LANG-928: OctalUnescaper had bugs when parsing octals starting with >>>> a zero. >>>>> +o LANG-905: EqualsBuilder returned true when comparing arrays, even >>>> when the >>>>> + elements are different. >>>>> +o LANG-917: Fixed exception when combining custom and choice format >> in >>>>> + ExtendedMessageFormat. Thanks to Arne Burmeister. >>>>> +o LANG-902: RandomStringUtils.random javadoc was incorrectly >> promising >>>> letters >>>>> + and numbers would, as opposed to may, appear Issue:. >>>> Thanks to >>>>> + Andrzej Winnicki. >>>>> +o LANG-921: BooleanUtils.xor(boolean...) produces wrong results. >>>>> +o LANG-896: BooleanUtils.toBoolean(String str) javadoc is not >> updated. >>>> Thanks >>>>> + to Mark Bryan Yu. >>>>> +o LANG-879: LocaleUtils test fails with new Locale >>>> "ja_JP_JP_#u-ca-japanese" >>>>> + of JDK7. >>>>> +o LANG-836: StrSubstitutor does not support StringBuilder or >>>> CharSequence. >>>>> + Thanks to Arnaud Brunet. >>>>> +o LANG-693: Method createNumber from NumberUtils doesn't work for >>>> floating >>>>> + point numbers other than Float Issue: LANG-693. Thanks >> to >>>>> + Calvin Echols. >>>>> +o LANG-887: FastDateFormat does not use the locale specific cache >>>> correctly. >>>>> +o LANG-754: ClassUtils.getShortName(String) will now only do a >>>> reverse lookup >>>>> + for array types. >>>>> +o LANG-881: NumberUtils.createNumber() Javadoc says it does not work >>>> for octal >>>>> + numbers. >>>>> +o LANG-865: LocaleUtils.toLocale does not parse strings starting with >>>> an >>>>> + underscore. >>>>> +o LANG-858: StringEscapeUtils.escapeJava() and escapeEcmaScript() do >>>> not >>>>> + output the escaped surrogate pairs that are Java >> parsable. >>>>> +o LANG-849: FastDateFormat and FastDatePrinter generates Date objects >>>>> + wastefully. >>>>> +o LANG-845: Spelling fixes. >>>>> +o LANG-844: Fix examples contained in javadoc of StringUtils.center >>>> methods. >>>>> +o LANG-832: FastDateParser does not handle unterminated quotes >>>> correctly. >>>>> +o LANG-831: FastDateParser does not handle white-space properly. >>>>> +o LANG-830: FastDateParser could use \Q \E to quote regexes. >>>>> +o LANG-828: FastDateParser does not handle non-Gregorian calendars >>>> properly. >>>>> +o LANG-826: FastDateParser does not handle non-ASCII digits >> correctly. >>>>> +o LANG-822: NumberUtils#createNumber - bad behaviour for leading >> "--". >>>>> +o LANG-818: FastDateFormat's "z" pattern does not respect timezone of >>>> Calendar >>>>> + instances passed to format(). >>>>> +o LANG-817: Add org.apache.commons.lang3. >> SystemUtils.IS_OS_WINDOWS_8. >>>>> +o LANG-813: StringUtils.equalsIgnoreCase doesn't check string >> reference >>>>> + equality. >>>>> +o LANG-810: StringUtils.join() endIndex, bugged for loop. >>>>> +o LANG-807: RandomStringUtils throws confusing IAE when end <= start. >>>>> +o LANG-805: RandomStringUtils.random(count, 0, 0, false, false, >>>> universe, >>>>> + random) always throws java.lang. >>>> ArrayIndexOutOfBoundsException. >>>>> +o LANG-802: LocaleUtils - unnecessary recursive call in SyncAvoid >>>> class. >>>>> +o LANG-800: Javadoc bug in DateUtils#ceiling for Calendar and Object >>>> versions. >>>>> +o LANG-788: SerializationUtils throws ClassNotFoundException when >>>> cloning >>>>> + primitive classes. >>>>> +o LANG-786: StringUtils equals() relies on undefined behavior. >>>>> +o LANG-783: Documentation bug: StringUtils.split. >>>>> +o LANG-777: jar contains velocity template of release notes. >>>>> +o LANG-776: TypeUtilsTest contains incorrect type assignability >>>> assertion. >>>>> +o LANG-775: TypeUtils.getTypeArguments() misses type arguments for >>>>> + partially-assigned classes. >>>>> +o LANG-773: ImmutablePair doc contains nonsense text. >>>>> +o LANG-772: ClassUtils.PACKAGE_SEPARATOR Javadoc contains garbage >> text. >>>>> +o LANG-765: EventListenerSupport.ProxyInvocationHandler no longer >>>> defines >>>>> + serialVersionUID. >>>>> +o LANG-764: StrBuilder is now serializable. >>>>> +o LANG-761: Fix Javadoc Ant warnings. >>>>> +o LANG-747: NumberUtils does not handle Long Hex numbers. >>>>> +o LANG-743: Javadoc bug in static inner class DateIterator. >>>>> + >>>>> +CHANGES >>>>> +========= >>>>> + >>>>> +o LANG-931: Misleading Javadoc comment in StrBuilderReader class. >>>> Thanks >>>>> + to Christoph Schneegans. >>>>> +o LANG-910: StringUtils.normalizeSpace now handles non-breaking >> spaces >>>>> + (Unicode 00A0). Thanks to Timur Yarosh. >>>>> +o LANG-804: Redundant check for zero in HashCodeBuilder ctor. Thanks >> to >>>>> + Allon Mureinik. >>>>> +o LANG-884: Simplify FastDateFormat; eliminate boxing. >>>>> +o LANG-882: LookupTranslator now works with implementations of >>>> CharSequence >>>>> + other than String. >>>>> +o LANG-846: Provide CharSequenceUtils.regionMatches with a proper >>>> green >>>>> + implementation instead of inefficiently converting to >>>> Strings. >>>>> +o LANG-839: ArrayUtils removeElements methods use unnecessary >> HashSet. >>>>> +o LANG-838: ArrayUtils removeElements methods clone temporary index >>>> arrays >>>>> + unnecessarily. >>>>> +o LANG-799: DateUtils#parseDate uses default locale; add Locale >>>> support. >>>>> +o LANG-798: Use generics in SerializationUtils. >>>>> + >>>>> +CHANGES WITHOUT TICKET >>>>> +======================== >>>>> + >>>>> +o Fixed URLs in javadoc to point to new oracle.com pages >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.1 >>>>> + >>>>> +NEW FEATURES >>>>> +============== >>>>> + >>>>> +o LANG-801: Add Conversion utility to convert between data types on >>>> byte level >>>>> +o LANG-760: Add API StringUtils.toString(byte[] intput, String >>>> charsetName) >>>>> +o LANG-756: Add APIs ClassUtils.isPrimitiveWrapper(Class<?>) and >>>>> + isPrimitiveOrWrapper(Class<?>) >>>>> +o LANG-695: SystemUtils.IS_OS_UNIX doesn't recognize FreeBSD as a >> Unix >>>> system >>>>> + >>>>> +BUG FIXES >>>>> +=========== >>>>> + >>>>> +o LANG-749: Incorrect Bundle-SymbolicName in Manifest >>>>> +o LANG-746: NumberUtils does not handle upper-case hex: 0X and -0X >>>>> +o LANG-744: StringUtils throws java.security.AccessControlException >>>> on Google >>>>> + App Engine >>>>> +o LANG-741: Ant build has wrong component.name >>>>> +o LANG-698: Document that the Mutable numbers don't work as expected >>>> with >>>>> + String.format >>>>> + >>>>> +CHANGES >>>>> +========= >>>>> + >>>>> +o LANG-758: Add an example with whitespace in >>>> StringUtils.defaultIfEmpty >>>>> +o LANG-752: Fix createLong() so it behaves like createInteger() >>>>> +o LANG-751: Include the actual type in the Validate.isInstance and >>>>> + isAssignableFrom exception messages >>>>> +o LANG-748: Deprecating chomp(String, String) >>>>> +o LANG-736: CharUtils static final array CHAR_STRING is not needed to >>>> compute >>>>> + CHAR_STRING_ARRAY >>>>> + >>>>> +=========================================================== >>>> ================== >>>>> + >>>>> + Release Notes for version 3.0 >>>>> + >>>>> +ADDITIONS >>>>> +=========== >>>>> + >>>>> +o LANG-276: MutableBigDecimal and MutableBigInteger. >>>>> +o LANG-285: Wish : method unaccent. >>>>> +o LANG-358: ObjectUtils.coalesce. >>>>> +o LANG-386: LeftOf/RightOfNumber in Range convenience methods >>>> necessary. >>>>> +o LANG-435: Add ClassUtils.isAssignable() variants with autoboxing. >>>>> +o LANG-444: StringUtils.emptyToNull. >>>>> +o LANG-482: Enhance StrSubstitutor to support nested ${var-${subvr}} >>>> expansion >>>>> +o LANG-482: StrSubstitutor now supports substitution in variable >> names. >>>>> +o LANG-496: A generic implementation of the Lazy initialization >>>> pattern. >>>>> +o LANG-497: Addition of ContextedException and >>>> ContextedRuntimeException. >>>>> +o LANG-498: Add StringEscapeUtils.escapeText() methods. >>>>> +o LANG-499: Add support for the handling of ExecutionExceptions. >>>>> +o LANG-501: Add support for background initialization. >>>>> +o LANG-529: Add a concurrent package. >>>>> +o LANG-533: Validate: support for validating blank strings. >>>>> +o LANG-537: Add ArrayUtils.toArray to create generic arrays. >>>>> +o LANG-545: Add ability to create a Future for a constant. >>>>> +o LANG-546: Add methods to Validate to check whether the index is >>>> valid for >>>>> + the array/list/string. >>>>> +o LANG-553: Add TypeUtils class to provide utility code for working >>>> with generic >>>>> + types. >>>>> +o LANG-559: Added isAssignableFrom and isInstanceOf validation >> methods. >>>>> +o LANG-559: Added validState validation method. >>>>> +o LANG-560: New TimedSemaphore class. >>>>> +o LANG-582: Provide an implementation of the ThreadFactory interface. >>>>> +o LANG-588: Create a basic Pair<L, R> class. >>>>> +o LANG-594: DateUtils equal & compare functions up to most >> significant >>>> field. >>>>> +o LANG-601: Add Builder Interface / Update Builders to Implement It. >>>>> +o LANG-609: Support lazy initialization using atomic variables >>>>> +o LANG-610: Extend exception handling in ConcurrentUtils to runtime >>>> exceptions. >>>>> +o LANG-614: StringUtils.endsWithAny method >>>>> +o LANG-640: Add normalizeSpace to StringUtils >>>>> +o LANG-644: Provide documentation about the new concurrent package >>>>> +o LANG-649: BooleanUtils.toBooleanObject to support single character >>>> input >>>>> +o LANG-651: Add AnnotationUtils >>>>> +o LANG-653: Provide a very basic ConcurrentInitializer implementation >>>>> +o LANG-655: Add StringUtils.defaultIfBlank() >>>>> +o LANG-667: Add a Null-safe compare() method to ObjectUtils >>>>> +o LANG-676: Documented potential NPE if auto-boxing occurs for some >>>> BooleanUtils >>>>> + methods >>>>> +o LANG-678: Add support for ConcurrentMap.putIfAbsent() >>>>> +o LANG-692: Add hashCodeMulti varargs method >>>>> +o LANG-697: Add FormattableUtils class >>>>> +o LANG-684: Levenshtein Distance Within a Given Threshold >>>>> + >>>>> +REMOVALS >>>>> +========== >>>>> + >>>>> +o LANG-438: Remove @deprecateds. >>>>> +o LANG-492: Remove code handled now by the JDK. >>>>> +o LANG-493: Remove code that does not hold enough value to remain. >>>>> +o LANG-590: Remove JDK 1.2/1.3 bug handling in >>>>> + StringUtils.indexOf(String, String, int). >>>>> +o LANG-673: WordUtils.abbreviate() removed >>>>> +o LANG-691: Removed DateUtils.UTC_TIME_ZONE >>>>> + >>>>> +IMPROVEMENTS >>>>> +============== >>>>> + >>>>> +o LANG-290: EnumUtils for JDK 5.0. >>>>> +o LANG-336: Finally start using generics. >>>>> +o LANG-355: StrBuilder should implement CharSequence and Appendable. >>>>> +o LANG-396: Investigate for vararg usages. >>>>> +o LANG-424: Improve Javadoc for StringUtils class. >>>>> +o LANG-458: Refactor Validate.java to eliminate code redundancy. >>>>> +o LANG-479: Document where in SVN trunk is. >>>>> +o LANG-504: bring ArrayUtils.isEmpty to the generics world. >>>>> +o LANG-505: Rewrite StringEscapeUtils. >>>>> +o LANG-507: StringEscapeUtils.unescapeJava should support \u+ >> notation. >>>>> +o LANG-510: Convert StringUtils API to take CharSequence. >>>>> +o LANG-513: Better EnumUtils. >>>>> +o LANG-528: Mutable classes should implement an appropriately typed >>>> Mutable >>>>> + interface. >>>>> +o LANG-539: Compile commons.lang for CDC 1.1/Foundation 1.1. >>>>> +o LANG-540: Make NumericEntityEscaper immutable. >>>>> +o LANG-541: Replace StringBuffer with StringBuilder. >>>>> +o LANG-548: Use Iterable on API instead of Collection. >>>>> +o LANG-551: Replace Range classes with generic version. >>>>> +o LANG-562: Change Maven groupId. >>>>> +o LANG-563: Change Java package name. >>>>> +o LANG-570: Do the test cases really still require main() and suite() >>>> methods? >>>>> +o LANG-579: Add new Validate methods. >>>>> +o LANG-599: ClassUtils.getClass(): Allow Dots as Inner Class >>>> Separators. >>>>> +o LANG-605: DefaultExceptionContext overwrites values in recursive >>>> situations. >>>>> +o LANG-668: Change ObjectUtils min() & max() functions to use varargs >>>> rather >>>>> + than just two parameters >>>>> +o LANG-681: Push down WordUtils to "text" sub-package. >>>>> +o LANG-711: Add includeantruntime=false to javac targets to quell >>>> warnings in >>>>> + ant 1.8.1 and better (and modest performance gain). >>>>> +o LANG-713: Increase test coverage of FieldUtils read methods and >> tweak >>>>> + javadoc. >>>>> +o LANG-718: build.xml Java 1.5+ updates. >>>>> + >>>>> +BUG FIXES >>>>> +=========== >>>>> + >>>>> +o LANG-11: Depend on JDK 1.5+. >>>>> +o LANG-302: StrBuilder does not implement clone(). >>>>> +o LANG-339: StringEscapeUtils.escapeHtml() escapes multibyte >>>> characters like >>>>> + Chinese, Japanese, etc. >>>>> +o LANG-369: ExceptionUtils not thread-safe. >>>>> +o LANG-418: Javadoc incorrect for StringUtils.endsWithIgnoreCase. >>>>> +o LANG-428: StringUtils.isAlpha, isAlphanumeric and isNumeric now >>>> return false >>>>> + for "" >>>>> +o LANG-439: StringEscapeUtils.escapeHTML() does not escape chars >>>> (0x00-0x20). >>>>> +o LANG-448: Lower Ascii Characters don't get encoded by >> Entities.java. >>>>> +o LANG-468: JDK 1.5 build/runtime failure on LANG-393 >> (EqualsBuilder). >>>>> +o LANG-474: Fixes for thread safety. >>>>> +o LANG-478: StopWatch does not resist to system time changes. >>>>> +o LANG-480: StringEscapeUtils.escapeHtml incorrectly converts unicode >>>>> + characters above U+00FFFF into 2 characters. >>>>> +o LANG-481: Possible race-conditions in hashCode of the range >> classes. >>>>> +o LANG-564: Improve StrLookup API documentation. >>>>> +o LANG-568: @SuppressWarnings("unchecked") is used too generally. >>>>> +o LANG-571: ArrayUtils.add(T[: array, T element) can create >> unexpected >>>>> + ClassCastException. >>>>> +o LANG-585: exception.DefaultExceptionContext. >>>> getFormattedExceptionMessage >>>>> + catches Throwable. >>>>> +o LANG-596: StrSubstitutor should also handle the default properties >>>> of a >>>>> + java.util.Properties class >>>>> +o LANG-600: Javadoc is incorrect for public static int >>>>> + lastIndexOf(String str, String searchStr). >>>>> +o LANG-602: ContextedRuntimeException no longer an 'unchecked' >>>> exception. >>>>> +o LANG-606: EqualsBuilder causes StackOverflowException. >>>>> +o LANG-608: Some StringUtils methods should take an int character >>>> instead of >>>>> + char to use String API features. >>>>> +o LANG-617: StringEscapeUtils.escapeXML() can't process UTF-16 >>>> supplementary >>>>> + characters >>>>> +o LANG-624: SystemUtils.getJavaVersionAsFloat throws >>>>> + StringIndexOutOfBoundsException on Android >> runtime/Dalvik >>>> VM >>>>> +o LANG-629: Charset may not be threadsafe, because the HashSet is not >>>> synch. >>>>> +o LANG-638: NumberUtils createNumber throws a >>>> StringIndexOutOfBoundsException >>>>> + when argument containing "e" and "E" is passed in >>>>> +o LANG-643: Javadoc StringUtils.left() claims to throw on negative >>>> len, but >>>>> + doesn't >>>>> +o LANG-645: FastDateFormat.format() outputs incorrect week of year >>>> because >>>>> + locale isn't respected >>>>> +o LANG-646: StringEscapeUtils.unescapeJava doesn't handle octal >>>> escapes and >>>>> + Unicode with extra u >>>>> +o LANG-656: Example StringUtils.indexOfAnyBut("zzabyycdxx", '') = 0 >>>> incorrect >>>>> +o LANG-658: Some Entitys like Ö are not matched properly against >>>> its >>>>> + ISO8859-1 representation >>>>> +o LANG-659: EntityArrays typo: {"\u2122", "−"}, // minus sign, >>>> U+2212 >>>>> + ISOtech >>>>> +o LANG-66: StringEscaper.escapeXml() escapes characters > 0x7f. >>>>> +o LANG-662: org.apache.commons.lang3.math.Fraction does not reduce >>>>> + (Integer.MIN_VALUE, 2^k) >>>>> +o LANG-663: org.apache.commons.lang3.math.Fraction does not always >>>> succeed in >>>>> + multiplyBy and divideBy >>>>> +o LANG-664: NumberUtils.isNumber(String) is not right when the String >>>> is >>>>> + "1.1L" >>>>> +o LANG-672: Doc bug in DateUtils#ceiling >>>>> +o LANG-677: DateUtils.isSameLocalTime compares using 12 hour clock >> and >>>> not >>>>> + 24 hour >>>>> +o LANG-685: EqualsBuilder synchronizes on HashCodeBuilder. >>>>> +o LANG-703: StringUtils.join throws NPE when toString returns null >> for >>>> one of >>>>> + objects in collection >>>>> +o LANG-710: StringIndexOutOfBoundsException when calling >>>> unescapeHtml4("") >>>>> +o LANG-714: StringUtils doc/comment spelling fixes. >>>>> +o LANG-715: CharSetUtils.squeeze() speedup. >>>>> +o LANG-716: swapCase and *capitalize speedups. >>>>> + >>>>> + >>>>> +Historical list of changes: http://commons.apache.org/ >>>> lang/changes-report.html >>>>> + >>>>> +For complete information on Commons Lang, including instructions on >> how >>>> to >>>>> +submit bug reports, patches, or suggestions for improvement, see the >>>>> +Apache Commons Lang website: >>>>> + >>>>> +http://commons.apache.org/lang/ >>>>> + >>>>> +Have fun! >>>>> +-Apache Commons Lang team >>>>> + >>>>> >>>>> Added: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.tar.gz >>>>> ============================================================ >>>> ================== >>>>> Binary file - no diff available. >>>>> >>>>> Propchange: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >>>> bin.tar.gz >>>>> ------------------------------------------------------------ >>>> ------------------ >>>>> svn:mime-type = application/octet-stream >>>>> >>>>> Added: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >>>> bin.tar.gz.asc >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.tar.gz.asc >>>> (added) >>>>> +++ dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.tar.gz.asc >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1,16 @@ >>>>> +-----BEGIN PGP SIGNATURE----- >>>>> + >>>>> +iQIzBAABCAAdFiEEtuc9hOpPzEcWYIclP6rSzV7LsxQFAlpOIdMACgkQP6rSzV7L >>>>> +sxQvGg/+Mgp0sahCwviT0m59s6wjDjBFAdwt2txEv1jxDu/FoSbx/Q2P4gi/R5Jt >>>>> +sAMLmrpd2+wMkzXqGW0uEiKQmZQo9QrsR0MI4vMmzBLyTlPHrD3CyNfW4Vt8TyK7 >>>>> +RyN3aVJWs9pa6ty5iKx9qT0g6k869OpIUFGQUZ/wOQqNFZKMGoHly3VGmfUVhVK0 >>>>> +0CcIiLPsZ1HywoWgCZJpN3tX+J9Aas1LQtDxGcKVfVtJTvc67jLFAVpMhIAAzj64 >>>>> +HmjcuT4L4/2R5cGD8OyQPsv+eMncISaK9WAh0PTP1TQu4v964sebUi2qFIrsMFYd >>>>> +RYsKR11vj28PEXqKw8o9QSW4SvkfkEVzYjQkUcVOc3Gb0pBRyxPdz/FQFII1rrbI >>>>> +icis/kURFNBpCCG2J3gNupqUDBPNC2/XkNM98rSgpkqNGQ8qf8w36QMZHL1L6LO/ >>>>> +kVRAy/eVfVuFfsGvhhtJVqZgTA/dH0K3rj0yrgv3tloEr0bM7TC5Wo4jHIFksCQf >>>>> +GlBlIXCUIJMkr2PRC1egG5Sq9VUtdfaLAJgIPbq+znY4P1GDodqn5u5RxtyZViWs >>>>> +s53THLLdYOAPWNERez+amkec9NjYYNEN7OmvF80I26iN6I/g1eDT9XiouA1k4kmW >>>>> +8t5vVKpeeGqiRsWIL8SuMLxGCrsysN7ZaAxbVxz+Cbvk/muiG84= >>>>> +=tjQB >>>>> +-----END PGP SIGNATURE----- >>>>> >>>>> Added: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >>>> bin.tar.gz.md5 >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.tar.gz.md5 >>>> (added) >>>>> +++ dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.tar.gz.md5 >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1 @@ >>>>> +fe7776aab25e229c9a5805c3ba82d219 >>>>> >>>>> Added: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >>>> bin.tar.gz.sha1 >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.tar.gz.sha1 >>>> (added) >>>>> +++ dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.tar.gz.sha1 >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1 @@ >>>>> +da39a3ee5e6b4b0d3255bfef95601890afd80709 >>>>> >>>>> Added: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip >>>>> ============================================================ >>>> ================== >>>>> Binary file - no diff available. >>>>> >>>>> Propchange: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.zip >>>>> ------------------------------------------------------------ >>>> ------------------ >>>>> svn:mime-type = application/octet-stream >>>>> >>>>> Added: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.zip.asc >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.asc >>>> (added) >>>>> +++ dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.asc >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1,16 @@ >>>>> +-----BEGIN PGP SIGNATURE----- >>>>> + >>>>> +iQIzBAABCAAdFiEEtuc9hOpPzEcWYIclP6rSzV7LsxQFAlpOIdMACgkQP6rSzV7L >>>>> +sxTdfA/+LQRB1YrNitC1x8DOUYWKoDdoOamJain4dNxuUdcWfbNmoabHfSemCXjm >>>>> +D+uaqZZ8f3EaqzcTXmhv5cCOqBnQNHlLVEA0WKN6EaZ6TLTuFWAVeHtLbO6Gk03I >>>>> +5oGAXP5dj9m6ABRyuaUJequoFhL+6xUEDM8Hd+uIHp6a0OEsKCHXAwBwsJHPKgUS >>>>> +7AO3sruFt98lXCv5h/Pgi0wgCGD+WQfvzJBSxeKc1pR6+BnmVaMcKki+TtOfIQE3 >>>>> +ACvjEkijPgiNe3mBcrvKSWHMlySGenFFu2uV4qNVNdE/0XwofLSFHTGXZabf/4p8 >>>>> +dfacqnb8cs86/6BmG1vpFc2fL8fCnrF3vitu3GgQhfIBbXYuhyDLjbBDrIE0O3d/ >>>>> +xoaoIruAbfPvhF8x5F8Sd69o3LLUcWrW5h3jBKFQpUWI2SwwqxqPK9xnlKaJuDlL >>>>> +z9tA5b+2s1pgt44agclBJolUX+o+NzZSE5aS0SlV9b3t4ja/sbEXVSsT7VSA9CMb >>>>> +Nv32iAxYsCyHdvQHEp8VVFIuuPJWwrRVEg4LsSkOqpM01PyM//HHeW6v2lq7Apmp >>>>> +s31foJGakwQVvHdlC4DxJS1Jfiu/bbCmNl6590WbGwLp7SR26JgC44joWvv5N7D8 >>>>> +vabchYyY124vRuWGgLfqYJVmVjKJNv96otx46yr49OLFO66loGo= >>>>> +=6Bjb >>>>> +-----END PGP SIGNATURE----- >>>>> >>>>> Added: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.zip.md5 >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.md5 >>>> (added) >>>>> +++ dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.md5 >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1 @@ >>>>> +3b8ee236a7105277427d305587a6c8dd >>>>> >>>>> Added: dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT- >> bin.zip.sha1 >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.sha1 >>>> (added) >>>>> +++ dev/commons/lang/binaries/commons-lang3-3.8-SNAPSHOT-bin.zip.sha1 >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1 @@ >>>>> +da39a3ee5e6b4b0d3255bfef95601890afd80709 >>>>> >>>>> Added: dev/commons/lang/site.zip >>>>> ============================================================ >>>> ================== >>>>> Binary file - no diff available. >>>>> >>>>> Propchange: dev/commons/lang/site.zip >>>>> ------------------------------------------------------------ >>>> ------------------ >>>>> svn:mime-type = application/octet-stream >>>>> >>>>> Added: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz >>>>> ============================================================ >>>> ================== >>>>> Binary file - no diff available. >>>>> >>>>> Propchange: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT- >>>> src.tar.gz >>>>> ------------------------------------------------------------ >>>> ------------------ >>>>> svn:mime-type = application/octet-stream >>>>> >>>>> Added: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT- >> src.tar.gz.asc >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.asc >>>> (added) >>>>> +++ dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.asc >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1,16 @@ >>>>> +-----BEGIN PGP SIGNATURE----- >>>>> + >>>>> +iQIzBAABCAAdFiEEtuc9hOpPzEcWYIclP6rSzV7LsxQFAlpOIdMACgkQP6rSzV7L >>>>> +sxQEgQ//UW7n08aL8vSkbSjn3hV4z8SbcQ/0PV29/V5GZ74QtAEPppavJZ/W9nja >>>>> +NsbUz4TRp6SDh8RaS1H78mpdXSMRvim6JaGRGqDrlxi6SYoA6LpAgbfo/RuOLt+v >>>>> +eMnBRZKwiikNCP9xk99shnRwhKlXn07hxU0fuWdAK898w3/vFN3E4NUpWPChnK0r >>>>> +qo9kWDtla2gtHCxjgHQs7X0CISskqwc5/o/9wo5vkFJCoIkuBGWwidIy0/qhhHbs >>>>> +vC5Zn3+0Ky5JArnDqj10A2gZAldeGLe7Ghb0j0gZg6hYInMunfkMDBWSWLHC/rTA >>>>> +thntKReWVnkNIV2N7WL4lkvLAl8a6nMS8zeUNGs4Tcl+AO+cpZ9fZGNkIVKCruyC >>>>> +IgUh2qcM/KrPbOUZFx1CLq6db8UOwo7pkSwJ52SbcBEIk1S9qLcYkBtVefRr8v1B >>>>> +R7hRfehrAm+r0nJLwugiuTanafW9YUZzT4s88VBCHdqQbya3f2b+EH3qNzGNcXBS >>>>> +0yn3qqqrWdb1CbrMi5mv4OTb/g1OtISLpZx5i2UjI95KOZu1O8pF5XnLB8SlUfIG >>>>> +QGvIIYh+cpBpY4fkcTEnT7+57z9z9HUUsFoDcAgHpKwMIn+8mEy5/oDcr5GCVJfW >>>>> +hpyFy+OIVkBVeGVL5lvvfdun99s2tMQK+sadQXZHHlIp5zktdaw= >>>>> +=8mS4 >>>>> +-----END PGP SIGNATURE----- >>>>> >>>>> Added: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT- >> src.tar.gz.md5 >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.md5 >>>> (added) >>>>> +++ dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.md5 >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1 @@ >>>>> +11b0a67eee0b856ee3629bdcfef35649 >>>>> >>>>> Added: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT- >>>> src.tar.gz.sha1 >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.sha1 >>>> (added) >>>>> +++ dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.tar.gz.sha1 >>>> Thu Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1 @@ >>>>> +da39a3ee5e6b4b0d3255bfef95601890afd80709 >>>>> >>>>> Added: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip >>>>> ============================================================ >>>> ================== >>>>> Binary file - no diff available. >>>>> >>>>> Propchange: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip >>>>> ------------------------------------------------------------ >>>> ------------------ >>>>> svn:mime-type = application/octet-stream >>>>> >>>>> Added: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.asc >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.asc >>>> (added) >>>>> +++ dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.asc Thu >>>> Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1,16 @@ >>>>> +-----BEGIN PGP SIGNATURE----- >>>>> + >>>>> +iQIzBAABCAAdFiEEtuc9hOpPzEcWYIclP6rSzV7LsxQFAlpOIdMACgkQP6rSzV7L >>>>> +sxRc7Q/5ASnS5NgvQneV8Ypb2twHWaSW2W1W/EdufcW9JadnUQz/mjWxSTCOP/EJ >>>>> +t2jMsDS8xv0Qvx5BuYpK/PzYh6CztMwBVVAJlLyd1GhJid7mM3ptzK5cNUmfFi4O >>>>> +3JZItWrBNLRT0yZyBj0WzaaTUZAZuma48EDeZ8xBgG01dE0pbJhdXW+9X9KC/WdK >>>>> +tPPprHl9d1zZCTpoyYzknX1hbVPB5vw/T9o3RPU7tJBjLG1Mj176sa1kjTuGwNZ0 >>>>> +Zup/gy7eaof59klFQ7r3HOVhHjPJJEDebmLXb4L5YVZEJZJHcnI5tAqdcu8nDlft >>>>> +L+OTnQuhH0ueHDqfJCxvzxY7pjShwVrawXuy983FwdaLvtzGm2tOqyYxbmPy4PwY >>>>> +F02d4bkBbprjGfnKCgIgQ8X29Fzp4MNJ9y8XbObtQCvp9lA4ZaRQk3Y3RBgmWL6J >>>>> +ifYOJ8YuBSvohPtdAtvTZHcq8jTd3krgQ4kGQ76j2dIGGgzLv8DmEXyH8aS+E8y4 >>>>> +bLjKDBgRVfaMx1wEJXFhXa8P7dDyYEgOgHrfgDaadaW7IsBF2dH3p8K+If2MjzVX >>>>> +eTWTd+TbqqjmMfHal928m6wQFTco9DrC19GvZcwbakELYg/tW6ovmjIbZnRFtVkz >>>>> +iQBZSr3JG1UTtsgJtzEB8TZrODXyiKoGeCqc0pgkyqZ3TpBw3i8= >>>>> +=5+7f >>>>> +-----END PGP SIGNATURE----- >>>>> >>>>> Added: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.md5 >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.md5 >>>> (added) >>>>> +++ dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.md5 Thu >>>> Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1 @@ >>>>> +66d939d849bb560af8259d10156a58ec >>>>> >>>>> Added: dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.sha1 >>>>> ============================================================ >>>> ================== >>>>> --- dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.sha1 >>>> (added) >>>>> +++ dev/commons/lang/source/commons-lang3-3.8-SNAPSHOT-src.zip.sha1 >> Thu >>>> Jan 4 12:45:36 2018 >>>>> @@ -0,0 +1 @@ >>>>> +da39a3ee5e6b4b0d3255bfef95601890afd80709 >>>>> >>>>> >>>> >>>> >>>> --------------------------------------------------------------------- >>>> 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>