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

Daniel Voros updated SQOOP-3322:
--------------------------------
    Description: 
We have multiple ivy configurations defined in ivy.xml.
 - The {{redist}} configuration is used to select the artifacts that need to be 
distributed with Sqoop in its tar.gz.
 - The {{common}} configuration is used to set the classpath during compilation 
(also refered to as 'hadoop classpath')
 -  The {{test}} configuration is used to set the classpath during junit 
execution. It extends the {{common}} config.

Some artifacts end up having different versions between these three 
configurations, which means we're using different versions during 
compilation/testing/runtime.

Differences:
||Artifact||redist||common (compilation)||test||
|commons-pool|not in redist|1.5.4|*1.6*|
|commons-codec|1.4|1.9|*1.9*|
|commons-io|1.4|2.4|*2.4*|
|commons-logging|1.1.1|1.2|*1.2*|
|slf4j-api|1.6.1|1.7.7|*1.7.7*|

I'd suggest using the version *in bold* in all three configurations to use the 
latest versions.

To achieve this we should exclude these artifacts from the transitive 
dependencies and define them explicitly.

  was:
We have multiple ivy configurations defined in ivy.xml.
 - The {{redist}} configuration is used to select the artifacts that need to be 
distributed with Sqoop in its tar.gz.
 - The {{common}} configuration is used to set the classpath during compilation 
(also refered to as 'hadoop classpath')
 -  The {{test}} configuration is used to set the classpath during junit 
execution. It extends the {{common}} config.

Some artifacts end up having different versions between these three 
configurations, which means we're using different versions during 
compilation/testing/runtime.

Differences:
||Artifact||redist||common (compilation)||test||
|commons-pool|not in redist|1.5.4|*1.6*|
|commons-codec|*1.4*|1.9|1.9|
|commons-io|*1.4*|2.4|2.4|
|commons-logging|*1.1.1*|1.2|1.2|
|slf4j-api|*1.6.1*|1.7.7|1.7.7|

I'd suggest using the version *in bold* in all three configurations, based on:
 - keep version from redist (where there is one), since that's the version we 
were shipping with and used in production
 - keep the latest version in case of commons-pool that is not part of the 
redist config

To achieve this we should exclude these artifacts from the transitive 
dependencies and define them explicitly.


Thanks for commenting [~vasas], I agree! I've updated the description.

> Version differences between ivy configurations
> ----------------------------------------------
>
>                 Key: SQOOP-3322
>                 URL: https://issues.apache.org/jira/browse/SQOOP-3322
>             Project: Sqoop
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 1.4.7
>            Reporter: Daniel Voros
>            Assignee: Daniel Voros
>            Priority: Minor
>
> We have multiple ivy configurations defined in ivy.xml.
>  - The {{redist}} configuration is used to select the artifacts that need to 
> be distributed with Sqoop in its tar.gz.
>  - The {{common}} configuration is used to set the classpath during 
> compilation (also refered to as 'hadoop classpath')
>  -  The {{test}} configuration is used to set the classpath during junit 
> execution. It extends the {{common}} config.
> Some artifacts end up having different versions between these three 
> configurations, which means we're using different versions during 
> compilation/testing/runtime.
> Differences:
> ||Artifact||redist||common (compilation)||test||
> |commons-pool|not in redist|1.5.4|*1.6*|
> |commons-codec|1.4|1.9|*1.9*|
> |commons-io|1.4|2.4|*2.4*|
> |commons-logging|1.1.1|1.2|*1.2*|
> |slf4j-api|1.6.1|1.7.7|*1.7.7*|
> I'd suggest using the version *in bold* in all three configurations to use 
> the latest versions.
> To achieve this we should exclude these artifacts from the transitive 
> dependencies and define them explicitly.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to