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)