You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Raman Gupta (JIRA)" <ji...@apache.org> on 2012/11/06 16:42:12 UTC

[jira] [Updated] (KARAF-2000) Add dependency convergence enforcement to Karaf build

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

Raman Gupta updated KARAF-2000:
-------------------------------

    Description: 
Karaf should verify dependency convergence in its build, via the <DependencyConvergence/> rule of maven-enforcer. Otherwise, it is easy to have dependencies that transitively include other deps with a different version of the same dependency.

Here is an example from Karaf 2.3.0:

{code}
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1 paths to dependency are:
+-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
  +-com.vivosys.testproject:module1:1.0-SNAPSHOT
    +-org.apache.karaf.shell:org.apache.karaf.shell.console:2.3.0
      +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
and
+-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
  +-org.apache.karaf:apache-karaf:2.3.0
    +-org.apache.karaf:org.apache.karaf.client:2.3.0
      +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
and
+-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
  +-org.apache.karaf:apache-karaf:2.3.0
    +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
and
+-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
  +-org.apache.karaf:apache-karaf:2.3.0
    +-org.apache.aries.blueprint:org.apache.aries.blueprint.cm:1.0.0
      +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.0
{code}

You can see that Karaf depends on blueprint core 1.0.1, but it also depends on blueprint cm 1.0.0, which in turn depends on core 1.0.0. In practice, this usually works out ok, but resolving these issues at build time is better.

  was:
Karaf should verify dependency convergence in its build, via the <DependencyConvergence/> rule of maven-enforcer. Otherwise, it is easy to have dependencies that transitively include other deps with a different version of the same dependency.

Here is an example from Karaf 2.3.0:

{code}
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1 paths to dependency are:
+-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
  +-com.vivosys.testproject:module1:1.0-SNAPSHOT
    +-org.apache.karaf.shell:org.apache.karaf.shell.console:2.3.0
      +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
and
+-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
  +-org.apache.karaf:apache-karaf:2.3.0
    +-org.apache.karaf:org.apache.karaf.client:2.3.0
      +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
and
+-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
  +-org.apache.karaf:apache-karaf:2.3.0
    +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
and
+-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
  +-org.apache.karaf:apache-karaf:2.3.0
    +-org.apache.aries.blueprint:org.apache.aries.blueprint.cm:1.0.0
      +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.0
{code}

You can see that Karaf depends on blueprint core 1.0.1, but it also depends on blueprint cm 1.0.0, which in turn depends on core 1.0.1. In practice, this usually works out ok, but resolving these issues at build time is better.

    
> Add dependency convergence enforcement to Karaf build
> -----------------------------------------------------
>
>                 Key: KARAF-2000
>                 URL: https://issues.apache.org/jira/browse/KARAF-2000
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-core
>    Affects Versions: 2.3.0
>            Reporter: Raman Gupta
>              Labels: dependencies, maven, maven-enforcer-plugin
>
> Karaf should verify dependency convergence in its build, via the <DependencyConvergence/> rule of maven-enforcer. Otherwise, it is easy to have dependencies that transitively include other deps with a different version of the same dependency.
> Here is an example from Karaf 2.3.0:
> {code}
> [WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
> Failed while enforcing releasability the error(s) are [
> Dependency convergence error for org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1 paths to dependency are:
> +-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
>   +-com.vivosys.testproject:module1:1.0-SNAPSHOT
>     +-org.apache.karaf.shell:org.apache.karaf.shell.console:2.3.0
>       +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
> and
> +-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
>   +-org.apache.karaf:apache-karaf:2.3.0
>     +-org.apache.karaf:org.apache.karaf.client:2.3.0
>       +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
> and
> +-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
>   +-org.apache.karaf:apache-karaf:2.3.0
>     +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.1
> and
> +-com.vivosys.testproject:project-dist:1.0-SNAPSHOT
>   +-org.apache.karaf:apache-karaf:2.3.0
>     +-org.apache.aries.blueprint:org.apache.aries.blueprint.cm:1.0.0
>       +-org.apache.aries.blueprint:org.apache.aries.blueprint.core:1.0.0
> {code}
> You can see that Karaf depends on blueprint core 1.0.1, but it also depends on blueprint cm 1.0.0, which in turn depends on core 1.0.0. In practice, this usually works out ok, but resolving these issues at build time is better.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira