Commons Lang
[http://jakarta.apache.org/commons/lang Lang] aims to provide:
- Comprehensive String handling utilities
- Enumerated types (pre JDK 1.5)
- Nested exceptions (pre JDK 1.4)
- Builders to create hashCode, equals, toString and compareTo methods
- Utilities for Object, Date and Numbers
The Javadoc of the 2.0 version (latest) is [http://jakarta.apache.org/commons/lang/api/index.html available].
The Javadoc of the CVS version (development) is [http://jakarta.apache.org/commons/lang/apidocs/index.html available].
Development plan for 2.1
All open issues done or pushed back for a later release.
Seeking opinions
[http://issues.apache.org/bugzilla/show_bug.cgi?id=22692 22692] [StringUtils].split ignores empty items - new splitPreserveAllTokens Needs to be reviewed.
[http://issues.apache.org/bugzilla/show_bug.cgi?id=22717 22717] [lang] MutableNumbers - see lang.mutable.
[http://issues.apache.org/bugzilla/show_bug.cgi?id=30334 30334] [lang] New class proposal: CharacterEncoding
[http://issues.apache.org/bugzilla/show_bug.cgi?id=29163 29163] Make [StopWatch] validate state transitions - Coding needed
[http://issues.apache.org/bugzilla/show_bug.cgi?id=26056 26056] [lang] Add methods to [ArrayUtils]: add at end and insert-like ops - DONE - add(Object[], Object) is overloaded for all the primitives, but add(Object[], int, Object) and addAll(Object[], Object[]) are not overloaded for primitives. Should they be?
[http://issues.apache.org/bugzilla/show_bug.cgi?id=24910 24910] new [StringUtils].split methods that split on the whole separator string - committed as splitByWholeSeparator
[http://issues.apache.org/bugzilla/show_bug.cgi?id=15082 15082] [lang] elapsed time formatting utility method - DurationFormatUtils.
- DateUtils.isSameDay()
- DurationUtils ISO_EXTENDED_FORMAT uses FastDateFormat. This has problems with padding of years. See commented TODO in DurationFormatUtils. - No longer uses FastDateFormat. Instead it uses the DurationFormatUtils format code, of which a new variant has been added
Pushed back
[http://issues.apache.org/bugzilla/show_bug.cgi?id=21663 21663] [lang] Add support in [ToStringStyle] for [DateFormat]. - Grows quickly into commons-convert
[http://issues.apache.org/bugzilla/show_bug.cgi?id=27643 27643] [lang][patch] [ClassUtils].newInstance method - Seems unnecessary
[http://issues.apache.org/bugzilla/show_bug.cgi?id=29149 29149] [lang] [StringEscapeUtils].unescapeHtml() doesn't handle an empty entity - Empty entity is in fact illegal HTML, so need to decide if we should ignore. Current behaviour seems acceptable as we're not in the work with bad HTML market.
- StringBuffer replacement - Probably 2.2/3.0. A lot of work in this I'd imagine.
[http://issues.apache.org/bugzilla/show_bug.cgi?id=26659 26659] [lang] add method to [DateUtils] to get the distance between 2 dates - Mainly replicated by [DurationFormatUtils], or non-obvious
[http://issues.apache.org/bugzilla/show_bug.cgi?id=29692 29692] [lang] String indentation feature request - Needs design as a non-simple problem
[http://issues.apache.org/bugzilla/show_bug.cgi?id=22172 22172] [lang] [DateUtils].parseCVS behavior parsing "h:mm z" - Moved to sandbox
[http://issues.apache.org/bugzilla/show_bug.cgi?id=26297 26297] [lang] [BitSetUtils] class, toIndexArray and fromIndexArray
[http://issues.apache.org/bugzilla/show_bug.cgi?id=26922 26922] [lang] public static boolean [DateUtils].equals(Date dt1, Date dt2)
[http://issues.apache.org/bugzilla/show_bug.cgi?id=21333 21333] Add [TimeoutController] - Class in [HttpClient]. Leaving til 3.0 as not much movement on it
[http://issues.apache.org/bugzilla/show_bug.cgi?id=30674 30674] Support [HttpClient]'s [DateParser] class - This is basically a Date parseDate(String dateValue, String[] dateFormats) method.
[http://issues.apache.org/bugzilla/show_bug.cgi?id=15082 15082] [lang] elapsed time formatting utility method - DurationFormatUtils. Needs finishing.
- New text package with Interpolation class moved there and MappedMessageFormat from code in Digester.
[http://issues.apache.org/bugzilla/show_bug.cgi?id=18962 18962] [lang] New Method: getSubstitutedValues( String, Map ) - org.apache.commons.lang.text.Interpolation available for opinions
Resolved list
[http://issues.apache.org/bugzilla/show_bug.cgi?id=30929 30929] [lang] Nestable.indexOfThrowable(Class)uses Class.equals() to match - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=27592 27592] [lang] [WordUtils] capitalize improvement - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=23557 23557] [WordUtils].capitalizeFully(String str) should take a delimiter - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=27778 27778] [lang] add remove methods to [ArrayUtils] - DONE
- StringTokenizer replacement: (DONE - Tokenizer)
[http://issues.apache.org/bugzilla/show_bug.cgi?id=25227 25227] [lang] [StringEscapeUtils].unescapeHtml() doesn't handle hex entities - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=27640 27640] [lang][patch] [ClassUtils].primitivesToWrappers method - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=23749 23749] [lang] [PATCH] [NumberRange] - adds inclusive and exclusive end points - WONTFIX
[http://issues.apache.org/bugzilla/show_bug.cgi?id=27876 27876] [lang] [ReflectionToStringBuilder].toString(null) throws exception by design - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=27877 27877] [lang][patch] Make [ClassUtils] methods null-safe and not throw an IAE. - DONE
- StringUtils.ordinalIndexOf() - Appears to be DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=29673 29673] [lang] [ExceptionUtils]: new getCause() methodname (for tomcat-exception) - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=25560 25560] [DateUtils].truncate() is off by one hour when using a date in DST switch 'zone' - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=19331 19331] [lang] General case: infinite loop: [ToStringBuilder].reflectionToString - The bugzilla entry Gary Gregory 2003-06-23 17:27 shows this to have been fixed.
[http://issues.apache.org/bugzilla/show_bug.cgi?id=29294 29294] [lang][PATCH] Fix the Fraction class - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=29794 29794] Add convenience format(long) methods to [FastDateFormat] - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=28468 28468] [StringUtils].defaultString: Documentation error - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=22489 22489] [lang]patch] [StringUtils].isAsciiPrintable() - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=26646 26646] [lang] [FastDateFormat].getDateInstance(int, Locale) always uses the pattern from the first invocation - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=31181 31181] [FastDateFormat] year bug - DONE
[http://issues.apache.org/bugzilla/show_bug.cgi?id=32198 32198] [lang] Error in [JavaDoc] for [StringUtils].chomp(String, String) - DONE