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

Maarten Coene resolved IVY-1213.
--------------------------------

       Resolution: Fixed
    Fix Version/s: trunk
         Assignee: Maarten Coene

I've committed a fix in SVN trunk that should solve the problem. Thanks for 
reporting.
                
> extends ignores defaultconfmapping/defaultconf/confmappingoverride attributes 
> from parent's configurations and dependencies tags
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IVY-1213
>                 URL: https://issues.apache.org/jira/browse/IVY-1213
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.2.0-RC1
>            Reporter: Kay Röpke
>            Assignee: Maarten Coene
>             Fix For: trunk
>
>
> Using a parent ivy module with a configurations tag such as
> {code:xml}
> <ivy-module version="2.2" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>        
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd";>
>     <info
>         organisation="com.foo"
>         module="parent"
>         status="integration" />
>       
> <configurations 
> defaultconfmapping="compile->compile(*),master(*);runtime->runtime(*);test->runtime(*),master(*)">
>         <conf name="default" visibility="public" description="runtime 
> dependencies and master artifact can be used with this conf" 
> extends="runtime,master"/>
>         <conf name="master" visibility="public" description="contains only 
> the artifact published by this module itself, with no transitive 
> dependencies"/>
>         <conf name="compile" visibility="public" description="this is the 
> default scope, used if none is specified. Compile dependencies are available 
> in all classpaths."/>
>         <conf name="provided" visibility="public" description="this is much 
> like compile, but indicates you expect the JDK or a container to provide it. 
> It is only available on the compilation classpath, and is not transitive."/>
>         <conf name="runtime" visibility="public" description="this scope 
> indicates that the dependency is not required for compilation, but is for 
> execution. It is in the runtime and test classpaths, but not the compile 
> classpath." extends="compile"/>
>         <conf name="test" visibility="private" description="this scope 
> indicates that the dependency is not required for normal use of the 
> application, and is only available for the test compilation and execution 
> phases." extends="runtime"/>
>         <conf name="system" visibility="public" description="this scope is 
> similar to provided except that you have to provide the JAR which contains it 
> explicitly. The artifact is always available and is not looked up in a 
> repository."/>
>         <conf name="sources" visibility="public" description="this 
> configuration contains the source artifact of this module, if any."/>
>         <conf name="javadoc" visibility="public" description="this 
> configuration contains the javadoc artifact of this module, if any."/>
>         <conf name="optional" visibility="public" description="contains all 
> optional dependencies"/>
> </configurations>
>       <publications />
>         <dependencies>
>             <dependency organisation="junit" module="junit" revision="4.8.2" 
> conf="test" />
>         </dependencies>
> </ivy-module>
> {code}
> and later referring to that parent with an extends clause
> {code:xml}
> <ivy-module version="2.2"
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>       
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd";>
>       <info
>          organisation="com.foo"
>          module="module1"
>          status="integration">
>          <extends organisation="com.mysql.etools" module="etools-base" 
> revision="1.0.0+" />
>       </info>
>     <configurations />
>     <publications><!-- omitted for brevity --></publications>
>     <dependencies>
>         <dependency organisation="com.google.collections" 
> module="google-collections" revision="1.0" conf="compile" />
>     </dependencies>
> </ivy-module>
> {code}
> leads to the google-collections dependency not being retrieved, because the 
> merged ivy module descriptor does not inherit the defaultconfmapping from its 
> parent.
> Adding 
> {noformat}defaultconfmapping="compile->compile(*),master(*);runtime->runtime(*);test->runtime(*),master(*)"{noformat}
>  to the _child_ module's configurations tags makes it work.
> Looking at XmlModuleDescriptorParser seems to support the fact that it does 
> not merge tag attributes at all.
> Needless to say, this is really hard to find when refactoring modules to use 
> extends.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to