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 2016/06/30 02:35:08 UTC

kylin git commit: minor, refactor code to ease integrate with coding tool

Repository: kylin
Updated Branches:
  refs/heads/master 90a234e3d -> b5bed2497


minor, refactor code to ease integrate with coding tool


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

Branch: refs/heads/master
Commit: b5bed249725fdc03a945b1fff2f209770c8f26dc
Parents: 90a234e
Author: Li Yang <li...@apache.org>
Authored: Thu Jun 30 10:34:03 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Thu Jun 30 10:34:51 2016 +0800

----------------------------------------------------------------------
 .../apache/kylin/common/KylinConfigBase.java    |  5 ---
 .../realization/RealizationRegistry.java        | 39 +++++++++++++-------
 2 files changed, 25 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/b5bed249/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index 84c4db9..e75609c 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -201,11 +201,6 @@ abstract public class KylinConfigBase implements Serializable {
         return new StringBuffer(root).append(StringUtils.replaceChars(getMetadataUrlPrefix(), ':', '-')).append("/").toString();
     }
 
-    public String[] getRealizationProviders() {
-        return getOptionalStringArray("kylin.realization.providers", //
-                new String[] { "org.apache.kylin.cube.CubeManager", "org.apache.kylin.storage.hybrid.HybridManager", "org.apache.kylin.invertedindex.IIManager" });
-    }
-
     public CliCommandExecutor getCliCommandExecutor() throws IOException {
         CliCommandExecutor exec = new CliCommandExecutor();
         if (getRunAsRemoteCommand()) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/b5bed249/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
index e6b1a86..b317444 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
@@ -25,7 +25,6 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.ClassUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -81,19 +80,24 @@ public class RealizationRegistry {
         providers = Maps.newConcurrentMap();
 
         // use reflection to load providers
-        String[] providerNames = config.getRealizationProviders();
-        for (String clsName : providerNames) {
-            try {
-                Class<? extends IRealizationProvider> cls = ClassUtil.forName(clsName, IRealizationProvider.class);
-                IRealizationProvider p = (IRealizationProvider) cls.getMethod("getInstance", KylinConfig.class).invoke(null, config);
-                providers.put(p.getRealizationType(), p);
-
-            } catch (Exception | NoClassDefFoundError e) {
-                if (e instanceof ClassNotFoundException || e instanceof NoClassDefFoundError)
-                    logger.warn("Failed to create realization provider " + e);
-                else
-                    logger.error("Failed to create realization provider", e);
-            }
+        // Note: keep "Class.forName" and "getMethod" on same line, allow detection of the use of reflection
+        try {
+            IRealizationProvider p = (IRealizationProvider) Class.forName("org.apache.kylin.cube.CubeManager").getMethod("getInstance", KylinConfig.class).invoke(null, config);
+            providers.put(p.getRealizationType(), p);
+        } catch (Exception | NoClassDefFoundError e) {
+            logEx(e);
+        }
+        try {
+            IRealizationProvider p = (IRealizationProvider) Class.forName("org.apache.kylin.storage.hybrid.HybridManager").getMethod("getInstance", KylinConfig.class).invoke(null, config);
+            providers.put(p.getRealizationType(), p);
+        } catch (Exception | NoClassDefFoundError e) {
+            logEx(e);
+        }
+        try {
+            IRealizationProvider p = (IRealizationProvider) Class.forName("org.apache.kylin.invertedindex.IIManager").getMethod("getInstance", KylinConfig.class).invoke(null, config);
+            providers.put(p.getRealizationType(), p);
+        } catch (Exception | NoClassDefFoundError e) {
+            logEx(e);
         }
 
         if (providers.isEmpty())
@@ -102,6 +106,13 @@ public class RealizationRegistry {
         logger.info("RealizationRegistry is " + providers);
     }
 
+    private void logEx(Throwable e) {
+        if (e instanceof ClassNotFoundException || e instanceof NoClassDefFoundError)
+            logger.warn("Failed to create realization provider ", e);
+        else
+            logger.error("Failed to create realization provider", e);
+    }
+
     public Set<RealizationType> getRealizationTypes() {
         return Collections.unmodifiableSet(providers.keySet());
     }