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 <hbout...@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 ) {