1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.data.pipeline.scenario.migration.config.yaml.config;
19
20 import com.google.common.base.Preconditions;
21 import lombok.Getter;
22 import lombok.Setter;
23 import org.apache.shardingsphere.data.pipeline.core.datasource.yaml.config.YamlPipelineDataSourceConfiguration;
24 import org.apache.shardingsphere.data.pipeline.core.job.config.yaml.config.YamlPipelineJobConfiguration;
25
26 import java.util.List;
27 import java.util.Map;
28
29
30
31
32 @Getter
33 @Setter
34 public final class YamlMigrationJobConfiguration implements YamlPipelineJobConfiguration {
35
36 private String jobId;
37
38 private String targetDatabaseName;
39
40 private String sourceDatabaseType;
41
42 private String targetDatabaseType;
43
44 private Map<String, YamlPipelineDataSourceConfiguration> sources;
45
46 private YamlPipelineDataSourceConfiguration target;
47
48 private List<String> targetTableNames;
49
50
51
52
53 private Map<String, String> targetTableSchemaMap;
54
55 private String tablesFirstDataNodes;
56
57 private List<String> jobShardingDataNodes;
58
59 private int concurrency = 3;
60
61 private int retryTimes = 3;
62
63 @Override
64 public String getDatabaseName() {
65 return targetDatabaseName;
66 }
67
68
69
70
71
72
73 public void setSources(final Map<String, YamlPipelineDataSourceConfiguration> sources) {
74 sources.values().forEach(this::checkParameters);
75 this.sources = sources;
76 }
77
78
79
80
81
82
83 public void setTarget(final YamlPipelineDataSourceConfiguration target) {
84 checkParameters(target);
85 this.target = target;
86 }
87
88 private void checkParameters(final YamlPipelineDataSourceConfiguration yamlConfig) {
89 Preconditions.checkNotNull(yamlConfig);
90 Preconditions.checkNotNull(yamlConfig.getType());
91 Preconditions.checkNotNull(yamlConfig.getParameter());
92 }
93 }