You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/08/10 14:36:55 UTC
svn commit: r430367 - in /maven/repository-manager/trunk:
maven-repository-converter/src/main/java/org/apache/maven/repository/converter/
maven-repository-converter/src/test/resources/org/apache/maven/repository/converter/
maven-repository-discovery/sr...
Author: brett
Date: Thu Aug 10 05:36:53 2006
New Revision: 430367
URL: http://svn.apache.org/viewvc?rev=430367&view=rev
Log:
[MRM-146] support incremental update of checksum
Submitted by: Joakim Erdfelt
Added:
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractDigester.java (contents, props changed)
- copied, changed from r427857, maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractStreamingDigester.java (with props)
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Md5Digester.java (with props)
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Sha1Digester.java (with props)
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingDigester.java (with props)
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingMd5Digester.java (with props)
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingSha1Digester.java (with props)
Removed:
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java
Modified:
maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
maven/repository-manager/trunk/maven-repository-converter/src/test/resources/org/apache/maven/repository/converter/RepositoryConverterTest.xml
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumMetadataReporter.java
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DuplicateArtifactFileReportProcessor.java
maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTestCase.java
maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Digester.java
maven/repository-manager/trunk/maven-repository-utils/src/test/java/org/apache/maven/repository/digest/DigesterTest.java
maven/repository-manager/trunk/maven-repository-webapp/pom.xml
Modified: maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java (original)
+++ maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java Thu Aug 10 05:36:53 2006
@@ -66,9 +66,14 @@
implements RepositoryConverter
{
/**
- * @plexus.requirement
+ * @plexus.requirement role-hint="sha1"
+ */
+ private Digester sha1Digester;
+
+ /**
+ * @plexus.requirement role-hint="md5"
*/
- private Digester digester;
+ private Digester md5Digester;
/**
* @plexus.requirement
@@ -572,25 +577,25 @@
{
boolean result =
- verifyChecksum( file, file.getName() + ".md5", Digester.MD5, reporter, artifact, "failure.incorrect.md5" );
- result = result && verifyChecksum( file, file.getName() + ".sha1", Digester.SHA1, reporter, artifact,
+ verifyChecksum( file, file.getName() + ".md5", md5Digester, reporter, artifact, "failure.incorrect.md5" );
+ result = result && verifyChecksum( file, file.getName() + ".sha1", sha1Digester, reporter, artifact,
"failure.incorrect.sha1" );
return result;
}
- private boolean verifyChecksum( File file, String fileName, String algorithm, ArtifactReporter reporter,
+ private boolean verifyChecksum( File file, String fileName, Digester digester, ArtifactReporter reporter,
Artifact artifact, String key )
throws IOException
{
boolean result = true;
- File md5 = new File( file.getParentFile(), fileName );
- if ( md5.exists() )
+ File checksumFile = new File( file.getParentFile(), fileName );
+ if ( checksumFile.exists() )
{
- String checksum = FileUtils.fileRead( md5 );
+ String checksum = FileUtils.fileRead( checksumFile );
try
{
- digester.verifyChecksum( file, checksum, algorithm );
+ digester.verify( file, checksum );
}
catch ( DigesterException e )
{
Modified: maven/repository-manager/trunk/maven-repository-converter/src/test/resources/org/apache/maven/repository/converter/RepositoryConverterTest.xml
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-converter/src/test/resources/org/apache/maven/repository/converter/RepositoryConverterTest.xml?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/resources/org/apache/maven/repository/converter/RepositoryConverterTest.xml (original)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/resources/org/apache/maven/repository/converter/RepositoryConverterTest.xml Thu Aug 10 05:36:53 2006
@@ -26,7 +26,13 @@
<requirements>
<requirement>
<role>org.apache.maven.repository.digest.Digester</role>
- <field-name>digester</field-name>
+ <role-hint>sha1</role-hint>
+ <field-name>sha1Digester</field-name>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.repository.digest.Digester</role>
+ <role-hint>md5</role-hint>
+ <field-name>md5Digester</field-name>
</requirement>
<requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
@@ -52,7 +58,13 @@
<requirements>
<requirement>
<role>org.apache.maven.repository.digest.Digester</role>
- <field-name>digester</field-name>
+ <role-hint>sha1</role-hint>
+ <field-name>sha1Digester</field-name>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.repository.digest.Digester</role>
+ <role-hint>md5</role-hint>
+ <field-name>md5Digester</field-name>
</requirement>
<requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
Modified: maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java (original)
+++ maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java Thu Aug 10 05:36:53 2006
@@ -112,6 +112,7 @@
}
scanner.setExcludes( (String[]) allExcludes.toArray( EMPTY_STRING_ARRAY ) );
+ // TODO: Correct for extremely large repositories (artifact counts over 200,000 entries)
scanner.scan();
for ( Iterator files = Arrays.asList( scanner.getExcludedFiles() ).iterator(); files.hasNext(); )
Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/AbstractArtifactIndexRecordFactory.java Thu Aug 10 05:36:53 2006
@@ -37,17 +37,12 @@
extends AbstractLogEnabled
implements RepositoryIndexRecordFactory
{
- /**
- * @plexus.requirement
- */
- private Digester digester;
-
- protected String readChecksum( File file, String algorithm )
+ protected String readChecksum( File file, Digester digester )
{
String checksum;
try
{
- checksum = digester.createChecksum( file, algorithm ).toLowerCase();
+ checksum = digester.calc( file ).toLowerCase();
}
catch ( DigesterException e )
{
Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/MinimalArtifactIndexRecordFactory.java Thu Aug 10 05:36:53 2006
@@ -40,6 +40,14 @@
{
/* List of types to index. */
private static final Set INDEXED_TYPES = new HashSet( Arrays.asList( new String[]{"jar", "maven-plugin"} ) );
+ /**
+ * @plexus.requirement role-hint="sha1"
+ */
+ protected Digester sha1Digester;
+ /**
+ * @plexus.requirement role-hint="md5"
+ */
+ protected Digester md5Digester;
public RepositoryIndexRecord createRecord( Artifact artifact )
{
@@ -48,7 +56,7 @@
File file = artifact.getFile();
if ( file != null && INDEXED_TYPES.contains( artifact.getType() ) && file.exists() )
{
- String md5 = readChecksum( file, Digester.MD5 );
+ String md5 = readChecksum( file, md5Digester );
List files = null;
try
Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/record/StandardArtifactIndexRecordFactory.java Thu Aug 10 05:36:53 2006
@@ -59,7 +59,7 @@
* @todo this should be smarter (perhaps use plexus archiver to look for an unarchiver, and make the ones for zip configurable since sar, par, etc can be added at random.
*/
private static final Set ARCHIVE_TYPES =
- new HashSet( Arrays.asList( new String[]{"jar", "zip", "ejb", "par", "sar", "war", "ear"} ) );
+ new HashSet( Arrays.asList( new String[]{"jar", "ejb", "par", "sar", "war", "ear", "rar"} ) );
/**
* @plexus.requirement
@@ -71,6 +71,16 @@
*/
private MavenProjectBuilder projectBuilder;
+ /**
+ * @plexus.requirement role-hint="sha1"
+ */
+ protected Digester sha1Digester;
+
+ /**
+ * @plexus.requirement role-hint="md5"
+ */
+ protected Digester md5Digester;
+
private static final String PLUGIN_METADATA_NAME = "META-INF/maven/plugin.xml";
private static final String ARCHETYPE_METADATA_NAME = "META-INF/maven/archetype.xml";
@@ -84,12 +94,13 @@
StandardArtifactIndexRecord record = null;
File file = artifact.getFile();
+
// TODO: is this condition really a possibility?
if ( file != null && file.exists() )
{
- String md5 = readChecksum( file, Digester.MD5 );
- String sha1 = readChecksum( file, Digester.SHA1 );
-
+ String md5 = readChecksum( file, md5Digester );
+ String sha1 = readChecksum( file, sha1Digester );
+
List files = null;
boolean archive = ARCHIVE_TYPES.contains( artifact.getType() );
try
Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java Thu Aug 10 05:36:53 2006
@@ -36,11 +36,16 @@
implements ArtifactReportProcessor
{
/**
- * @plexus.requirement
+ * @plexus.requirement role-hint="sha1"
*/
- private Digester digester;
+ private Digester sha1Digester;
/**
+ * @plexus.requirement role-hint="md5"
+ */
+ private Digester md5Digester;
+
+ /**
* Validate the checksum of the specified artifact.
*
* @param model
@@ -62,11 +67,11 @@
String path = repository.pathOf( artifact );
File file = new File( repository.getBasedir(), path );
- verifyChecksum( repository, path + ".md5", file, Digester.MD5, reporter, artifact );
- verifyChecksum( repository, path + ".sha1", file, Digester.SHA1, reporter, artifact );
+ verifyChecksum( repository, path + ".md5", file, md5Digester, reporter, artifact );
+ verifyChecksum( repository, path + ".sha1", file, sha1Digester, reporter, artifact );
}
- private void verifyChecksum( ArtifactRepository repository, String path, File file, String checksumAlgorithm,
+ private void verifyChecksum( ArtifactRepository repository, String path, File file, Digester digester,
ArtifactReporter reporter, Artifact artifact )
{
File checksumFile = new File( repository.getBasedir(), path );
@@ -74,7 +79,7 @@
{
try
{
- digester.verifyChecksum( file, FileUtils.fileRead( checksumFile ), checksumAlgorithm );
+ digester.verify( file, FileUtils.fileRead( checksumFile ) );
reporter.addSuccess( artifact );
}
@@ -89,7 +94,7 @@
}
else
{
- reporter.addFailure( artifact, checksumAlgorithm + " checksum file does not exist." );
+ reporter.addFailure( artifact, digester.getAlgorithm() + " checksum file does not exist." );
}
}
}
Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumMetadataReporter.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumMetadataReporter.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumMetadataReporter.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumMetadataReporter.java Thu Aug 10 05:36:53 2006
@@ -35,11 +35,16 @@
implements MetadataReportProcessor
{
/**
- * @plexus.requirement
+ * @plexus.requirement role-hint="sha1"
*/
- private Digester digester;
+ private Digester sha1Digester;
/**
+ * @plexus.requirement role-hint="md5"
+ */
+ private Digester md5Digester;
+
+ /**
* Validate the checksums of the metadata. Get the metadata file from the
* repository then validate the checksum.
*/
@@ -56,12 +61,12 @@
String path = repository.pathOfRemoteRepositoryMetadata( metadata );
File file = new File( repository.getBasedir(), path );
- verifyChecksum( repository, path + ".md5", file, Digester.MD5, reporter, metadata );
- verifyChecksum( repository, path + ".sha1", file, Digester.SHA1, reporter, metadata );
+ verifyChecksum( repository, path + ".md5", file, md5Digester, reporter, metadata );
+ verifyChecksum( repository, path + ".sha1", file, sha1Digester, reporter, metadata );
}
- private void verifyChecksum( ArtifactRepository repository, String path, File file, String checksumAlgorithm,
+ private void verifyChecksum( ArtifactRepository repository, String path, File file, Digester digester,
ArtifactReporter reporter, RepositoryMetadata metadata )
{
File checksumFile = new File( repository.getBasedir(), path );
@@ -69,7 +74,7 @@
{
try
{
- digester.verifyChecksum( file, FileUtils.fileRead( checksumFile ), checksumAlgorithm );
+ digester.verify( file, FileUtils.fileRead( checksumFile ) );
reporter.addSuccess( metadata );
}
@@ -84,7 +89,7 @@
}
else
{
- reporter.addFailure( metadata, checksumAlgorithm + " checksum file does not exist." );
+ reporter.addFailure( metadata, digester.getAlgorithm() + " checksum file does not exist." );
}
}
Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DuplicateArtifactFileReportProcessor.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DuplicateArtifactFileReportProcessor.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DuplicateArtifactFileReportProcessor.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/DuplicateArtifactFileReportProcessor.java Thu Aug 10 05:36:53 2006
@@ -16,6 +16,10 @@
* limitations under the License.
*/
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.lucene.index.Term;
import org.apache.lucene.search.TermQuery;
import org.apache.maven.artifact.Artifact;
@@ -30,10 +34,6 @@
import org.apache.maven.repository.indexing.record.StandardArtifactIndexRecord;
import org.apache.maven.repository.indexing.record.StandardIndexRecordFields;
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-
/**
* Validates an artifact file for duplicates within the same groupId based from what's available in a repository index.
*
@@ -44,7 +44,7 @@
implements ArtifactReportProcessor
{
/**
- * @plexus.requirement
+ * @plexus.requirement role-hint="md5"
*/
private Digester digester;
@@ -69,7 +69,7 @@
String checksum;
try
{
- checksum = digester.createChecksum( artifact.getFile(), Digester.MD5 );
+ checksum = digester.calc( artifact.getFile() );
}
catch ( DigesterException e )
{
Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTestCase.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTestCase.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTestCase.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTestCase.java Thu Aug 10 05:36:53 2006
@@ -45,14 +45,17 @@
private static final String metadataChecksumFilename = "maven-metadata";
- private Digester digester;
+ private Digester sha1Digest;
+
+ private Digester md5Digest;
public void setUp()
throws Exception
{
super.setUp();
- digester = (Digester) lookup( Digester.ROLE );
+ sha1Digest = (Digester) lookup( Digester.ROLE, "sha1" );
+ md5Digest = (Digester) lookup( Digester.ROLE, "md5" );
}
/**
@@ -141,7 +144,7 @@
File file = new File( path + ".md5" );
OutputStream os = new FileOutputStream( file );
OutputStreamWriter osw = new OutputStreamWriter( os );
- String sum = digester.createChecksum( new File( path ), Digester.MD5 );
+ String sum = md5Digest.calc( new File( path ) );
if ( !isValid )
{
osw.write( sum + "1" );
@@ -155,7 +158,7 @@
file = new File( path + ".sha1" );
os = new FileOutputStream( file );
osw = new OutputStreamWriter( os );
- String sha1sum = digester.createChecksum( new File( path ), Digester.SHA1 );
+ String sha1sum = sha1Digest.calc( new File( path ) );
if ( !isValid )
{
osw.write( sha1sum + "2" );
@@ -187,11 +190,10 @@
FileUtils.copyFile( new File( url ), new File( path ) );
//Create md5 and sha-1 checksum files..
-
File file = new File( path + ".md5" );
OutputStream os = new FileOutputStream( file );
OutputStreamWriter osw = new OutputStreamWriter( os );
- String md5sum = digester.createChecksum( new File( path ), Digester.MD5 );
+ String md5sum = md5Digest.calc( new File( path ) );
if ( !isValid )
{
osw.write( md5sum + "1" );
@@ -205,7 +207,7 @@
file = new File( path + ".sha1" );
os = new FileOutputStream( file );
osw = new OutputStreamWriter( os );
- String sha1sum = digester.createChecksum( new File( path ), Digester.SHA1 );
+ String sha1sum = sha1Digest.calc( new File( path ) );
if ( !isValid )
{
osw.write( sha1sum + "2" );
Copied: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractDigester.java (from r427857, maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java)
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractDigester.java?p2=maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractDigester.java&p1=maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java&r1=427857&r2=430367&rev=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java (original)
+++ maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractDigester.java Thu Aug 10 05:36:53 2006
@@ -21,10 +21,7 @@
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
-import java.io.InputStream;
-import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -33,72 +30,55 @@
* Create a digest for a file.
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
- * @plexus.component role="org.apache.maven.repository.digest.Digester"
*/
-public class DefaultDigester
+public abstract class AbstractDigester
implements Digester
{
- private static final int CHECKSUM_BUFFER_SIZE = 16384;
+ private final StreamingDigester streamingDigester;
- private static final int BYTE_MASK = 0xFF;
+ protected AbstractDigester( StreamingDigester streamingDigester )
+ throws NoSuchAlgorithmException
+ {
+ this.streamingDigester = streamingDigester;
+ }
- public String createChecksum( File file, String algorithm )
- throws DigesterException
+ public String getAlgorithm()
{
- MessageDigest digest;
- try
- {
- digest = MessageDigest.getInstance( algorithm );
- }
- catch ( NoSuchAlgorithmException e )
- {
- throw new DigesterException( "Specified algorithm not found: " + algorithm, e );
- }
+ return streamingDigester.getAlgorithm();
+ }
- InputStream fis;
+ public String calc( File file )
+ throws DigesterException
+ {
+ FileInputStream fis = null;
try
{
fis = new FileInputStream( file );
- }
- catch ( FileNotFoundException e )
- {
- throw new DigesterException( "Specified file not found: " + file.getAbsolutePath(), e );
- }
-
- try
- {
- byte[] buffer = new byte[CHECKSUM_BUFFER_SIZE];
- int numRead;
- do
- {
- numRead = fis.read( buffer );
- if ( numRead > 0 )
- {
- digest.update( buffer, 0, numRead );
- }
- }
- while ( numRead != -1 );
+ streamingDigester.reset();
+ streamingDigester.update( fis );
+ return streamingDigester.calc();
}
catch ( IOException e )
{
- throw new DigesterException( "Failed to read from file: " + file.getAbsolutePath(), e );
+ throw new DigesterException( "Unable to calculate the " + streamingDigester.getAlgorithm() +
+ " hashcode for " + file.getAbsolutePath() + ": " + e.getMessage(), e );
}
finally
{
IOUtil.close( fis );
}
-
- return byteArrayToHexStr( digest.digest() );
}
- public void verifyChecksum( File file, String checksum, String algorithm )
+ public void verify( File file, String checksum )
throws DigesterException
{
String trimmedChecksum = checksum.replace( '\n', ' ' ).trim();
+
+ String algorithm = streamingDigester.getAlgorithm();
+
// Free-BSD / openssl
- Matcher m =
- Pattern.compile( algorithm.replaceAll( "-", "" ) + "\\s*\\((.*?)\\)\\s*=\\s*([a-zA-Z0-9]+)" ).matcher(
- trimmedChecksum );
+ Matcher m = Pattern.compile( algorithm.replaceAll( "-", "" ) + "\\s*\\((.*?)\\)\\s*=\\s*([a-zA-Z0-9]+)" )
+ .matcher( trimmedChecksum );
if ( m.matches() )
{
String filename = m.group( 1 );
@@ -124,41 +104,15 @@
}
//Create checksum for jar file
- String sum = createChecksum( file, algorithm );
+ String sum = calc( file );
if ( !StringUtils.equalsIgnoreCase( trimmedChecksum, sum ) )
{
throw new DigesterException( "Checksum failed" );
}
}
- /**
- * Convert an incoming array of bytes into a string that represents each of
- * the bytes as two hex characters.
- *
- * @param data
- */
- private static String byteArrayToHexStr( byte[] data )
+ public String toString()
{
- String output = "";
-
- for ( int cnt = 0; cnt < data.length; cnt++ )
- {
- //Deposit a byte into the 8 lsb of an int.
- int tempInt = data[cnt] & BYTE_MASK;
-
- //Get hex representation of the int as a string.
- String tempStr = Integer.toHexString( tempInt );
-
- //Append a leading 0 if necessary so that each hex string will contain 2 characters.
- if ( tempStr.length() == 1 )
- {
- tempStr = "0" + tempStr;
- }
-
- //Concatenate the two characters to the output string.
- output = output + tempStr;
- }
-
- return output.toUpperCase();
+ return "[Digester:" + streamingDigester.getAlgorithm() + "]";
}
}
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractDigester.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractDigester.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractStreamingDigester.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractStreamingDigester.java?rev=430367&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractStreamingDigester.java (added)
+++ maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractStreamingDigester.java Thu Aug 10 05:36:53 2006
@@ -0,0 +1,102 @@
+package org.apache.maven.repository.digest;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * Gradually create a digest for a stream.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public abstract class AbstractStreamingDigester
+ implements StreamingDigester
+{
+ protected final MessageDigest md;
+
+ private static final char[] HEX_CHARS = "0123456789ABCDEF".toCharArray();
+
+ private static final int HI_MASK = 0xF0;
+
+ private static final int LO_MASK = 0x0F;
+
+ private static final int BUFFER_SIZE = 32768;
+
+ protected AbstractStreamingDigester( String algorithm )
+ throws NoSuchAlgorithmException
+ {
+ md = MessageDigest.getInstance( algorithm );
+ }
+
+ public String getAlgorithm()
+ {
+ return md.getAlgorithm();
+ }
+
+ public String calc()
+ throws DigesterException
+ {
+ return calc( this.md );
+ }
+
+ public void reset()
+ throws DigesterException
+ {
+ md.reset();
+ }
+
+ public void update( InputStream is )
+ throws DigesterException
+ {
+ update( is, md );
+ }
+
+ protected static String calc( MessageDigest md )
+ {
+ byte[] digest = md.digest();
+
+ char[] hash = new char[digest.length * 2];
+ for ( int i = 0; i < digest.length; i++ )
+ {
+ hash[i * 2] = HEX_CHARS[( digest[i] & HI_MASK ) >> 4];
+ hash[i * 2 + 1] = HEX_CHARS[( digest[i] & LO_MASK )];
+ }
+ return new String( hash );
+ }
+
+ protected static void update( InputStream is, MessageDigest digest )
+ throws DigesterException
+ {
+ try
+ {
+ byte[] buffer = new byte[BUFFER_SIZE];
+ int size = is.read( buffer, 0, BUFFER_SIZE );
+ while ( size >= 0 )
+ {
+ digest.update( buffer, 0, size );
+ size = is.read( buffer, 0, BUFFER_SIZE );
+ }
+ }
+ catch ( IOException e )
+ {
+ throw new DigesterException( "Unable to update " + digest.getAlgorithm() + " hash: " + e.getMessage(), e );
+ }
+ }
+}
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractStreamingDigester.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/AbstractStreamingDigester.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Digester.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Digester.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Digester.java (original)
+++ maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Digester.java Thu Aug 10 05:36:53 2006
@@ -17,6 +17,7 @@
*/
import java.io.File;
+import java.io.InputStream;
/**
* Create a digest for a file.
@@ -27,13 +28,30 @@
{
String ROLE = Digester.class.getName();
- String SHA1 = "SHA-1";
+ /**
+ * Get the algorithm used for the checksum.
+ *
+ * @return the algorithm
+ */
+ String getAlgorithm();
- String MD5 = "MD5";
-
- String createChecksum( File file, String algorithm )
+ /**
+ * Calculate a checksum for a file.
+ *
+ * @param file the file to calculate the checksum for
+ * @return the current checksum.
+ * @throws DigesterException if there was a problem computing the hashcode.
+ */
+ String calc( File file )
throws DigesterException;
- void verifyChecksum( File file, String checksum, String algorithm )
+ /**
+ * Verify that a checksum is correct.
+ *
+ * @param file the file to compute the checksum for
+ * @param checksum the checksum to compare to
+ * @throws DigesterException if there was a problem computing the hashcode.
+ */
+ void verify( File file, String checksum )
throws DigesterException;
}
Added: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Md5Digester.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Md5Digester.java?rev=430367&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Md5Digester.java (added)
+++ maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Md5Digester.java Thu Aug 10 05:36:53 2006
@@ -0,0 +1,34 @@
+package org.apache.maven.repository.digest;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * Digester that does MD5 Message Digesting Only.
+ *
+ * @plexus.component role="org.apache.maven.repository.digest.Digester" role-hint="md5"
+ */
+public class Md5Digester
+ extends AbstractDigester
+{
+ public Md5Digester()
+ throws NoSuchAlgorithmException
+ {
+ super( new StreamingMd5Digester() );
+ }
+}
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Md5Digester.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Md5Digester.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Sha1Digester.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Sha1Digester.java?rev=430367&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Sha1Digester.java (added)
+++ maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Sha1Digester.java Thu Aug 10 05:36:53 2006
@@ -0,0 +1,34 @@
+package org.apache.maven.repository.digest;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * Digester that does SHA1 Message Digesting Only.
+ *
+ * @plexus.component role="org.apache.maven.repository.digest.Digester" role-hint="sha1"
+ */
+public class Sha1Digester
+ extends AbstractDigester
+{
+ public Sha1Digester()
+ throws NoSuchAlgorithmException
+ {
+ super( new StreamingSha1Digester() );
+ }
+}
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Sha1Digester.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/Sha1Digester.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingDigester.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingDigester.java?rev=430367&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingDigester.java (added)
+++ maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingDigester.java Thu Aug 10 05:36:53 2006
@@ -0,0 +1,64 @@
+package org.apache.maven.repository.digest;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.InputStream;
+
+/**
+ * Gradually create a digest for a stream.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public interface StreamingDigester
+{
+ String ROLE = StreamingDigester.class.getName();
+
+ /**
+ * Get the algorithm used for the checksum.
+ *
+ * @return the algorithm
+ */
+ String getAlgorithm();
+
+ /**
+ * Reset the hashcode calculation algorithm.
+ * Only useful when performing incremental hashcodes based on repeated use of {@link #update(InputStream)}
+ *
+ * @throws DigesterException if there was a problem with the internal message digest
+ */
+ void reset()
+ throws DigesterException;
+
+ /**
+ * Calculate the current checksum.
+ *
+ * @return the current checksum.
+ * @throws DigesterException if there was a problem computing the hashcode.
+ */
+ String calc()
+ throws DigesterException;
+
+ /**
+ * Update the checksum with the content of the input stream.
+ *
+ * @param is the input stream
+ * @throws DigesterException if there was a problem computing the hashcode.
+ */
+ void update( InputStream is )
+ throws DigesterException;
+
+}
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingDigester.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingDigester.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingMd5Digester.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingMd5Digester.java?rev=430367&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingMd5Digester.java (added)
+++ maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingMd5Digester.java Thu Aug 10 05:36:53 2006
@@ -0,0 +1,35 @@
+package org.apache.maven.repository.digest;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * An MD5 implementation of the streaming digester.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @plexus.component role="org.apache.maven.repository.digest.StreamingDigester" role-hint="md5"
+ */
+public class StreamingMd5Digester
+ extends AbstractStreamingDigester
+{
+ public StreamingMd5Digester()
+ throws NoSuchAlgorithmException
+ {
+ super( "MD5" );
+ }
+}
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingMd5Digester.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingMd5Digester.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingSha1Digester.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingSha1Digester.java?rev=430367&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingSha1Digester.java (added)
+++ maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingSha1Digester.java Thu Aug 10 05:36:53 2006
@@ -0,0 +1,35 @@
+package org.apache.maven.repository.digest;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * An SHA-1 implementation of the streaming digester.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @plexus.component role="org.apache.maven.repository.digest.StreamingDigester" role-hint="sha1"
+ */
+public class StreamingSha1Digester
+ extends AbstractStreamingDigester
+{
+ public StreamingSha1Digester()
+ throws NoSuchAlgorithmException
+ {
+ super( "SHA-1" );
+ }
+}
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingSha1Digester.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/StreamingSha1Digester.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/repository-manager/trunk/maven-repository-utils/src/test/java/org/apache/maven/repository/digest/DigesterTest.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-utils/src/test/java/org/apache/maven/repository/digest/DigesterTest.java?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-utils/src/test/java/org/apache/maven/repository/digest/DigesterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-utils/src/test/java/org/apache/maven/repository/digest/DigesterTest.java Thu Aug 10 05:36:53 2006
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-import junit.framework.TestCase;
+import org.codehaus.plexus.PlexusTestCase;
import java.io.File;
import java.io.IOException;
@@ -28,16 +28,33 @@
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
*/
public class DigesterTest
- extends TestCase
+ extends PlexusTestCase
{
- private Digester digester = new DefaultDigester();
-
private static final String MD5 = "adbc688ce77fa2aece4bb72cad9f98ba";
private static final String SHA1 = "2a7b459938e12a2dc35d1bf6cff35e9c2b592fa9";
private static final String WRONG_SHA1 = "4d8703779816556cdb8be7f6bb5c954f4b5730e2";
+ private Digester sha1Digest;
+
+ private Digester md5Digest;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ sha1Digest = (Digester) lookup( Digester.ROLE, "sha1" );
+ md5Digest = (Digester) lookup( Digester.ROLE, "md5" );
+ }
+
+ public void testAlgorithm()
+ {
+ assertEquals( "SHA-1", sha1Digest.getAlgorithm() );
+ assertEquals( "MD5", md5Digest.getAlgorithm() );
+ }
+
public void testBareDigestFormat()
throws DigesterException, IOException
{
@@ -45,7 +62,7 @@
try
{
- digester.verifyChecksum( file, MD5, Digester.MD5 );
+ md5Digest.verify( file, MD5 );
}
catch ( DigesterException e )
{
@@ -54,7 +71,7 @@
try
{
- digester.verifyChecksum( file, SHA1, Digester.SHA1 );
+ sha1Digest.verify( file, SHA1 );
}
catch ( DigesterException e )
{
@@ -63,7 +80,7 @@
try
{
- digester.verifyChecksum( file, WRONG_SHA1, Digester.SHA1 );
+ sha1Digest.verify( file, WRONG_SHA1 );
fail( "wrong checksum must throw an exception" );
}
catch ( DigesterException e )
@@ -73,12 +90,13 @@
}
public void testOpensslDigestFormat()
- throws IOException
+ throws IOException, DigesterException
{
File file = new File( getClass().getResource( "/test-file.txt" ).getPath() );
+
try
{
- digester.verifyChecksum( file, "MD5(test-file.txt)= " + MD5, Digester.MD5 );
+ md5Digest.verify( file, "MD5(test-file.txt)= " + MD5 );
}
catch ( DigesterException e )
{
@@ -87,25 +105,25 @@
try
{
- digester.verifyChecksum( file, "SHA1(test-file.txt)= " + SHA1, Digester.SHA1 );
+ md5Digest.verify( file, "MD5 (test-file.txt) = " + MD5 );
}
catch ( DigesterException e )
{
- fail( "OpenSSL SHA1 format must not cause exception" );
+ fail( "FreeBSD MD5 format must not cause exception" );
}
try
{
- digester.verifyChecksum( file, "MD5 (test-file.txt) = " + MD5, Digester.MD5 );
+ sha1Digest.verify( file, "SHA1(test-file.txt)= " + SHA1 );
}
catch ( DigesterException e )
{
- fail( "FreeBSD MD5 format must not cause exception" );
+ fail( "OpenSSL SHA1 format must not cause exception" );
}
try
{
- digester.verifyChecksum( file, "SHA1 (test-file.txt) = " + SHA1, Digester.SHA1 );
+ sha1Digest.verify( file, "SHA1 (test-file.txt) = " + SHA1 );
}
catch ( DigesterException e )
{
@@ -114,7 +132,7 @@
try
{
- digester.verifyChecksum( file, "SHA1 (FOO) = " + SHA1, Digester.SHA1 );
+ sha1Digest.verify( file, "SHA1 (FOO) = " + SHA1 );
fail( "Wrong filename should cause an exception" );
}
catch ( DigesterException e )
@@ -124,7 +142,7 @@
try
{
- digester.verifyChecksum( file, "SHA1 (test-file.txt) = " + WRONG_SHA1, Digester.SHA1 );
+ sha1Digest.verify( file, "SHA1 (test-file.txt) = " + WRONG_SHA1 );
fail( "Wrong sha1 should cause an exception" );
}
catch ( DigesterException e )
@@ -134,12 +152,13 @@
}
public void testGnuDigestFormat()
- throws NoSuchAlgorithmException, IOException
+ throws NoSuchAlgorithmException, IOException, DigesterException
{
File file = new File( getClass().getResource( "/test-file.txt" ).getPath() );
+
try
{
- digester.verifyChecksum( file, MD5 + " *test-file.txt", Digester.MD5 );
+ md5Digest.verify( file, MD5 + " *test-file.txt" );
}
catch ( DigesterException e )
{
@@ -148,25 +167,25 @@
try
{
- digester.verifyChecksum( file, SHA1 + " *test-file.txt", Digester.SHA1 );
+ md5Digest.verify( file, MD5 + " test-file.txt" );
}
catch ( DigesterException e )
{
- fail( "GNU format SHA1 must not cause exception" );
+ fail( "GNU text format MD5 must not cause exception" );
}
try
{
- digester.verifyChecksum( file, MD5 + " test-file.txt", Digester.MD5 );
+ sha1Digest.verify( file, SHA1 + " *test-file.txt" );
}
catch ( DigesterException e )
{
- fail( "GNU text format MD5 must not cause exception" );
+ fail( "GNU format SHA1 must not cause exception" );
}
try
{
- digester.verifyChecksum( file, SHA1 + " test-file.txt", Digester.SHA1 );
+ sha1Digest.verify( file, SHA1 + " test-file.txt" );
}
catch ( DigesterException e )
{
@@ -175,7 +194,7 @@
try
{
- digester.verifyChecksum( file, SHA1 + " FOO", Digester.SHA1 );
+ sha1Digest.verify( file, SHA1 + " FOO" );
fail( "Wrong filename cause an exception" );
}
catch ( DigesterException e )
@@ -185,7 +204,7 @@
try
{
- digester.verifyChecksum( file, WRONG_SHA1 + " test-file.txt", Digester.SHA1 );
+ sha1Digest.verify( file, WRONG_SHA1 + " test-file.txt" );
fail( "Wrong SHA1 cause an exception" );
}
catch ( DigesterException e )
@@ -200,7 +219,7 @@
File file = new File( getClass().getResource( "/test-file.txt" ).getPath() );
try
{
- digester.verifyChecksum( file, SHA1 + " *test-file.txt \n", Digester.SHA1 );
+ sha1Digest.verify( file, SHA1 + " *test-file.txt \n" );
}
catch ( DigesterException e )
{
Modified: maven/repository-manager/trunk/maven-repository-webapp/pom.xml
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/pom.xml?rev=430367&r1=430366&r2=430367&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-webapp/pom.xml (original)
+++ maven/repository-manager/trunk/maven-repository-webapp/pom.xml Thu Aug 10 05:36:53 2006
@@ -151,14 +151,13 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
- <configuration>
- <instrumentation>
- <!-- TODO: should this module have tests? -->
- <excludes>
- <exclude>**/**</exclude>
- </excludes>
- </instrumentation>
- </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
<plugin>
<groupId>org.codehaus.plexus</groupId>