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

Maarten Coene updated IVY-1111:
-------------------------------

    Fix Version/s: 2.2.0-RC1
                       (was: trunk)

> Ivy deliver fails to replace dynamic revision when using extra attributes
> -------------------------------------------------------------------------
>
>                 Key: IVY-1111
>                 URL: https://issues.apache.org/jira/browse/IVY-1111
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0-RC2
>         Environment: Ivy 2.1.0-rc2 - 20090704004254
> Apache Ant version 1.7.0 compiled on December 13 2006
>            Reporter: Michael Scheetz
>            Assignee: Maarten Coene
>             Fix For: 2.2.0-RC1
>
>         Attachments: IVY-1111.svn.patch, ivy-1111.zip
>
>
> Running ivy:deliver does not replace the dynamic revision correctly if I also 
> use extended attributes.
> My Repository contains four modules: junit in revision 3.8 and 4.4. A Module 
> A that depends on junit 4.4 and a module B that depends on junit "3.8.+".  (I 
> just copied this layout from a similar defect, IVY-999). (I will add a zip 
> with this setup once I figure out how).
> My ivy.xml file:
> <?xml version="1.0" encoding="UTF-8"?>
> <ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra";>
>     <info organisation="test" module="c" e:att="att" />
> <!--adressmodul -->
>     <configurations>
>         <conf name="default" visibility="public"/>
>     </configurations>
>       <publications/>    
>     <dependencies>
>         <dependency org="test" name="a" rev="latest.integration"/>
>         <dependency org="junit" name="junit" conf="default" 
> rev="latest.integration"/>
>         <dependency org="test" name="b" rev="latest.integration" e:att="att"/>
>     </dependencies>
> </ivy-module>
> The resultant ivy.xml after running the deliver task:
> <?xml version="1.0" encoding="UTF-8"?>
> <ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra";>
>     <info organisation="test" module="c" revision="20090819111124" 
> status="integration" publication="20090819111124" e:att="att"/>
> <!--adressmodul -->
>     <configurations>
>         <conf name="default" visibility="public"/>
>     </configurations>
>       <publications/>    
>     <dependencies>
>         <dependency org="test" name="a" rev="1" 
> revConstraint="latest.integration"/>
>         <dependency org="junit" name="junit" conf="default" rev="4.4" 
> revConstraint="latest.integration"/>
>         <dependency org="test" name="b" rev="latest.integration" e:att="att"/>
>     </dependencies>
> </ivy-module>
> Update:
> A problem appears to be in the DeliverEngine.deliver(ModuleRevisionId, 
> String, String, DeliverOptions) method, in step #3.  Using SVN revision 
> 811164, the line at 159 is:
>       String rev = (String) 
> resolvedRevisions.get(dependencies[i].getDependencyRevisionId());
>             if (rev == null) {
>                 rev = dependencies[i].getDependencyRevisionId().getRevision();
>             }
> There are two ModuleRevisionId objects, one in the map and one in the 
> DependencyDescriptor but they have different extra attributes.  The one in 
> the DependencyDescriptor includes the namespace on the extra attribute while 
> the one in the map does not.  Hence the lookup in the map is a miss so the 
> failover action is to use the revision out of the DependencyDescriptor 
> objects ModuleRevisionId, which is a dynamic revision.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to