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

Reply via email to