This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev-2.1.2
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev-2.1.2 by this push:
new b1132fe13 [Improve] maven build args improvement (#3368)
b1132fe13 is described below
commit b1132fe1368c49ea0fce2a46d1dfc58031ace089
Author: benjobs <[email protected]>
AuthorDate: Thu Nov 30 22:01:49 2023 +0800
[Improve] maven build args improvement (#3368)
* [Improve] maven build args improvement
---------
Co-authored-by: benjobs <[email protected]>
---
.../streampark/console/core/entity/Project.java | 31 ++++++++++++++++----
.../console/base/util/FileUtilsTest.java | 34 ++++++++++++++++++++++
2 files changed, 59 insertions(+), 6 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..c5c37b172 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,7 +44,7 @@ import org.eclipse.jgit.lib.Constants;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
-import java.util.Arrays;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.jar.JarFile;
@@ -216,7 +216,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 +229,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 +248,28 @@ 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) {
+ String[] args = param.split("\\s+");
+ List<String> dangerArgs = new ArrayList<>();
+ for (String arg : args) {
+ if (arg.length() == 1) {
+ if (arg.equals("|")) {
+ dangerArgs.add("|");
+ }
+ if (arg.equals("&")) {
+ dangerArgs.add("&");
+ }
+ } else {
+ arg = arg.substring(0, 2);
+ if (arg.equals("||")) {
+ dangerArgs.add("||");
+ }
+ if (arg.equals("&&")) {
+ dangerArgs.add("&&");
+ }
+ }
+ }
+ return dangerArgs;
}
@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..59e0e4baf 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,8 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Random;
/** Test for {@link FileUtils} */
@@ -106,4 +108,36 @@ class FileUtilsTest {
}
Assertions.assertArrayEquals(fileBytes, readBytes);
}
+
+ @Test
+ public void testDangerArgs() {
+ String param = "mvn clean || echo \"ccc\" && rm -rf /* ";
+ List<String> dangerArgs = getDangerArgs(param);
+ Assertions.assertEquals(dangerArgs.size(), 2);
+ }
+
+ private List<String> getDangerArgs(String param) {
+ String[] args = param.split("\\s+");
+ List<String> result = new ArrayList<>();
+
+ for (String arg : args) {
+ if (arg.length() == 1) {
+ if (arg.equals("|")) {
+ result.add("|");
+ }
+ if (arg.equals("&")) {
+ result.add("&");
+ }
+ } else {
+ arg = arg.substring(0, 2);
+ if (arg.equals("||")) {
+ result.add("||");
+ }
+ if (arg.equals("&&")) {
+ result.add("&&");
+ }
+ }
+ }
+ return result;
+ }
}