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/05/05 18:52:43 UTC

svn commit: r400110 - in /maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly: repository/DefaultRepositoryAssembler.java utils/DigestUtils.java

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:brett@apache.org">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;