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());
}