You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jason Altekruse (JIRA)" <ji...@apache.org> on 2015/07/31 23:42:05 UTC

[jira] [Comment Edited] (DRILL-3589) JDBC driver maven artifact includes a lot of unnecessary dependencies

    [ https://issues.apache.org/jira/browse/DRILL-3589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14649874#comment-14649874 ] 

Jason Altekruse edited comment on DRILL-3589 at 7/31/15 9:41 PM:
-----------------------------------------------------------------

The reason for a lot of these unnecessary dependencies is a project structure issue that we still need to resolve. We do not have a clear separation of the components of Drill that are shared between the client and server. Ideally these should be part of a small module shared between the two components, but today such a separation does not exist. I am sure we have a bug filed for this, but I cannot find it right now. While the process we use to generate the jdbc-all jar should automatically remove a lot of these unnecessary dependencies, it would be best solved with a more conscious effort to organize the code into these separate components.


was (Author: jaltekruse):
The reason for a lot of these unnecessary dependencies is a project structure issue that we still need to resolve. We do not have a clear separation of the components of Drill that are shared between the client and server. Ideally these should be part of a small module shared between the two components, but today such a separation does not exist. I am sure we have a bug filed for this, but I cannot find it right now. While the process we use to generate the jdbc-all jar should automatically remove a lot of these unnecessary dependencies, but it would be best solved with a more conscious effort to organize the code into these separate components.

> JDBC driver maven artifact includes a lot of unnecessary dependencies
> ---------------------------------------------------------------------
>
>                 Key: DRILL-3589
>                 URL: https://issues.apache.org/jira/browse/DRILL-3589
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Client - JDBC
>            Reporter: Joseph Barefoot
>            Assignee: Daniel Barclay (Drill)
>            Priority: Minor
>
> The Drill JDBC POM file pulls in so many unused transitive dependencies that it takes quite a while to exclude all the unnecessary ones when using it from within a Java project.  This is similar to DRILL-3581 in that you can work around it via exclusions of transitive dependencies, but since it makes interoperability with other open-source projects problematic, this will keep coming up for anyone using the JDBC driver from within any serious java app.
> Considering the pom:
> http://repo1.maven.org/maven2/org/apache/drill/exec/drill-jdbc/1.1.0/drill-jdbc-1.1.0.pom
> ...it seems that most of the unused dependencies are transitive from drill-common and perhaps also drill-java-exec.  Here's an example of some dependencies that the JDBC driver shouldn't need (and we excluded in our project):
> parquet-*
> jetty-server
> javassist
> commons-daemon
> hibernate-validator
> xalan
> xercesImpl
> For the record we are now able to use the JDBC driver fine from within our project, but it did take some dependency tree analysis (and a little trial-and-error) to figure out what to exclude.  We would like to save future developers that time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)