99 lines
3.6 KiB
XML
99 lines
3.6 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!--
|
|
Copyright 2004 The Apache Software Foundation
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<document>
|
|
|
|
<properties>
|
|
<title>Commons Collections - History</title>
|
|
<author email="commons-dev@jakarta.apache.org">Commons Documentation Team</author>
|
|
</properties>
|
|
|
|
<body>
|
|
|
|
<section name="History of Commons Collections">
|
|
|
|
<p>
|
|
Commons-Collections is a classic example of an open-source project evolving over time.
|
|
This page documents some of the key stages.
|
|
</p>
|
|
|
|
<p>
|
|
<b>Collections 1.0</b> was a gathering of different Collection, Comparator, Iterator and
|
|
Utility classes written elsewhere in Jakarta.
|
|
At this stage, the component focussed mainly on getting re-use of code by making
|
|
everything avaialable together.
|
|
</p>
|
|
<p>
|
|
All classes were placed in one package except the comparators, which had their own subpackage.
|
|
</p>
|
|
|
|
<p>
|
|
<b>Collections 2.0</b> started the process of growth. The Bag interface was added with
|
|
various implementations. Also added were additional collections implementations.
|
|
</p>
|
|
<p>
|
|
All classes were placed in one package except the comparators, which had their own subpackage.
|
|
</p>
|
|
|
|
<p>
|
|
<b>Collections 2.1</b> increased the growth again. The Buffer interface was added, unifying
|
|
various previous implementations. Numerous decorators were added as inner classes that
|
|
behave like the unmodifiable or synchronized JDK decorators.
|
|
</p>
|
|
<p>
|
|
As the size of the component increased, the iterators were broken out into their own subpackage.
|
|
Thus there were now three packages, main, comparator and iterator.
|
|
</p>
|
|
|
|
<p>
|
|
<b>Collections 3.0</b> represents a re-birth of collections after an 18 month absence.
|
|
Many, many classes had been added to CVS but not released including primitive and
|
|
event-generating classes. In order to control the size of the collections distribution,
|
|
these became two new projects - primitives and events.
|
|
</p>
|
|
<p>
|
|
New interfaces BidiMap, MapIterator, ResettableIterator and KeyValue were added.
|
|
Also added were many new implementations of existing collections, especially Maps.
|
|
</p>
|
|
<p>
|
|
As more decorators were added the decision was taken to create a new subpackage for
|
|
the decorators (no more inner classes). However, it became clear that whether a class was
|
|
a decorator or not was not the most important division in finding a collection.
|
|
As a result of this, and the general ongoing growth in the component, a full subpackage
|
|
layout was chosen - one subpackage for each principal collections interface.
|
|
</p>
|
|
<p>
|
|
Essentially the 3.0 release represents the result of changing from a 'dumping ground'
|
|
of re-used collections to a component <b>designed</b> for the purpose.
|
|
Of course, backwards compatibility has been retained during all transitions using deprecation.
|
|
</p>
|
|
|
|
<p>
|
|
<b>Collections 2.1.1</b> is a patch release to v2.1.
|
|
Unfortunately, v3.0 created a binary incompatibility in the IteratorUtils class.
|
|
This patch was created as a work around, enabling v2.1.1 to be compatible with v3.1.
|
|
</p>
|
|
|
|
<p>
|
|
<b>Collections 3.1</b> (due soon) fixes some bugs in v3.0 and adds a few new enhancements.
|
|
</p>
|
|
|
|
</section>
|
|
|
|
</body>
|
|
</document>
|