You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2020/03/03 23:16:38 UTC

[maven-studies] branch maven-buildinfo-plugin updated: generate minimal buildinfo from reference artifacts

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch maven-buildinfo-plugin
in repository https://gitbox.apache.org/repos/asf/maven-studies.git


The following commit(s) were added to refs/heads/maven-buildinfo-plugin by this push:
     new 83f7701  generate minimal buildinfo from reference artifacts
83f7701 is described below

commit 83f7701a7380f0b073de89ce5f13b859444fa0e1
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Wed Mar 4 00:16:34 2020 +0100

    generate minimal buildinfo from reference artifacts
---
 .../maven/plugins/buildinfo/BuildInfoWriter.java   | 24 ++++++++++++++--------
 .../apache/maven/plugins/buildinfo/SaveMojo.java   | 18 +++++++++++-----
 2 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/buildinfo/BuildInfoWriter.java b/src/main/java/org/apache/maven/plugins/buildinfo/BuildInfoWriter.java
index 33ec2e9..61b45d3 100644
--- a/src/main/java/org/apache/maven/plugins/buildinfo/BuildInfoWriter.java
+++ b/src/main/java/org/apache/maven/plugins/buildinfo/BuildInfoWriter.java
@@ -21,8 +21,8 @@ package org.apache.maven.plugins.buildinfo;
 
 import java.io.File;
 import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -37,7 +37,7 @@ public class BuildInfoWriter
     private final Log log;
     private final PrintWriter p;
     private final boolean mono;
-    private final List<Artifact> artifacts = new ArrayList<>();
+    private final Map<Artifact, String> artifacts = new HashMap<>();
     private int projectCount = -1;
 
     BuildInfoWriter( Log log, PrintWriter p, boolean mono )
@@ -151,15 +151,21 @@ public class BuildInfoWriter
     private void printArtifact( String prefix, int i, Artifact artifact )
         throws MojoExecutionException
     {
-        File file = artifact.getFile();
+        prefix = prefix + i;
+        printFile( prefix, artifact.getFile() );
+        artifacts.put( artifact, prefix );
+    }
+
+    public void printFile( String prefix, File file )
+        throws MojoExecutionException
+    {
         p.println();
-        p.println( prefix + i + ".filename=" + file.getName() );
-        p.println( prefix + i + ".length=" + file.length() );
-        p.println( prefix + i + ".checksums.sha512=" + DigestHelper.calculateSha512( file ) );
-        artifacts.add( artifact );
+        p.println( prefix + ".filename=" + file.getName() );
+        p.println( prefix + ".length=" + file.length() );
+        p.println( prefix + ".checksums.sha512=" + DigestHelper.calculateSha512( file ) );
     }
 
-    public List<Artifact> getArtifacts()
+    public Map<Artifact, String> getArtifacts()
     {
         return artifacts;
     }
diff --git a/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java b/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java
index c6838ec..4a36903 100644
--- a/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java
+++ b/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java
@@ -51,6 +51,7 @@ import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Save buildinfo file, as specified in
@@ -154,7 +155,7 @@ public class SaveMojo
             }
         }
 
-        List<Artifact> artifacts = generateBuildinfo( mono );
+        Map<Artifact, String> artifacts = generateBuildinfo( mono );
         getLog().info( "Saved " + ( mono ? "" : "aggregate " ) + "info on build to " + buildinfoFile );
 
         if ( attach )
@@ -173,7 +174,7 @@ public class SaveMojo
         }
     }
 
-    private List<Artifact> generateBuildinfo( boolean mono )
+    private Map<Artifact, String> generateBuildinfo( boolean mono )
             throws MojoExecutionException
     {
         MavenProject root = mono ? project : getExecutionRoot();
@@ -219,7 +220,7 @@ public class SaveMojo
         return null;
     }
 
-    private void checkAgainstReference( boolean mono, List<Artifact> artifacts )
+    private void checkAgainstReference( boolean mono, Map<Artifact, String> artifacts )
         throws MojoExecutionException
     {
         RemoteRepository repo = createReferenceRepo();
@@ -230,7 +231,7 @@ public class SaveMojo
         if ( referenceBuildinfo == null )
         {
             // download reference artifacts
-            for ( Artifact artifact : artifacts )
+            for ( Artifact artifact : artifacts.keySet() )
             {
                 try
                 {
@@ -250,7 +251,14 @@ public class SaveMojo
             {
                 BuildInfoWriter bi = new BuildInfoWriter( getLog(), p, mono );
 
-                // TODO artifact(s) fingerprints
+                for ( Map.Entry<Artifact, String> entry : artifacts.entrySet() )
+                {
+                    Artifact artifact = entry.getKey();
+                    String prefix = entry.getValue();
+                    bi.printFile( prefix, new File( referenceDir, artifact.getFile().getName() ) );
+                }
+
+                getLog().info( "Minimal buildinfo generated from downloaded artifacts: " + referenceBuildinfo );
             }
             catch ( IOException e )
             {