You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2021/11/15 13:56:00 UTC

[jira] [Updated] (HIVE-25701) Declare JDBC drivers as runtime & optional dependencies

     [ https://issues.apache.org/jira/browse/HIVE-25701?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ASF GitHub Bot updated HIVE-25701:
----------------------------------
    Labels: pull-request-available  (was: )

> Declare JDBC drivers as runtime & optional dependencies
> -------------------------------------------------------
>
>                 Key: HIVE-25701
>                 URL: https://issues.apache.org/jira/browse/HIVE-25701
>             Project: Hive
>          Issue Type: Task
>          Components: Standalone Metastore, Testing Infrastructure
>            Reporter: Stamatis Zampetakis
>            Assignee: Stamatis Zampetakis
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, we are using the following JDBC drivers in various Hive modules:
> * MariaDB
> * MySQL
> * Oracle
> * Postgres
> * MSSQL
> * Derby
> MariaDB, MySQL, and Oracle licenses are not compatible with Apache License 2 ([Category-X |https://www.apache.org/legal/resolved.html#category-x]) and in the past we used various ways to circumvent licensing problems (see HIVE-23284). Now, some of them appear as test scope dependency which is OKish but in the near future may lead again to licensing problems.
> JDBC drivers are only needed at runtime so they could all be declared at runtime scope. Moreover, Hive does not require a specific JDBC driver in order to operate so they are all optional. 
> The goal of this issue is to declare every JDBC driver at runtime scope and mark it as optional ([ASF-optional|https://www.apache.org/legal/resolved.html#optional], [maven-optional|https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html]). 
> This has the following advantages:
> * Eliminates the risk to write code which needs JDBC driver classes in order to compile and potentially violate AL2.
> * Unifies the declaration of JDBC drivers making easier to add/remove some if necessary.
> * Removes the need to use download-maven-plugin and other similar workarounds to avoid licensing problems.
> * Simplifies the execution of tests using these drivers since now they are added in the runtime classpath automatically by maven.
> * Projects with dependencies depending on Hive will not inherit any JDBC driver by default.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)