Update site for 2.5 release
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/lang/trunk@916082 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
43fca0d749
commit
cf74865561
|
@ -1,124 +1,83 @@
|
||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
Commons Lang Package
|
Commons Lang Package
|
||||||
Version 2.4
|
Version 2.5
|
||||||
Release Notes
|
Release Notes
|
||||||
|
|
||||||
|
|
||||||
INTRODUCTION:
|
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.
|
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:
|
COMPATIBILITY WITH 2.4
|
||||||
|
======================
|
||||||
|
Lang 2.5 is binary compatible release with Lang 2.4, containing bug fixes and small enhancements.
|
||||||
|
|
||||||
- None
|
Lang 2.5 requires a minimum of JDK 1.3.
|
||||||
|
|
||||||
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:
|
IMPROVEMENTS IN 2.5
|
||||||
|
===================
|
||||||
|
|
||||||
* [LANG-76 ] - EnumUtils.getEnum() doesn't work well in 1.5
|
* [LANG-583] - ArrayUtils - add isNotEmpty() methods
|
||||||
* [LANG-328] - LocaleUtils.toLocale() rejects strings with only language+variant
|
* [LANG-534] - ArrayUtils - add nullToEmpty() methods
|
||||||
* [LANG-334] - Enum is not thread-safe
|
* [LANG-454] - CharRange - provide an iterator that lets you walk the chars in the range
|
||||||
* [LANG-346] - Dates.round() behaves incorrectly for minutes and seconds
|
* [LANG-514] - CharRange - add more readable static builder methods
|
||||||
* [LANG-349] - Deadlock using ReflectionToStringBuilder
|
* [ ] - ClassUtils - new isAssignable() methods with autoboxing
|
||||||
* [LANG-353] - Javadoc Example for EqualsBuilder is questionable
|
* [LANG-535] - ClassUtils - add support to getShortClassName and getPackageName for arrays
|
||||||
* [LANG-360] - Why does appendIdentityToString return null?
|
* [LANG-434] - DateUtils - add ceiling() method
|
||||||
* [LANG-361] - BooleanUtils toBooleanObject javadoc does not match implementation
|
* [LANG-486] - DateUtils - add parseDateStrictly() method
|
||||||
* [LANG-363] - StringEscapeUtils.escapeJavaScript() method did not escape '/' into '\/', it will make IE render page incorrectly
|
* [LANG-466] - EqualsBuilder - add reset() method
|
||||||
* [LANG-364] - Documentation bug for ignoreEmptyTokens accessors in StrTokenizer
|
* [LANG-461] - NumberUtils - add toByte() and toShort() methods
|
||||||
* [LANG-365] - BooleanUtils.toBoolean() - invalid drop-thru in case statement causes StringIndexOutOfBoundsException
|
* [LANG-522] - Mutable numbers - add string constructors
|
||||||
* [LANG-367] - FastDateFormat thread safety
|
* [ ] - MutableBoolean - add toBoolean(), isTrue() and isFalse() methods
|
||||||
* [LANG-368] - FastDateFormat getDateInstance() and getDateTimeInstance() assume Locale.getDefault() won't change
|
* [LANG-422] - StrBuilder - add appendSeparator() methods with an alternative default separator if the StrBuilder is currently empty
|
||||||
* [LANG-369] - ExceptionUtils not thread-safe
|
* [LANG-555] - SystemUtils - add IS_OS_WINDOWS_7 constant
|
||||||
* [LANG-372] - ToStringBuilder: MULTI_LINE_STYLE does not print anything from appendToString methods.
|
* [LANG-554] - SystemUtils - add IS_JAVA_1_7 constant for JDK 1.7
|
||||||
* [LANG-380] - infinite loop in Fraction.reduce when numerator == 0
|
* [LANG-405] - StringUtils - add abbreviateMiddle() method
|
||||||
* [LANG-381] - NumberUtils.min(floatArray) returns wrong value if floatArray[0] happens to be Float.NaN
|
* [LANG-569] - StringUtils - add indexOfIgnoreCase() and lastIndexOfIgnoreCase() methods
|
||||||
* [LANG-385] - http://commons.apache.org/lang/developerguide.html "Building" section is incorrect and incomplete
|
* [LANG-471] - StringUtils - add isAllUpperCase() and isAllLowerCase() methods
|
||||||
* [LANG-393] - EqualsBuilder don't compare BigDecimals correctly
|
* [LANG-469] - StringUtils - add lastOrdinalIndexOf() method to complement the existing ordinalIndexOf() method
|
||||||
* [LANG-399] - Javadoc bugs - cannot find object
|
* [LANG-438] - StringUtils - add repeat() method
|
||||||
* [LANG-410] - Ambiguous / confusing names in StringUtils replace* methods
|
* [LANG-445] - StringUtils - add startsWithAny() method
|
||||||
* [LANG-412] - StrBuilder appendFixedWidth does not handle nulls
|
* [LANG-430] - StringUtils - add upperCase(String, Locale) and lowerCase(String, Locale) methods
|
||||||
* [LANG-414] - DateUtils.round() often fails
|
* [LANG-416] - New Reflection package containing ConstructorUtils, FieldUtils, MemberUtils and MethodUtils
|
||||||
|
|
||||||
IMPROVEMENTS IN 2.4:
|
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-587] - ClassUtils - toClass() throws NullPointerException on null array element
|
||||||
|
* [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-204] - Entities - multithreaded initialization
|
||||||
|
* [LANG-506] - Entities - missing final modifiers; thread-safety issues
|
||||||
|
* [LANG-76] - EnumUtils - getEnum() doesn't work well in 1.5+
|
||||||
|
* [LANG-584] - ExceptionUtils - use immutable lock target
|
||||||
|
* [LANG-477] - ExtendedMessageFormat - OutOfMemory with a pattern containing single quotes
|
||||||
|
* [LANG-538] - FastDateFormat - call getTime() on a calendar to ensure timezone is in the right state
|
||||||
|
* [LANG-547] - FastDateFormat - Remove unused field
|
||||||
|
* [LANG-511] - LocaleUtils - initialization of available locales can be deferred
|
||||||
|
* [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-586] - HashCodeBuilder and ToStringStyle - use of ThreadLocal causes memory leaks in container environments
|
||||||
|
* [LANG-487] - ToStringBuilder - make default style thread-safe
|
||||||
|
* [LANG-472] - RandomUtils - nextLong() always produces even numbers
|
||||||
|
* [LANG-592] - RandomUtils - RandomUtils tests are failing frequently
|
||||||
|
|
||||||
* [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()
|
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -433,7 +433,7 @@
|
||||||
<maven.compile.source>1.5</maven.compile.source>
|
<maven.compile.source>1.5</maven.compile.source>
|
||||||
<maven.compile.target>1.5</maven.compile.target>
|
<maven.compile.target>1.5</maven.compile.target>
|
||||||
<commons.componentid>lang</commons.componentid>
|
<commons.componentid>lang</commons.componentid>
|
||||||
<commons.release.version>2.4</commons.release.version>
|
<commons.release.version>2.5</commons.release.version>
|
||||||
<commons.jira.id>LANG</commons.jira.id>
|
<commons.jira.id>LANG</commons.jira.id>
|
||||||
<commons.jira.pid>12310481</commons.jira.pid>
|
<commons.jira.pid>12310481</commons.jira.pid>
|
||||||
<commons.osgi.import>!net.jcip.annotations,*</commons.osgi.import>
|
<commons.osgi.import>!net.jcip.annotations,*</commons.osgi.import>
|
||||||
|
|
|
@ -27,6 +27,65 @@
|
||||||
<action type="fix" issue="LANG-571">ArrayUtils.add(T[] array[, offset], T element) can create unexpected ClassCastException</action>
|
<action type="fix" issue="LANG-571">ArrayUtils.add(T[] array[, offset], T element) can create unexpected ClassCastException</action>
|
||||||
</release>
|
</release>
|
||||||
|
|
||||||
|
<release version="2.5" date="2010-02-25" description="">
|
||||||
|
<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="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="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-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="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-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-587">ClassUtils - toClass() throws NullPointerException on null array element</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-204">Entities - multithreaded initialization</action>
|
||||||
|
<action type="fix" issue="LANG-506">Entities - missing final modifiers; thread-safety issues</action>
|
||||||
|
<action type="fix" issue="LANG-76">EnumUtils - getEnum() doesn't work well in 1.5+</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-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-511">LocaleUtils - Initialization of available locales in LocaleUtils can be deferred</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-586">HashCodeBuilder and ToStringStyle - use of ThreadLocal causes memory leaks in container environments</action>
|
||||||
|
<action type="fix" issue="LANG-487">ToStringBuilder - make default style thread-safe</action>
|
||||||
|
<action type="fix" issue="LANG-472">RandomUtils - nextLong() always produces even numbers</action>
|
||||||
|
<action type="fix" issue="LANG-592">RandomUtils - RandomUtils tests are failing frequently</action>
|
||||||
|
</release>
|
||||||
|
|
||||||
<release version="2.4" date="2008-03-18" description="">
|
<release version="2.4" date="2008-03-18" description="">
|
||||||
<action type="add" issue="LANG-322">ClassUtils.getShortClassName(String) inefficient</action>
|
<action type="add" issue="LANG-322">ClassUtils.getShortClassName(String) inefficient</action>
|
||||||
<action type="add" issue="LANG-269">Shouldn't Commons Lang's StringUtils have a "common" string method?</action>
|
<action type="add" issue="LANG-269">Shouldn't Commons Lang's StringUtils have a "common" string method?</action>
|
||||||
|
|
|
@ -25,10 +25,10 @@
|
||||||
<body>
|
<body>
|
||||||
<menu name="Lang">
|
<menu name="Lang">
|
||||||
<item name="Overview" href="/index.html"/>
|
<item name="Overview" href="/index.html"/>
|
||||||
<item name="Download" href="http://commons.apache.org/downloads/download_lang.cgi"/>
|
<item name="Download" href="/download_lang.cgi"/>
|
||||||
<item name="Users guide" href="/userguide.html"/>
|
<item name="Users guide" href="/userguide.html"/>
|
||||||
<item name="Release History" href="/release-history.html"/>
|
<item name="Release History" href="/release-history.html"/>
|
||||||
<item name="Javadoc (2.4 release)" href="api-release/index.html"/>
|
<item name="Javadoc (2.5 release)" href="api-release/index.html"/>
|
||||||
</menu>
|
</menu>
|
||||||
|
|
||||||
<menu name="Development">
|
<menu name="Development">
|
||||||
|
|
|
@ -31,6 +31,7 @@ limitations under the License.
|
||||||
You may also be interested in the upgrade notes:
|
You may also be interested in the upgrade notes:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>Upgrade <a href="upgradeto2_5.html">from 2.4 to 2.5</a></li>
|
||||||
<li>Upgrade <a href="upgradeto2_4.html">from 2.3 to 2.4</a></li>
|
<li>Upgrade <a href="upgradeto2_4.html">from 2.3 to 2.4</a></li>
|
||||||
<li>Upgrade <a href="upgradeto2_3.html">from 2.2 to 2.3</a></li>
|
<li>Upgrade <a href="upgradeto2_3.html">from 2.2 to 2.3</a></li>
|
||||||
<li>Upgrade <a href="upgradeto2_2.html">from 2.1 to 2.2</a></li>
|
<li>Upgrade <a href="upgradeto2_2.html">from 2.1 to 2.2</a></li>
|
||||||
|
@ -41,16 +42,12 @@ limitations under the License.
|
||||||
<!-- ================================================== -->
|
<!-- ================================================== -->
|
||||||
<section name="Maven Goals">
|
<section name="Maven Goals">
|
||||||
<p>
|
<p>
|
||||||
To build a jar file, change into the root directory of Lang and run "maven jar".
|
To build a jar file, change into the root directory of Lang and run "mvn package".
|
||||||
The result will be in the "target" subdirectory.
|
The result will be in the "target" subdirectory.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
To build the Javadocs, run "maven javadoc".
|
To build the full website, run "mvn site".
|
||||||
The result will be in "target/docs/apidocs".
|
The result will be in "target/site".
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
To build the full website, run "maven site".
|
|
||||||
The result will be in "target/docs".
|
|
||||||
You must be online to successfully complete this target.
|
You must be online to successfully complete this target.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
@ -62,11 +59,11 @@ limitations under the License.
|
||||||
<section name="Ant Goals">
|
<section name="Ant Goals">
|
||||||
<p>
|
<p>
|
||||||
To build a jar file, change into the root directory of Lang and run "ant jar".
|
To build a jar file, change into the root directory of Lang and run "ant jar".
|
||||||
The result will be in the "dist" subdirectory.
|
The result will be in the "target" subdirectory.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
To build the Javadocs, run "ant javadoc".
|
To build the Javadocs, run "ant javadoc".
|
||||||
The result will be in "dist/docs/api".
|
The result will be in "target/docs/api".
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
<!-- ================================================== -->
|
<!-- ================================================== -->
|
||||||
|
|
|
@ -102,17 +102,17 @@ limitations under the License.
|
||||||
<ul class="downloads">
|
<ul class="downloads">
|
||||||
<li class="group"><div class="links"><span class="label">Binary</span></div>
|
<li class="group"><div class="links"><span class="label">Binary</span></div>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="download"><a href="[preferred]/commons/lang/binaries/commons-lang-2.4-bin.tar.gz">2.4.tar.gz</a>
|
<li class="download"><a href="[preferred]/commons/lang/binaries/commons-lang-2.5-bin.tar.gz">2.5.tar.gz</a>
|
||||||
<ul class="attributes">
|
<ul class="attributes">
|
||||||
<li><span class="md5">[<a href="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.4-bin.tar.gz.md5">md5</a>]</span>
|
<li><span class="md5">[<a href="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.5-bin.tar.gz.md5">md5</a>]</span>
|
||||||
<span class="pgp">[<a href="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.4-bin.tar.gz.asc">pgp</a>]</span>
|
<span class="pgp">[<a href="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.5-bin.tar.gz.asc">pgp</a>]</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="download"><a href="[preferred]/commons/lang/binaries/commons-lang-2.4-bin.zip">2.4.zip</a>
|
<li class="download"><a href="[preferred]/commons/lang/binaries/commons-lang-2.5-bin.zip">2.5.zip</a>
|
||||||
<ul class="attributes">
|
<ul class="attributes">
|
||||||
<li><span class="md5">[<a href="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.4-bin.zip.md5">md5</a>]</span>
|
<li><span class="md5">[<a href="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.5-bin.zip.md5">md5</a>]</span>
|
||||||
<span class="pgp">[<a href="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.4-bin.zip.asc">pgp</a>]</span>
|
<span class="pgp">[<a href="http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.5-bin.zip.asc">pgp</a>]</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
@ -120,17 +120,17 @@ limitations under the License.
|
||||||
</li>
|
</li>
|
||||||
<li class="group"><div class="links"><span class="label">Source</span></div>
|
<li class="group"><div class="links"><span class="label">Source</span></div>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="download"><a href="[preferred]/commons/lang/source/commons-lang-2.4-src.tar.gz">2.4.tar.gz</a>
|
<li class="download"><a href="[preferred]/commons/lang/source/commons-lang-2.5-src.tar.gz">2.5.tar.gz</a>
|
||||||
<ul class="attributes">
|
<ul class="attributes">
|
||||||
<li><span class="md5">[<a href="http://www.apache.org/dist/commons/lang/source/commons-lang-2.4-src.tar.gz.md5">md5</a>]</span>
|
<li><span class="md5">[<a href="http://www.apache.org/dist/commons/lang/source/commons-lang-2.5-src.tar.gz.md5">md5</a>]</span>
|
||||||
<span class="pgp">[<a href="http://www.apache.org/dist/commons/lang/source/commons-lang-2.4-src.tar.gz.asc">pgp</a>]</span>
|
<span class="pgp">[<a href="http://www.apache.org/dist/commons/lang/source/commons-lang-2.5-src.tar.gz.asc">pgp</a>]</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="download"><a href="[preferred]/commons/lang/source/commons-lang-2.4-src.zip">2.4.zip</a>
|
<li class="download"><a href="[preferred]/commons/lang/source/commons-lang-2.5-src.zip">2.5.zip</a>
|
||||||
<ul class="attributes">
|
<ul class="attributes">
|
||||||
<li><span class="md5">[<a href="http://www.apache.org/dist/commons/lang/source/commons-lang-2.4-src.zip.md5">md5</a>]</span>
|
<li><span class="md5">[<a href="http://www.apache.org/dist/commons/lang/source/commons-lang-2.5-src.zip.md5">md5</a>]</span>
|
||||||
<span class="pgp">[<a href="http://www.apache.org/dist/commons/lang/source/commons-lang-2.4-src.zip.asc">pgp</a>]</span>
|
<span class="pgp">[<a href="http://www.apache.org/dist/commons/lang/source/commons-lang-2.5-src.zip.asc">pgp</a>]</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -48,23 +48,21 @@ together with various <a href="project-reports.html">project reports</a>.
|
||||||
The JavaDoc API documents are available online:
|
The JavaDoc API documents are available online:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>The <a href="api-release/index.html">current release 2.4</a></li>
|
<li>The <a href="api-release/index.html">current release 2.5</a></li>
|
||||||
<li>The <a href="api-2.3/index.html">previous version 2.3</a></li>
|
<li>The <a href="api-2.4/index.html">previous version 2.4</a></li>
|
||||||
<li>Older releases - see the <a href="release-history.html">Release History</a> page</li>
|
<li>Older releases - see the <a href="release-history.html">Release History</a> page</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
The <a href="cvs-usage.html">subversion repository</a> can be
|
The <a href="source-repository.html">subversion repository</a> can be
|
||||||
<a href="http://svn.apache.org/viewvc/commons/proper/lang/trunk/">browsed</a>.
|
<a href="http://svn.apache.org/viewvc/commons/proper/lang/trunk/">browsed</a>.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
<!-- ================================================== -->
|
<!-- ================================================== -->
|
||||||
<section name="Releases">
|
<section name="Releases">
|
||||||
<p>
|
<p>
|
||||||
The latest version 2.4, is JDK 1.2 compatible -
|
The latest version 2.5, is JDK 1.3 compatible -
|
||||||
<a href="http://commons.apache.org/downloads/download_lang.cgi">Download now!</a>
|
<a href="http://commons.apache.org/lang/download_lang.cgi">Download now!</a>
|
||||||
(<a href="upgradeto2_4.html">upgrade notes</a>). </p>
|
(<a href="upgradeto2_5.html">upgrade notes</a>). </p>
|
||||||
|
|
||||||
<p>Read '<a href="article2_4.html">What's new in 2.4?</a>' for more information. </p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
For information on previous releases, see the <a href="release-history.html">Release History</a> and to download previous releases, see the <a href="http://archive.apache.org/dist/commons/lang/">Apache Archive</a>.
|
For information on previous releases, see the <a href="release-history.html">Release History</a> and to download previous releases, see the <a href="http://archive.apache.org/dist/commons/lang/">Apache Archive</a>.
|
||||||
|
|
|
@ -28,6 +28,7 @@ limitations under the License.
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr><th>Version</th><th>Release date</th><th>Javadoc</th><th>Release notes</th></tr>
|
<tr><th>Version</th><th>Release date</th><th>Javadoc</th><th>Release notes</th></tr>
|
||||||
|
<tr><td>2.5</td><td>23/Feb/10</td><td><a href="api-2.5/">api-2.5</a></td><td><a href="upgradeto2_5.html">release notes for 2.5</a></td></tr>
|
||||||
<tr><td>2.4</td><td>18/Mar/08</td><td><a href="api-2.4/">api-2.4</a></td><td><a href="upgradeto2_4.html">release notes for 2.4</a></td></tr>
|
<tr><td>2.4</td><td>18/Mar/08</td><td><a href="api-2.4/">api-2.4</a></td><td><a href="upgradeto2_4.html">release notes for 2.4</a></td></tr>
|
||||||
<tr><td>2.3</td><td>13/Feb/07</td><td><a href="api-2.3/">api-2.3</a></td><td><a href="upgradeto2_3.html">release notes for 2.3</a></td></tr>
|
<tr><td>2.3</td><td>13/Feb/07</td><td><a href="api-2.3/">api-2.3</a></td><td><a href="upgradeto2_3.html">release notes for 2.3</a></td></tr>
|
||||||
<tr><td>2.2</td><td>04/Oct/06</td><td><a href="api-2.2/">api-2.2</a></td><td><a href="upgradeto2_2.html">release notes for 2.2</a></td></tr>
|
<tr><td>2.2</td><td>04/Oct/06</td><td><a href="api-2.2/">api-2.2</a></td><td><a href="upgradeto2_2.html">release notes for 2.2</a></td></tr>
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<document>
|
||||||
|
<properties>
|
||||||
|
<title>Upgrade from 2.4 to 2.5</title>
|
||||||
|
<author email="dev@commons.apache.org">Commons Documentation Team</author>
|
||||||
|
</properties>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<section name="Upgrade to 2.5">
|
||||||
|
<p>
|
||||||
|
These are the release notes and advice for upgrading Commons-Lang from
|
||||||
|
version 2.4 to version 2.5. <br/><br/>
|
||||||
|
<source>
|
||||||
|
INTRODUCTION:
|
||||||
|
|
||||||
|
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.5 no longer attempts to target the Java 1.2 environment and now targets Java 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-587] - ClassUtils - toClass() throws NullPointerException on null array element
|
||||||
|
* [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-204] - Entities - multithreaded initialization
|
||||||
|
* [LANG-506] - Entities - missing final modifiers; thread-safety issues
|
||||||
|
* [LANG-76] - EnumUtils - getEnum() doesn't work well in 1.5+
|
||||||
|
* [LANG-584] - ExceptionUtils - use immutable lock target
|
||||||
|
* [LANG-477] - ExtendedMessageFormat - OutOfMemory with a pattern containing single quotes
|
||||||
|
* [LANG-538] - FastDateFormat - call getTime() on a calendar to ensure timezone is in the right state
|
||||||
|
* [LANG-547] - FastDateFormat - Remove unused field
|
||||||
|
* [LANG-511] - LocaleUtils - initialization of available locales can be deferred
|
||||||
|
* [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-586] - HashCodeBuilder and ToStringStyle - use of ThreadLocal causes memory leaks in container environments
|
||||||
|
* [LANG-487] - ToStringBuilder - make default style thread-safe
|
||||||
|
* [LANG-472] - RandomUtils - nextLong() always produces even numbers
|
||||||
|
* [LANG-592] - RandomUtils - RandomUtils tests are failing frequently
|
||||||
|
|
||||||
|
</source>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</document>
|
Loading…
Reference in New Issue