diff --git a/.gitignore b/.gitignore
index 7433d23d..0f8aae2d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,5 +13,4 @@
/datax-rpc/target/
/datax-all.iml
/logs/
-*-dev*
-/data/
+*-dev*
\ No newline at end of file
diff --git a/datax-admin/pom.xml b/datax-admin/pom.xml
index 106760d3..cf85a69c 100644
--- a/datax-admin/pom.xml
+++ b/datax-admin/pom.xml
@@ -126,21 +126,6 @@
${basedir}/src/main/lib/sqljdbc4-4.0.jar
-
- com.oracle
- local_policy
- 4.0
- system
- ${basedir}/src/main/lib/local_policy.jar
-
-
- com.oracle
- US_export_policy
- 4.0
- system
- ${basedir}/src/main/lib/US_export_policy.jar
-
-
org.slf4j
slf4j-api
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobInfoController.java b/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobInfoController.java
index 4132c5ab..2b14f653 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobInfoController.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobInfoController.java
@@ -102,7 +102,7 @@ public class JobInfoController {
}
}
} catch (ParseException e) {
- return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid"));
+ return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid"));
}
return new ReturnT<>(result);
}
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobTemplateController.java b/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobTemplateController.java
index 8fc16b59..3a5de855 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobTemplateController.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobTemplateController.java
@@ -74,7 +74,7 @@ public class JobTemplateController {
}
}
} catch (ParseException e) {
- return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid"));
+ return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid"));
}
return new ReturnT<>(result);
}
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java b/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java
index 251823cd..f53688be 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java
@@ -49,7 +49,7 @@ public class JobTrigger {
}
if (GlueTypeEnum.BEAN.getDesc().equals(jobInfo.getGlueType())) {
//解密账密
- String json = JSONUtils.changeJson(jobInfo.getJobJson(), JSONUtils.decrypt);
+ String json = JSONUtils.decryptJson(jobInfo.getJobJson());
jobInfo.setJobJson(json);
}
if (StringUtils.isNotBlank(executorParam)) {
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/entity/JwtUser.java b/datax-admin/src/main/java/com/wugui/datax/admin/entity/JwtUser.java
index 217a2a5c..8fd30a19 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/entity/JwtUser.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/entity/JwtUser.java
@@ -21,11 +21,11 @@ public class JwtUser implements UserDetails {
}
// 写一个能直接使用user创建jwtUser的构造器
- public JwtUser(JobUser user, JobRole role) {
+ public JwtUser(JobUser user) {
id = user.getId();
username = user.getUsername();
password = user.getPassword();
- authorities = Collections.singleton(new SimpleGrantedAuthority(role.getName()));
+ authorities = Collections.singleton(new SimpleGrantedAuthority(user.getRole()));
}
@Override
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobServiceImpl.java b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobServiceImpl.java
index dca34b9e..c502fd13 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobServiceImpl.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobServiceImpl.java
@@ -15,11 +15,8 @@ import com.wugui.datax.admin.entity.JobLogReport;
import com.wugui.datax.admin.mapper.*;
import com.wugui.datax.admin.service.JobService;
import com.wugui.datax.admin.util.CronUtil;
-import com.wugui.datax.admin.util.JSONUtils;
-import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -55,7 +52,7 @@ public class JobServiceImpl implements JobService {
int list_count = jobInfoMapper.pageListCount(start, length, jobGroup, triggerStatus, jobDesc, glueType, author);
// package result
- Map maps = new HashMap<>();
+ Map maps = new HashMap();
maps.put("recordsTotal", list_count); // 总记录数
maps.put("recordsFiltered", list_count); // 过滤后的总记录数
maps.put("data", list); // 分页列表
@@ -67,31 +64,31 @@ public class JobServiceImpl implements JobService {
// valid
JobGroup group = jobGroupMapper.load(jobInfo.getJobGroup());
if (group == null) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose") + I18nUtil.getString("jobinfo_field_jobgroup")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose") + I18nUtil.getString("jobinfo_field_jobgroup")));
}
if (!CronExpression.isValidExpression(jobInfo.getJobCron())) {
- return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid"));
+ return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid"));
}
if (jobInfo.getGlueType().equals(GlueTypeEnum.BEAN.getDesc()) && jobInfo.getJobJson().trim().length() <= 2) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobjson")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobjson")));
}
if (jobInfo.getJobDesc() == null || jobInfo.getJobDesc().trim().length() == 0) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc")));
}
if (jobInfo.getAuthor() == null || jobInfo.getAuthor().trim().length() == 0) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author")));
}
if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid")));
}
if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid")));
}
if (GlueTypeEnum.match(jobInfo.getGlueType()) == null) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_gluetype") + I18nUtil.getString("system_unvalid")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_gluetype") + I18nUtil.getString("system_unvalid")));
}
if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType()) && (jobInfo.getExecutorHandler() == null || jobInfo.getExecutorHandler().trim().length() == 0)) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + "JobHandler"));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + "JobHandler"));
}
// fix "\r" in shell
@@ -127,15 +124,14 @@ public class JobServiceImpl implements JobService {
// add in db
jobInfo.setAddTime(new Date());
- jobInfo.setJobJson(JSONUtils.changeJson(jobInfo.getJobJson(), JSONUtils.encrypt));
jobInfo.setUpdateTime(new Date());
jobInfo.setGlueUpdatetime(new Date());
jobInfoMapper.save(jobInfo);
if (jobInfo.getId() < 1) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_add") + I18nUtil.getString("system_fail")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_add") + I18nUtil.getString("system_fail")));
}
- return new ReturnT<>(String.valueOf(jobInfo.getId()));
+ return new ReturnT(String.valueOf(jobInfo.getId()));
}
@Override
@@ -157,22 +153,22 @@ public class JobServiceImpl implements JobService {
// valid
if (!CronExpression.isValidExpression(jobInfo.getJobCron())) {
- return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid"));
+ return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid"));
}
if (jobInfo.getGlueType().equals(GlueTypeEnum.BEAN.getDesc()) && jobInfo.getJobJson().trim().length() <= 2) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobjson")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobjson")));
}
if (jobInfo.getJobDesc() == null || jobInfo.getJobDesc().trim().length() == 0) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc")));
}
if (jobInfo.getAuthor() == null || jobInfo.getAuthor().trim().length() == 0) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author")));
}
if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid")));
}
if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid")));
}
// ChildJobId valid
@@ -204,7 +200,7 @@ public class JobServiceImpl implements JobService {
// group valid
JobGroup jobGroup = jobGroupMapper.load(jobInfo.getJobGroup());
if (jobGroup == null) {
- return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_jobgroup") + I18nUtil.getString("system_unvalid")));
+ return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_jobgroup") + I18nUtil.getString("system_unvalid")));
}
// stage job info
@@ -224,15 +220,26 @@ public class JobServiceImpl implements JobService {
nextTriggerTime = nextValidTime.getTime();
} catch (ParseException e) {
logger.error(e.getMessage(), e);
- return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid") + " | " + e.getMessage());
+ return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid") + " | " + e.getMessage());
}
}
- BeanUtils.copyProperties(jobInfo,exists_jobInfo);
+ exists_jobInfo.setJobGroup(jobInfo.getJobGroup());
+ exists_jobInfo.setJobCron(jobInfo.getJobCron());
+ exists_jobInfo.setJobDesc(jobInfo.getJobDesc());
+ exists_jobInfo.setAuthor(jobInfo.getAuthor());
+ exists_jobInfo.setAlarmEmail(jobInfo.getAlarmEmail());
+ exists_jobInfo.setExecutorRouteStrategy(jobInfo.getExecutorRouteStrategy());
+ exists_jobInfo.setExecutorHandler(jobInfo.getExecutorHandler());
+ exists_jobInfo.setExecutorParam(jobInfo.getExecutorParam());
+ exists_jobInfo.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy());
+ exists_jobInfo.setExecutorTimeout(jobInfo.getExecutorTimeout());
+ exists_jobInfo.setExecutorFailRetryCount(jobInfo.getExecutorFailRetryCount());
+ exists_jobInfo.setChildJobId(jobInfo.getChildJobId());
+ exists_jobInfo.setTriggerNextTime(nextTriggerTime);
exists_jobInfo.setReplaceParam(jobInfo.getReplaceParam());
exists_jobInfo.setJvmParam(jobInfo.getJvmParam());
exists_jobInfo.setIncStartTime(jobInfo.getIncStartTime());
- exists_jobInfo.setTriggerNextTime(nextTriggerTime);
exists_jobInfo.setUpdateTime(new Date());
exists_jobInfo.setGlueType(jobInfo.getGlueType());
exists_jobInfo.setPartitionInfo(jobInfo.getPartitionInfo());
@@ -278,7 +285,7 @@ public class JobServiceImpl implements JobService {
nextTriggerTime = nextValidTime.getTime();
} catch (ParseException e) {
logger.error(e.getMessage(), e);
- return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid") + " | " + e.getMessage());
+ return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid") + " | " + e.getMessage());
}
xxlJobInfo.setTriggerStatus(1);
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobTemplateServiceImpl.java b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobTemplateServiceImpl.java
index 1f664a8d..1edf37a1 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobTemplateServiceImpl.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobTemplateServiceImpl.java
@@ -49,7 +49,7 @@ public class JobTemplateServiceImpl implements JobTemplateService {
int list_count = jobTemplateMapper.pageListCount(start, length, jobGroup, jobDesc, executorHandler, author);
// package result
- Map maps = new HashMap<>();
+ Map maps = new HashMap();
maps.put("recordsTotal", list_count); // 总记录数
maps.put("recordsFiltered", list_count); // 过滤后的总记录数
maps.put("data", list); // 分页列表
@@ -64,7 +64,7 @@ public class JobTemplateServiceImpl implements JobTemplateService {
return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose")+I18nUtil.getString("jobinfo_field_jobgroup")) );
}
if (!CronExpression.isValidExpression(jobTemplate.getJobCron())) {
- return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid") );
+ return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid") );
}
if (jobTemplate.getJobDesc()==null || jobTemplate.getJobDesc().trim().length()==0) {
return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_jobdesc")) );
@@ -142,7 +142,7 @@ public class JobTemplateServiceImpl implements JobTemplateService {
// valid
if (!CronExpression.isValidExpression(jobTemplate.getJobCron())) {
- return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid"));
+ return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid"));
}
if (jobTemplate.getJobDesc()==null || jobTemplate.getJobDesc().trim().length()==0) {
return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc")));
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/UserDetailsServiceImpl.java b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/UserDetailsServiceImpl.java
index b1300829..dcd9ee05 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/UserDetailsServiceImpl.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/UserDetailsServiceImpl.java
@@ -1,6 +1,5 @@
package com.wugui.datax.admin.service.impl;
-import com.wugui.datax.admin.entity.JobRole;
import com.wugui.datax.admin.entity.JwtUser;
import com.wugui.datax.admin.entity.JobUser;
import com.wugui.datax.admin.mapper.JobUserMapper;
@@ -25,8 +24,7 @@ public class UserDetailsServiceImpl implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
JobUser user = jobUserMapper.loadByUserName(s);
- JobRole role = jobUserMapper.getRoleByUserId(user.getId());
- return new JwtUser(user, role);
+ return new JwtUser(user);
}
}
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java b/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java
index b49a4f4d..fea427a7 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java
@@ -1,5 +1,6 @@
package com.wugui.datax.admin.util;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -14,63 +15,105 @@ import com.alibaba.fastjson.JSONObject;
public class JSONUtils {
/**
- * decrypt 解密
- */
- public static Integer decrypt = 0;
- /**
- * decrypt 加密
- */
- public static Integer encrypt = 1;
-
- /**
- * @param content
- * @param key
- * @param changeType 0加密 or 1解密
+ * 返回格式化的json
+ *
+ * @param object
* @return
*/
- public static JSONObject change(String content, String key, Integer changeType) {
- JSONObject keyObj = JSONObject.parseObject(JSONObject.parseObject(content).getString(key));
- JSONObject params = JSONObject.parseObject(keyObj.getString("parameter"));
- String dUsername = null, dPassword = null;
- if (decrypt.equals(changeType)) { //解密
- dUsername = AESUtil.decrypt(params.getString("username"));
- dPassword = AESUtil.decrypt(params.getString("password"));
-
- } else if (encrypt.equals(changeType)) {//加密
-
- dUsername = AESUtil.encrypt(params.getString("username"));
- dPassword = AESUtil.encrypt(params.getString("password"));
- }
- String username = dUsername == null ? params.getString("username") : dUsername;
- String password = dPassword == null ? params.getString("password") : dPassword;
- params.put("username", username);
- params.put("password", password);
- keyObj.put("parameter", params);
- return keyObj;
+ public static String formatJson(Object object) {
+ return JSON.toJSONString(object, true);
}
- /**
- * @param jsonStr
- * @param changeType 0加密 or 1解密
- * @return jsonStr
- */
- public static String changeJson(String jsonStr, Integer changeType) {
+ public static String decryptJson(String jsonStr) {
JSONObject json = JSONObject.parseObject(jsonStr);
JSONObject job = json.getJSONObject("job");
- JSONArray contents = job.getJSONArray("content");
- for (int i = 0; i < contents.size(); i++) {
- String contentStr = contents.getString(i);
- Object obj = contents.get(i);
- if (decrypt.equals(changeType)) { //解密
- ((JSONObject) obj).put("reader", change(contentStr, "reader", decrypt));
- ((JSONObject) obj).put("writer", change(contentStr, "writer", decrypt));
- } else if (encrypt.equals(changeType)) {//加密
- ((JSONObject) obj).put("reader", change(contentStr, "reader", encrypt));
- ((JSONObject) obj).put("writer", change(contentStr, "writer", encrypt));
- }
+ JSONArray content = job.getJSONArray("content");
+ for (int i = 0; i < content.size(); i++) {
+ ((JSONObject) content.get(i)).put("reader", decrypt(content.getString(i), "reader"));
+ ((JSONObject) content.get(i)).put("writer", decrypt(content.getString(i), "writer"));
}
- job.put("content", contents);
+ job.put("content", content);
json.put("job", job);
return json.toJSONString();
}
+
+ public static JSONObject decrypt(String content, String key) {
+ JSONObject writer = JSONObject.parseObject(JSONObject.parseObject(content).getString(key));
+ JSONObject writerParams = JSONObject.parseObject(writer.getString("parameter"));
+
+ String dUsername = AESUtil.decrypt(writerParams.getString("username"));
+ String username = dUsername == null ? writerParams.getString("username") : dUsername;
+ writerParams.put("username", username);
+
+ String dPassword = AESUtil.decrypt(writerParams.getString("password"));
+ String password = dPassword == null ? writerParams.getString("password") : dPassword;
+ writerParams.put("password", password);
+
+ writer.put("parameter", writerParams);
+ return writer;
+ }
+
+
+ public static void main(String[] args) {
+ String s = "{\n" +
+ " \"job\": {\n" +
+ " \"setting\": {\n" +
+ " \"speed\": {\n" +
+ " \"channel\": 3\n" +
+ " },\n" +
+ " \"errorLimit\": {\n" +
+ " \"record\": 0,\n" +
+ " \"percentage\": 0.02\n" +
+ " }\n" +
+ " },\n" +
+ " \"content\": [\n" +
+ " {\n" +
+ " \"reader\": {\n" +
+ " \"name\": \"mysqlreader\",\n" +
+ " \"parameter\": {\n" +
+ " \"username\": \"8ivlZcKGclwi5NwpuzkXzg==\",\n" +
+ " \"password\": \"fZfGM5387/mzCDxqjb2thQ==\",\n" +
+ " \"column\": [\n" +
+ " \"`id`\"\n" +
+ " ],\n" +
+ " \"splitPk\": \"\",\n" +
+ " \"connection\": [\n" +
+ " {\n" +
+ " \"table\": [\n" +
+ " \"datax_plugin\"\n" +
+ " ],\n" +
+ " \"jdbcUrl\": [\n" +
+ " \"jdbc:mysql://localhost:3306/datax_web\"\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " },\n" +
+ " \"writer\": {\n" +
+ " \"name\": \"mysqlwriter\",\n" +
+ " \"parameter\": {\n" +
+ " \"username\": \"8ivlZcKGclwi5NwpuzkXzg==\",\n" +
+ " \"password\": \"fZfGM5387/mzCDxqjb2thQ==\",\n" +
+ " \"column\": [\n" +
+ " \"`id`\"\n" +
+ " ],\n" +
+ " \"preSql\": [\n" +
+ " \"\"\n" +
+ " ],\n" +
+ " \"connection\": [\n" +
+ " {\n" +
+ " \"table\": [\n" +
+ " \"job_log\"\n" +
+ " ],\n" +
+ " \"jdbcUrl\": \"jdbc:mysql://localhost:3306/datax_web\"\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " }\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ "}";
+ System.out.println(decryptJson(s));
+ }
}
diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/util/ServletUtils.java b/datax-admin/src/main/java/com/wugui/datax/admin/util/ServletUtils.java
index 5f936de6..942689b5 100644
--- a/datax-admin/src/main/java/com/wugui/datax/admin/util/ServletUtils.java
+++ b/datax-admin/src/main/java/com/wugui/datax/admin/util/ServletUtils.java
@@ -56,7 +56,7 @@ public class ServletUtils {
* requestContextFilter/*
*/
public static HttpServletResponse getResponse() {
- HttpServletResponse response;
+ HttpServletResponse response = null;
try {
response = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getResponse();
if (response == null) {
diff --git a/datax-admin/src/main/lib/US_export_policy.jar b/datax-admin/src/main/lib/US_export_policy.jar
deleted file mode 100644
index 251b102c..00000000
Binary files a/datax-admin/src/main/lib/US_export_policy.jar and /dev/null differ
diff --git a/datax-admin/src/main/lib/local_policy.jar b/datax-admin/src/main/lib/local_policy.jar
deleted file mode 100644
index 1c58939b..00000000
Binary files a/datax-admin/src/main/lib/local_policy.jar and /dev/null differ
diff --git a/datax-admin/src/main/resources/i18n/message.properties b/datax-admin/src/main/resources/i18n/message.properties
index dfe1e567..db263c23 100644
--- a/datax-admin/src/main/resources/i18n/message.properties
+++ b/datax-admin/src/main/resources/i18n/message.properties
@@ -122,7 +122,7 @@ jobinfo_field_readerColumns=Reader Column
jobinfo_field_writerColumns=Writer Column
jobinfo_field_gluetype=运行模式
jobinfo_field_executorparam=任务参数
-jobinfo_field_cron_invalid=Cron格式非法
+jobinfo_field_cron_unvalid=Cron格式非法
jobinfo_field_cron_never_fire=Cron非法,永远不会触发
jobinfo_field_author=负责人
jobinfo_field_timeout=任务超时时间
diff --git a/datax-admin/src/main/resources/i18n/message_en.properties b/datax-admin/src/main/resources/i18n/message_en.properties
index 70b14afd..155539c6 100644
--- a/datax-admin/src/main/resources/i18n/message_en.properties
+++ b/datax-admin/src/main/resources/i18n/message_en.properties
@@ -117,7 +117,7 @@ jobinfo_field_jobJSON=Job JSON
jobinfo_field_timeout=Job timeout period
jobinfo_field_gluetype=GLUE Type
jobinfo_field_executorparam=Param
-jobinfo_field_cron_invalid=The Cron is illegal
+jobinfo_field_cron_unvalid=The Cron is illegal
jobinfo_field_cron_never_fire=The Cron will never fire
jobinfo_field_author=Author
jobinfo_field_alarmemail=Alarm email
diff --git a/datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml b/datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml
index 2a8f0657..70cc54f1 100644
--- a/datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml
+++ b/datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml
@@ -65,7 +65,7 @@
UPDATE job_user
SET
- password = #{password}
+ password = #{password},
role = #{role},
permission = #{permission}
diff --git a/datax-core/src/main/java/com/wugui/datatx/core/thread/JobThread.java b/datax-core/src/main/java/com/wugui/datatx/core/thread/JobThread.java
index 85350edd..8fd19b1d 100644
--- a/datax-core/src/main/java/com/wugui/datatx/core/thread/JobThread.java
+++ b/datax-core/src/main/java/com/wugui/datatx/core/thread/JobThread.java
@@ -46,8 +46,8 @@ public class JobThread extends Thread {
public JobThread(int jobId, IJobHandler handler) {
this.jobId = jobId;
this.handler = handler;
- this.triggerQueue = new LinkedBlockingQueue<>();
- this.triggerLogIdSet = Collections.synchronizedSet(new HashSet<>());
+ this.triggerQueue = new LinkedBlockingQueue();
+ this.triggerLogIdSet = Collections.synchronizedSet(new HashSet());
}
public IJobHandler getHandler() {
diff --git a/datax-executor/src/main/java/com/wugui/datax/executor/core/config/DataXConfig.java b/datax-executor/src/main/java/com/wugui/datax/executor/core/config/DataXConfig.java
index 95228958..feb61953 100644
--- a/datax-executor/src/main/java/com/wugui/datax/executor/core/config/DataXConfig.java
+++ b/datax-executor/src/main/java/com/wugui/datax/executor/core/config/DataXConfig.java
@@ -70,7 +70,7 @@ public class DataXConfig {
* spring-cloud-commons
* ${version}
*
- *AE
+ *
* 2、配置文件,或者容器启动变量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/XxlRegistryBaseClient.java b/datax-registry/src/main/java/com.wugui.datax.registry/XxlRegistryBaseClient.java
index 0fee1661..f0157806 100644
--- a/datax-registry/src/main/java/com.wugui.datax.registry/XxlRegistryBaseClient.java
+++ b/datax-registry/src/main/java/com.wugui.datax.registry/XxlRegistryBaseClient.java
@@ -33,13 +33,13 @@ public class XxlRegistryBaseClient {
this.env = env;
// valid
- if (adminAddress == null || adminAddress.trim().length() == 0) {
+ if (adminAddress==null || adminAddress.trim().length()==0) {
throw new RuntimeException("xxl-registry adminAddress empty");
}
- if (biz == null || biz.trim().length() < 4 || biz.trim().length() > 255) {
+ if (biz==null || biz.trim().length()<4 || biz.trim().length()>255) {
throw new RuntimeException("xxl-registry biz empty Invalid[4~255]");
}
- if (env == null || env.trim().length() < 2 || env.trim().length() > 255) {
+ if (env==null || env.trim().length()<2 || env.trim().length()>255) {
throw new RuntimeException("xxl-registry biz env Invalid[2~255]");
}
@@ -59,17 +59,17 @@ public class XxlRegistryBaseClient {
* @param registryDataList
* @return
*/
- public boolean registry(List registryDataList) {
+ public boolean registry(List registryDataList){
// valid
- if (registryDataList == null || registryDataList.size() == 0) {
+ if (registryDataList==null || registryDataList.size()==0) {
throw new RuntimeException("xxl-registry registryDataList empty");
}
- for (XxlRegistryDataParamVO registryParam : registryDataList) {
- if (registryParam.getKey() == null || registryParam.getKey().trim().length() < 4 || registryParam.getKey().trim().length() > 255) {
+ for (XxlRegistryDataParamVO registryParam: registryDataList) {
+ if (registryParam.getKey()==null || registryParam.getKey().trim().length()<4 || registryParam.getKey().trim().length()>255) {
throw new RuntimeException("xxl-registry registryDataList#key Invalid[4~255]");
}
- if (registryParam.getValue() == null || registryParam.getValue().trim().length() < 4 || registryParam.getValue().trim().length() > 255) {
+ if (registryParam.getValue()==null || registryParam.getValue().trim().length()<4 || registryParam.getValue().trim().length()>255) {
throw new RuntimeException("xxl-registry registryDataList#value Invalid[4~255]");
}
}
@@ -88,12 +88,12 @@ public class XxlRegistryBaseClient {
// result
Map respObj = requestAndValid(pathUrl, paramsJson, 5);
- return respObj != null ? true : false;
+ return respObj!=null?true:false;
}
- private Map requestAndValid(String pathUrl, String requestBody, int timeout) {
+ private Map requestAndValid(String pathUrl, String requestBody, int timeout){
- for (String adminAddressUrl : adminAddressArr) {
+ for (String adminAddressUrl: adminAddressArr) {
String finalUrl = adminAddressUrl + pathUrl;
// request
@@ -106,15 +106,14 @@ public class XxlRegistryBaseClient {
Map resopnseMap = null;
try {
resopnseMap = BasicJson.parseMap(responseData);
- } catch (Exception e) {
- }
+ } catch (Exception e) { }
// valid resopnse
- if (resopnseMap == null
+ if (resopnseMap==null
|| !resopnseMap.containsKey("code")
|| !"200".equals(String.valueOf(resopnseMap.get("code")))
- ) {
+ ) {
logger.warn("XxlRegistryBaseClient response fail, responseData={}", responseData);
return null;
}
@@ -134,14 +133,14 @@ public class XxlRegistryBaseClient {
*/
public boolean remove(List registryDataList) {
// valid
- if (registryDataList == null || registryDataList.size() == 0) {
+ if (registryDataList==null || registryDataList.size()==0) {
throw new RuntimeException("xxl-registry registryDataList empty");
}
- for (XxlRegistryDataParamVO registryParam : registryDataList) {
- if (registryParam.getKey() == null || registryParam.getKey().trim().length() < 4 || registryParam.getKey().trim().length() > 255) {
+ for (XxlRegistryDataParamVO registryParam: registryDataList) {
+ if (registryParam.getKey()==null || registryParam.getKey().trim().length()<4 || registryParam.getKey().trim().length()>255) {
throw new RuntimeException("xxl-registry registryDataList#key Invalid[4~255]");
}
- if (registryParam.getValue() == null || registryParam.getValue().trim().length() < 4 || registryParam.getValue().trim().length() > 255) {
+ if (registryParam.getValue()==null || registryParam.getValue().trim().length()<4 || registryParam.getValue().trim().length()>255) {
throw new RuntimeException("xxl-registry registryDataList#value Invalid[4~255]");
}
}
@@ -160,7 +159,7 @@ public class XxlRegistryBaseClient {
// result
Map respObj = requestAndValid(pathUrl, paramsJson, 5);
- return respObj != null ? true : false;
+ return respObj!=null?true:false;
}
/**
@@ -171,7 +170,7 @@ public class XxlRegistryBaseClient {
*/
public Map> discovery(Set keys) {
// valid
- if (keys == null || keys.size() == 0) {
+ if (keys==null || keys.size()==0) {
throw new RuntimeException("xxl-registry keys empty");
}
@@ -191,7 +190,7 @@ public class XxlRegistryBaseClient {
Map respObj = requestAndValid(pathUrl, paramsJson, 5);
// parse
- if (respObj != null && respObj.containsKey("data")) {
+ if (respObj!=null && respObj.containsKey("data")) {
Map> data = (Map>) respObj.get("data");
return data;
}
@@ -207,7 +206,7 @@ public class XxlRegistryBaseClient {
*/
public boolean monitor(Set keys) {
// valid
- if (keys == null || keys.size() == 0) {
+ if (keys==null || keys.size()==0) {
throw new RuntimeException("xxl-registry keys empty");
}
@@ -225,7 +224,7 @@ public class XxlRegistryBaseClient {
// result
Map respObj = requestAndValid(pathUrl, paramsJson, 60);
- return respObj != null ? true : false;
+ return respObj!=null?true:false;
}
}
diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/model/XxlRegistryDataParamVO.java b/datax-registry/src/main/java/com.wugui.datax.registry/model/XxlRegistryDataParamVO.java
index be3f543d..920a6695 100644
--- a/datax-registry/src/main/java/com.wugui.datax.registry/model/XxlRegistryDataParamVO.java
+++ b/datax-registry/src/main/java/com.wugui.datax.registry/model/XxlRegistryDataParamVO.java
@@ -14,7 +14,6 @@ public class XxlRegistryDataParamVO {
public XxlRegistryDataParamVO() {
}
-
public XxlRegistryDataParamVO(String key, String value) {
this.key = key;
this.value = value;
diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/util/BasicHttpUtil.java b/datax-registry/src/main/java/com.wugui.datax.registry/util/BasicHttpUtil.java
index a0bd8975..d562b0ea 100644
--- a/datax-registry/src/main/java/com.wugui.datax.registry/util/BasicHttpUtil.java
+++ b/datax-registry/src/main/java/com.wugui.datax.registry/util/BasicHttpUtil.java
@@ -51,10 +51,17 @@ public class BasicHttpUtil {
dataOutputStream.flush();
dataOutputStream.close();
+ /*byte[] requestBodyBytes = requestBody.getBytes("UTF-8");
+ connection.setRequestProperty("Content-Length", String.valueOf(requestBodyBytes.length));
+ OutputStream outwritestream = connection.getOutputStream();
+ outwritestream.write(requestBodyBytes);
+ outwritestream.flush();
+ outwritestream.close();*/
+
// valid StatusCode
int statusCode = connection.getResponseCode();
if (statusCode != 200) {
- throw new RuntimeException("http request StatusCode(" + statusCode + ") invalid. for url : " + url);
+ throw new RuntimeException("http request StatusCode("+ statusCode +") invalid. for url : " + url);
}
// result
@@ -116,7 +123,7 @@ public class BasicHttpUtil {
// valid StatusCode
int statusCode = connection.getResponseCode();
if (statusCode != 200) {
- throw new RuntimeException("Http Request StatusCode(" + statusCode + ") Invalid.");
+ throw new RuntimeException("Http Request StatusCode("+ statusCode +") Invalid.");
}
// result
diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJson.java b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJson.java
index b9b78aca..e1a8bac9 100644
--- a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJson.java
+++ b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJson.java
@@ -29,7 +29,7 @@ public class BasicJson {
* parse json to map
*
* @param json
- * @return only for filed type "null、ArrayList、LinkedHashMap、String、Long、Double、..."
+ * @return only for filed type "null、ArrayList、LinkedHashMap、String、Long、Double、..."
*/
public static Map parseMap(String json) {
return basicJsonReader.parseMap(json);
@@ -46,11 +46,12 @@ public class BasicJson {
}
+
public static void main(String[] args) {
Map result = new HashMap<>();
result.put("code", 200);
result.put("msg", "success");
- result.put("arr", Arrays.asList("111", "222"));
+ result.put("arr", Arrays.asList("111","222"));
result.put("float", 1.11f);
result.put("temp", null);
@@ -205,4 +206,6 @@ public class BasicJson {
}*/
+
+
}
diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonReader.java b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonReader.java
index 1f467887..51b09ad9 100644
--- a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonReader.java
+++ b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonReader.java
@@ -12,169 +12,173 @@ import java.util.Map;
* @author xuxueli 2018-11-30
*/
public class BasicJsonReader {
- private static Logger logger = LoggerFactory.getLogger(BasicJsonwriter.class);
+ private static Logger logger = LoggerFactory.getLogger(BasicJsonwriter.class);
- public Map parseMap(String json) {
- if (json != null) {
- json = json.trim();
- if (json.startsWith("{")) {
- return parseMapInternal(json);
- }
- }
- throw new IllegalArgumentException("Cannot parse JSON");
- }
+ public Map parseMap(String json) {
+ if (json != null) {
+ json = json.trim();
+ if (json.startsWith("{")) {
+ return parseMapInternal(json);
+ }
+ }
+ throw new IllegalArgumentException("Cannot parse JSON");
+ }
- public List