Apache Commons Lang 3.0 makes a break with the past
The developers of Apache Commons Lang have released version 3.0 of the library. Commons Lang is designed to make the Java language more complete by offering, in one library, a range of functionality which isn't in the standard language. Henri Yandell, making the announcement of 3.0, thanked the 113 developers who worked on the release and added that "You won't have to wait as long for the next release".
Commons Lang 3.0 sees the library make the jump to a Java 5 base which has involved a non-backwards-compatible re-engineering of the library. The API now makes use of generics, some APIs support varargs, and the developers have thrown out features that they previously implemented but which are in Java 5. The new package,
org.apache.commons.lang3 is different too, to allow the new and old versions to coexist and to force users to recompile to use the new library.
Changes to the library include the removal of Enum, NestedExceptions, JVMRandom, various exception classes, the math Range classes, and items previously deprecated in Commons Lang 2. Also removed, because SQL is not the library's focus, is StringEscapeUtils.escapeSql. Two new packages have been added, lang3.concurrent for support of multi-threaded programs and lang3.text.translate, a pluggable API for text transformation. There are also many new classes in Commons Lang 3.0 which are documented in the Lang2 to Lang3 Clirr report. These include AnnotationUtils, CharSequenceUtils, EnumUtils, JavaVersion, Pair (and ImmutablePair and MutablePair), Range, builder.Builder, two new exceptions, four new reflection utilities and text.WordUtils. More details of the changes are available in What's new in Commons Lang 3.0.
The developers also note that the StringUtils methods, isAlpha, isNumeric and isAlphanumeric, return false rather than true, when passed an empty string. As well as the changes, there have been many bug fixes which are listed in the 3.0 Change Report. Apache Commons Lang 3.0 is released under the Apache Licence 2.0 and is available to download from Apache mirrors as binary or source.