On Mon, 25 Mar 2024 at 13:12, Gary Gregory <garydgreg...@gmail.com> wrote:
> Hi All, > > 4.5.0 will contain a new package for Bloom Filters. > > Since this is a new package and is non-trivial, I propose we release a > version called 4.5.0-M1 or 4.5.0-beta1 to let users try this out while > giving us the change to make breaking API changes if needed. > > Gary > +1 I have not looked at the Bloom filter package for a while. It is on my todo list to check the API is consistently and correctly implemented by the underlying classes. The package also does not have any performance tests. It would be nice to have some since Bloom filters are probabilistic structures that offer speed-up over other data structures to track occurrences of objects whilst compromising on the exactness of results, i.e they are configured with a desired false-positive rate. At present the code is rather complex and it would be nice to have some figures to show the advantages. We should also get some closure on COLLECTIONS-842 [1] which is an incompatibility between collections and default methods added to List in JDK 21. I looked at this for a while but did not change anything in the codebase. TLDR: you cannot compile collections with JDK 21 but you can run it with JDK 21 if the binary is compiled for an earlier target. It affects any class extending AbstractLinkedList (there are 3 in Collections). The minimum effort would be to mark the AbstractLinkedList methods as deprecated and in future to be changed to the same API as JDK 21. This would leave the 4.X branch compile time limited to LTS JDKs up to 17. Alex [1] https://issues.apache.org/jira/browse/COLLECTIONS-842