This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin-on-parquet-v2 in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin-on-parquet-v2 by this push: new 32f8d66 fix KYLIN-4850, merge Cube's override kylin_properties into building job's configuration 32f8d66 is described below commit 32f8d66cc368a157fb27acf41e8dac8bf73375f1 Author: zhengshengjun <shengjun_zh...@sina.com> AuthorDate: Tue Dec 29 10:47:11 2020 +0800 fix KYLIN-4850, merge Cube's override kylin_properties into building job's configuration --- .../java/org/apache/kylin/common/KylinConfigExt.java | 5 ++++- .../org/apache/kylin/common/KylinConfigTest.java | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java index fda4100..78c5053 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java @@ -21,6 +21,7 @@ package org.apache.kylin.common; import org.apache.commons.lang.text.StrSubstitutor; import org.apache.kylin.shaded.com.google.common.collect.Maps; +import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -53,7 +54,9 @@ public class KylinConfigExt extends KylinConfig { private KylinConfigExt(KylinConfigExt ext, Map<String, String> overrides) { super(ext.base.getRawAllProperties(), true); this.base = ext.base; - this.overrides = BCC.check(overrides); + this.overrides = new HashMap<>(); + this.overrides.putAll(ext.overrides); + this.overrides.putAll(BCC.check(overrides)); } @Override diff --git a/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java b/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java index 38e8499..b4ac16b 100644 --- a/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java +++ b/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java @@ -18,10 +18,12 @@ package org.apache.kylin.common; +import java.util.HashMap; import java.util.Map; import java.util.Properties; import org.apache.kylin.common.KylinConfig.SetAndUnsetThreadLocalConfig; +import org.junit.Assert; import org.junit.Test; import org.apache.kylin.shaded.com.google.common.collect.Maps; @@ -198,4 +200,22 @@ public class KylinConfigTest extends HotLoadKylinPropertiesTestCase { KylinConfig.createInstanceFromUri("dHy3K~m"); } + @Test + public void testKylinConfigExt(){ + KylinConfig conf = KylinConfig.getInstanceFromEnv(); + Map<String, String> overrideConf1 = new HashMap<>(); + overrideConf1.put("foo", "fooValue"); + overrideConf1.put("bar", ""); + KylinConfigExt ext1 = KylinConfigExt.createInstance(conf, overrideConf1); + + Map<String, String> overrideConf2 = new HashMap<>(); + overrideConf2.put("bar", "barValue"); + KylinConfigExt ext2 = KylinConfigExt.createInstance(ext1, overrideConf2); + + //check previous ext config's override value will not lost + Assert.assertEquals(ext2.getOptional("foo"), "fooValue"); + //check previous exist config will be overwritten by by new one + Assert.assertEquals(ext2.getOptional("bar"), "barValue"); + } + }