You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2020/12/30 03:42:14 UTC

[kylin] branch kylin-on-parquet-v2 updated: fix KYLIN-4850, merge Cube's override kylin_properties into building job's configuration

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 <sh...@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");
+  }
+
 }