You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2017/02/22 02:31:44 UTC

[10/13] kylin git commit: minor, getConfigAsString read .override properties

minor, getConfigAsString read .override properties

Signed-off-by: Hongbin Ma <ma...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/661f016b
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/661f016b
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/661f016b

Branch: refs/heads/master-hbase0.98
Commit: 661f016bbf8eae6d3ed8efb8ab1672ac212c62b4
Parents: 4c6fd2c
Author: Roger Shi <ro...@hotmail.com>
Authored: Tue Feb 21 18:38:51 2017 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Tue Feb 21 18:44:29 2017 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    | 70 +++++++++++---------
 .../kylin/common/util/OrderedProperties.java    |  6 ++
 2 files changed, 46 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/661f016b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
index e8127ec..4fcc61f 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -20,6 +20,7 @@ package org.apache.kylin.common;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -44,7 +45,6 @@ public class KylinConfig extends KylinConfigBase {
     private static final long serialVersionUID = 1L;
     private static final Logger logger = LoggerFactory.getLogger(KylinConfig.class);
 
-
     /** Kylin properties file name */
     public static final String KYLIN_CONF_PROPERTIES_FILE = "kylin.properties";
     public static final String KYLIN_CONF = "KYLIN_CONF";
@@ -182,11 +182,11 @@ public class KylinConfig extends KylinConfigBase {
         props.load(new StringReader(propsInStr));
         return createKylinConfig(props);
     }
-    
+
     public static KylinConfig createKylinConfig(KylinConfig another) {
         return createKylinConfig(another.getAllProperties());
     }
-    
+
     public static KylinConfig createKylinConfig(Properties prop) {
         KylinConfig kylinConfig = new KylinConfig();
         kylinConfig.reloadKylinConfig(prop);
@@ -225,31 +225,58 @@ public class KylinConfig extends KylinConfigBase {
     }
 
     public static Properties getKylinProperties() {
+        Properties conf = new Properties();
+        try {
+            OrderedProperties orderedProperties = getKylinOrderedProperties();
+            for (Map.Entry<String, String> each: orderedProperties.entrySet()) {
+                conf.put(each.getKey(), each.getValue());
+            }
+        } catch (FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+
+        return conf;
+    }
+
+    public static OrderedProperties getKylinOrderedProperties() throws FileNotFoundException {
         File propFile = getKylinPropertiesFile();
         if (propFile == null || !propFile.exists()) {
             logger.error("fail to locate " + KYLIN_CONF_PROPERTIES_FILE);
             throw new RuntimeException("fail to locate " + KYLIN_CONF_PROPERTIES_FILE);
         }
-        Properties conf = new Properties();
+
+        final InputStream is = new FileInputStream(propFile);
         try {
-            FileInputStream is = new FileInputStream(propFile);
-            conf.load(is);
-            IOUtils.closeQuietly(is);
-            conf = BCC.check(conf);
+            OrderedProperties orderedProperties = new OrderedProperties();
+            orderedProperties.load(is);
+            orderedProperties = BCC.check(orderedProperties);
 
             File propOverrideFile = new File(propFile.getParentFile(), propFile.getName() + ".override");
             if (propOverrideFile.exists()) {
                 FileInputStream ois = new FileInputStream(propOverrideFile);
-                Properties propOverride = new Properties();
-                propOverride.load(ois);
-                IOUtils.closeQuietly(ois);
-                conf.putAll(BCC.check(propOverride));
+                try {
+                    OrderedProperties propOverride = new OrderedProperties();
+                    propOverride.load(ois);
+                    orderedProperties.putAll(BCC.check(propOverride));
+                } finally {
+                    IOUtils.closeQuietly(ois);
+                }
             }
+            return orderedProperties;
         } catch (IOException e) {
             throw new RuntimeException(e);
+        } finally {
+            IOUtils.closeQuietly(is);
         }
+    }
 
-        return conf;
+    public static String getConfigAsString() throws IOException {
+        OrderedProperties orderedProperties = getKylinOrderedProperties();
+        final StringBuilder sb = new StringBuilder();
+        for (Map.Entry<String, String> entry : orderedProperties.entrySet()) {
+            sb.append(entry.getKey() + "=" + entry.getValue()).append('\n');
+        }
+        return sb.toString();
     }
 
     /**
@@ -301,23 +328,6 @@ public class KylinConfig extends KylinConfigBase {
         }
     }
 
-    public String getConfigAsString() throws IOException {
-        final File propertiesFile = getKylinPropertiesFile();
-        final InputStream is = new FileInputStream(propertiesFile);
-        try {
-            OrderedProperties orderedProperties = new OrderedProperties();
-            orderedProperties.load(is);
-            orderedProperties = BCC.check(orderedProperties);
-            final StringBuilder sb = new StringBuilder();
-            for (Map.Entry<String, String> entry : orderedProperties.entrySet()) {
-                sb.append(entry.getKey() + "=" + entry.getValue()).append('\n');
-            }
-            return sb.toString();
-        } finally {
-            IOUtils.closeQuietly(is);
-        }
-    }
-
     public KylinConfig base() {
         return this;
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/661f016b/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java b/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java
index 0e5a3f9..ffeced1 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java
@@ -183,6 +183,12 @@ public final class OrderedProperties implements Serializable {
         return new LinkedHashSet<Map.Entry<String, String>>(properties.entrySet());
     }
 
+    public void putAll(OrderedProperties others) {
+        for (Map.Entry<String, String> each : others.entrySet()) {
+            properties.put(each.getKey(), each.getValue());
+        }
+    }
+
     /**
      * See {@link Properties#load(InputStream)}.
      */