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 <[email protected]>
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");
+ }
+
}