diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractCommandExecutor.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractCommandExecutor.java index 17147c9ab6..369e411d9d 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractCommandExecutor.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractCommandExecutor.java @@ -23,8 +23,10 @@ import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.EXIT_COD import org.apache.dolphinscheduler.plugin.task.api.model.TaskResponse; import org.apache.dolphinscheduler.plugin.task.api.utils.AbstractCommandExecutorConstants; import org.apache.dolphinscheduler.plugin.task.api.utils.OSUtils; -import org.apache.dolphinscheduler.spi.utils.StringUtils; import org.apache.dolphinscheduler.spi.utils.PropertyUtils; +import org.apache.dolphinscheduler.spi.utils.StringUtils; + +import org.apache.commons.lang3.SystemUtils; import java.io.BufferedReader; import java.io.File; @@ -129,7 +131,7 @@ public abstract class AbstractCommandExecutor { // if sudo.enable=true,setting up user to run commands if (OSUtils.isSudoEnable()) { - if (OSUtils.isLinux() && PropertyUtils.getBoolean(AbstractCommandExecutorConstants.TASK_RESOURCE_LIMIT_STATE)) { + if (SystemUtils.IS_OS_LINUX && PropertyUtils.getBoolean(AbstractCommandExecutorConstants.TASK_RESOURCE_LIMIT_STATE)) { generateCgroupCommand(command); } else { command.add("sudo"); diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ProcessUtils.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ProcessUtils.java index d052075988..79ce952fe3 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ProcessUtils.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ProcessUtils.java @@ -19,6 +19,8 @@ package org.apache.dolphinscheduler.plugin.task.api; import org.apache.dolphinscheduler.plugin.task.api.utils.OSUtils; +import org.apache.commons.lang3.SystemUtils; + import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -76,7 +78,7 @@ public final class ProcessUtils { StringBuilder sb = new StringBuilder(); Matcher mat = null; // pstree pid get sub pids - if (OSUtils.isMacOS()) { + if (SystemUtils.IS_OS_MAC) { String pids = OSUtils.exeCmd(String.format("%s -sp %d", TaskConstants.PSTREE, processId)); if (null != pids) { mat = MACPATTERN.matcher(pids); diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ShellCommandExecutor.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ShellCommandExecutor.java index d6b0aaad8f..cd2f0b630e 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ShellCommandExecutor.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/ShellCommandExecutor.java @@ -17,9 +17,8 @@ package org.apache.dolphinscheduler.plugin.task.api; -import org.apache.dolphinscheduler.plugin.task.api.utils.OSUtils; - import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.SystemUtils; import java.io.File; import java.io.IOException; @@ -28,9 +27,11 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.concurrent.LinkedBlockingQueue; import java.util.function.Consumer; -import com.google.common.base.Strings; + import org.slf4j.Logger; +import com.google.common.base.Strings; + /** * shell command executor */ @@ -69,7 +70,7 @@ public class ShellCommandExecutor extends AbstractCommandExecutor { return String.format("%s/%s.%s" , taskRequest.getExecutePath() , taskRequest.getTaskAppId() - , OSUtils.isWindows() ? "bat" : "command"); + , SystemUtils.IS_OS_WINDOWS ? "bat" : "command"); } /** @@ -89,7 +90,7 @@ public class ShellCommandExecutor extends AbstractCommandExecutor { logger.info("create command file:{}", commandFile); StringBuilder sb = new StringBuilder(); - if (OSUtils.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { sb.append("@echo off\n"); sb.append("cd /d %~dp0\n"); if (!Strings.isNullOrEmpty(taskRequest.getEnvironmentConfig())) { @@ -121,7 +122,7 @@ public class ShellCommandExecutor extends AbstractCommandExecutor { @Override protected String commandInterpreter() { - return OSUtils.isWindows() ? CMD : SH; + return SystemUtils.IS_OS_WINDOWS ? CMD : SH; } } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/OSUtils.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/OSUtils.java index 166d26eec2..bc9d9c3717 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/OSUtils.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/OSUtils.java @@ -17,7 +17,6 @@ package org.apache.dolphinscheduler.plugin.task.api.utils; -import org.apache.commons.lang3.SystemUtils; import org.apache.dolphinscheduler.plugin.task.api.ShellExecutor; import org.apache.dolphinscheduler.spi.utils.PropertyUtils; import org.apache.dolphinscheduler.spi.utils.StringUtils; @@ -51,33 +50,6 @@ public class OSUtils { return PropertyUtils.getBoolean("sudo.enable", Boolean.TRUE); } - /** - * whether is macOS - * - * @return true if mac - */ - public static boolean isMacOS() { - return getOSName().startsWith("Mac"); - } - - /** - * whether is windows - * - * @return true if windows - */ - public static boolean isWindows() { - return getOSName().startsWith("Windows"); - } - - /** - * whether is linux - * - * @return true if linux - */ - public static boolean isLinux() { - return SystemUtils.IS_OS_LINUX; - } - /** * Execute the corresponding command of Linux or Windows * diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTask.java index 0934d868cf..d0888f035a 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTask.java @@ -32,7 +32,6 @@ import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters import org.apache.dolphinscheduler.plugin.task.api.parser.ParamUtils; import org.apache.dolphinscheduler.plugin.task.api.parser.ParameterUtils; import org.apache.dolphinscheduler.plugin.task.api.utils.MapUtils; -import org.apache.dolphinscheduler.plugin.task.api.utils.OSUtils; import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam; import org.apache.dolphinscheduler.spi.enums.DbType; import org.apache.dolphinscheduler.spi.enums.Flag; @@ -41,6 +40,7 @@ import org.apache.dolphinscheduler.spi.utils.StringUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.SystemUtils; import java.io.File; import java.nio.charset.StandardCharsets; @@ -382,7 +382,7 @@ public class DataxTask extends AbstractTaskExecutor { String fileName = String.format("%s/%s_node.%s", taskExecutionContext.getExecutePath(), taskExecutionContext.getTaskAppId(), - OSUtils.isWindows() ? "bat" : "sh"); + SystemUtils.IS_OS_WINDOWS ? "bat" : "sh"); Path path = new File(fileName).toPath(); @@ -408,7 +408,7 @@ public class DataxTask extends AbstractTaskExecutor { Set perms = PosixFilePermissions.fromString(RWXR_XR_X); FileAttribute> attr = PosixFilePermissions.asFileAttribute(perms); - if (OSUtils.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { Files.createFile(path); } else { Files.createFile(path, attr); diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkTask.java index f70a3d67b7..aa8b26698b 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkTask.java @@ -28,10 +28,11 @@ import org.apache.dolphinscheduler.plugin.task.api.parser.ParamUtils; import org.apache.dolphinscheduler.plugin.task.api.parser.ParameterUtils; import org.apache.dolphinscheduler.plugin.task.api.utils.ArgsUtils; import org.apache.dolphinscheduler.plugin.task.api.utils.MapUtils; -import org.apache.dolphinscheduler.plugin.task.api.utils.OSUtils; import org.apache.dolphinscheduler.spi.utils.JSONUtils; import org.apache.dolphinscheduler.spi.utils.StringUtils; +import org.apache.commons.lang3.SystemUtils; + import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -320,7 +321,7 @@ public class FlinkTask extends AbstractYarnTask { Set perms = PosixFilePermissions.fromString(RWXR_XR_X); FileAttribute> attr = PosixFilePermissions.asFileAttribute(perms); try { - if (OSUtils.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { Files.createFile(path); } else { if (!file.getParentFile().exists()) { @@ -363,7 +364,7 @@ public class FlinkTask extends AbstractYarnTask { Set perms = PosixFilePermissions.fromString(RWXR_XR_X); FileAttribute> attr = PosixFilePermissions.asFileAttribute(perms); try { - if (OSUtils.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { Files.createFile(path); } else { if (!file.getParentFile().exists()) { diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTask.java index e725a25021..b5270a7221 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTask.java @@ -28,10 +28,10 @@ import org.apache.dolphinscheduler.plugin.task.api.model.TaskResponse; import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; import org.apache.dolphinscheduler.plugin.task.api.parser.ParamUtils; import org.apache.dolphinscheduler.plugin.task.api.parser.ParameterUtils; -import org.apache.dolphinscheduler.plugin.task.api.utils.OSUtils; import org.apache.dolphinscheduler.spi.utils.JSONUtils; import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.SystemUtils; import java.io.File; import java.nio.file.Files; @@ -122,7 +122,7 @@ public class SeatunnelTask extends AbstractTaskExecutor { // generate scripts String fileName = String.format("%s/%s_node.%s", taskExecutionContext.getExecutePath(), - taskExecutionContext.getTaskAppId(), OSUtils.isWindows() ? "bat" : "sh"); + taskExecutionContext.getTaskAppId(), SystemUtils.IS_OS_WINDOWS ? "bat" : "sh"); Path path = new File(fileName).toPath(); @@ -140,7 +140,7 @@ public class SeatunnelTask extends AbstractTaskExecutor { Set perms = PosixFilePermissions.fromString(RWXR_XR_X); FileAttribute> attr = PosixFilePermissions.asFileAttribute(perms); - if (OSUtils.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { Files.createFile(path); } else { Files.createFile(path, attr); diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-shell/src/main/java/org/apache/dolphinscheduler/plugin/task/shell/ShellTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-shell/src/main/java/org/apache/dolphinscheduler/plugin/task/shell/ShellTask.java index 737b876b74..94a3ffe43a 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-shell/src/main/java/org/apache/dolphinscheduler/plugin/task/shell/ShellTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-shell/src/main/java/org/apache/dolphinscheduler/plugin/task/shell/ShellTask.java @@ -28,10 +28,10 @@ import org.apache.dolphinscheduler.plugin.task.api.model.TaskResponse; import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; import org.apache.dolphinscheduler.plugin.task.api.parser.ParamUtils; import org.apache.dolphinscheduler.plugin.task.api.parser.ParameterUtils; -import org.apache.dolphinscheduler.plugin.task.api.utils.OSUtils; import org.apache.dolphinscheduler.spi.utils.JSONUtils; import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.SystemUtils; import java.io.File; import java.nio.file.Files; @@ -122,7 +122,7 @@ public class ShellTask extends AbstractTaskExecutor { // generate scripts String fileName = String.format("%s/%s_node.%s", taskExecutionContext.getExecutePath(), - taskExecutionContext.getTaskAppId(), OSUtils.isWindows() ? "bat" : "sh"); + taskExecutionContext.getTaskAppId(), SystemUtils.IS_OS_WINDOWS ? "bat" : "sh"); File file = new File(fileName); Path path = file.toPath(); @@ -141,7 +141,7 @@ public class ShellTask extends AbstractTaskExecutor { Set perms = PosixFilePermissions.fromString(RWXR_XR_X); FileAttribute> attr = PosixFilePermissions.asFileAttribute(perms); - if (OSUtils.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { Files.createFile(path); } else { if (!file.getParentFile().exists()) { diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-spark/src/main/java/org/apache/dolphinscheduler/plugin/task/spark/SparkTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-spark/src/main/java/org/apache/dolphinscheduler/plugin/task/spark/SparkTask.java index abe3827858..152cbb22ce 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-spark/src/main/java/org/apache/dolphinscheduler/plugin/task/spark/SparkTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-spark/src/main/java/org/apache/dolphinscheduler/plugin/task/spark/SparkTask.java @@ -28,10 +28,11 @@ import org.apache.dolphinscheduler.plugin.task.api.parser.ParamUtils; import org.apache.dolphinscheduler.plugin.task.api.parser.ParameterUtils; import org.apache.dolphinscheduler.plugin.task.api.utils.ArgsUtils; import org.apache.dolphinscheduler.plugin.task.api.utils.MapUtils; -import org.apache.dolphinscheduler.plugin.task.api.utils.OSUtils; import org.apache.dolphinscheduler.spi.utils.JSONUtils; import org.apache.dolphinscheduler.spi.utils.StringUtils; +import org.apache.commons.lang3.SystemUtils; + import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -243,7 +244,7 @@ public class SparkTask extends AbstractYarnTask { Set perms = PosixFilePermissions.fromString(RWXR_XR_X); FileAttribute> attr = PosixFilePermissions.asFileAttribute(perms); try { - if (OSUtils.isWindows()) { + if (SystemUtils.IS_OS_WINDOWS) { Files.createFile(path); } else { if (!file.getParentFile().exists()) {