Skip to content

Releases: tumatanquang/javolution-extended

v5.7.8

Choose a tag to compare

@github-actions github-actions released this 27 Jul 04:47
  • Updated README.md and Javadoc: Fixed several Javadoc layout issues and code block formatting across multiple packages (context, lang, io, xml, etc.).
  • Fixed the issue where FastList.newInstance() was missing a generic type parameter when compiling on Java 5+.
  • Added FastPrimitiveList and primitive iterators:
    • Introduced the abstract base class FastPrimitiveList and the FastPrimitiveIterator interface under javolution.util.primitive.
    • Added dedicated primitive iterator implementations (FastBooleanIterator, FastByteIterator, FastCharIterator, FastDoubleIterator, FastFloatIterator, FastIntIterator, FastLongIterator, FastShortIterator).
  • Enhanced primitive array lists (Fast<Type>ArrayList):
    • Implemented iterator(), reset(), and trimToSize() methods across all primitive array list classes.
    • Added support for unmodifiable() and shared() views along with their respective Unmodifiable and Shared inner classes.
  • Optimized Unmodifiable and Shared collection wrappers:
    • Added final modifiers to proxy methods in Unmodifiable and Shared inner classes for improved performance and lock consistency.
    • Standardized parameter names.

Full Changelog: v5.7.7...v5.7.8

v5.7.7

Choose a tag to compare

@github-actions github-actions released this 23 Jul 13:20
  • Updated README.md.
  • Removed AbstractList: Now, FastList and FastTable will directly extends FastCollection.
  • Removed javolution.util.ReentrantLock: Use javolution.util.concurrent.locks.ReentrantLock instead.
  • Removed the javolution.util.internal.collection package and its inner classes.
  • Reimplemented Unmodifiable and Shared for FastCollection, FastList, and FastTable.
  • The source code will now use the Java standard line width, reduced from 120 to 80 characters.

Full Changelog: v5.7.6...v5.7.7

v5.7.6

Choose a tag to compare

@github-actions github-actions released this 14 Jul 13:22
  • Updated README.
  • Renamed FastAbstractList to AbstractList.
  • Fixed an incorrect javac attribute name in the build.xml file.
  • Fixed several Javadoc layout issues.
  • Reimplemented the unmodifiable() and shared() methods for FastList and FastTable.
  • For SharedFastList and SharedFastTable:
    • Fixed the issue where subList() uses the wrong lock type, changing it from writeLock() to readLock().
    • Added thread-safe implementations for iterator(), listIterator(), and listIterator(int).
  • For FastArrayList in the javolution.util.primitive package:
    • Optimized parameter names for some methods.
    • If compiled in Java 5+, the toString() method will use the internal StringBuilder to improve performance.
    • Optimized the indexOf() and lastIndexOf() methods: They will return -1 if the list is empty.
  • Added PropertyChangeMulticaster.java and VetoableChangeMulticaster.java from Doug Lea's util.concurrent package in Release 1.3.4: However, due to the limitation of not having JavaBeans on J2ME, these two classes will have empty bodies by default (not implemented).
  • Changed the use of @exception to @throws in Javadoc.
  • The file jdk-1_5_0_22-linux-amd64-direct.bin has been renamed to jdk-5u22-linux-x64.bin in the lib/ directory.

Full Changelog: v5.7.5...v5.7.6

v5.7.5

Choose a tag to compare

