blob: 2aab0dab8f8382cefac284d461b7a47c434f044b [file] [log] [blame]
<html>
<head>
<title>Status File for Jakarta Commons "Lang" Component</title>
</head>
<body bgcolor="white">
<div align="center">
<h1>The Jakarta Commons <em>Lang</em> Component</h1>
$Id: STATUS.html,v 1.32 2002/12/29 22:07:55 scolebourne Exp $<br />
<a href="#Introduction">[Introduction]</a>
<a href="#Dependencies">[Dependencies]</a>
<a href="#Release Info">[Release Info]</a>
<a href="#Known Issues">[Known Issues]</a>
<a href="#Action Items">[Action Items]</a>
<a href="#Committers">[Committers]</a>
<br /><br />
</div>
<a name="Introduction"></a>
<h3>1. INTRODUCTION</h3>
<p>The <em>Lang</em> Component contains a set of Java classes that provide
a basic set of common utility code on top of the standard Java classes.
The following principal classes are included:</p>
<ul>
<li><strong>Main package</strong> - A package for the manipulation of basic Java classes
<ul>
<li><strong>StringUtils</strong> - Helper for java.lang.String.</li>
<li><strong>CharSetUtils</strong> - Methods for dealing with CharSets, which are sets of characters such as [a-z] and [abcdez].</li>
<li><strong>RandomStringUtils</strong> - Helper for creating randomised Strings.</li>
<li><strong>BooleanUtils</strong> - Helper for boolean and java.lang.Boolean.</li>
<li><strong>NumberUtils</strong> - Helper for java.lang.Number and its subclasses.</li>
<li><strong>ObjectUtils</strong> - Helper for java.lang.Object.</li>
<li><strong>ArrayUtils</strong> - Helper for manipulating arrays.</li>
<li><strong>ClassUtils</strong> - Helper for manipulating java.lang.Class objects.</li>
<li><strong>SerializationUtils</strong> - Helper for serializing Objects.</li>
<li><strong>SystemUtils</strong> - Utility class defining the Java system properties.</li>
</ul>
<li><strong>Builder package</strong> - A package for the creation of equals, hashCode, compareTo and toString methods.
<ul>
<li><strong>ToStringBuilder</strong> - Helper for building toString methods.</li>
<li><strong>EqualsBuilder</strong> - Helper for building equals methods.</li>
<li><strong>HashCodeBuilder</strong> - Helper for building hashCode methods.</li>
<li><strong>CompareToBuilder</strong> - Helper for building compareTo methods.</li>
</ul>
<li><strong>Enum package</strong> - A package for the creation of enumerated types.
<ul>
<li><strong>EnumUtils</strong> - Helper for manipulating enumerated types.</li>
<li><strong>Enum</strong> - Abstract superclass for enumerated types to extend.</li>
<li><strong>ValuedEnum</strong> - Superclass for enumerated types with an integer constant.</li>
</ul>
<li><strong>Exception package</strong> - A package for the creation and manipulation of nested exceptions.</li>
<ul>
<li><strong>ExceptionUtils</strong> - Helper for manipulating exceptions.</li>
<li><strong>NestedException</strong> - An exception that supports a nested exception.</li>
<li><strong>NestedRuntimeException</strong> - An exception that supports a nested exception.</li>
<li><strong>NestedError</strong> - An exception that supports a nested exception.</li>
</ul>
<li><strong>Functor package</strong> - A package for basic f(x) type functions.
<ul>
<li><strong>Predicate</strong> - f(x) that evaluates an Object and returns a boolean.</li>
<li><strong>PredicateUtils</strong> - Implementations of most commonly required predicates.</li>
<li><strong>Transformer</strong> - f(x) that transforms one Object into another.</li>
<li><strong>TransformerUtils</strong> - Implementations of most commonly required transformers.</li>
<li><strong>Executor</strong> - f(x) that receives an Object and executes an action.</li>
<li><strong>ExecutorUtils</strong> - Implementations of most commonly required executors.</li>
<li><strong>Factory</strong> - f(x) that creates an Object.</li>
<li><strong>FactoryUtils</strong> - Implementations of most commonly required factories.</li>
</ul>
<li><strong>Math package</strong> - A package for simple business (not scientific) maths classes.
<ul>
<li><strong>Range</strong> - A range of numbers.</li>
<li><strong>Fraction</strong> - A fraction.</li>
</ul>
<li><strong>Util package</strong> - A package for common useful utilities.
<ul>
<li><strong>BitField</strong> - A class to assist with manipulating bits.</li>
<li><strong>IdentifierUtils</strong> - Implementation of various identifier factories.</li>
<li><strong>Validate</strong> - A class to simplify method argument validation.</li>
</ul>
</ul>
<a name="Dependencies"></a>
<h3>2. DEPENDENCIES</h3>
<p>The <em>Lang</em> component is dependent upon the following external
components for development and use:</p>
<ul>
<li><a href="http://java.sun.com/j2se">Java Development Kit</a>
(Version 1.2 or later)</li>
<li><a href="http://www.junit.org">JUnit Testing Framework</a>
(Version 3.7 or later) - for unit tests only, not required
for deployment</li>
</ul>
<a name="Release Info"></a>
<h3>3. RELEASE INFO</h3>
<p>Current Release:
<a href="http://jakarta.apache.org/builds/jakarta-commons/release/commons-lang/v1.0">Version 1.0</a>
</p>
<p>Planned Next Release:
A 2.0 will be released after a undefined period of development.
</p>
<a name="Known Issues"></a>
<h3>4. KNOWN ISSUES</h3>
<p>
<ul>
<li>CharRange.UNSET - will have problems if we introduce reverse ranges that go down to \u0000.</lI>
<li>Null effects - the classes are not standardised in how they handle null.</li>
</ul>
</p>
<a name="Action Items"></a>
<h3>5. ACTION ITEMS</h3>
<p>Want to help? Here's some "to do" items the team has identified. Note that all are
still under discussion, so please mail the list before actioning.</p>
<ul>
<li>Reflection utilities - work underway in reflect package.</li>
<li>Operating system information - maybe part of SystemUtils, maybe another project</li>
<li>Maths utils - possible addition of mathmatics helper.</li>
<li>Date and Calendar utils - work underway in time package.</li>
<li>DateRange</li>
<li>CloneUtils - utility class to enable cloning via various different mechanisms. This code exists in [pattern] at present.</li>
<li>StringUtils truncateNicely method - A substring with some extra power to choose where to cut off. It was in Avalon and was added separately to String Taglib from a code submission. This suggests it may have some commonality. [CODED]</li>
<li>StringUtils unescape method - String Taglib has shown that this method is missing from StringUtils. It would take a String with "\n" in and convert it to the Java character. unescape and escape should be symmetric - [DONE. Test symmetry] </li>
<li>CharUtils - Utilities to work on a char[] in the same way as a String
<li>AStringBuffer - A StringBuffer implementation with additional methods from StringUtils
<li>O(n) - Document all algorithm-implementing methods with the order. Possibly with an O(n) on the end of each parameterm or with an @order tag.</li>
<li>Money and Currency</li>
</ul>
<a name="Committers"></a>
<h3>6. COMMITTERS</h3>
<p>The following individuals are the primary developers and maintainers of this
component. Developers who plan to use <em>Lang</em> in their own
projects are encouraged to collaborate on the future development of this
component to ensure that it continues to meet a variety of needs.</p>
<ul>
<li><a href="mailto:bayard@apache.org">Henri Yandell</a></li>
<li><a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a></li>
<li><a href="mailto:scolebourne@joda.org">Stephen Colebourne</a></li>
<li><a href="mailto:steven@caswell.name">Steven Caswell</a></li>
<li><a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a></li>
</ul>
</body>
</html>