Dayue Gao created KYLIN-1846:
--------------------------------
Summary: minimize dependencies of JDBC driver
Key: KYLIN-1846
URL: https://issues.apache.org/jira/browse/KYLIN-1846
Project: Kylin
Issue Type: Improvement
Components: Driver - JDBC
Affects Versions: v1.5.2
Reporter: Dayue Gao
Assignee: Dayue Gao
kylin-jdbc packages many dependencies (calcite-core, guava, jackson, etc) into
an uber jar, which could cause problems when user tries to integrate kylin-jdbc
into their own application.
I suggest making the following changes to packaging:
# remove calcite-core dependency
calcite-avatica is sufficient as far as I know.
# remove guava dependency
The only place kylin-jdbc uses guava is {{ImmutableList.of(metaResultSet)}} in
KylinMeta.java, which can be simply replaced with
{{Collections.singletonList(metaResultSet)}}.
# remove log4j, slf4j-log4j12 dependencies
As a library, kylin-jdbc [should only depend on
slf4j-api|http://slf4j.org/manual.html#libraries]. Which underlying logging
framework to use should be a deployment-time choice made by user. This means we
should revert https://issues.apache.org/jira/browse/KYLIN-1160
# relocate all dependencies to "org.apache.kylin.jdbc.shaded" using
maven-shade-plugin
This includes calcite-avatica, jackson, commons-httpclient and commons-codec.
Relocating should help to avoid class version conflicts.
I'll submit a patch for this, discussions are welcome~
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)