|
@@ -1,16 +1,17 @@
|
|
|
package org.dbsyncer.parser;
|
|
|
|
|
|
-import org.apache.commons.lang.StringUtils;
|
|
|
import org.dbsyncer.cache.CacheService;
|
|
|
import org.dbsyncer.common.util.JsonUtil;
|
|
|
+import org.dbsyncer.connector.template.CommandTemplate;
|
|
|
import org.dbsyncer.connector.ConnectorFactory;
|
|
|
import org.dbsyncer.connector.config.ConnectorConfig;
|
|
|
+import org.dbsyncer.connector.config.Filter;
|
|
|
import org.dbsyncer.connector.config.MetaInfo;
|
|
|
+import org.dbsyncer.connector.config.Table;
|
|
|
import org.dbsyncer.connector.enums.ConnectorEnum;
|
|
|
import org.dbsyncer.connector.enums.FilterEnum;
|
|
|
import org.dbsyncer.connector.enums.OperationEnum;
|
|
|
import org.dbsyncer.parser.enums.ConvertEnum;
|
|
|
-import org.dbsyncer.parser.model.ConfigModel;
|
|
|
import org.dbsyncer.parser.model.Connector;
|
|
|
import org.dbsyncer.parser.model.Mapping;
|
|
|
import org.dbsyncer.parser.model.TableGroup;
|
|
@@ -25,6 +26,7 @@ import org.springframework.util.Assert;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* @author AE86
|
|
@@ -61,6 +63,20 @@ public class ParserFactory implements Parser {
|
|
|
return connectorFactory.getMetaInfo(config, tableName);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Map<String, String> getCommand(String sourceConnectorId, String targetConnectorId, TableGroup tableGroup) {
|
|
|
+ String sType = getConnectorConfig(sourceConnectorId).getConnectorType();
|
|
|
+ String tType = getConnectorConfig(targetConnectorId).getConnectorType();
|
|
|
+ Table sourceTable = tableGroup.getSourceTable();
|
|
|
+ Table targetTable = tableGroup.getTargetTable();
|
|
|
+ List<Filter> filter = tableGroup.getFilter();
|
|
|
+ final CommandTemplate sourceCmdTemplate = new CommandTemplate(sType, sourceTable, filter);
|
|
|
+ final CommandTemplate targetCmdTemplate = new CommandTemplate(tType, targetTable);
|
|
|
+ // 获取连接器同步参数
|
|
|
+ Map<String, String> command = connectorFactory.getCommand(sourceCmdTemplate, targetCmdTemplate);
|
|
|
+ return command;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Connector parseConnector(String json) {
|
|
|
try {
|
|
@@ -125,18 +141,6 @@ public class ParserFactory implements Parser {
|
|
|
return Arrays.asList(ConvertEnum.values());
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 验证连接器是否可用
|
|
|
- *
|
|
|
- * @param connectorId
|
|
|
- */
|
|
|
- private void aliveConnector(String connectorId) {
|
|
|
- ConnectorConfig config = getConnectorConfig(connectorId);
|
|
|
- if (!connectorFactory.isAlive(config)) {
|
|
|
- throw new ParserException("无法连接,请检查服务是否正常.");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 获取连接配置
|
|
|
*
|
|
@@ -150,16 +154,4 @@ public class ParserFactory implements Parser {
|
|
|
return conn.getConfig();
|
|
|
}
|
|
|
|
|
|
- private void setConfigModel(ConfigModel model, String type) {
|
|
|
- Assert.notNull(model, "ConfigModel can not be null.");
|
|
|
- Assert.hasText(type, "ConfigModel type can not be empty.");
|
|
|
- Assert.hasText(model.getName(), "ConfigModel name can not be empty.");
|
|
|
-
|
|
|
- model.setId(StringUtils.isEmpty(model.getId()) ? String.valueOf(snowflakeIdWorker.nextId()) : model.getId());
|
|
|
- model.setType(type);
|
|
|
- long now = System.currentTimeMillis();
|
|
|
- model.setCreateTime(null == model.getCreateTime() ? now : model.getCreateTime());
|
|
|
- model.setUpdateTime(now);
|
|
|
- }
|
|
|
-
|
|
|
}
|