[ 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)