commons-collections/RELEASE-NOTES.html

106 lines
5.3 KiB
HTML

<!--
Copyright 2003-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.
-->
<title>RELEASE NOTES: COLLECTIONS 3.1</title>
<center><h2>RELEASE NOTES: COLLECTIONS 3.1</h2></center>
<p>
This release focusses on bug fixes and minor enhancements.
No deprecations have occurred.
<hr />
<center><h3>COMPATABILITY</h3></center>
<ul>
<li>ReferenceMap - No longer extends AbstractMap, only an issue if you previously cast to AbstractMap</li>
<li>FixedSizeSortedMap - No longer extends AbstractSortedMapDecorator, only an issue if you previously cast to AbstractSortedMapDecorator</li>
</ul>
<center><h3>NEW CLASSES</h3></center>
<ul>
<li>TreeList - A list implementation that is faster than ArrayList for insertions and removals</li>
<li>MultiKeyMap - A map that allows multiple keys to be used to map the value</li>
<li>SingletonMap - fully featured singleton Map implementation</li>
<li>TransformedPredicate - A predicate where the input object is transformed [26946]</li>
<li>ObjectGraphIterator - An iterator that can iterate over a graph of objects</li>
<li>MapBackedSet - Set created by decorating a map</li>
<li>ReferenceIdentityMap - Similar to ReferenceMap, but matching keys and values by identity [26503]</li>
<li>AbstractReferenceMap - New base class for reference maps [26503]</li>
<li>Empty*Iterator - Iterators over empty collections</li>
</ul>
<center><h3>ENHANCEMENTS</h3></center>
<ul>
<li>ReferenceMap - Changed to extend AbstractReferenceMap, thus gaining a mapIterator() and subclassability [26503]</li>
<li>Fast3Map - Add clone() method</li>
<li>MultiKey - Add getKey(index) and size() methods and make constructor public</li>
<li>MultiHashMap - Add five methods to improve the API</li>
<li>AbstractHashedMap,AbstractLinkedMap - Add methods to access entry methods when protected scope blocks</li>
<li>Functors - Add get methods to retrieve internal state [27515]</li>
<li>Functors - Add additional getInstance() methods for consistency [27856,27857]</li>
<li>CollectionUtils - get(Object,int) method now supports primitive arrays</li>
<li>CollectionUtils - cardinality() now works faster for Set and Bag instances [28629]</li>
<li>CollectionUtils - Add size(Object) method to find the size of various collection-like objects [27909]</li>
<li>SingletonIterator - make remove() functionality optional</li>
<li>AbstractLinkedList/NodeCachingLinkedList - added getValue() and setValue() to Node, and made everything use them</li>
<li>LRUMap - The addMapping() method now uses isFull() to determine whether it is full</li>
<li>LRUMap - Add boolean flag, scanUntilRemovable, giving the removeLRU() method more power [28887]</li>
<li>InvokerTransformer - Add additional getInstance() method</li>
<li>Reduced inter-class and inter-package dependencies, especially via *Utils classes</li>
</ul>
<h4>Made Serializable</h4>
<ul>
<li>Fast3Map [27946]</li>
<li>FixedSizeMap/SortedMap [18815]</li>
<li>LazyMap/SortedMap [18815]</li>
<li>ReferenceMap [18815]</li>
<li>ListOrderedMap [18815]</li>
<li>PredicatedMap/SortedMap [18815]</li>
<li>TransformedMap/SortedMap [18815]</li>
<li>TypedMap/SortedMap [18815]</li>
<li>UnmodifiableMap/SortedMap/OrderedMap [18815]</li>
<li>TiedMapEntry</li>
</ul>
<center><h3>BUG FIXES</h3></center>
<ul>
<li>Map/BidiMap implementations only checked key and not value in entry set contains(Object) and remove(Object)</li>
<li>AbstractHashedMap subclasses failed to clone() correctly [27159]</li>
<li>ExtendedProperties - Close input stream in constructor [27737]</li>
<li>Flat3Map - Handle infinite loops in toString</li>
<li>LRUMap - The removeLRU() method was passed the wrong LinkEntry [28433]</li>
<li>EnumIterator/MapUtils - Changed enum references to enable JDK 1.5 compliance</li>
<li>UnmodifiableSortedBag - Fix to ensure unmodifiable</li>
<li>MultiHashMap - Fix copy constructor and clone to work properly [28972]</li>
</ul>
<center><h3>JAVADOC</h3></center>
<ul>
<li>Bag - Indicate that no changes are likely to the interface despite its problems</li>
<li>TreeBidiMap - Add javadoc about requiring Comparable entries [26470]</li>
<li>MultiKey - Add extra explanatations, examples and warnings</li>
<li>MultiMap,MultiHashMap - Add extra documentation to clarify the interface and implementation</li>
<li>XxxUtils - Clarify the internal workings of the predicated decorator classes [28115]</li>
<li>BidiMap - Clarify 1 to 1 nature of the map</li>
<li>AbstractHashedMap - Fix isEqualValue() javadoc to refer to value not key</li>
<li>LRUMap - Added extra javadoc about method implementations</li>
<li>BoundedCollection/UnmodifiableBoundedCollection - reword to avoid misunderstandings</li>
<li>Closure/Predicate/Transformer/Factory - Additional javadoc with links</li>
<li>ClosureUtils/PredicateUtils/TransformerUtils/FactoryUtils - Additional links to implementations</li>
<li>Predicated* - Additional usage explanation [29018]</li>
</ul>