diff options
author | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2015-10-23 19:10:25 +0300 |
---|---|---|
committer | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2015-10-23 19:10:25 +0300 |
commit | 6ffc1ff4a3e89e5c4a19dc85dcbbf2e21a4f9115 (patch) | |
tree | b205fc4c4c41ec1326268f768b57d9fcef7446d1 /src/main/java/linaro | |
parent | 8db0db4dbf0d560fd2b8a325a39a039ec8a38f87 (diff) |
Replacing parameters on each invocation of build step is required to support
requesting tokens from multiple servers in row to support complex publishing
scenarios. Having a separate Java class for paramters is a pre-requisite for
such replacing.
AbstractBuild.replaceAction also requires fairly recent Jenkins core, so just
bump dependency version to the current LTS we use.
Change-Id: I01de367d0db22bcd0fd43476894a5d072161ac03
Diffstat (limited to 'src/main/java/linaro')
-rw-r--r-- | src/main/java/linaro/pubapi/LinaroPubAPIKey.java | 2 | ||||
-rw-r--r-- | src/main/java/linaro/pubapi/LinaroPubTokenAction.java | 33 |
2 files changed, 34 insertions, 1 deletions
diff --git a/src/main/java/linaro/pubapi/LinaroPubAPIKey.java b/src/main/java/linaro/pubapi/LinaroPubAPIKey.java index ca91ac3..3f85f80 100644 --- a/src/main/java/linaro/pubapi/LinaroPubAPIKey.java +++ b/src/main/java/linaro/pubapi/LinaroPubAPIKey.java @@ -181,7 +181,7 @@ public class LinaroPubAPIKey extends Builder { params.add(new StringParameterValue("PUBLISH_SERVER", serverUrl)); } - build.addAction(new ParametersAction(params)); + build.replaceAction(new LinaroPubTokenAction(params)); return true; } diff --git a/src/main/java/linaro/pubapi/LinaroPubTokenAction.java b/src/main/java/linaro/pubapi/LinaroPubTokenAction.java new file mode 100644 index 0000000..b8d01de --- /dev/null +++ b/src/main/java/linaro/pubapi/LinaroPubTokenAction.java @@ -0,0 +1,33 @@ +package linaro.pubapi; + +import java.util.List; +import org.kohsuke.stapler.export.ExportedBean; +import hudson.model.ParametersAction; +import hudson.model.ParameterValue; + +// We need a separate class for our parameters to be to able +// easily replace older param instance in case "get token" +// build steps is used more than once in a build (which is +// an extended requirements from Builds&Baselines). And Jenkins +// distinguishes various types of params by a class. However, +// in some places, Jenkins also makes subclass checks, so +// there's no complete warranty this won't interfere with +// standard build params (as represented by ParametersAction). +// Still, it's good improvement over previous verison which just +// reused ParametersAction without any guards. + +@ExportedBean +public class LinaroPubTokenAction extends ParametersAction { + + public LinaroPubTokenAction(List<ParameterValue> parameters) { + super(parameters); + } + + public String getDisplayName() { + return "Linaro PubAPI"; + } + + public String getUrlName() { + return "linaropub"; + } +} |