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

Pit Waldispühl commented on IVY-1174:
-------------------------------------

We've got the same problem (with Ivy 2.1.0 - 20090925235825) in our company. 
We've started using Ivy without configurations. Configurations were introduced 
later. Problems now occure when a dependency "A", revision "N" without 
configuration (i.e. having 'default' configuration) is evicted and resolved to 
a revision "M" having a specified (i.e non-default) configurations. Ivy will 
search "M" with 'default' configurations which doesn't exist, leading to an 
unresolved dependency

E. g.:

Rev 1.0.0 of ModA is used by ModB, rev 1.0.0. No configurations are used.

<!-- ModB; 1.0.0 -->
<ivy-module [..]
   <info module="ModB" [..]
   [..]
   <dependencies>
     <dependency name="ModA" rev="1.0.0" [..]
     [..]
   [..]

In Version 2.0.0 of ModB, a configuration 'x' is introduced. ModB still depends 
on ModA 1.0.0

<!-- ModB; 2.0.0 -->
<ivy-module [..]
   <info module="ModB" [..]
      [..]
   <configurations>
      <conf name="x" [..]
      [..]

   <dependencies>
     <dependency name="ModA" rev="1.0.0" conf="x->default" [..] 
     [..]
   [..]

ModC,1.0.0 with configuration 'x' depends on ModB, 2.0.0 as well as on a new 
rev 2.0.0 of ModA using configurations 'x' as well.

<!-- ModA; 2.0.0 -->
<ivy-module [..]
   <info module="ModA" [..]
      [..]
   <configurations>
      <conf name="x" [..]
      [..]
   [..]

<!-- ModC; 1.0.0 -->
<ivy-module [..]
   <info module="ModC" [..]
      [..]
   <configurations>
      <conf name="x" [..]
      [..]

   <dependencies>
     <dependency name="ModA" rev="2.0.0" conf="x->x" [..] 
     <dependency name="ModB" rev="2.0.0" conf="x->x" [..] 
     [..]
   [..]

Ivy produces output like
  [ivy:resolve] == resolving dependencies 
[..]#ModC;working@[..]->[..]#ModA;2.0.0 [x->default]

So instead of rev. 1.0.0 of ModA, Ivy correctly resolved rev. 2.0.0 but with 
the wrong configuration 'default' of the evicted rev 1.0.0. This leads to:

[ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]           ::          UNRESOLVED DEPENDENCIES         ::
[ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]           :: [..]#ModA;2.0.0: configuration not found in 
[..]#ModA;2.0.0: 'default'. It was required from [..]#ModC;1.0.0 x



> resolved module can include configurations of evicted versions
> --------------------------------------------------------------
>
>                 Key: IVY-1174
>                 URL: https://issues.apache.org/jira/browse/IVY-1174
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0-RC2
>            Reporter: Willem Verstraeten
>         Attachments: IVY-1174.zip
>
>
> Scenario:
> module_parent, with two revisions:
>   1.0, which has configurations default and runtime, where default extends 
> runtime
>   1.0.3, which only has configuration default
> module_middle, which depends on module_parent:1.0
> module_between, which depends on module_parent:1.0.3
> module_entry, which depends on module_middle and module_between
> When resolving module_entry, version 1.0 of module_parent will be evicted, 
> but ivy will complain about module_parent not having a runtime configuration. 
> Apparently, ivy has mashed the configurations from the 1.0 version (which was 
> evicted) with those of 1.0.3, where there actually is no runtime 
> configuration.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to