[
https://issues.apache.org/jira/browse/COLLECTIONS-728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16965626#comment-16965626
]
Claude Warren commented on COLLECTIONS-728:
-------------------------------------------
Updated PR with following notes:
I added MurmurHash3 to the RAT exclusion in the POM as It is public domain and
I could not figure out how to get RAT to accept it. This is a temporary
work-around until a final solution is discovered.
I restructured the Hasher / Factory layout and made Hasher the top level
interface. It now contains two (2) interfaces
Hasher.Factory - defines only listFunctionNames() and useFunction(String)
[ the last one probably needs a rename ]
Hasher.Builder - defines three (3) with(X) methods and a build() method.
Hasher.Factory.useFunction(String) takes the function name and returns a
Builder for the Hasher.
Hasher.Factory.DEFAULT is a static that contains the default Hasher.Factory
implementation. Currently it contains the DynamicHasher.Factory as there is no
other.
I removed all ByteBuffer and LongBuffers in the interfaces as they cause
problems with the Animal Sniffer tool and it just made life easier.
[~erans] You were correct the SpanBuffer.contains( Span, Hasher ) and
SpanBuffer.merge( Span, Hasher ) did not smell right. I removed the Span
arguments from the calls as they are not necessary. The calls are now
SpanBuffer.contains( Hasher ) and SpanBuffer.merge( Hasher )
Added a DynamicHasher.Builder that builds the DynamicHasher.
Removed the "locked" internal state from DynamicHasher as it is immutable.
Added a DynamicHasher.Factory that will create the DynamicHasher.Builder from
the well known names.
Compromised on the ability to new Hash functions to the DynamicHasher.Factory
by implementing a protected register( String, Class ) method to allow
developers to create a child class that adds new hashes.
I hope that we can remove the MurmurHash3 code and switch to commons-codec
hasher code, but the codec murmer3 hash implementation has a bug. I am working
on a pull request to fix that.
> BloomFilter contribution
> ------------------------
>
> Key: COLLECTIONS-728
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-728
> Project: Commons Collections
> Issue Type: Task
> Reporter: Claude Warren
> Priority: Minor
> Attachments: BF_Func.md, BloomFilter.java, BloomFilterI2.java,
> Usage.md
>
>
> Contribution of BloomFilter library comprising base implementation and gated
> collections.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)