@github-actions github-actions released this 04 Jul 12:51
  • Revert to using colapi.jar when building Javadoc.
  • Doug Lea's util.concurrent package in Release 1.3.4 has been implemented in javolution.util.concurrent, except for PropertyChangeMulticaster.java and VetoableChangeMulticaster.java for maintenance and backport reasons.
  • javolution.util.concurrent will be split into sub-packages similar to the JDK:
    • java.util.concurrent can be replaced with javolution.util.concurrent.
    • java.util.concurrent.atomic can be replaced with javolution.util.concurrent.atomic.
    • java.util.concurrent.locks can be replaced with javolution.util.concurrent.locks.
  • Added Javadoc for packages: javolution.util.concurrent, javolution.util.concurrent.atomic, javolution.util.concurrent.locks, javolution.util.internal.collection, and javolution.util.primitive.
  • Added an override for FastSet.shared().
  • Added an iterator method for FastSet.
  • Optimized javolution.util.concurrent.ConcurrentHashMap for high concurrency and low GC pressure:
    • Converted the internal chain links to a volatile Entry _next pointer to ensure safe lock-free reads.
    • Redesigned the removal logic to perform in-place unlinking (prev._next = e._next) under segment locks, completely eliminating the original Copy-on-Write chain replication overhead and achieving zero-allocation removals.
    • Added static newKeySet() and newKeySet(int) helper methods mimicking JDK 8+ concurrent set support.
    • Implemented the nested static class KeySetView to support concurrent, reusable Set views of map keys, fully backported for J2ME and legacy JDK (1.4+) compatibility.

Full Changelog: v5.7.4...v5.7.5

v5.7.4

Choose a tag to compare

@github-actions github-actions released this 15 Apr 07:48
  • Updated property names in build.xml.
  • Javadoc build will now use colapi-2.0.jar.
  • With the javolution.util.concurrent.locks package:
    • Changed the naming convention of classes in the package to be consistent with classes in other packages.
    • Added the ReaderPreferenceReadWriteLock class.
    • Renamed the ReentrantReadWriteLock class to ReentrantWriterPreferenceReadWriteLock to be consistent with Doug Lea's implementation.
    • Reformatted the Javadocs.
  • Reformatted the FastTable code.
  • Reformatted the FastList code.

Full Changelog: v5.7.3...v5.7.4

v5.7.3

Choose a tag to compare

@github-actions github-actions released this 14 Apr 15:28
  • Unified build output set to target/classes.
  • With FastTable:
    • The requireNotNull() method has been removed.
    • The isNullDisallowed() method has been removed.
    • If you want the table to not allow null values, use constructors that specify boolean rejectNulls such as: FastTable(boolean rejectNulls) or FastTable(int capacity, boolean rejectNulls) or FastTable(Collection values, boolean rejectNulls).
    • Updated Javadoc.
  • Updated README.
  • The new Javadoc page has been updated.

Full Changelog: v5.7.2...v5.7.3

v5.7.2

Choose a tag to compare

@github-actions github-actions released this 26 Mar 07:54
  • Optimized the FastTable source code.
  • For classes in the javolution.util.primitive package:
    • Classes have been renamed to the format Fast<Datatype>ArrayList.
    • The source code has been optimized.
    • It will now throw an ArrayIndexOutOfBoundsException instead of IndexOutOfBoundsException when attempting to access an invalid index position.
    • Renamed the delete() method to removeElement().
    • Removed the removeRange() method.

Full Changelog: v5.7.1...v5.7.2

v5.7.1

Choose a tag to compare

@github-actions github-actions released this 22 Mar 05:01
  • Added the javolution.util.primitive package: A collection of implementations for FastList and FastMap for primitive data types.
  • Reimplemented for J2ME; when compiled with ant j2me, it will default to using midp_2.0.jar (MIDP 2.0) and cldc_1.1.jar (CLDC 1.1) for the classpath.

Full Changelog: v5.7.0...v5.7.1

v5.7.0

Choose a tag to compare

@github-actions github-actions released this 31 Dec 17:30
  • Added the packages javolution.util.concurrent and javolution.util.concurrent.locks based on Doug Lea's implementation.
  • The following classes have been renamed:
    • MutableListFastAbstractList.
    • SharedCollectionImplFastSharedCollection.
    • UnmodifiableCollectionImplFastUnmodifiableCollection.

From this version onwards, there will no longer be separate branches for each version. If you need to download the source code, please download it from the Releases page.

Full Changelog: v5.6.9...v5.7.0

v5.6.9

Choose a tag to compare

@github-actions github-actions released this 20 Mar 08:44
  • Undo class name FastSequence to FastList.
  • The abstract class FastList has been renamed to MutableList.

Release file:

  • javolution-5.6.9_5.jar is release compiled using JDK 5.
  • javolution-5.6.9_6.jar is release compiled using JDK 6.

Full Changelog: v5.6.8...v5.6.9