Skip to content

Commit d97ece9

Browse files
committed
chore: fix load template with profile
1 parent eb36865 commit d97ece9

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

dataflow-core/src/main/java/com/qwlabs/dataflow/Configs.java

+10-4
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,8 @@ public ParameterTool load(@Nullable String prefix) {
3232
.mergeWith(load(args.profile(), prefix));
3333
}
3434

35-
private ParameterTool load(@Nullable String profile, @Nullable String prefix) {
36-
final var startPrefix = Joiner.on(".").skipNulls().join(Arrays.asList(profile, prefix));
37-
return ptCache.computeIfAbsent(startPrefix, this::doLoad);
35+
public ParameterTool load(@Nullable String profile, @Nullable String prefix) {
36+
return ptCache.computeIfAbsent(startPrefix(profile, prefix), this::doLoad);
3837
}
3938

4039
private ParameterTool doLoad(String prefix) {
@@ -61,7 +60,14 @@ private void doLoadTemplate(Map<String, String> parameters, ParameterTool pt, St
6160
return;
6261
}
6362
Splitter.on(",").split(configTemplate)
64-
.forEach(template -> parameters.putAll(doLoad(template).toMap()));
63+
.forEach(template -> {
64+
parameters.putAll(doLoad(startPrefix(null, template)).toMap());
65+
parameters.putAll(doLoad(startPrefix(args.profile(), template)).toMap());
66+
});
67+
}
68+
69+
private String startPrefix(@Nullable String profile, @Nullable String prefix) {
70+
return Joiner.on(".").skipNulls().join(Arrays.asList(profile, prefix));
6571
}
6672

6773
protected static Configs of() {

dataflow-core/src/test/java/com/qwlabs/dataflow/ConfigsTest.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class ConfigsTest {
88
@Test
99
void should_load_root() {
1010
var pt = Configs.of().load();
11-
assertEquals(pt.toMap().size(), 32);
11+
assertEquals(pt.toMap().size(), 33);
1212
}
1313

1414
@Test
@@ -27,4 +27,11 @@ void should_load_by_prefix_sink() {
2727
assertEquals(pt.get("url"), "jdbc:postgresql://localhost:5432/comac_app");
2828
assertEquals(pt.get("connector"), "jdbc");
2929
}
30+
31+
@Test
32+
void should_load_by_profile() {
33+
var pt = Configs.of(new String[]{"--profile", "prod"}).load("comac.airline.source");
34+
assertEquals(pt.toMap().size(), 13);
35+
assertEquals(pt.get("hostname"), "192.168.3.16");
36+
}
3037
}

dataflow-core/src/test/resources/application.properties

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ jdbc.buffer-flush.max-rows=1000
1111

1212
comac.source.config-template=postgres-cdc
1313
comac.source.hostname=127.0.0.1
14+
prod.comac.source.hostname=192.168.3.16
1415
comac.source.port=5432
1516
comac.source.username=postgres
1617
comac.source.password=

0 commit comments

Comments
 (0)