This is an automated email from the ASF dual-hosted git repository.
wenhemin pushed a commit to branch json_split
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/json_split by this push:
new cc82a98 [FixBug][JsonSplit] dag show bugs (#5226)
cc82a98 is described below
commit cc82a98f509afdb53a08b89cb0503ca19004efd0
Author: wen-hemin <[email protected]>
AuthorDate: Thu Apr 8 14:18:01 2021 +0800
[FixBug][JsonSplit] dag show bugs (#5226)
* fix: dag show bugs
* fix: code format
* fix: code format
* fix: code format
Co-authored-by: wen-hemin <[email protected]>
---
.../service/impl/ProcessDefinitionServiceImpl.java | 4 +-
.../service/impl/ProcessInstanceServiceImpl.java | 13 +-
.../service/impl/TaskDefinitionServiceImpl.java | 2 +-
.../dolphinscheduler/api/utils/CheckUtils.java | 259 +++++++++++----------
.../dolphinscheduler/api/utils/CheckUtilsTest.java | 102 +++++---
.../dao/entity/TaskDefinition.java | 17 +-
.../service/process/ProcessService.java | 2 +-
7 files changed, 239 insertions(+), 160 deletions(-)
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
index 9365f68..b129a30 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
@@ -1108,7 +1108,7 @@ public class ProcessDefinitionServiceImpl extends
BaseServiceImpl implements Pro
// check whether the process definition json is normal
for (TaskNode taskNode : taskNodes) {
- if (!CheckUtils.checkTaskNodeParameters(taskNode.getParams(),
taskNode.getType())) {
+ if (!CheckUtils.checkTaskNodeParameters(taskNode)) {
logger.error("task node {} parameter invalid",
taskNode.getName());
putMsg(result, Status.PROCESS_NODE_S_PARAMETER_INVALID,
taskNode.getName());
return result;
@@ -1806,4 +1806,4 @@ public class ProcessDefinitionServiceImpl extends
BaseServiceImpl implements Pro
return result;
}
-}
\ No newline at end of file
+}
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java
index c26ee4c..fa805f2 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java
@@ -205,8 +205,15 @@ public class ProcessInstanceServiceImpl extends
BaseServiceImpl implements Proce
ProcessDefinition processDefinition =
processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
processInstance.getProcessDefinitionVersion());
processInstance.setWarningGroupId(processDefinition.getWarningGroupId());
- result.put(DATA_LIST, processInstance);
- putMsg(result, Status.SUCCESS);
+
+ if (processDefinition == null) {
+ putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, processId);
+ } else {
+ ProcessData processData =
processService.genProcessData(processDefinition);
+
processInstance.setProcessInstanceJson(JSONUtils.toJsonString(processData));
+ result.put(DATA_LIST, processInstance);
+ putMsg(result, Status.SUCCESS);
+ }
return result;
}
@@ -756,4 +763,4 @@ public class ProcessInstanceServiceImpl extends
BaseServiceImpl implements Proce
return
processInstanceMapper.queryByProcessDefineCode(processDefinitionCode, size);
}
-}
\ No newline at end of file
+}
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
index 885a17a..ae757ea 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
@@ -237,7 +237,7 @@ public class TaskDefinitionServiceImpl extends
BaseServiceImpl implements TaskDe
putMsg(result, Status.DATA_IS_NOT_VALID, taskDefinitionJson);
return;
}
- if (!CheckUtils.checkTaskNodeParameters(taskNode.getParams(),
taskNode.getName())) {
+ if (!CheckUtils.checkTaskNodeParameters(taskNode)) {
logger.error("task node {} parameter invalid", taskNode.getName());
putMsg(result, Status.PROCESS_NODE_S_PARAMETER_INVALID,
taskNode.getName());
}
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/CheckUtils.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/CheckUtils.java
index 9dee69b..a13bb99 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/CheckUtils.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/CheckUtils.java
@@ -16,144 +16,163 @@
*/
package org.apache.dolphinscheduler.api.utils;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Pattern;
import org.apache.dolphinscheduler.api.enums.Status;
import org.apache.dolphinscheduler.common.Constants;
+import org.apache.dolphinscheduler.common.enums.TaskType;
+import org.apache.dolphinscheduler.common.model.TaskNode;
import org.apache.dolphinscheduler.common.task.AbstractParameters;
-import org.apache.dolphinscheduler.common.utils.*;
+import org.apache.dolphinscheduler.common.utils.JSONUtils;
import org.apache.dolphinscheduler.common.utils.StringUtils;
import org.apache.dolphinscheduler.common.utils.TaskParametersUtils;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.regex.Pattern;
-
/**
* check utils
*/
public class CheckUtils {
- private CheckUtils() {
- throw new IllegalStateException("CheckUtils class");
- }
- /**
- * check username
- *
- * @param userName user name
- * @return true if user name regex valid,otherwise return false
- */
- public static boolean checkUserName(String userName) {
- return regexChecks(userName, Constants.REGEX_USER_NAME);
- }
-
- /**
- * check email
- *
- * @param email email
- * @return true if email regex valid, otherwise return false
- */
- public static boolean checkEmail(String email) {
- if (StringUtils.isEmpty(email)){
- return false;
+ private CheckUtils() {
+ throw new IllegalStateException("CheckUtils class");
}
- return email.length() > 5 && email.length() <= 40 && regexChecks(email,
Constants.REGEX_MAIL_NAME) ;
- }
-
- /**
- * check project description
- *
- * @param desc desc
- * @return true if description regex valid, otherwise return false
- */
- public static Map<String, Object> checkDesc(String desc) {
- Map<String, Object> result = new HashMap<>();
- if (StringUtils.isNotEmpty(desc) && desc.length() > 200) {
- result.put(Constants.STATUS, Status.REQUEST_PARAMS_NOT_VALID_ERROR);
- result.put(Constants.MSG,
MessageFormat.format(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getMsg(), "desc
length"));
- }else{
- result.put(Constants.STATUS, Status.SUCCESS);
+ /**
+ * check username
+ *
+ * @param userName
+ * user name
+ * @return true if user name regex valid,otherwise return false
+ */
+ public static boolean checkUserName(String userName) {
+ return regexChecks(userName, Constants.REGEX_USER_NAME);
}
- return result;
- }
-
- /**
- * check extra info
- *
- * @param otherParams other parames
- * @return true if other parameters are valid, otherwise return false
- */
- public static boolean checkOtherParams(String otherParams) {
- return StringUtils.isNotEmpty(otherParams) &&
!JSONUtils.checkJsonValid(otherParams);
- }
-
- /**
- * check password
- *
- * @param password password
- * @return true if password regex valid, otherwise return false
- */
- public static boolean checkPassword(String password) {
- return StringUtils.isNotEmpty(password) && password.length() >= 2 &&
password.length() <= 20;
- }
-
- /**
- * check phone
- * phone can be empty.
- * @param phone phone
- * @return true if phone regex valid, otherwise return false
- */
- public static boolean checkPhone(String phone) {
- return StringUtils.isEmpty(phone) || phone.length() == 11;
- }
-
-
- /**
- * check task node parameter
- *
- * @param parameter parameter
- * @param taskType task type
- * @return true if task node parameters are valid, otherwise return false
- */
- public static boolean checkTaskNodeParameters(String parameter, String
taskType) {
- AbstractParameters abstractParameters =
TaskParametersUtils.getParameters(taskType, parameter);
-
- if (abstractParameters != null) {
- return abstractParameters.checkParameters();
+
+ /**
+ * check email
+ *
+ * @param email
+ * email
+ * @return true if email regex valid, otherwise return false
+ */
+ public static boolean checkEmail(String email) {
+ if (StringUtils.isEmpty(email)) {
+ return false;
+ }
+
+ return email.length() > 5 && email.length() <= 40 &&
regexChecks(email, Constants.REGEX_MAIL_NAME);
}
- return false;
- }
-
- /**
- * check params
- * @param userName user name
- * @param password password
- * @param email email
- * @param phone phone
- * @return true if user parameters are valid, other return false
- */
- public static boolean checkUserParams(String userName, String password,
String email, String phone){
- return CheckUtils.checkUserName(userName) &&
- CheckUtils.checkEmail(email) &&
- CheckUtils.checkPassword(password) &&
- CheckUtils.checkPhone(phone);
- }
-
- /**
- * regex check
- *
- * @param str input string
- * @param pattern regex pattern
- * @return true if regex pattern is right, otherwise return false
- */
- private static boolean regexChecks(String str, Pattern pattern) {
- if (StringUtils.isEmpty(str)) {
- return false;
+ /**
+ * check project description
+ *
+ * @param desc
+ * desc
+ * @return true if description regex valid, otherwise return false
+ */
+ public static Map<String, Object> checkDesc(String desc) {
+ Map<String, Object> result = new HashMap<>();
+ if (StringUtils.isNotEmpty(desc) && desc.length() > 200) {
+ result.put(Constants.STATUS,
Status.REQUEST_PARAMS_NOT_VALID_ERROR);
+ result.put(Constants.MSG,
+
MessageFormat.format(Status.REQUEST_PARAMS_NOT_VALID_ERROR.getMsg(), "desc
length"));
+ } else {
+ result.put(Constants.STATUS, Status.SUCCESS);
+ }
+ return result;
}
- return pattern.matcher(str).matches();
- }
+ /**
+ * check extra info
+ *
+ * @param otherParams
+ * other parames
+ * @return true if other parameters are valid, otherwise return false
+ */
+ public static boolean checkOtherParams(String otherParams) {
+ return StringUtils.isNotEmpty(otherParams) &&
!JSONUtils.checkJsonValid(otherParams);
+ }
+
+ /**
+ * check password
+ *
+ * @param password
+ * password
+ * @return true if password regex valid, otherwise return false
+ */
+ public static boolean checkPassword(String password) {
+ return StringUtils.isNotEmpty(password) && password.length() >= 2 &&
password.length() <= 20;
+ }
+
+ /**
+ * check phone phone can be empty.
+ *
+ * @param phone
+ * phone
+ * @return true if phone regex valid, otherwise return false
+ */
+ public static boolean checkPhone(String phone) {
+ return StringUtils.isEmpty(phone) || phone.length() == 11;
+ }
+
+ /**
+ * check task node parameter
+ *
+ * @param taskNode
+ * TaskNode
+ * @return true if task node parameters are valid, otherwise return false
+ */
+ public static boolean checkTaskNodeParameters(TaskNode taskNode) {
+ AbstractParameters abstractParameters;
+
+ if (TaskType.of(taskNode.getType()) == TaskType.DEPENDENT) {
+ abstractParameters =
TaskParametersUtils.getParameters(taskNode.getType(), taskNode.getDependence());
+ } else {
+ abstractParameters =
TaskParametersUtils.getParameters(taskNode.getType(), taskNode.getParams());
+ }
+
+ if (abstractParameters != null) {
+ return abstractParameters.checkParameters();
+ }
+
+ return false;
+ }
+
+ /**
+ * check params
+ *
+ * @param userName
+ * user name
+ * @param password
+ * password
+ * @param email
+ * email
+ * @param phone
+ * phone
+ * @return true if user parameters are valid, other return false
+ */
+ public static boolean checkUserParams(String userName, String password,
String email, String phone) {
+ return CheckUtils.checkUserName(userName) &&
CheckUtils.checkEmail(email) && CheckUtils.checkPassword(password)
+ && CheckUtils.checkPhone(phone);
+ }
+
+ /**
+ * regex check
+ *
+ * @param str
+ * input string
+ * @param pattern
+ * regex pattern
+ * @return true if regex pattern is right, otherwise return false
+ */
+ private static boolean regexChecks(String str, Pattern pattern) {
+ if (StringUtils.isEmpty(str)) {
+ return false;
+ }
+
+ return pattern.matcher(str).matches();
+ }
}
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/CheckUtilsTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/CheckUtilsTest.java
index 36d5753..14e530f 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/CheckUtilsTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/CheckUtilsTest.java
@@ -25,6 +25,7 @@ import org.apache.dolphinscheduler.api.enums.Status;
import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.ProgramType;
import org.apache.dolphinscheduler.common.enums.TaskType;
+import org.apache.dolphinscheduler.common.model.TaskNode;
import org.apache.dolphinscheduler.common.process.ResourceInfo;
import org.apache.dolphinscheduler.common.task.datax.DataxParameters;
import org.apache.dolphinscheduler.common.task.dependent.DependentParameters;
@@ -134,93 +135,140 @@ public class CheckUtilsTest {
}
@Test
public void testCheckTaskNodeParameters() {
+ TaskNode taskNode = new TaskNode();
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
- assertFalse(CheckUtils.checkTaskNodeParameters(null,null));
- assertFalse(CheckUtils.checkTaskNodeParameters(null,"unKnown"));
- assertFalse(CheckUtils.checkTaskNodeParameters("unKnown","unKnown"));
- assertFalse(CheckUtils.checkTaskNodeParameters("unKnown",null));
+ taskNode.setType("unKnown");
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
+
+ taskNode.setParams("unKnown");
+ taskNode.setType("unKnown");
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
+
+ taskNode.setParams("unKnown");
+ taskNode.setType(null);
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
// sub SubProcessParameters
SubProcessParameters subProcessParameters = new SubProcessParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(subProcessParameters),
TaskType.SUB_PROCESS.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(subProcessParameters));
+ taskNode.setType(TaskType.SUB_PROCESS.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
+
subProcessParameters.setProcessDefinitionId(1234);
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(subProcessParameters),
TaskType.SUB_PROCESS.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(subProcessParameters));
+ taskNode.setType(TaskType.SUB_PROCESS.toString());
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// ShellParameters
ShellParameters shellParameters = new ShellParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(shellParameters),
TaskType.SHELL.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(shellParameters));
+ taskNode.setType(TaskType.SHELL.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
shellParameters.setRawScript("");
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(shellParameters),
TaskType.SHELL.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(shellParameters));
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
shellParameters.setRawScript("sss");
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(shellParameters),
TaskType.SHELL.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(shellParameters));
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// ProcedureParameters
ProcedureParameters procedureParameters = new ProcedureParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(procedureParameters),
TaskType.PROCEDURE.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(procedureParameters));
+ taskNode.setType(TaskType.PROCEDURE.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
procedureParameters.setDatasource(1);
procedureParameters.setType("xx");
procedureParameters.setMethod("yy");
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(procedureParameters),
TaskType.PROCEDURE.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(procedureParameters));
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// SqlParameters
SqlParameters sqlParameters = new SqlParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(sqlParameters),
TaskType.SQL.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(sqlParameters));
+ taskNode.setType(TaskType.SQL.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
sqlParameters.setDatasource(1);
sqlParameters.setType("xx");
sqlParameters.setSql("yy");
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(sqlParameters),
TaskType.SQL.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(sqlParameters));
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// MapReduceParameters
MapReduceParameters mapreduceParameters = new MapReduceParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(mapreduceParameters),
TaskType.MR.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(mapreduceParameters));
+ taskNode.setType(TaskType.MR.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
ResourceInfo resourceInfoMapreduce = new ResourceInfo();
resourceInfoMapreduce.setId(1);
resourceInfoMapreduce.setRes("");
mapreduceParameters.setMainJar(resourceInfoMapreduce);
mapreduceParameters.setProgramType(ProgramType.JAVA);
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(mapreduceParameters),
TaskType.MR.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(mapreduceParameters));
+ taskNode.setType(TaskType.MR.toString());
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// SparkParameters
SparkParameters sparkParameters = new SparkParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(sparkParameters),
TaskType.SPARK.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(sparkParameters));
+ taskNode.setType(TaskType.SPARK.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
sparkParameters.setMainJar(new ResourceInfo());
sparkParameters.setProgramType(ProgramType.SCALA);
sparkParameters.setSparkVersion("1.1.1");
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(sparkParameters),
TaskType.SPARK.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(sparkParameters));
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// PythonParameters
PythonParameters pythonParameters = new PythonParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(pythonParameters),
TaskType.PYTHON.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(pythonParameters));
+ taskNode.setType(TaskType.PYTHON.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
pythonParameters.setRawScript("ss");
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(pythonParameters),
TaskType.PYTHON.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(pythonParameters));
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// DependentParameters
DependentParameters dependentParameters = new DependentParameters();
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(dependentParameters),
TaskType.DEPENDENT.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(dependentParameters));
+ taskNode.setType(TaskType.DEPENDENT.toString());
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// FlinkParameters
FlinkParameters flinkParameters = new FlinkParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(flinkParameters),
TaskType.FLINK.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(flinkParameters));
+ taskNode.setType(TaskType.FLINK.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
flinkParameters.setMainJar(new ResourceInfo());
flinkParameters.setProgramType(ProgramType.JAVA);
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(flinkParameters),
TaskType.FLINK.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(flinkParameters));
+ taskNode.setType(TaskType.FLINK.toString());
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// HTTP
HttpParameters httpParameters = new HttpParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(httpParameters),
TaskType.HTTP.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(httpParameters));
+ taskNode.setType(TaskType.HTTP.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
httpParameters.setUrl("httpUrl");
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(httpParameters),
TaskType.HTTP.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(httpParameters));
+ taskNode.setType(TaskType.HTTP.toString());
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
// DataxParameters
DataxParameters dataxParameters = new DataxParameters();
-
assertFalse(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(dataxParameters),
TaskType.DATAX.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(dataxParameters));
+ taskNode.setType(TaskType.DATAX.toString());
+ assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
dataxParameters.setCustomConfig(0);
dataxParameters.setDataSource(111);
dataxParameters.setDataTarget(333);
dataxParameters.setSql("sql");
dataxParameters.setTargetTable("tar");
-
assertTrue(CheckUtils.checkTaskNodeParameters(JSONUtils.toJsonString(dataxParameters),
TaskType.DATAX.toString()));
+ taskNode.setParams(JSONUtils.toJsonString(dataxParameters));
+ taskNode.setType(TaskType.DATAX.toString());
+ assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
}
-}
\ No newline at end of file
+}
diff --git
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
index 03cab2d..b33f6e7 100644
---
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
+++
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
@@ -35,6 +35,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.JsonNode;
/**
* task definition
@@ -250,10 +251,12 @@ public class TaskDefinition {
}
public List<Property> getTaskParamList() {
- List<Property> propList =
JSONUtils.toList(JSONUtils.parseObject(taskParams).findValue("localParams").toString(),
- Property.class);
- return taskParamList = propList;
+ JsonNode localParams =
JSONUtils.parseObject(taskParams).findValue("localParams");
+ if (localParams != null) {
+ taskParamList = JSONUtils.toList(localParams.toString(),
Property.class);
+ }
+ return taskParamList;
}
public void setTaskParamList(List<Property> taskParamList) {
@@ -266,9 +269,11 @@ public class TaskDefinition {
public Map<String, String> getTaskParamMap() {
if (taskParamMap == null && StringUtils.isNotEmpty(taskParams)) {
- List<Property> propList =
JSONUtils.toList(JSONUtils.parseObject(taskParams).findValue("localParams").toString(),
- Property.class);
- taskParamMap =
propList.stream().collect(Collectors.toMap(Property::getProp,
Property::getValue));
+ JsonNode localParams =
JSONUtils.parseObject(taskParams).findValue("localParams");
+ if (localParams != null) {
+ List<Property> propList =
JSONUtils.toList(localParams.toString(), Property.class);
+ taskParamMap =
propList.stream().collect(Collectors.toMap(Property::getProp,
Property::getValue));
+ }
}
return taskParamMap;
}
diff --git
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
index 28751bb..36a1ff8 100644
---
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
+++
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
@@ -2533,7 +2533,7 @@ public class ProcessService {
v.setRunFlag(taskDefinitionLog.getFlag() == Flag.YES ?
Constants.FLOWNODE_RUN_FLAG_NORMAL : Constants.FLOWNODE_RUN_FLAG_FORBIDDEN);
v.setMaxRetryTimes(taskDefinitionLog.getFailRetryTimes());
v.setRetryInterval(taskDefinitionLog.getFailRetryInterval());
- v.setParams(taskDefinitionLog.getTaskType() == TaskType.DEPENDENT
? "" : taskDefinitionLog.getTaskParams());
+ v.setParams(taskDefinitionLog.getTaskType() == TaskType.DEPENDENT
? null : taskDefinitionLog.getTaskParams());
v.setDependence(taskDefinitionLog.getTaskType() ==
TaskType.DEPENDENT ? taskDefinitionLog.getTaskParams() : null);
v.setTaskInstancePriority(taskDefinitionLog.getTaskPriority());
v.setWorkerGroup(taskDefinitionLog.getWorkerGroup());