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 latest version is [http://jakarta.apache.org/commons/lang/api/index.html available].
Development plan for 2.1
5. [http://issues.apache.org/bugzilla/show_bug.cgi?id=29294 29294] [lang][PATCH] Fix the Fraction class - Patch being reviewed.
5. 15082 [lang] elapsed time formatting utility method - DurationFormatUtils. Needs finishing.
5. 18962 [lang] New Method: getSubstitutedValues( String, Map ) - Patch supplied. Need to resurrect Interpolator from Util, merge with this patch and decide if it makes sense.
5. 19331 [lang] General case: infinite loop: [ToStringBuilder].reflectionToString - Need to confirm whether this is a bug
5. 20015 [lang] Make Entities public and unit test - Entities. Needs finishing.
5. 21333 Add [TimeoutController] - Class in [HttpClient]. Needs evaluating.
5. 22172 [lang] [DateUtils].parseCVS behavior parsing "h:mm z"
5. 22692 [StringUtils].split ignores empty items
5. 24910 new [StringUtils].split methods that split on the whole separator string - method signature issue
5. 25560 [DateUtils].truncate() is off by one hour when using a date in DST switch 'zone'
5. 26922 [lang] public static boolean [DateUtils].equals(Date dt1, Date dt2)
5. 29163 Make [StopWatch] validate state transitions - Coding needed
5. 26297 [lang] [BitSetUtils] class, toIndexArray and fromIndexArray - DONE - Gary to confirm, looks like primitive overloads are still needed
New
29673 [lang] [ExceptionUtils]: new getCause() methodname (for tomcat-exception) - Confusing
29692 [lang] String indentation feature request - Needs design as a non-simple problem
- 29794 Add convenience format(long) methods to FastDateFormat - Needs improvement
Pushed back
21663 [lang] Add support in [ToStringStyle] for [DateFormat]. - Grows quickly into commons-convert
27643 [lang][patch] [ClassUtils].newInstance method - Seems unnecessary
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.
26659 [lang] add method to [DateUtils] to get the distance between 2 dates - Mainly replicated by [DurationFormatUtils], or non-obvious
Resolved list
27592 [lang] [WordUtils] capitalize improvement - DONE
- 23557 WordUtils.capitalizeFully(String str) should take a delimiter - DONE
27778 [lang] add remove methods to [ArrayUtils] - DONE
- StringTokenizer replacement: (DONE - Tokenizer)
25227 [lang] [StringEscapeUtils].unescapeHtml() doesn't handle hex entities - DONE
27640 [lang][patch] [ClassUtils].primitivesToWrappers method - DONE
22717 [lang] MutableNumbers - see lang.mutable.
23749 [lang] [PATCH] [NumberRange] - adds inclusive and exclusive end points - WONTFIX
27876 [lang] [ReflectionToStringBuilder].toString(null) throws exception by design - DONE
27877 [lang][patch] Make [ClassUtils] methods null-safe and not throw an IAE. - DONE
26056 [lang] Add methods to [ArrayUtils]: add at end and insert-like ops - DONE
- StringUtils.ordinalIndexOf()