From fb639bca7b8aaf235e812c9b5ce96e9b10ea8f8d Mon Sep 17 00:00:00 2001 From: pjack Date: Sun, 18 Aug 2002 21:20:51 +0000 Subject: [PATCH] First whack at 2.1 release notes. PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130799 13f79535-47bb-0310-9956-ffa450edef68 --- RELEASE-NOTES-2.1.html | 262 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 RELEASE-NOTES-2.1.html diff --git a/RELEASE-NOTES-2.1.html b/RELEASE-NOTES-2.1.html new file mode 100644 index 000000000..4a67f1630 --- /dev/null +++ b/RELEASE-NOTES-2.1.html @@ -0,0 +1,262 @@ +RELEASE NOTES: COLLECTIONS 2.1 + +

RELEASE NOTES: COLLECTIONS 2.1

+ +

REFACTORING

+ +

Documentation

+ +

Almost every class released in 2.0 was touched to improve on, or in +some cases complete, the JavaDoc. Those documentation changes are not +described in detail below; but the goal was simply to have the public +and protected Collections API completely documentated. If a class released +in 2.0 had missing public or protected JavaDoc, then the class was modified +to add it.

+ +

New Testing Suite

+ +

The unit testing framework used to test collections and maps underwent +a major overhaul between 2.0 and 2.1. The new tests check for stricter +Collection and Map contract conformance. Many bugs were found and addressed +with the new tests; bug fixes are described below. The testing suite is +not considered part of the binary release and may undergo further changes.

+ +

New iterators Subpackage

+ +

All of the iterator classes released in Collections 2.0 have been +moved to an iterators subpackage in Collections 2.1. Versions of +the iterators still exist in the main package, but have been deprecated. +This was a simple organizational move that will hopefully make the packages +easier to navigate and absorb.

+ +

The affected classes from 2.0 are:

+ + + +

In addition, new iterators were added to the subpackage; these are +described below.

+ +

Note that other than being in a new package, no other changes were made +to the iterator implementations.

+ +

+NEW COLLECTIONS, COMPARATORS, ITERATORS AND UTILITY CLASSES +

+ +

Collections 2.1 includes a significant number of new collections, +including a new Collection interface for queues and queue-like things. In +addition, a new package was created to house collections that operate on +primitive elements. New comparators were added to the comparators +subpackage, and new iterators were added to the iterators subpackage.

+ +

Also, many new utility classes were added to the main package. The +new utility classes primarly provide decorators for various collection +or collection-related interfaces.

+ +

Descriptions of the new collections, comparators, iterators and utility +classes follow. (For descriptions of all classes in Collections, +see the STATUS.html file.)

+ +

These collections are new to Collections 2.1:

+ + + +

These are the new collections in the primitives subpackage:

+ + + +

These comparators are new to Collections 2.1:

+ + + +

These iterators are new to Collections 2.1:

+ + + +

These are the new utility classes:

+ + + + +

CHANGED CLASSES

+ +These classes have changed since Collections 2.0: + +

ArrayStack

+ +

Now implements the Buffer interface. The Buffer.get() and Buffer.remove() +methods are implemented in terms of peek() and pop().

+ +

BeanMap

+ +

A new method was added to allow a bulk putAll(Map) operation only for +bean properties that are actually writeable. The new method, named +putAllWriteable(Map), can be used to set one bean's state to another's +by using two BeanMaps.

+ +

BinaryHeap

+ +

Now implements the Buffer interface. Since Buffer is a subinterface of +Collection, BinaryHeap is also a Collection. This makes it much more +interoperable with existing APIs. The Buffer.get() and Buffer.remove() +methods are implemented in terms of peek() and pop().

+ +

CollectionUtils

+ +

Modified the index(Object,Object) method to work for arbitrary collections. +Previously the method only worked for Lists. Added the +predicatedCollection(Collection, Predicate) method.

+ +

CursorableLinkedList

+ +

Fixed NullPointerExceptions that were raised by contains(Object), +indexOf(Object), lastIndexOf(Object) and remove(Object) if the given +Object was null.

+ +

DefaultMapBag

+ +

A basic toString() method was added to aid in debugging.

+ +

FastArrayList

+ +

Added severe warning about possible unexpected failures of this class on +some architectures. Fixed the subList(int,int) method so that changes to the +sublist are reflected in the original list, even in fast mode.

+ +

FastArrayList

+ +

Added severe warning about possible unexpected failures of this class on +some architectures. Fixed the subList(int,int) method so that changes to the +sublist are reflected in the original list, even in fast mode.

+ +

FastHashMap

+ +

Added severe warning about possible unexpected failures of this class on +some architectures. Fixed the collection views so changes to the +map are reflected in the collection views and vice-versa, even in fast +mode.

+ +

FastTreeMap

+ +

Added severe warning about possible unexpected failures of this class on +some architectures. Fixed the collection views so changes to the +map are reflected in the collection views and vice-versa, even in fast +mode.

+ +

LRUMap

+ +

The get(Object) was fixed to ensure that if containsKey(foo) returns +false, then get(foo) will not change that. (Before, invoking +get(Object) on a nonexistent key could cause that key to map to +incorrectly map to a null value). Also, the changes to SequencedHashMap +were inherited by LRUMap.

+ +

ListUtils

+ +

The previous version of this class was deprecated; it has been +un-deprecated. Decorators were added to allow predicated, lazy and +fixed-size lists.

+ +

MapUtils

+ +

Added decorators to allow predicated, lazy and fixed-size maps and +sorted maps.

+ +

ProxyMap

+ +

Fixed a bug in the equals(Object) method. Before the equals(Object) +method infinitely recursively called itself until a StackOverflowError +was raised. This version of the method properly delegates the method +call to the underlying map.

+ +

SequencedHashMap

+ +

The iterators on collection views now raise a ConcurrentModificationException +if the map is modified through something other than the iterator. The +equals(Object) and hashCode() methods were fixed to correctly implement +the Map specification. The remove(Object) methods in the keySet() and +entrySet() were fixed so that they correctly return false after removing +a null key.

+ +

SoftRefHashMap

+ +

SoftRefHashMap has been deprecated because it was all kinds of +wonky. Its semantics were never well-defined, many of its operations had +unintuitive side-effects, it violated the java.util.Map contract in several +places and its internal algorithms were inefficient. A new class, +ReferenceMap, is a more general solution that can be used in place of +SoftRefHashMap.