Change By: centic (01/Mar/13 3:31 PM)
Description: For one of my Jobs I need multiple lines of text in one parameter, e.g.

In the parameterized build trigger plugin I specify this parameter with "\n":
{quote}
PROJECTPROPERTIES=sonar.projectKey=preismonitor-lokal\nsonar.projectName=preismonitor-lokal
{quote}

The "\n" correctly passes the parameter with newline characters to an upcoming biuld.

In the build.xml of the jenkins-build, the newlines are stored normally, however there are problems later on if other plugins work with this data because the parameter-type is "StringParameterValue" instead of "TextParameterValue":

{code:xml}<hudson.model.StringParameterValue>
            <name>PROJECTPROPERTIES</name>
            <value>sonar.projectKey=preismonitor-lokal
sonar.projectName=preismonitor-lokal</value>
          </hudson.model.StringParameterValue>{code}

E.g. if I use the rebuild-plugin to re-trigger the build later on, it seems to cut off the newlines and pass the string in one single line, which causes the rebuild to fail:

{quote}
... -Dsonar.projectKey=preismonitor-lokalsonar.projectName=preismonitor-lokal ...
{quote}

I will attach a The following  patch  which  creates a TextParameterValue if the value contains newlines. This makes this work  in all cases  locally for me:

{code}
diff --git a/src/main/java/hudson/plugins/parameterizedtrigger/PredefinedBuildParameters
. java b/src/main/java/hudson/plugins/parameterizedtrigger/PredefinedBuildParameters.java
index b1cbc73..26f2e50 100644
--- a/src/main/java/hudson/plugins/parameterizedtrigger/PredefinedBuildParameters.java
+++ b/src/main/java/hudson/plugins/parameterizedtrigger/PredefinedBuildParameters.java
@@ -2,13 +2,14 @@
 
 import hudson.EnvVars;
 import hudson.Extension;
-import hudson.model.AbstractBuild;
 import hudson.model.Action;
-import hudson.model.Descriptor;
 import hudson.model.ParameterValue;
+import hudson.model.TaskListener;
+import hudson.model.AbstractBuild;
+import hudson.model.Descriptor;
 import hudson.model.ParametersAction;
 import hudson.model.StringParameterValue;
-import hudson.model.TaskListener;
+import hudson.model.TextParameterValue;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -38,8 +39,14 @@
 
  List<ParameterValue> values = new ArrayList<ParameterValue>();
  for (Map.Entry<Object, Object> entry : p.entrySet()) {
- values.add(new StringParameterValue(entry.getKey().toString(),
- env.expand(entry.getValue().toString())));
+ // support multi-line parameters correctly
+ if(entry.getValue().toString().contains("\n")) {
+ values.add(new TextParameterValue(entry.getKey().toString(),
+ env.expand(entry.getValue().toString())));
+ } else {
+ values.add(new StringParameterValue(entry.getKey().toString(),
+ env.expand(entry.getValue().toString())));
+ }
  }
 
  return new ParametersAction(values);
{code}
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Reply via email to