1<?xml version="1.0"?> 2<!-- 3Licensed to the Apache Software Foundation (ASF) under one or more 4contributor license agreements. See the NOTICE file distributed with 5this work for additional information regarding copyright ownership. 6The ASF licenses this file to You under the Apache License, Version 2.0 7(the "License"); you may not use this file except in compliance with 8the License. You may obtain a copy of the License at 9 10 http://www.apache.org/licenses/LICENSE-2.0 11 12Unless required by applicable law or agreed to in writing, software 13distributed under the License is distributed on an "AS IS" BASIS, 14WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15See the License for the specific language governing permissions and 16limitations under the License. 17--> 18<document> 19 <properties> 20 <title>2.5 Release Notes</title> 21 <author email="[email protected]">Commons Documentation Team</author> 22 </properties> 23<body> 24 25<section name="Lang 2.5 Release Notes"> 26<p> 27These are the release notes and advice for upgrading Commons-Lang from 28version 2.4 to version 2.5. <br/><br/>See '<a href="article2_5.html">What's new in 2.5?</a>' for more information. 29<source> 30INTRODUCTION: 31 32This document contains the release notes for the 2.5 version of Apache Commons Lang. 33Commons Lang is a set of utility functions and reusable components that should be of use in any Java environment. 34 35Lang 2.5 no longer attempts to target the Java 1.2 environment and now targets Java 1.3. 36 37IMPROVEMENTS IN 2.5 38=================== 39 40 * [LANG-583] - ArrayUtils - add isNotEmpty() methods 41 * [LANG-534] - ArrayUtils - add nullToEmpty() methods 42 * [LANG-454] - CharRange - provide an iterator that lets you walk the chars in the range 43 * [LANG-514] - CharRange - add more readable static builder methods 44 * [ ] - ClassUtils - new isAssignable() methods with autoboxing 45 * [LANG-535] - ClassUtils - add support to getShortClassName and getPackageName for arrays 46 * [LANG-434] - DateUtils - add ceiling() method 47 * [LANG-486] - DateUtils - add parseDateStrictly() method 48 * [LANG-466] - EqualsBuilder - add reset() method 49 * [LANG-461] - NumberUtils - add toByte() and toShort() methods 50 * [LANG-522] - Mutable numbers - add string constructors 51 * [ ] - MutableBoolean - add toBoolean(), isTrue() and isFalse() methods 52 * [LANG-422] - StrBuilder - add appendSeparator() methods with an alternative default separator if the StrBuilder is currently empty 53 * [LANG-555] - SystemUtils - add IS_OS_WINDOWS_7 constant 54 * [LANG-554] - SystemUtils - add IS_JAVA_1_7 constant for JDK 1.7 55 * [LANG-405] - StringUtils - add abbreviateMiddle() method 56 * [LANG-569] - StringUtils - add indexOfIgnoreCase() and lastIndexOfIgnoreCase() methods 57 * [LANG-471] - StringUtils - add isAllUpperCase() and isAllLowerCase() methods 58 * [LANG-469] - StringUtils - add lastOrdinalIndexOf() method to complement the existing ordinalIndexOf() method 59 * [LANG-348] - StringUtils - add repeat() method 60 * [LANG-445] - StringUtils - add startsWithAny() method 61 * [LANG-430] - StringUtils - add upperCase(String, Locale) and lowerCase(String, Locale) methods 62 * [LANG-416] - New Reflection package containing ConstructorUtils, FieldUtils, MemberUtils and MethodUtils 63 64BUG FIXES IN 2.5 65================ 66 67 * [LANG-494] - CharSet - Synchronizing the COMMON Map so that getInstance doesn't miss a put from a subclass in another thread 68 * [LANG-500] - ClassUtils - improving performance of getAllInterfaces 69 * [LANG-587] - ClassUtils - toClass() throws NullPointerException on null array element 70 * [LANG-530] - DateUtils - Fix parseDate() cannot parse ISO8601 dates produced by FastDateFormat 71 * [LANG-440] - DateUtils - round() doesn't work correct for Calendar.AM_PM 72 * [LANG-443] - DateUtils - improve tests 73 * [LANG-204] - Entities - multithreaded initialization 74 * [LANG-506] - Entities - missing final modifiers; thread-safety issues 75 * [LANG-76] - EnumUtils - getEnum() doesn't work well in 1.5+ 76 * [LANG-584] - ExceptionUtils - use immutable lock target 77 * [LANG-477] - ExtendedMessageFormat - OutOfMemory with a pattern containing single quotes 78 * [LANG-538] - FastDateFormat - call getTime() on a calendar to ensure timezone is in the right state 79 * [LANG-547] - FastDateFormat - Remove unused field 80 * [LANG-511] - LocaleUtils - initialization of available locales can be deferred 81 * [LANG-457] - NumberUtils - createNumber() throws a StringIndexOutOfBoundsException for "l" 82 * [LANG-521] - NumberUtils - isNumber(String) and createNumber(String) both modified to support '2.' 83 * [LANG-432] - StringUtils - improve handling of case-insensitive Strings 84 * [LANG-552] - StringUtils - replaceEach() no longer NPEs when null appears in the last String[] 85 * [LANG-460] - StringUtils - correct Javadocs for startsWith() and startsWithIgnoreCase() 86 * [LANG-421] - StringEscapeUtils - escapeJava() escapes '/' characters 87 * [LANG-450] - StringEscapeUtils - change escapeJavaStyleString() to throw UnhandledException instead swallowing IOException 88 * [LANG-419] - WordUtils - fix StringIndexOutOfBoundsException when lower is greater than the String length 89 * [LANG-523] - StrBuilder - Performance improvement by doubling the size of the String in ensureCapacity 90 * [LANG-575] - Compare, Equals and HashCode builders - use ArrayUtils to avoid creating a temporary List 91 * [LANG-467] - EqualsBuilder - removing the special handling of BigDecimal (LANG-393) to use compareTo 92 * [LANG-574] - HashCodeBuilder - Performance improvement: check for isArray to short-circuit the 9 instanceof checks 93 * [LANG-520] - HashCodeBuilder - Changing the hashCode() method to return toHashCode() 94 * [LANG-459] - HashCodeBuilder - reflectionHashCode() can generate incorrect hashcodes 95 * [LANG-586] - HashCodeBuilder and ToStringStyle - use of ThreadLocal causes memory leaks in container environments 96 * [LANG-487] - ToStringBuilder - make default style thread-safe 97 * [LANG-472] - RandomUtils - nextLong() always produces even numbers 98 * [LANG-592] - RandomUtils - RandomUtils tests are failing frequently 99 100</source> 101</p> 102</section> 103 104</body> 105</document> 106