Brett Porter wrote:
Looks good to me. I say roll it into trunk.

A couple of uncertainties:
- isn't doFinal required?

doFinal ?

- I think it can use more tests

Agreed.  Have any special use cases you want fleshed out?



Here's some nitpicking that might reduce the amount of code and make it clearer: - rename Hash to ChecksumAlgorithm (might as well be consistent and use checksum everywhere instead of alternating through Hash, Digest, Checksum?)
- likewise Hasher -> Checksum

Name changes make sense, I'll make these changes this weekend.

- there some duplicated code in isValidChecksums and fixChecksums that can be factored out

Good catch, I'll put that on my todo's too.

- what about passing referenceFile as a final field, since every method uses it?

I started ChecksumFile as a utility class, but that might not be the best decision.
Any opinions if I make ChecksumFile an instantiated class?

ChecksumFile cf = new ChecksumFile(new File("random.jar"));
if( cf.valid() == false ) {
 cf.createChecksum( ChecksumAlgorithm.SHA1 );
}

wdyt?

- but if not, it'd be better if the arg order of getChecksumFile and createChecksum and calculateChecksum were consistent (I would go with File first)
- I'd rename ChecksumFile as ChecksummedFile
- parseChecksum can be private?

I left that as public just to have it be easily unit tested. ;-)

- the two isValidChecksum(s) methods do different things. isValidChecksum should be isValidChecksum(Hash hash) { return isValidChecksums( new Hash[] { hash } ); }. Maybe another static convenience method is needed for the checksum file checkChecksumFile( File checksumFile ).

Legitimate fix.  Adding to my todo.


- Brett

On 09/04/2008, at 2:39 PM, Joakim Erdfelt wrote:
I've been taking a stab and removing some of our dependencies on various plexus components.

First up, plexus-digest.

I've taken the varied code from many locations and come up with a stand alone archiva-checksum lib/component that I hope to be able to integrate into archiva/trunk.

So ... uhm ... consider this a call for discussion. ;-)

- Joakim

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/


Reply via email to