From 38e5d115c9beece378082542c55ddbc5013caf57 Mon Sep 17 00:00:00 2001 From: Christoph Kutzinski Date: Tue, 6 Sep 2011 20:24:04 +0200 Subject: [PATCH] minor follow up and changelog for JENKINS-8383 --- changelog.html | 3 +++ .../hudson/maven/reporters/MavenFingerprinter.java | 13 +++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/changelog.html b/changelog.html index c718cce2fb..132cf8cf90 100644 --- a/changelog.html +++ b/changelog.html @@ -67,6 +67,9 @@ Upcoming changes Bundling the translation assistance plugin in the hope of increasing the contribution.
  • Introduce a fine-grained permission to control who is allowed to run the Groovy Console. +
  • + Maven jobs should include fingerprints of their parent POMs + (issue 8383) diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenFingerprinter.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenFingerprinter.java index 490f5bdefb..51d4d96c9a 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenFingerprinter.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenFingerprinter.java @@ -81,7 +81,8 @@ public class MavenFingerprinter extends MavenReporter { * Mojos perform different dependency resolution, so we need to check this for each mojo. */ public boolean postExecute(MavenBuildProxy build, MavenProject pom, MojoInfo mojo, BuildListener listener, Throwable error) throws InterruptedException, IOException { - recordParents(pom); + // TODO (kutzi, 2011/09/06): it should be perfectly save to move all these records to the + // postBuild method as artifacts should only be added by mojos, but never removed/modified. record(pom.getArtifacts(),used); record(pom.getArtifact(),produced); record(pom.getAttachedArtifacts(),produced); @@ -94,7 +95,11 @@ public class MavenFingerprinter extends MavenReporter { * Sends the collected fingerprints over to the master and record them. */ public boolean postBuild(MavenBuildProxy build, MavenProject pom, BuildListener listener) throws InterruptedException, IOException { + + recordParents(pom); + build.executeAsync(new BuildCallable() { + private static final long serialVersionUID = -1360161848504044869L; // record is transient, so needs to make a copy first private final Map u = used; private final Map p = produced; @@ -125,7 +130,7 @@ public class MavenFingerprinter extends MavenReporter { while (parent != null) { File parentFile = parent.getFile(); if (parentFile == null) { - // Parent Artifact contains no acual file, so we resolve against + // Parent artifact contains no actual file, so we resolve against // the local repository parentFile = parent.getProjectBuildingRequest() .getLocalRepository().find(parent.getArtifact()) @@ -161,14 +166,14 @@ public class MavenFingerprinter extends MavenReporter { * This method contains the logic to avoid doubly recording the fingerprint * of the same file. */ - private void record(String groupId, File f, Map record) throws IOException, InterruptedException { + private void record(String fileNamePrefix, File f, Map record) throws IOException, InterruptedException { if(f==null || files.contains(f) || !f.isFile()) return; // new file files.add(f); String digest = new FilePath(f).digest(); - record.put(groupId+':'+f.getName(),digest); + record.put(fileNamePrefix+':'+f.getName(),digest); } @Extension -- GitLab