Proposal for Collections Package

(0) Rationale

The Java Collections Framework provides a set of abstract data type interfaces and implementations that offer both a wealth of useful functionality, and a solid foundation for extending that functionality.

Many Jakarta projects have needs or design criteria that extend beyond the core Collections API, such as introducing new abstract data types (e.g., Avalon's BinaryHeap) or changing the behavior of existing abstract data types (e.g., Struts' FastHashMap).

In keeping with the spirit of the Collections API and of abstract data types in general, these components can and should be shared assets. A Commons package for abstract data types would encourage the development and reuse of a robust set of collections classes.

(1) Scope of the Package

The package will create and maintain a set of collections and related classes designed to be compatible with the Java Collections Framework, and to be distributed under the ASF license.

(1.5) Interaction With Other Packages

Collections relies only on standard JDK 1.2 (or later) APIs for production deployment. It utilizes the JUnit unit testing framework for developing and executing unit tests, but this is of interest only to developers of the component. Collections will also be a dependency for several future proposed components for the Jakarta Commons subproject.

No external configuration files are utilized.

(2) Initial Source of the Package

The initial codebase was harvested from existing and proposed Jakarta packages, including the Commons Database Connection Pool, Struts, and Avalon.

The proposed package name for the new component is org.apache.commons.collections.

(3) Required Jakarta-Commons Resources

(4) Initial Committers