Proposal for Primitives Component

(0) Rationale

The Java language has a fundamental distinction between Object and primitive types. The JDK provides many method for manipulating and working with Objects. However, there is relatively little support for working with primitive types.

One key example is the Java Collection Framework. This defines a well-known and widely used API for object-based collections. The framework requires each primitive to be wrapped in an object, such as Integer, before they can be used in collections. This has a memory and performance overhead.

The primitives component will provide an API for collections and utilities based on primitives. Wrappers and adaptors will be provided for integration with object-based APIs.

(1) Scope of the Package

The package will create and maintain a set of collections and utilities for primitive types, distributed under the ASF license.

(1.5) Interaction With Other Packages

Primitives 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.

No external configuration files are utilized.

(2) Initial Source of the Package

The initial codebase was harvested from code in the Commons Collections CVS.

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

(3) Required Jakarta-Commons Resources

  • CVS Repository - New directory primitives in the jakarta-commons CVS repository.
  • Mailing List - Discussions will take place on the general dev@commons.apache.org mailing list. To help list subscribers identify messages of interest, it is suggested that the message subject of messages about this component be prefixed with [primitives].
  • Bugzilla - New component "Primitives" under the "Commons" product category, with appropriate version identifiers as needed.
  • Jyve FAQ - New category "commons-primitives" (when available).

(4) Initial Committers

  • Rodney Waldhoff
  • Stephen Colebourne