|
@@ -1,21 +1,25 @@
|
|
/**
|
|
/**
|
|
* Alipay.com Inc. Copyright (c) 2004-2020 All Rights Reserved.
|
|
* Alipay.com Inc. Copyright (c) 2004-2020 All Rights Reserved.
|
|
*/
|
|
*/
|
|
-package org.dbsyncer.biz.checker.impl;
|
|
|
|
|
|
+package org.dbsyncer.biz.checker.impl.mapping;
|
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.math.NumberUtils;
|
|
import org.apache.commons.lang.math.NumberUtils;
|
|
import org.dbsyncer.biz.checker.AbstractChecker;
|
|
import org.dbsyncer.biz.checker.AbstractChecker;
|
|
|
|
+import org.dbsyncer.biz.checker.ConnectorConfigChecker;
|
|
|
|
+import org.dbsyncer.biz.checker.MappingConfigChecker;
|
|
import org.dbsyncer.common.util.JsonUtil;
|
|
import org.dbsyncer.common.util.JsonUtil;
|
|
import org.dbsyncer.listener.config.ListenerConfig;
|
|
import org.dbsyncer.listener.config.ListenerConfig;
|
|
import org.dbsyncer.manager.Manager;
|
|
import org.dbsyncer.manager.Manager;
|
|
import org.dbsyncer.parser.constant.ModelConstant;
|
|
import org.dbsyncer.parser.constant.ModelConstant;
|
|
-import org.dbsyncer.parser.model.ConfigModel;
|
|
|
|
import org.dbsyncer.parser.model.Mapping;
|
|
import org.dbsyncer.parser.model.Mapping;
|
|
import org.dbsyncer.storage.constant.ConfigConstant;
|
|
import org.dbsyncer.storage.constant.ConfigConstant;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
+import org.springframework.beans.BeansException;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.context.ApplicationContext;
|
|
|
|
+import org.springframework.context.ApplicationContextAware;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.util.Assert;
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
@@ -27,13 +31,20 @@ import java.util.Map;
|
|
* @date 2020/1/8 15:17
|
|
* @date 2020/1/8 15:17
|
|
*/
|
|
*/
|
|
@Component
|
|
@Component
|
|
-public class MappingChecker extends AbstractChecker {
|
|
|
|
|
|
+public class MappingChecker extends AbstractChecker implements ApplicationContextAware {
|
|
|
|
|
|
private final Logger logger = LoggerFactory.getLogger(getClass());
|
|
private final Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private Manager manager;
|
|
private Manager manager;
|
|
|
|
|
|
|
|
+ private Map<String, MappingConfigChecker> map;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
|
|
|
+ map = applicationContext.getBeansOfType(MappingConfigChecker.class);
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public String checkConfigModel(Map<String, String> params) {
|
|
public String checkConfigModel(Map<String, String> params) {
|
|
logger.info("check mapping params:{}", params);
|
|
logger.info("check mapping params:{}", params);
|
|
@@ -58,9 +69,13 @@ public class MappingChecker extends AbstractChecker {
|
|
mapping.setThreadNum(NumberUtils.toInt(threadNum, mapping.getThreadNum()));
|
|
mapping.setThreadNum(NumberUtils.toInt(threadNum, mapping.getThreadNum()));
|
|
String batchNum = params.get("batchNum");
|
|
String batchNum = params.get("batchNum");
|
|
mapping.setBatchNum(NumberUtils.toInt(batchNum, mapping.getBatchNum()));
|
|
mapping.setBatchNum(NumberUtils.toInt(batchNum, mapping.getBatchNum()));
|
|
- // TODO 增量配置(日志/定时)
|
|
|
|
|
|
+
|
|
|
|
+ // 增量配置(日志/定时)
|
|
String incrementStrategy = params.get("incrementStrategy");
|
|
String incrementStrategy = params.get("incrementStrategy");
|
|
- ListenerConfig listener = mapping.getListener();
|
|
|
|
|
|
+ String type = this.getCheckerType(incrementStrategy);
|
|
|
|
+ MappingConfigChecker checker = map.get(type);
|
|
|
|
+ Assert.notNull(checker, "Checker can not be null.");
|
|
|
|
+ checker.modify(mapping, params);
|
|
|
|
|
|
// 修改高级配置:过滤条件/转换配置/插件配置
|
|
// 修改高级配置:过滤条件/转换配置/插件配置
|
|
this.modifySuperConfigModel(mapping, params);
|
|
this.modifySuperConfigModel(mapping, params);
|