<html>
<head>
<title>Proposal for Lang Package</title>
</head>
<body bgcolor="white">

<div align="center">
<h1>Proposal for <em>Lang</em> Package</h1>
</div>

<h3>(0) Rationale</h3>

<p>The standard Java libraries fail to provide enough methods for 
manipulation of its main components. The <em>Lang</em> Package provides 
these extra methods. There are other classes which might justifiably 
be included in java.lang someday, this package also provides for them.</p>


<h3>(1) Scope of the Package</h3>

<p>This proposal is to create a package of Java utility classes for the
classes that are in java.lang's hierarchy, or are considered to be so 
standard as to justify existence in java.lang. The <em>Lang</em> Package 
also applies to primitives and arrays.</p>


<h3>(1.5) Interaction With Other Packages</h3>

<p><em>Lang</em> 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.  Lang will be a dependency for
several existing components in the open source world.</p>

<p>No external configuration files are utilized.</p>


<h3>(2) Initial Source of the Package</h3>

<p>The initial classes came from the Commons.Util subproject.</p>

<p>The proposed package name for the new component is
<code>org.apache.commons.lang</code>.</p>


<h3>(3)  Required Jakarta-Commons Resources</h3>

<ul>
<li>CVS Repository - New directory <code>lang</code> in the
    <code>jakarta-commons</code> CVS repository.</li>
<li>Mailing List - Discussions will take place on the general
    <em>commons-dev@jakarta.apache.org</em> 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
    [lang].</li>
<li>Bugzilla - New component "Lang" under the "Commons" product
    category, with appropriate version identifiers as needed.</li>
<li>Jyve FAQ - New category "commons-lang" (when available).</li>
</ul>


<h3>(4) Initial Committers</h3>

<p>The initial committers on the Lang component shall be as follows:
<ul>
<li>Henri Yandell (bayard)</li>
<li>Daniel Rall (dlr)</li>
<li>Stephen Colebourne (scolebourne)</li>
<!-- Add your real name and user name here -->
</ul>
</p>

</body>
</html>
