diff --git a/core/src/main/java/hudson/matrix/MatrixBuild.java b/core/src/main/java/hudson/matrix/MatrixBuild.java index 0e7999079f4f9f25f86d513eac1165e27ed23569..36ccab3da0f7825324d1fd8d3cc864106f87c1a6 100644 --- a/core/src/main/java/hudson/matrix/MatrixBuild.java +++ b/core/src/main/java/hudson/matrix/MatrixBuild.java @@ -7,11 +7,10 @@ import hudson.model.Executor; import hudson.model.Fingerprint; import hudson.model.Hudson; import hudson.model.JobProperty; +import hudson.model.ParametersAction; import hudson.model.Queue; import hudson.model.Result; import hudson.tasks.Publisher; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; import java.io.File; import java.io.IOException; @@ -21,6 +20,9 @@ import java.util.Calendar; import java.util.Collection; import java.util.List; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + /** * Build of {@link MatrixProject}. * @@ -145,7 +147,12 @@ public class MatrixBuild extends AbstractBuild { try { for(MatrixConfiguration c : activeConfigurations) { logger.println(Messages.MatrixBuild_Triggering(c.getDisplayName())); - c.scheduleBuild(); + ParametersAction parameters = getAction(ParametersAction.class); + if (parameters != null) { + c.scheduleBuild(parameters); + } else { + c.scheduleBuild(); + } } // this occupies an executor unnecessarily. diff --git a/core/src/main/java/hudson/matrix/MatrixConfiguration.java b/core/src/main/java/hudson/matrix/MatrixConfiguration.java index b42f8f68bc4a7d3bd9b7be67a7a14a43842fdd78..b4856aa42aaa908c2c9ba0c40631bb581009c7aa 100644 --- a/core/src/main/java/hudson/matrix/MatrixConfiguration.java +++ b/core/src/main/java/hudson/matrix/MatrixConfiguration.java @@ -10,6 +10,9 @@ import hudson.model.ItemGroup; import hudson.model.JDK; import hudson.model.Label; import hudson.model.Node; +import hudson.model.ParameterValue; +import hudson.model.ParameterizedProjectTask; +import hudson.model.ParametersAction; import hudson.model.Project; import hudson.model.SCMedItem; import hudson.scm.SCM; @@ -255,4 +258,10 @@ public class MatrixConfiguration extends Project * jobs to use longer path names. */ public static boolean useShortWorkspaceName = Boolean.getBoolean(MatrixConfiguration.class.getName()+".useShortWorkspaceName"); + + public boolean scheduleBuild(ParametersAction parameters) { + return Hudson.getInstance().getQueue().add( + new ParameterizedProjectTask(this, parameters.getParameters()), getQuietPeriod()); + } + }