diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/config/MappingConfig.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/config/MappingConfig.java index ce1b9f15..5c0e9f9f 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/config/MappingConfig.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/config/MappingConfig.java @@ -1,5 +1,7 @@ package com.alibaba.otter.canal.client.adapter.rdb.config; +import org.apache.commons.lang.StringUtils; + import java.util.LinkedHashMap; import java.util.Map; @@ -92,7 +94,7 @@ public class MappingConfig { private Map allMapColumns; public Boolean getMirrorDb() { - return mirrorDb; + return mirrorDb == null ? false : mirrorDb; } public void setMirrorDb(Boolean mirrorDb) { @@ -148,6 +150,13 @@ public class MappingConfig { } public Map getTargetColumns() { + if (targetColumns != null) { + targetColumns.forEach((key, value) -> { + if (StringUtils.isEmpty(value)) { + targetColumns.put(key, key); + } + }); + } return targetColumns; } diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/monitor/RdbConfigMonitor.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/monitor/RdbConfigMonitor.java index 271f1393..e337b829 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/monitor/RdbConfigMonitor.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/monitor/RdbConfigMonitor.java @@ -4,7 +4,6 @@ import java.io.File; import java.util.HashMap; import java.util.Map; -import com.alibaba.otter.canal.client.adapter.rdb.config.MirrorDbConfig; import org.apache.commons.io.filefilter.FileFilterUtils; import org.apache.commons.io.monitor.FileAlterationListenerAdaptor; import org.apache.commons.io.monitor.FileAlterationMonitor; @@ -16,6 +15,7 @@ import org.yaml.snakeyaml.Yaml; import com.alibaba.otter.canal.client.adapter.rdb.RdbAdapter; import com.alibaba.otter.canal.client.adapter.rdb.config.MappingConfig; +import com.alibaba.otter.canal.client.adapter.rdb.config.MirrorDbConfig; import com.alibaba.otter.canal.client.adapter.support.MappingConfigsLoader; import com.alibaba.otter.canal.client.adapter.support.Util; @@ -121,18 +121,23 @@ public class RdbConfigMonitor { } private void addConfigToCache(File file, MappingConfig mappingConfig) { - rdbAdapter.getRdbMapping().put(file.getName(), mappingConfig); - Map configMap = rdbAdapter.getMappingConfigCache() - .computeIfAbsent(StringUtils.trimToEmpty(mappingConfig.getDestination()) + "." - + mappingConfig.getDbMapping().getDatabase() + "." - + mappingConfig.getDbMapping().getTable(), - k1 -> new HashMap<>()); - configMap.put(file.getName(), mappingConfig); - - Map mirrorDbConfigCache = rdbAdapter.getMirrorDbConfigCache(); - mirrorDbConfigCache.put(StringUtils.trimToEmpty(mappingConfig.getDestination()) + "." - + mappingConfig.getDbMapping().getDatabase(), - MirrorDbConfig.create(file.getName(), mappingConfig)); + MappingConfig.DbMapping dbMapping = mappingConfig.getDbMapping(); + if (dbMapping != null) { + if (!dbMapping.getMirrorDb()) { + rdbAdapter.getRdbMapping().put(file.getName(), mappingConfig); + Map configMap = rdbAdapter.getMappingConfigCache() + .computeIfAbsent(StringUtils.trimToEmpty(mappingConfig.getDestination()) + "." + + mappingConfig.getDbMapping().getDatabase() + "." + + mappingConfig.getDbMapping().getTable(), + k1 -> new HashMap<>()); + configMap.put(file.getName(), mappingConfig); + } else { + Map mirrorDbConfigCache = rdbAdapter.getMirrorDbConfigCache(); + mirrorDbConfigCache.put(StringUtils.trimToEmpty(mappingConfig.getDestination()) + "." + + mappingConfig.getDbMapping().getDatabase(), + MirrorDbConfig.create(file.getName(), mappingConfig)); + } + } } private void deleteConfigFromCache(File file) { diff --git a/deployer/src/main/resources/spring/default-instance.xml b/deployer/src/main/resources/spring/default-instance.xml index f312b1ce..019c3031 100644 --- a/deployer/src/main/resources/spring/default-instance.xml +++ b/deployer/src/main/resources/spring/default-instance.xml @@ -11,7 +11,7 @@ default-autowire="byName"> - + @@ -33,10 +33,10 @@ - + - + @@ -46,7 +46,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -82,35 +82,35 @@ - + - + - + - + - + - + - + @@ -124,10 +124,10 @@ - + - + @@ -149,7 +149,7 @@ - + @@ -175,16 +175,16 @@ - + - + - + @@ -193,6 +193,7 @@ + diff --git a/deployer/src/main/resources/spring/file-instance.xml b/deployer/src/main/resources/spring/file-instance.xml index 3b6d6a8d..636dc4e5 100644 --- a/deployer/src/main/resources/spring/file-instance.xml +++ b/deployer/src/main/resources/spring/file-instance.xml @@ -11,7 +11,7 @@ default-autowire="byName"> - + @@ -33,15 +33,15 @@ - + - + - + @@ -49,7 +49,7 @@ - + @@ -68,16 +68,16 @@ - + - + - + @@ -86,16 +86,16 @@ - + - + - + @@ -109,10 +109,10 @@ - + - + @@ -169,7 +169,7 @@ - + @@ -178,6 +178,7 @@ + diff --git a/deployer/src/main/resources/spring/group-instance.xml b/deployer/src/main/resources/spring/group-instance.xml index d9c61fb8..d0c94057 100644 --- a/deployer/src/main/resources/spring/group-instance.xml +++ b/deployer/src/main/resources/spring/group-instance.xml @@ -9,7 +9,7 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" default-autowire="byName"> - + @@ -33,12 +33,12 @@ - + - + - + @@ -46,12 +46,12 @@ - + - + @@ -74,16 +74,16 @@ - + - + - + @@ -92,24 +92,24 @@ - + - + - + - + - + @@ -131,7 +131,7 @@ - + @@ -156,13 +156,13 @@ - + - + @@ -176,16 +176,16 @@ - + - + - + @@ -194,24 +194,24 @@ - + - + - + - + - + @@ -233,7 +233,7 @@ - + @@ -259,7 +259,7 @@ - + @@ -268,6 +268,7 @@ + diff --git a/deployer/src/main/resources/spring/memory-instance.xml b/deployer/src/main/resources/spring/memory-instance.xml index 9260c166..68f90f0c 100644 --- a/deployer/src/main/resources/spring/memory-instance.xml +++ b/deployer/src/main/resources/spring/memory-instance.xml @@ -9,7 +9,7 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" default-autowire="byName"> - + @@ -33,12 +33,12 @@ - + - + - + @@ -46,7 +46,7 @@ - + @@ -65,16 +65,16 @@ - + - + - + @@ -83,21 +83,21 @@ - + - + - + - + @@ -122,7 +122,7 @@ - + @@ -148,16 +148,16 @@ - + - + - + @@ -166,6 +166,7 @@ +