Author: brett Date: Fri May 5 09:52:41 2006 New Revision: 400110 URL: http://svn.apache.org/viewcvs?rev=400110&view=rev Log: write checksums
Added: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java - copied, changed from r395775, maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java?rev=400110&r1=400109&r2=400110&view=diff ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/repository/DefaultRepositoryAssembler.java Fri May 5 09:52:41 2006 @@ -34,6 +34,7 @@ import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter; +import org.apache.maven.plugin.assembly.utils.DigestUtils; import org.apache.maven.plugins.assembly.model.GroupVersionAlignment; import org.apache.maven.plugins.assembly.model.Repository; import org.apache.maven.project.DefaultMavenProjectBuilder; @@ -48,6 +49,7 @@ import java.io.IOException; import java.io.Writer; import java.lang.reflect.Field; +import java.security.NoSuchAlgorithmException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -88,6 +90,8 @@ private Set groupVersionAlignmentExcludes; + private DigestUtils digester = new DigestUtils(); + public void assemble( File repositoryDirectory, Repository repository, MavenProject project, ArtifactRepository localRepository ) throws RepositoryAssemblyException @@ -158,6 +162,8 @@ File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( a ) ); FileUtils.copyFile( a.getFile(), targetFile ); + writeChecksums( targetFile ); + if ( !"pom".equals( a.getType() ) ) { // The correct metadata does not get pulled down unless this is used. Not @@ -169,7 +175,10 @@ File sourceFile = new File( localRepository.getBasedir(), localRepository.pathOf( pomArtifact ) ); targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pomArtifact ) ); + FileUtils.copyFile( sourceFile, targetFile ); + + writeChecksums( targetFile ); } } } @@ -241,12 +250,23 @@ IOUtil.close( writer ); } - File metadataFileRemote = new File( targetRepository.getBasedir(), - targetRepository.pathOfRemoteRepositoryMetadata( metadata ) ); - try { + writeChecksums( metadataFile ); + + File metadataFileRemote = new File( targetRepository.getBasedir(), + targetRepository.pathOfRemoteRepositoryMetadata( + metadata ) ); + FileUtils.copyFile( metadataFile, metadataFileRemote ); + + FileUtils.copyFile( new File( metadataFile.getParentFile(), metadataFile.getName() + ".sha1" ), + new File( metadataFileRemote.getParentFile(), + metadataFileRemote.getName() + ".sha1" ) ); + + FileUtils.copyFile( new File( metadataFile.getParentFile(), metadataFile.getName() + ".md5" ), + new File( metadataFileRemote.getParentFile(), + metadataFileRemote.getName() + ".md5" ) ); } catch ( IOException e ) { @@ -254,6 +274,23 @@ } } } + } + } + + private void writeChecksums( File file ) + throws IOException, RepositoryAssemblyException + { + try + { + String md5 = digester.createChecksum( file, "MD5" ); + String sha1 = digester.createChecksum( file, "SHA-1" ); + + FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".md5" ).getAbsolutePath(), md5 ); + FileUtils.fileWrite( new File( file.getParentFile(), file.getName() + ".sha1" ).getAbsolutePath(), sha1 ); + } + catch ( NoSuchAlgorithmException e ) + { + throw new RepositoryAssemblyException( "Unable to get write checksums: " + e.getMessage(), e ); } } Copied: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java (from r395775, maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java) URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java?p2=maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java&p1=maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java&r1=395775&r2=400110&rev=400110&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-utils/src/main/java/org/apache/maven/repository/digest/DefaultDigester.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/DigestUtils.java Fri May 5 09:52:41 2006 @@ -1,18 +1,7 @@ -package org.apache.maven.repository.digest; - -import org.codehaus.plexus.util.IOUtil; - -import java.io.File; -import java.io.FileInputStream; -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; +package org.apache.maven.plugin.assembly.utils; /* - * Copyright 2005-2006 The Apache Software Foundation. + * Copyright 2001-2005 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. @@ -27,14 +16,23 @@ * limitations under the License. */ +import org.codehaus.plexus.util.IOUtil; + +import java.io.File; +import java.io.FileInputStream; +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; + /** - * Create a digest for a file. + * Create a digest for a file. Stolen from repository-utils - once released, use that instead. * * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a> - * @plexus.component role="org.apache.maven.repository.digest.Digester" */ -public class DefaultDigester - implements Digester +public class DigestUtils { private static final int CHECKSUM_BUFFER_SIZE = 16384;