This is an automated email from the ASF dual-hosted git repository. benjobs pushed a commit to branch maven-args in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
commit c4817336d06348a4a5facd6d605556ea680b7c57 Author: benjobs <[email protected]> AuthorDate: Thu Nov 30 20:44:51 2023 +0800 [Improve] maven build args improvement --- .../streampark/console/core/entity/Project.java | 20 +++++++++++++----- .../console/base/util/FileUtilsTest.java | 24 ++++++++++++++++++++++ 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java index 875c5a317..965f0dbea 100644 --- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java +++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java @@ -44,6 +44,7 @@ import org.eclipse.jgit.lib.Constants; import java.io.File; import java.io.IOException; import java.io.Serializable; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -216,7 +217,7 @@ public class Project implements Serializable { StringBuilder cmdBuffer = new StringBuilder(mvn).append(" clean package -DskipTests "); if (StringUtils.isNotBlank(this.buildArgs)) { - List<String> dangerArgs = getLogicalOperators(this.buildArgs); + List<String> dangerArgs = getDangerArgs(this.buildArgs); if (dangerArgs.isEmpty()) { cmdBuffer.append(this.buildArgs.trim()); } else { @@ -229,7 +230,7 @@ public class Project implements Serializable { String setting = InternalConfigHolder.get(CommonConfig.MAVEN_SETTINGS_PATH()); if (StringUtils.isNotBlank(setting)) { - List<String> dangerArgs = getLogicalOperators(setting); + List<String> dangerArgs = getDangerArgs(setting); if (dangerArgs.isEmpty()) { File file = new File(setting); if (file.exists() && file.isFile()) { @@ -248,9 +249,18 @@ public class Project implements Serializable { return cmdBuffer.toString(); } - private List<String> getLogicalOperators(String param) { - List<String> dangerArgs = Arrays.asList(" || ", " | ", " && ", " & "); - return dangerArgs.stream().filter(param::contains).collect(Collectors.toList()); + private List<String> getDangerArgs(String param) { + List<String> dangerArgs = Arrays.asList("|", "&"); + String[] args = param.split("\\s+"); + List<String> result = new ArrayList<>(); + for (String arg : args) { + for (String danger : dangerArgs) { + if (arg.startsWith(danger)) { + result.add(arg); + } + } + } + return result; } @JsonIgnore diff --git a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/base/util/FileUtilsTest.java b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/base/util/FileUtilsTest.java index 57db8581c..08fe46bb4 100644 --- a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/base/util/FileUtilsTest.java +++ b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/base/util/FileUtilsTest.java @@ -26,6 +26,9 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Random; /** Test for {@link FileUtils} */ @@ -106,4 +109,25 @@ class FileUtilsTest { } Assertions.assertArrayEquals(fileBytes, readBytes); } + + @Test + public void testDangerArgs() { + String param = "mvn clean | echo \"ccc\""; + List<String> dangerArgs = getDangerArgs(param); + Assertions.assertEquals(dangerArgs.size(), 1); + } + + private List<String> getDangerArgs(String param) { + List<String> dangerArgs = Arrays.asList("|", "&"); + String[] args = param.split("\\s+"); + List<String> result = new ArrayList<>(); + for (String arg : args) { + for (String danger : dangerArgs) { + if (arg.startsWith(danger)) { + result.add(arg); + } + } + } + return result; + } }
