From 1f0006795ab694191c0ffa6ca8f1f7bd945fc8d9 Mon Sep 17 00:00:00 2001 From: Tomas Bjerre Date: Wed, 18 Apr 2018 17:30:40 +0200 Subject: [PATCH] Custom cause #57 --- .../jenkinsci/plugins/gwt/GenericCause.java | 18 +++++++++++++----- .../jenkinsci/plugins/gwt/GenericTrigger.java | 17 ++++++++++++++--- .../plugins/gwt/GenericTrigger/config.jelly | 6 ++++++ 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericCause.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericCause.java index 28510c8..59d3ac1 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericCause.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericCause.java @@ -1,5 +1,6 @@ package org.jenkinsci.plugins.gwt; +import static com.google.common.base.Strings.isNullOrEmpty; import hudson.model.Cause; import java.util.Map; @@ -10,16 +11,23 @@ public class GenericCause extends Cause { private final String postContent; private final boolean printContributedVariables; private final boolean printPostContent; + private final String cause; public GenericCause( - String postContent, - Map resolvedVariables, - boolean printContributedVariables, - boolean printPostContent) { + final String postContent, + final Map resolvedVariables, + final boolean printContributedVariables, + final boolean printPostContent, + final String cause) { this.postContent = postContent; this.resolvedVariables = resolvedVariables; this.printContributedVariables = printContributedVariables; this.printPostContent = printPostContent; + if (!isNullOrEmpty(cause)) { + this.cause = cause; + } else { + this.cause = "Generic Cause"; + } } public boolean isPrintContributedVariables() { @@ -40,6 +48,6 @@ public String getPostContent() { @Override public String getShortDescription() { - return "Generic Cause"; + return cause; } } diff --git a/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java b/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java index fe46e16..af6ebff 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/GenericTrigger.java @@ -43,6 +43,7 @@ public class GenericTrigger extends Trigger> { private List genericHeaderVariables = newArrayList(); private boolean printPostContent; private boolean printContributedVariables; + private String causeString; public static class GenericDescriptor extends TriggerDescriptor { @@ -71,6 +72,15 @@ public GenericTrigger( this.genericHeaderVariables = genericHeaderVariables; } + @DataBoundSetter + public void setCauseString(final String causeString) { + this.causeString = causeString; + } + + public String getCauseString() { + return causeString; + } + @DataBoundSetter public void setPrintContributedVariables(final boolean printContributedVariables) { this.printContributedVariables = printContributedVariables; @@ -111,14 +121,15 @@ public GenericTriggerResults trigger( hudson.model.Queue.Item item = null; if (isMatching) { - final GenericCause cause = + final String cause = renderText(causeString, resolvedVariables); + final GenericCause genericCause = new GenericCause( - postContent, resolvedVariables, printContributedVariables, printPostContent); + postContent, resolvedVariables, printContributedVariables, printPostContent, cause); final ParametersAction parameters = createParameters(job, resolvedVariables); item = retrieveScheduleJob(job) // - .scheduleBuild2(job, 0, new CauseAction(cause), parameters); + .scheduleBuild2(job, 0, new CauseAction(genericCause), parameters); } return new GenericTriggerResults( item, resolvedVariables, renderedRegexpFilterText, regexpFilterExpression); diff --git a/src/main/resources/org/jenkinsci/plugins/gwt/GenericTrigger/config.jelly b/src/main/resources/org/jenkinsci/plugins/gwt/GenericTrigger/config.jelly index 0e7a228..6ad1718 100644 --- a/src/main/resources/org/jenkinsci/plugins/gwt/GenericTrigger/config.jelly +++ b/src/main/resources/org/jenkinsci/plugins/gwt/GenericTrigger/config.jelly @@ -22,6 +22,12 @@ + + + + This will be displayed in any triggered job. You can use the variables here to create a custom cause like "$name committed to $branch", if you have configured variables named name and branch. + +