Author: niallp
Date: Wed Feb 3 15:03:27 2010
New Revision: 906079
URL: http://svn.apache.org/viewvc?rev=906079&view=rev
Log:
Update release notes and changes report for Lang 2.5
Modified:
commons/proper/lang/branches/LANG_2_X/RELEASE-NOTES.txt
commons/proper/lang/branches/LANG_2_X/src/site/changes/changes.xml
Modified: commons/proper/lang/branches/LANG_2_X/RELEASE-NOTES.txt
URL:
http://svn.apache.org/viewvc/commons/proper/lang/branches/LANG_2_X/RELEASE-NOTES.txt?rev=906079&r1=906078&r2=906079&view=diff
==============================================================================
--- commons/proper/lang/branches/LANG_2_X/RELEASE-NOTES.txt (original)
+++ commons/proper/lang/branches/LANG_2_X/RELEASE-NOTES.txt Wed Feb 3 15:03:27
2010
@@ -1,124 +1,76 @@
$Id$
Commons Lang Package
- Version 2.4
+ Version 2.5
Release Notes
INTRODUCTION:
-This document contains the release notes for the 2.4 version of Apache Commons
Lang.
+This document contains the release notes for the 2.5 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 2.4 no longer attempts to target the Java 1.1 environment and now targets
Java 1.2. While previous versions
-were built for 1.1, some parts were using methods that were only available in
1.2, and the Enum class had
-become dependent on Java 1.3.
-
-INCOMPATIBLE CHANGES WITH VERSION 2.3:
-
-- None
-
-INCOMPATIBLE CHANGES WITH VERSION 2.2:
-
-- Calling stop on a suspended StopWatch will no longer change the underlying
time.
- It's very unlikely anyone was relying on that bug as a feature.
-
-ADDITIONAL INCOMPATIBLE CHANGES WITH VERSION 2.0:
-
-- The Nestable interface defines the method indexOfThrowable(Class).
-Previously the implementations checked only for a specific Class.
-Now they check for subclasses of that Class as well.
-For most situations this will be the expected behaviour (ie. it is a bug fix).
-If it causes problems, please use the ExceptionUtils.indexOfThrowable(Class)
method instead.
-Note that the ExceptionUtils method is available in v1.0 and v2.0 of
commons-lang and has not been changed.
-(An alternative to this is to change the public static matchSubclasses flag on
NestableDelegate.
-However, we don't recommend that as a long-term solution.)
-
-- The StopWatch class has had much extra validation added.
-If your code previously relied on unusual aspects, it may no longer work.
-
-- Starting with version 2.1, Ant version 1.6.x is required to build. Copy
-junit.jar to ANT_HOME/lib. You can get JUnit from http://www.junit.org. See
the developer's guide
-for more details.
-
-DEPRECATIONS FROM 2.3 to 2.4:
-
-- ObjectUtils.appendIdentityToString(StringBuffer, Object) - has very odd
semantics, use
- ObjectUtils.identityToString(StringBuffer, Object) instead.
-
-- public static java.util.Date add(java.util.Date, int, int) - it is not
intended for this
- method to be public. Please let us know if you use this.
-
-DEPRECATIONS FROM 2.2 to 2.3:
-
-- None
-
-DEPRECATIONS FROM 2.1 to 2.2:
-
-- None
-
-DEPRECATIONS FROM 2.0 to 2.1:
-
-- The enum package has been renamed to enums for JDK1.5 compliance.
-All functionality is identical, just the package has changed.
-This package will be removed in v3.0.
-
-- NumberUtils.stringToInt - renamed to toInt
-
-- DateUtils - four constants, MILLIS_IN_* have been deprecated as they were
defined
-as int not long. The replacements are MILLIS_PER_*.
-
-
-BUG FIXES IN 2.4:
-
- * [LANG-76 ] - EnumUtils.getEnum() doesn't work well in 1.5
- * [LANG-328] - LocaleUtils.toLocale() rejects strings with only
language+variant
- * [LANG-334] - Enum is not thread-safe
- * [LANG-346] - Dates.round() behaves incorrectly for minutes and seconds
- * [LANG-349] - Deadlock using ReflectionToStringBuilder
- * [LANG-353] - Javadoc Example for EqualsBuilder is questionable
- * [LANG-360] - Why does appendIdentityToString return null?
- * [LANG-361] - BooleanUtils toBooleanObject javadoc does not match
implementation
- * [LANG-363] - StringEscapeUtils.escapeJavaScript() method did not escape
'/' into '\/', it will make IE render page incorrectly
- * [LANG-364] - Documentation bug for ignoreEmptyTokens accessors in
StrTokenizer
- * [LANG-365] - BooleanUtils.toBoolean() - invalid drop-thru in case
statement causes StringIndexOutOfBoundsException
- * [LANG-367] - FastDateFormat thread safety
- * [LANG-368] - FastDateFormat getDateInstance() and getDateTimeInstance()
assume Locale.getDefault() won't change
- * [LANG-369] - ExceptionUtils not thread-safe
- * [LANG-372] - ToStringBuilder: MULTI_LINE_STYLE does not print anything
from appendToString methods.
- * [LANG-380] - infinite loop in Fraction.reduce when numerator == 0
- * [LANG-381] - NumberUtils.min(floatArray) returns wrong value if
floatArray[0] happens to be Float.NaN
- * [LANG-385] - http://commons.apache.org/lang/developerguide.html
"Building" section is incorrect and incomplete
- * [LANG-393] - EqualsBuilder don't compare BigDecimals correctly
- * [LANG-399] - Javadoc bugs - cannot find object
- * [LANG-410] - Ambiguous / confusing names in StringUtils replace* methods
- * [LANG-412] - StrBuilder appendFixedWidth does not handle nulls
- * [LANG-414] - DateUtils.round() often fails
-
-IMPROVEMENTS IN 2.4:
-
- * [LANG-180] - adding a StringUtils.replace method that takes an array or
List of replacement strings
- * [LANG-192] - Split camel case strings
- * [LANG-257] - Add new splitByWholeSeparatorPreserveAllTokens() methods to
StringUtils
- * [LANG-269] - Shouldn't Commons Lang's StringUtils have a "common" string
method?
- * [LANG-298] - ClassUtils.getShortClassName and ClassUtils.getPackageName
and class of array
- * [LANG-321] - Add toArray() method to IntRange and LongRange classes
- * [LANG-322] - ClassUtils.getShortClassName(String) inefficient
- * [LANG-326] - StringUtils: startsWith / endsWith / startsWithIgnoreCase /
endsWithIgnoreCase / removeStartIgnoreCase / removeEndIgnoreCase methods
- * [LANG-329] - Pointless synchronized in ThreadLocal.initialValue should
be removed
- * [LANG-333] - ArrayUtils.toClass
- * [LANG-337] - Utility class constructor javadocs should acknowledge that
they may sometimes be used, e.g. with Velocity.
- * [LANG-338] - truncateNicely method which avoids truncating in the middle
of a word
- * [LANG-345] - Optimize HashCodeBuilder.append(Object)
- * [LANG-351] - Extension to ClassUtils: Obtain the primitive class from a
wrapper
- * [LANG-356] - Add getStartTime to StopWatch
- * [LANG-362] - Add ExtendedMessageFormat to org.apache.commons.lang.text
- * [LANG-371] - ToStringStyle javadoc should show examples of styles
- * [LANG-374] - Add escaping for CSV columns to StringEscapeUtils
- * [LANG-375] - add SystemUtils.IS_OS_WINDOWS_VISTA field
- * [LANG-379] - Calculating A date fragment in any time-unit
- * [LANG-383] - Adding functionality to DateUtils to allow direct setting
of various fields.
- * [LANG-402] - OSGi-ify Lang
- * [LANG-404] - Add Calendar flavour format methods to DateFormatUtils
- * [LANG-407] - StringUtils.length(String) returns null-safe length
- * [LANG-413] - Memory usage improvement for
StringUtils#getLevenshteinDistance()
+
+COMPATIBILITY WITH 2.4
+======================
+Lang 2.5 is binary compatible release with Lang 2.4, containing bug fixes and
small enhancements.
+
+Lang 2.5 requires a minimum of JDK 1.3.
+
+
+IMPROVEMENTS IN 2.5
+===================
+
+ * [LANG-583] - ArrayUtils - add isNotEmpty() methods
+ * [LANG-534] - ArrayUtils - add nullToEmpty() methods
+ * [LANG-454] - CharRange - provide an iterator that lets you walk the
chars in the range
+ * [LANG-514] - CharRange - add more readable static builder methods
+ * [ ] - ClassUtils - new isAssignable() methods with autoboxing
+ * [LANG-535] - ClassUtils - add support to getShortClassName and
getPackageName for arrays
+ * [LANG-434] - DateUtils - add ceiling() method
+ * [LANG-486] - DateUtils - add parseDateStrictly() method
+ * [LANG-466] - EqualsBuilder - add reset() method
+ * [LANG-461] - NumberUtils - add toByte() and toShort() methods
+ * [LANG-522] - Mutable numbers - add string constructors
+ * [ ] - MutableBoolean - add toBoolean(), isTrue() and isFalse()
methods
+ * [LANG-422] - StrBuilder - add appendSeparator() methods with an
alternative default separator if the StrBuilder is currently empty
+ * [LANG-555] - SystemUtils - add IS_OS_WINDOWS_7 constant
+ * [LANG-554] - SystemUtils - add IS_JAVA_1_7 constant for JDK 1.7
+ * [LANG-405] - StringUtils - add abbreviateMiddle() method
+ * [LANG-569] - StringUtils - add indexOfIgnoreCase() and
lastIndexOfIgnoreCase() methods
+ * [LANG-471] - StringUtils - add isAllUpperCase() and isAllLowerCase()
methods
+ * [LANG-469] - StringUtils - add lastOrdinalIndexOf() method to complement
the existing ordinalIndexOf() method
+ * [LANG-438] - StringUtils - add repeat() method
+ * [LANG-445] - StringUtils - add startsWithAny() method
+ * [LANG-430] - StringUtils - add upperCase(String, Locale) and
lowerCase(String, Locale) methods
+ * [LANG-416] - New Reflection package containing ConstructorUtils,
FieldUtils, MemberUtils and MethodUtils
+
+BUG FIXES IN 2.5
+================
+
+ * [LANG-494] - CharSet - Synchronizing the COMMON Map so that getInstance
doesn't miss a put from a subclass in another thread
+ * [LANG-500] - ClassUtils - improving performance of getAllInterfaces
+ * [LANG-530] - DateUtils - Fix parseDate() cannot parse ISO8601 dates
produced by FastDateFormat
+ * [LANG-440] - DateUtils - round() doesn't work correct for Calendar.AM_PM
+ * [LANG-443] - DateUtils - improve tests
+ * [LANG-538] - FastDateFormat - call getTime() on a calendar to ensure
timezone is in the right state
+ * [LANG-547] - FastDateFormat - Remove unused field
+ * [LANG-506] - Entities missing final modifiers; thread-safety issues
+ * [LANG-584] - ExceptionUtils - use immutable lock target
+ * [LANG-477] - ExtendedMessageFormat - OutOfMemory with a pattern
containing single quotes
+ * [LANG-457] - NumberUtils - createNumber() thows a
StringIndexOutOfBoundsException for "l"
+ * [LANG-521] - NumberUtils - isNumber(String) and createNumber(String)
both modified to support '2.'
+ * [LANG-432] - StringUtils - improve handling of case-insensitive Strings
+ * [LANG-552] - StringUtils - replaceEach() no longer NPEs when null
appears in the last String[]
+ * [LANG-460] - StringUtils - correct JavaDocs for startsWith() and
startsWithIgnoreCase()
+ * [LANG-421] - StringEscapeUtils - escapeJava() escapes '/' characters
+ * [LANG-450] - StringEscapeUtils - change escapeJavaStyleString() to throw
UnhandledException instead swallowing IOException
+ * [LANG-419] - WordUtils - fix StringIndexOutOfBoundsException when lower
is greater than the String length
+ * [LANG-523] - StrBuilder - Performance improvement by doubling the size
of the String in ensureCapacity
+ * [LANG-575] - Compare, Equals and HashCode builders - use ArrayUtils to
avoid creating a temporary List
+ * [LANG-467] - EqualsBuilder - removing the special handling of BigDecimal
(LANG-393) to use compareTo
+ * [LANG-574] - HashCodeBuilder - Performance improvement: check for
isArray to short-circuit the 9 instanceof checks
+ * [LANG-520] - HashCodeBuilder - Changing the hashCode() method to return
toHashCode()
+ * [LANG-459] - HashCodeBuilder - reflectionHashCode() can generate
incorrect hashcodes
+ * [LANG-487] - ToStringBuilder - make default style thread-safe
+
Modified: commons/proper/lang/branches/LANG_2_X/src/site/changes/changes.xml
URL:
http://svn.apache.org/viewvc/commons/proper/lang/branches/LANG_2_X/src/site/changes/changes.xml?rev=906079&r1=906078&r2=906079&view=diff
==============================================================================
--- commons/proper/lang/branches/LANG_2_X/src/site/changes/changes.xml
(original)
+++ commons/proper/lang/branches/LANG_2_X/src/site/changes/changes.xml Wed Feb
3 15:03:27 2010
@@ -21,55 +21,56 @@
</properties>
<body>
- <release version="3.0" date="Unreleased" description="Backwards incompatible
update of Commons Lang to Java 5">
- <action type="update">Push down WordUtils to "text" sub-package.</action>
- <action type="add" issue="LANG-564">Improve StrLookup API
documentation</action>
- <action type="fix" issue="LANG-571">ArrayUtils.add(T[] array[, offset], T
element) can create unexpected ClassCastException</action>
- </release>
-
<release version="2.5" date="Unreleased" description="">
- <action type="fix" issue="LANG-506">Entities missing final modifiers;
thread-safety issues</action>
- <action type="fix" issue="LANG-584">ExceptionUtils - use immutable lock
target</action>
- <action type="fix" issue="LANG-494">CharSet - Synchronizing the COMMON Map
so that getInstance doesn't miss a put from a subclass in another
thread</action>
+ <action type="add" issue="LANG-583">ArrayUtils - add isNotEmpty()
methods</action>
+ <action type="add" issue="LANG-534">ArrayUtils - add nullToEmpty()
methods</action>
+ <action type="add" issue="LANG-454">CharRange - provide an iterator that
lets you walk the chars in the range</action>
<action type="add" issue="LANG-514">CharRange - add more readable static
builder methods</action>
- <action type="fix" issue="LANG-523">
- StrBuilder - Performance improvement to StrBuilder by doubling the
size of the String
- in ensureCapacity. Tests indicate a hundredhold improvement in
appending speed, which seems
- worth the doubling of data size.
- </action>
- <action type="add" issue="LANG-422">StrBuilder - add appendSeparator()
methods with an alternative default separator if the StrBuilder is currently
empty</action>
- <action type="add" issue="LANG-522">Mutable numbers - add string
constructors </action>
- <action type="add">MutableBoolean - add toBoolean(), isTrue() and
isFalse() methods</action>
- <action type="fix" issue="LANG-487">ToStringBuilder - make default style
thread-safe</action>
- <action type="fix" issue="LANG-574">HashCodeBuilder - Performance
improvement: check for isArray to short-circuit the 9 instanceof
checks.</action>
- <action type="fix" issue="LANG-520">HashCodeBuilder - Changing the
hashCode() method to return toHashCode()</action>
- <action type="fix" issue="LANG-467">EqualsBuilder - removing the special
handling of BigDecimal (LANG-393) to use compareTo instead of equals because it
creates an inequality with HashCodeBuilder</action>
- <action type="add" issue="LANG-466">EqualsBuilder - add reset()
method</action>
- <action type="fix" issue="LANG-575">Compare, Equals and HashCode builders
- replacing the creation of a List in the core of each Builder class to test
contains on the excludeFields with a call to ArrayUtils.contains()</action>
- <action type="fix" issue="LANG-547">FastDateFormat - Remove unused
field</action>
- <action type="fix" issue="LANG-538">FastDateFormat - need to call
getTime() on a calendar sometimes to get it in the right state, otherwise the
timezone gets out of whack</action>
- <action type="add" issue="LANG-486">DateUtils - add parseDateStrictly()
method method</action>
- <action type="fix" issue="LANG-530">DateUtils - Fix parseDate() cannot
parse ISO8601 dates produced by FastDateFormat</action>
+ <action type="add">ClassUtils - new isAssignable() methods with
autoboxing</action>
+ <action type="add" issue="LANG-535">ClassUtils - add support to
getShortClassName and getPackageName for arrays</action>
<action type="add" issue="LANG-434">DateUtils - add ceiling()
method</action>
- <action type="fix" issue="LANG-521">NumberUtils - isNumber(String) and
createNumber(String) both modified to support '2.'</action>
+ <action type="add" issue="LANG-486">DateUtils - add parseDateStrictly()
method</action>
+ <action type="add" issue="LANG-466">EqualsBuilder - add reset()
method</action>
<action type="add" issue="LANG-461">NumberUtils - add toByte() and
toShort() methods</action>
- <action type="add" issue="LANG-471">StringUtils - add isAllUpperCase() and
isAllLowerCase() methods</action>
- <action type="add" issue="LANG-438">StringUtils - add repeat()
method</action>
- <action type="fix" issue="LANG-432">StringUtils - improve handling of
case-insensitive Strings</action>
+ <action type="add" issue="LANG-522">Mutable numbers - add string
constructors</action>
+ <action type="add">MutableBoolean - add toBoolean(), isTrue() and
isFalse() methods</action>
+ <action type="add" issue="LANG-422">StrBuilder - add appendSeparator()
methods with an alternative default separator if the StrBuilder is currently
empty</action>
+ <action type="add" issue="LANG-555">SystemUtils - add IS_OS_WINDOWS_7
constant</action>
+ <action type="add" issue="LANG-554">SystemUtils - add IS_JAVA_1_7 constant
for JDK 1.7</action>
<action type="add" issue="LANG-405">StringUtils - add abbreviateMiddle()
method</action>
<action type="add" issue="LANG-569">StringUtils - add indexOfIgnoreCase()
and lastIndexOfIgnoreCase() methods</action>
+ <action type="add" issue="LANG-471">StringUtils - add isAllUpperCase() and
isAllLowerCase() methods</action>
<action type="add" issue="LANG-469">StringUtils - add lastOrdinalIndexOf()
method to complement the existing ordinalIndexOf() method</action>
- <action type="fix" issue="LANG-552">StringUtils - replaceEach(String,
String[], String[]) no longer NPEs when null appears in the last
String[]</action>
- <action type="add" issue="LANG-555">SystemUtils - add IS_OS_WINDOWS_7
constant</action>
- <action type="add" issue="LANG-554">SystemUtils - add IS_JAVA_1_7 constant
for JDK 1.7</action>
- <action type="fix" issue="LANG-500">ClassUtils - improving performance of
getAllInterfaces</action>
- <action type="update" issue="LANG-535">
- ClassUtils - add support to getShortClassName and getPackageName for
arrays, including primitive arrays
- and multi-dimensional arrays. Also stopped getPackageName relying on
the underlying class.getPackage
- as it's sometimes null
- </action>
+ <action type="add" issue="LANG-438">StringUtils - add repeat()
method</action>
+ <action type="add" issue="LANG-445">StringUtils - add startsWithAny()
method</action>
+ <action type="add" issue="LANG-430">StringUtils - add upperCase(String,
Locale) and lowerCase(String, Locale) methods</action>
+ <action type="add" issue="LANG-416">New Reflection package containing
ConstructorUtils, FieldUtils, MemberUtils and MethodUtils</action>
<action type="fix" issue="LANG-567">ArrayUtils - addAll() does not handle
mixed types very well</action>
- <action type="fix" issue="LANG-477">ExtendedMessageFormat - OutOfMemory
with custom format registry and a pattern containing single quotes</action>
+ <action type="fix" issue="LANG-494">CharSet - Synchronizing the COMMON Map
so that getInstance doesn't miss a put from a subclass in another
thread</action>
+ <action type="fix" issue="LANG-500">ClassUtils - improving performance of
getAllInterfaces</action>
+ <action type="fix" issue="LANG-530">DateUtils - Fix parseDate() cannot
parse ISO8601 dates produced by FastDateFormat</action>
+ <action type="fix" issue="LANG-440">DateUtils - round() doesn't work
correct for Calendar.AM_PM</action>
+ <action type="fix" issue="LANG-443">DateUtils - improve tests</action>
+ <action type="fix" issue="LANG-538">FastDateFormat - call getTime() on a
calendar to ensure timezone is in the right state</action>
+ <action type="fix" issue="LANG-547">FastDateFormat - Remove unused
field</action>
+ <action type="fix" issue="LANG-506">Entities missing final modifiers;
thread-safety issues</action>
+ <action type="fix" issue="LANG-584">ExceptionUtils - use immutable lock
target</action>
+ <action type="fix" issue="LANG-477">ExtendedMessageFormat - OutOfMemory
with a pattern containing single quotes</action>
+ <action type="fix" issue="LANG-457">NumberUtils - createNumber() thows a
StringIndexOutOfBoundsException when only an "l" is passed in</action>
+ <action type="fix" issue="LANG-521">NumberUtils - isNumber(String) and
createNumber(String) both modified to support '2.'</action>
+ <action type="fix" issue="LANG-432">StringUtils - improve handling of
case-insensitive Strings</action>
+ <action type="fix" issue="LANG-552">StringUtils - replaceEach() no longer
NPEs when null appears in the last String[]</action>
+ <action type="fix" issue="LANG-460">StringUtils - correct JavaDocs for
startsWith() and startsWithIgnoreCase()</action>
+ <action type="fix" issue="LANG-421">StringEscapeUtils - escapeJava()
escapes '/' characters</action>
+ <action type="fix" issue="LANG-450">StringEscapeUtils - change
escapeJavaStyleString() to throw UnhandledException instead swallowing
IOException and returning null</action>
+ <action type="fix" issue="LANG-419">WordUtils - fix
StringIndexOutOfBoundsException when lower is greater than the String
length</action>
+ <action type="fix" issue="LANG-523">StrBuilder - Performance improvement
by doubling the size of the String in ensureCapacity</action>
+ <action type="fix" issue="LANG-575">Compare, Equals and HashCode builders
- use ArrayUtils to avoid creating a temporary List</action>
+ <action type="fix" issue="LANG-467">EqualsBuilder - removing the special
handling of BigDecimal (LANG-393) to use compareTo instead of equals because it
creates an inequality with HashCodeBuilder</action>
+ <action type="fix" issue="LANG-574">HashCodeBuilder - Performance
improvement: check for isArray to short-circuit the 9 instanceof
checks.</action>
+ <action type="fix" issue="LANG-520">HashCodeBuilder - Changing the
hashCode() method to return toHashCode()</action>
+ <action type="fix" issue="LANG-459">HashCodeBuilder - reflectionHashCode()
can generate incorrect hashcodes</action>
+ <action type="fix" issue="LANG-487">ToStringBuilder - make default style
thread-safe</action>
</release>
<release version="2.4" date="2008-03-18" description="">