diff --git a/pom.xml b/pom.xml index a26691a..5f2ca3a 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,15 @@ - + + + io.jenkins.plugins + commons-lang3-api + + + io.jenkins.plugins + commons-text-api + org.jenkins-ci.plugins.workflow workflow-step-api diff --git a/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStep.java b/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStep.java index d3e51ea..1e07aeb 100644 --- a/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStep.java +++ b/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStep.java @@ -33,8 +33,8 @@ import jenkins.model.Jenkins; import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.StringEscapeUtils; import org.jenkinsci.plugins.structs.describable.CustomDescribableModel; import org.jenkinsci.plugins.structs.describable.DescribableModel; import org.jenkinsci.plugins.structs.describable.UninstantiatedDescribable; @@ -305,7 +305,7 @@ public String getContext() { public String getContextEncoded() { final String context = getContext(); //Functions.jsStringEscape() is also an alternative though the one below escapes more stuff - return context != null ? StringEscapeUtils.escapeJavaScript(context) : null; + return context != null ? StringEscapeUtils.escapeEcmaScript(context) : null; } public FormValidation doCheckPropagate(@QueryParameter boolean value, @QueryParameter boolean wait) { diff --git a/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/WaitForBuildStep.java b/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/WaitForBuildStep.java index aee8f30..2b77991 100644 --- a/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/WaitForBuildStep.java +++ b/src/main/java/org/jenkinsci/plugins/workflow/support/steps/build/WaitForBuildStep.java @@ -9,7 +9,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.jenkinsci.plugins.workflow.graph.FlowNode; import org.jenkinsci.plugins.workflow.steps.Step; import org.jenkinsci.plugins.workflow.steps.StepContext; diff --git a/src/test/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStepTest.java b/src/test/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStepTest.java index b969b57..407d57a 100644 --- a/src/test/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStepTest.java +++ b/src/test/java/org/jenkinsci/plugins/workflow/support/steps/build/BuildTriggerStepTest.java @@ -54,7 +54,6 @@ import jenkins.scm.impl.mock.MockSCMDiscoverBranches; import jenkins.scm.impl.mock.MockSCMNavigator; import jenkins.security.QueueItemAuthenticatorConfiguration; -import org.apache.commons.lang.StringUtils; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.hasSize; @@ -270,11 +269,14 @@ public void buildParallelTests() throws Exception { p2.getBuildersList().add(new SleepBuilder(1)); WorkflowJob foo = j.jenkins.createProject(WorkflowJob.class, "foo"); - foo.setDefinition(new CpsFlowDefinition(StringUtils.join(Collections.singletonList("parallel(test1: {\n" + - " build('test1');\n" + - " }, test2: {\n" + - " build('test2');\n" + - " })"), "\n"), true)); + foo.setDefinition(new CpsFlowDefinition(""" + parallel(test1: { + build('test1'); + }, test2: { + build('test2'); + } + ) + """, true)); j.buildAndAssertSuccess(foo); } @@ -286,7 +288,9 @@ public void abortBuild() throws Exception { p.getBuildersList().add(new SleepBuilder(Long.MAX_VALUE)); WorkflowJob foo = j.jenkins.createProject(WorkflowJob.class, "foo"); - foo.setDefinition(new CpsFlowDefinition(StringUtils.join(Collections.singletonList("build('test1');"), "\n"), true)); + foo.setDefinition(new CpsFlowDefinition(""" + build('test1'); + """, true)); QueueTaskFuture q = foo.scheduleBuild2(0); WorkflowRun b = q.getStartCondition().get(); @@ -333,7 +337,9 @@ public void cancelBuildQueue() throws Exception { p.getBuildersList().add(new SleepBuilder(Long.MAX_VALUE)); WorkflowJob foo = j.jenkins.createProject(WorkflowJob.class, "foo"); - foo.setDefinition(new CpsFlowDefinition(StringUtils.join(Collections.singletonList("build('test1');"), "\n"), true)); + foo.setDefinition(new CpsFlowDefinition(""" + build('test1'); + """, true)); j.jenkins.setNumExecutors(0); //should force freestyle build to remain in the queue?