120 lines
5.6 KiB
Plaintext
120 lines
5.6 KiB
Plaintext
$Id: RELEASE-NOTES.txt,v 1.31 2004/10/16 17:47:48 scolebourne Exp $
|
|
|
|
Commons Lang Package
|
|
Version 2.1
|
|
Release Notes
|
|
|
|
|
|
INTRODUCTION:
|
|
|
|
This document contains the release notes for the 2.1 version of Apache Jakarta Commons Lang.
|
|
Commons Lang is a set of utility functions and reusable components that
|
|
should be of use in any Java environment.
|
|
|
|
|
|
INCOMPATIBLE CHANGES:
|
|
|
|
- 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. its 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.
|
|
|
|
|
|
DEPRECTAIONS:
|
|
|
|
- The enum package has been renamed to enums for JDK1.5 compilance.
|
|
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_*.
|
|
|
|
|
|
NEW FEATURES:
|
|
|
|
New:
|
|
- Mutable package - contains basic classes that hold an Object or primitive
|
|
and provide both get and set methods.
|
|
- DurationFormatUtils - provides various methods for formatting durations
|
|
- CharEncoding - definitions of constants for character encoding work
|
|
- CharUtils - utilities for working with characters
|
|
|
|
Updated:
|
|
- ArrayUtils - many more methods, especially List-like methods
|
|
- BooleanUtils - isTrue and isFalse methods that handle null
|
|
- ClassUtils - primitive to wrapper class conversion methods
|
|
- ClassUtils - class name comparator
|
|
- IllegalClassException - extra constructor for common instanceof case
|
|
- NotImplementedException - supports nested exceptions
|
|
- ObjectUtils - hashcode method handling null
|
|
- StringUtils - isAsciiPrintable to check the contents of a string
|
|
-- ordinalIndexOf to find the nth index of a string
|
|
-- various remove methods to remove parts of a string
|
|
-- various split methods to provide more control over splitting a string
|
|
- SystemUtils - methods to get system properties as File objects
|
|
-- extra constants representing system properties
|
|
- Validate - new methods to check whether all elements in a collection are of a specific type
|
|
- WordUtils - new methods to capitalize based on a set of specified delimiters
|
|
|
|
- EqualsBuilder - now provides setter to internal state
|
|
- ToStringStyle - new style, short prefix style
|
|
- ReflectionToStringBuilder - more flags to control the output with regards to statics
|
|
|
|
- ExceptionUtils - added indexOfType methods that check subclasses, thus leaving the existing
|
|
indexOfThrowable method untouched (see incompatible changes section)
|
|
|
|
- NumberUtils - various string to number parsing methods added
|
|
|
|
- DateUtils - methods added to compare dates in various ways
|
|
- FastDateFormat - extra formatting methods that take in a millisecond long value
|
|
-- additional static factory methods
|
|
- StopWatch - new methods for split behaviour
|
|
|
|
|
|
BUG FIXES:
|
|
|
|
19331 General case: infinite loop: ToStringBuilder.reflectionToString
|
|
23174 EqualsBuilder.append(Object[], Object[]) throws NPE
|
|
23356 Make DurationFormatUtils public!
|
|
23557 WordUtils.capitalizeFully(String str) should take a delimiters
|
|
23683 New method for converting a primitive Class to its corresponding wrapper
|
|
23430 Minor javadoc fixes for StringUtils.contains(String, String)
|
|
23590 make optional parameters in FastDateFormat really optional
|
|
24056 Documentation error in StringUtils.replace
|
|
25227 StringEscapeUtils.unescapeHtml() doesn't handle hex entities
|
|
25454 new StringUtils.replaceChars behaves differently from old Ch
|
|
25560 DateUtils.truncate() is off by one hour when using a date in DST switch 'zone'
|
|
25627 DateUtils constants should be long
|
|
25683 Add method that validates Collection elements are a correct
|
|
25849 Add SystemUtils methods for directory properties.
|
|
26616 ClassCastException in Enum.equals(Object)
|
|
26699 Tokenizer Enhancements: reset input string, static CSV
|
|
26734 NullPointerException in EqualsBuilder.append(Object[], Object[])
|
|
26877 Add SystemUtils.AWT_TOOLKIT and others.
|
|
26922 public static boolean DateUtils.equals(Date dt1, Date dt2)
|
|
27592 WordUtils capitalize improvement
|
|
27876 ReflectionToStringBuilder.toString(null) throws exception by design
|
|
27877 Make ClassUtils methods null-safe and not throw an IAE.
|
|
28468 StringUtils.defaultString: Documentation error
|
|
28554 Add hashCode-support to class ObjectUtils
|
|
29082 Enhancement of ExceptionUtils.CAUSE_METHOD_NAMES
|
|
29294 lang.math.Fraction class deficiencies
|
|
29673 ExceptionUtils: new getCause() methodname (for tomcat)
|
|
29794 Add convenience format(long) methods to FastDateForma
|
|
30328 HashCodeBuilder does not use the same values as Boolean (fixed as documentation)
|
|
30334 New class proposal: CharacterEncoding
|
|
30815 ArrayUtils.isEquals() throws ClassCastException when array1
|
|
30929 Nestable.indexOfThrowable(Class) uses Class.equals() to match
|
|
31395 DateUtils.truncate oddity at the far end of the Date spectrum
|
|
31478 Compile error with JDK 5 "enum" is a keyword
|
|
31572 o.a.c.lang.enum.ValuedEnum: 'enum'is a keyword in JDK1.5.0
|