[ 
https://issues.apache.org/jira/browse/COLLECTIONS-728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16996742#comment-16996742
 ] 

Claude Warren commented on COLLECTIONS-728:
-------------------------------------------

I  think there may be a nomenclature issue here:  Does "same function" mean the 
identical implementation (same provider) or just the same results (same hash 
function, Signedness and Process type)?  In my mind it is the later.

The HashFunction is separate from the HashFunctionIdentity because there are 
cases where we don't need/want the hashing function implementation we just need 
to know what it is (e.g. stored in a database).

Commons Collections can implement whatever hashes are deemed appropriate.  It 
can implement them with 3rd-party hash algorithms, java core algorithms (e.g 
MD5), or Collections provided hash algorithms.   I attempted the later early in 
this contribution but it was easier to move that to commons-codec and fix the 
implementation there than it was to keep that code in the contribution.

There is nothing in the contribution that prohibits the development of a 
registry, it just does not provide such.  Adding such would increase the size 
and would lead us into discussions about Factories, singletons, and registering 
new producers again.  I would like to avoid that discussion until the core 
components are in place.

 Again, we can not and should not try to implement all hash functions, nor 
should we restrict others from using new/experimental hash function with this 
library. 

What we should do is provide a framework that identifies when the hash 
functions are not the same so that appropriate actions can be taken.  I believe 
that is what this contribution does.

I have used this contribution is 3 projects with 3 different development teams. 
 We have managed to fit this contributions into the projects even though they 
have different requirements on the Bloom filters.  I have easily retrofitted 
this contribution into packages that used their own Bloom filter 
implementations with minimal impact.  Overall this contribution works. 

Am I missing something?

 

> 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