kylin-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dayue Gao (JIRA)" <j...@apache.org>
Subject [jira] [Created] (KYLIN-1846) minimize dependencies of JDBC driver
Date Mon, 04 Jul 2016 11:55:10 GMT
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)

Mime
View raw message