On Thu, Jan 4, 2018 at 9:43 AM, Rob Tompkins <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? 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 > For additional commands, e-mail: dev-h...@commons.apache.org > >