This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 4edec7a9b285d84e80fa83898ad803c47a4af3d5 Author: Alex Heneveld <[email protected]> AuthorDate: Thu Jun 15 11:20:18 2023 +0100 handle quotes in transform arguments --- .../workflow/steps/variables/TransformVariableWorkflowStep.java | 8 +++++++- .../org/apache/brooklyn/core/workflow/WorkflowTransformTest.java | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/workflow/steps/variables/TransformVariableWorkflowStep.java b/core/src/main/java/org/apache/brooklyn/core/workflow/steps/variables/TransformVariableWorkflowStep.java index 14c8ff78d8..390dbcae96 100644 --- a/core/src/main/java/org/apache/brooklyn/core/workflow/steps/variables/TransformVariableWorkflowStep.java +++ b/core/src/main/java/org/apache/brooklyn/core/workflow/steps/variables/TransformVariableWorkflowStep.java @@ -34,6 +34,7 @@ import org.apache.brooklyn.core.workflow.WorkflowStepInstanceExecutionContext; import org.apache.brooklyn.util.collections.*; import org.apache.brooklyn.util.core.flags.TypeCoercions; import org.apache.brooklyn.util.guava.Maybe; +import org.apache.brooklyn.util.text.QuotedStringTokenizer; import org.apache.brooklyn.util.text.Strings; import org.apache.brooklyn.util.time.Duration; import org.slf4j.Logger; @@ -169,7 +170,12 @@ public class TransformVariableWorkflowStep extends WorkflowStepDefinition { } WorkflowTransformWithContext getTransform(WorkflowStepInstanceExecutionContext context, String transformDef) { - List<String> transformWords = Arrays.asList(transformDef.split(" ")); + List<String> transformWords; + // old +// transformWords = Arrays.asList(transformDef.split(" ")); + // new, respecting quotes + transformWords = QuotedStringTokenizer.builder().includeQuotes(false).includeDelimiters(false).expectQuotesDelimited(true).failOnOpenQuote(true).build(transformDef).remainderAsList(); + String transformType = transformWords.get(0); Function t = Maybe.ofDisallowingNull(TRANSFORMATIONS.get(transformType)).map(Supplier::get).orNull(); if (t==null) { diff --git a/core/src/test/java/org/apache/brooklyn/core/workflow/WorkflowTransformTest.java b/core/src/test/java/org/apache/brooklyn/core/workflow/WorkflowTransformTest.java index a07d3e2ce7..9f90a6dfcd 100644 --- a/core/src/test/java/org/apache/brooklyn/core/workflow/WorkflowTransformTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/workflow/WorkflowTransformTest.java @@ -198,8 +198,7 @@ public class WorkflowTransformTest extends BrooklynMgmtUnitTestSupport { // append and prepend string Asserts.assertEquals(transform("value hello | append _world"), "hello_world"); - // TODO this fails -// Asserts.assertEquals(transform("value hello | append \" world\""), "hello world"); + Asserts.assertEquals(transform("value hello | append \" world\""), "hello world"); // remove list Asserts.assertEquals(transform("value ['a','bb','ccc'] | type list | remove 1"), MutableList.of("a", "ccc"));
