You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2009/07/27 09:34:40 UTC
svn commit: r798059 - in
/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src:
main/java/org/apache/maven/archiva/consumers/core/ main/resources/META-INF/
test/java/org/apache/maven/archiva/consumers/core/ test/resou...
Author: oching
Date: Mon Jul 27 07:34:40 2009
New Revision: 798059
URL: http://svn.apache.org/viewvc?rev=798059&view=rev
Log:
[MRM-1212]
o move fixing of incorrect checksums to ArtifactMissingChecksumConsumer
o added tests
Added:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.md5
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.sha1
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.md5
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.sha1
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/no-checksums-artifact/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/no-checksums-artifact/1.0/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/no-checksums-artifact/1.0/no-checksums-artifact-1.0.jar
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/resources/META-INF/spring-context.xml
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java?rev=798059&r1=798058&r2=798059&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumer.java Mon Jul 27 07:34:40 2009
@@ -19,6 +19,8 @@
* under the License.
*/
+import org.apache.archiva.checksum.ChecksumAlgorithm;
+import org.apache.archiva.checksum.ChecksummedFile;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ConfigurationNames;
import org.apache.maven.archiva.configuration.FileTypes;
@@ -26,9 +28,6 @@
import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.codehaus.plexus.digest.ChecksumFile;
-import org.codehaus.plexus.digest.Digester;
-import org.codehaus.plexus.digest.DigesterException;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.registry.Registry;
@@ -41,14 +40,14 @@
import java.util.List;
/**
- * ArtifactMissingChecksumsConsumer - Create missing checksums for the artifact.
+ * ArtifactMissingChecksumsConsumer - Create missing and/or fix invalid checksums for the artifact.
*
* @version $Id$
*/
public class ArtifactMissingChecksumsConsumer
extends AbstractMonitoredConsumer
implements KnownRepositoryContentConsumer, RegistryListener, Initializable
-{
+{
private String id;
private String description;
@@ -57,36 +56,26 @@
private FileTypes filetypes;
- private Digester digestSha1;
-
- private Digester digestMd5;
-
- private ChecksumFile checksum;
+ private ChecksummedFile checksum;
private static final String TYPE_CHECKSUM_NOT_FILE = "checksum-bad-not-file";
-
+
private static final String TYPE_CHECKSUM_CANNOT_CALC = "checksum-calc-failure";
-
+
private static final String TYPE_CHECKSUM_CANNOT_CREATE = "checksum-create-failure";
private File repositoryDir;
private List<String> includes = new ArrayList<String>();
-
+
public ArtifactMissingChecksumsConsumer(String id,
String description,
ArchivaConfiguration configuration,
- FileTypes filetypes,
- Digester digestSha1,
- Digester digestMd5,
- ChecksumFile checksum) {
+ FileTypes filetypes) {
this.id = id;
this.description = description;
this.configuration = configuration;
this.filetypes = filetypes;
- this.digestSha1 = digestSha1;
- this.digestMd5 = digestMd5;
- this.checksum = checksum;
}
public String getId()
@@ -128,37 +117,51 @@
public void processFile( String path )
throws ConsumerException
{
- createIfMissing( path, digestSha1 );
- createIfMissing( path, digestMd5 );
+ createFixChecksum( path, new ChecksumAlgorithm[] { ChecksumAlgorithm.SHA1 } );
+ createFixChecksum( path, new ChecksumAlgorithm[] { ChecksumAlgorithm.MD5 } );
}
-
- private void createIfMissing( String path, Digester digester )
+
+ private void createFixChecksum( String path, ChecksumAlgorithm checksumAlgorithm[] )
{
- File checksumFile = new File( this.repositoryDir, path + digester.getFilenameExtension() );
- if ( !checksumFile.exists() )
+ File artifactFile = new File( this.repositoryDir, path );
+ File checksumFile = new File( this.repositoryDir, path + checksumAlgorithm[0].getExt() );
+
+ if( checksumFile.exists() )
{
+ checksum = new ChecksummedFile( artifactFile );
try
{
- checksum.createChecksum( new File( this.repositoryDir, path ), digester );
- triggerConsumerInfo( "Created missing checksum file " + checksumFile.getAbsolutePath() );
+ if( !checksum.isValidChecksum( checksumAlgorithm[0] ) )
+ {
+ checksum.fixChecksums( checksumAlgorithm );
+ triggerConsumerInfo( "Fixed checksum file " + checksumFile.getAbsolutePath() );
+ }
}
- catch ( DigesterException e )
+ catch ( IOException e )
{
- triggerConsumerError( TYPE_CHECKSUM_CANNOT_CALC,
- "Cannot calculate checksum for file " + checksumFile + ": " + e.getMessage() );
+ triggerConsumerError( TYPE_CHECKSUM_CANNOT_CALC, "Cannot calculate checksum for file " + checksumFile +
+ ": " + e.getMessage() );
+ }
+ }
+ else if( !checksumFile.exists() )
+ {
+ checksum = new ChecksummedFile( artifactFile );
+ try
+ {
+ checksum.createChecksum( checksumAlgorithm[0] );
+ triggerConsumerInfo( "Created missing checksum file " + checksumFile.getAbsolutePath() );
}
catch ( IOException e )
{
- triggerConsumerError( TYPE_CHECKSUM_CANNOT_CREATE,
- "Cannot create checksum for file " + checksumFile + ": " + e.getMessage() );
+ triggerConsumerError( TYPE_CHECKSUM_CANNOT_CREATE, "Cannot create checksum for file " + checksumFile +
+ ": " + e.getMessage() );
}
}
- else if ( !checksumFile.isFile() )
+ else
{
triggerConsumerWarning( TYPE_CHECKSUM_NOT_FILE,
"Checksum file " + checksumFile.getAbsolutePath() + " is not a file." );
}
-
}
public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/resources/META-INF/spring-context.xml?rev=798059&r1=798058&r2=798059&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/resources/META-INF/spring-context.xml (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/resources/META-INF/spring-context.xml Mon Jul 27 07:34:40 2009
@@ -8,7 +8,7 @@
<value>create-missing-checksums</value>
</constructor-arg>
<constructor-arg>
- <value>Create Missing Checksums (.sha1, .md5)</value>
+ <value>Create Missing and/or Fix Invalid Checksums (.sha1, .md5)</value>
</constructor-arg>
<constructor-arg>
<ref bean="archivaConfiguration"/>
@@ -16,14 +16,5 @@
<constructor-arg>
<ref bean="fileTypes"/>
</constructor-arg>
- <constructor-arg>
- <ref bean="digester#sha1"/>
- </constructor-arg>
- <constructor-arg>
- <ref bean="digester#md5"/>
- </constructor-arg>
- <constructor-arg>
- <ref bean="checksumFile"/>
- </constructor-arg>
</bean>
</beans>
\ No newline at end of file
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java?rev=798059&r1=798058&r2=798059&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java Mon Jul 27 07:34:40 2009
@@ -1,5 +1,12 @@
package org.apache.maven.archiva.consumers.core;
+import java.io.File;
+import java.util.Calendar;
+
+import org.apache.archiva.checksum.ChecksumAlgorithm;
+import org.apache.archiva.checksum.ChecksummedFile;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -22,12 +29,62 @@
public class ArtifactMissingChecksumsConsumerTest
extends AbstractArtifactConsumerTest
{
+ private ManagedRepositoryConfiguration repoConfig;
+
@Override
protected void setUp()
throws Exception
{
super.setUp();
+ repoConfig = new ManagedRepositoryConfiguration();
+ repoConfig.setId( "test-repo" );
+ repoConfig.setName( "Test Repository" );
+ repoConfig.setLayout( "default" );
+ repoConfig.setLocation( new File( getBasedir(), "target/test-classes/test-repo/" ).getPath() );
+
consumer = (ArtifactMissingChecksumsConsumer) lookup( "artifactMissingChecksumsConsumer" );
}
+
+ public void testNoExistingChecksums()
+ throws Exception
+ {
+ String path = "/no-checksums-artifact/1.0/no-checksums-artifact-1.0.jar";
+
+ File sha1File = new File( repoConfig.getLocation(), path + ".sha1" );
+ File md5File = new File( repoConfig.getLocation(), path + ".md5" );
+
+ assertFalse( sha1File.exists() );
+ assertFalse( md5File.exists() );
+
+ consumer.beginScan( repoConfig, Calendar.getInstance().getTime() );
+
+ consumer.processFile( path );
+
+ assertTrue( sha1File.exists() );
+ assertTrue( md5File.exists() );
+ }
+
+ public void testExistingIncorrectChecksums()
+ throws Exception
+ {
+ String path = "/incorrect-checksums/1.0/incorrect-checksums-1.0.jar";
+
+ File sha1File = new File( repoConfig.getLocation(), path + ".sha1" );
+ File md5File = new File( repoConfig.getLocation(), path + ".md5" );
+
+ ChecksummedFile checksum = new ChecksummedFile( new File( repoConfig.getLocation(), path ) );
+
+ assertTrue( sha1File.exists() );
+ assertTrue( md5File.exists() );
+ assertFalse( checksum.isValidChecksums( new ChecksumAlgorithm[] { ChecksumAlgorithm.MD5, ChecksumAlgorithm.SHA1 } ) );
+
+ consumer.beginScan( repoConfig, Calendar.getInstance().getTime() );
+
+ consumer.processFile( path );
+
+ assertTrue( sha1File.exists() );
+ assertTrue( md5File.exists() );
+ assertTrue( checksum.isValidChecksums( new ChecksumAlgorithm[] { ChecksumAlgorithm.MD5, ChecksumAlgorithm.SHA1 } ) );
+ }
}
Added: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar?rev=798059&view=auto
==============================================================================
(empty)
Added: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.md5
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.md5?rev=798059&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.md5 (added)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.md5 Mon Jul 27 07:34:40 2009
@@ -0,0 +1 @@
+d41d8cd98f00b204e9800998ecf8427e correct-checksums-1.0.jar
\ No newline at end of file
Added: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.sha1
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.sha1?rev=798059&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.sha1 (added)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/correct-checksums/1.0/correct-checksums-1.0.jar.sha1 Mon Jul 27 07:34:40 2009
@@ -0,0 +1 @@
+da39a3ee5e6b4b0d3255bfef95601890afd80709
\ No newline at end of file
Added: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar?rev=798059&view=auto
==============================================================================
(empty)
Added: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.md5
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.md5?rev=798059&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.md5 (added)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.md5 Mon Jul 27 07:34:40 2009
@@ -0,0 +1 @@
+902a360ecad98a34b59863c1e65bcf71 incorrect-checksums-1.0.jar
\ No newline at end of file
Added: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.sha1
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.sha1?rev=798059&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.sha1 (added)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/incorrect-checksums/1.0/incorrect-checksums-1.0.jar.sha1 Mon Jul 27 07:34:40 2009
@@ -0,0 +1 @@
+dcab88fc2a043c2479a6de676a2f8179e9ea2167
\ No newline at end of file
Added: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/no-checksums-artifact/1.0/no-checksums-artifact-1.0.jar
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/test-repo/no-checksums-artifact/1.0/no-checksums-artifact-1.0.jar?rev=798059&view=auto
==============================================================================
(empty)