ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jean-Louis Boudart (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (IVY-742) Support ivy.xml parent mechanism
Date Thu, 30 Oct 2008 10:25:44 GMT

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

jboudart edited comment on IVY-742 at 10/30/08 3:25 AM:
------------------------------------------------------------------

In my humble opinion parent mechanism is not only related to dependencies.

We could imagine that "parent support" allow you to inherit dependencies / configurations
/ licences / homeurl / etc ...

Example :
parent:
{code:xml} 
<ivy-module version="2.0">
    <info organisation="foobar" module="parent">
        <license name="GPL" url="..."/>
    </info>
    <configurations defaultconfmapping="conf1->other1;conf2->other2">
       <conf name="conf1" />
       <conf name="conf2" extends="conf1" />
    </configurations>
    <dependencies>
        <dependency name="other-module" conf="conf1" />
    </dependencies>

</ivy-module>
{code}

child :
{code:xml} 
<ivy-module version="2.0">
     <info organisation="foobar" module="child">
         <parent organisation="foobar" module="child" revision="latest.integration"/>
     </info>
     <!-- where conf1 is inherited from parent -->
     <dependencies>
         <dependency name="meow" conf="conf1" />
     </dependencies>
</ivy-module>
{code}


Parent tag should support something to look up on filesystem before asking repositories maybe
an attribute like "location". This value should be set as ".." for default value
exemple :
{code:xml} 
<parent organisation="foobar" module="child" revision="latest.integration" location="../myParent"/>
{code}

And to keep ivy flexibility we could add an attribute to choose what we want to import from
parent
Something like :
{code:xml} 
<parent organisation="foobar" module="child" revision="latest.integration" location="../myParent"
import="configurations,dependencies"/>
{code}



What do You think about it?

      was (Author: jboudart):
    In my humble opinion parent mechanism is not only related to dependencies.

We could imagine that "parent support" allow you to inherit dependencies / configurations
/ licences / homeurl / etc ...

Example :
parent:
{code:xml} 
<ivy-module version="2.0">
<info organisation="foobar" module="parent">
<license name="GPL" url="..."/>
</info>
<configurations defaultconfmapping="conf1->other1;conf2->other2">
   <conf name="conf1" />
   <conf name="conf2" extends="conf1" />
</configurations>
<dependencies>
   <dependency name="other-module" conf="conf1" />
</dependencies>

</ivy-module>
{code}

child :
{code:xml} 
<ivy-module version="2.0">
<info organisation="foobar" module="child">
<parent organisation="foobar" module="child" revision="latest.integration"/>
</info>
<!-- where conf1 is inherited from parent -->
<dependencies>
   <dependency name="meow" conf="conf1" />
</dependencies>
</ivy-module>
{code}


Parent tag should support something to look up on filesystem before asking repositories maybe
an attribute like "location". This value should be set as ".." for default value
exemple :
{code:xml} 
<parent organisation="foobar" module="child" revision="latest.integration" location="../myParent"/>
{code}

And to keep ivy flexibility we could add an attribute to choose what we want to import from
parent
Something like :
{code:xml} 
<parent organisation="foobar" module="child" revision="latest.integration" location="../myParent"
import="configurations,dependencies"/>
{code}



What do You think about it?
  
> Support ivy.xml parent mechanism
> --------------------------------
>
>                 Key: IVY-742
>                 URL: https://issues.apache.org/jira/browse/IVY-742
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Core
>         Environment: Any
>            Reporter: Neil Lott
>
> Here's the email that details this feature:
> On Thu, Feb 21, 2008 at 11:22 PM, Neil Lott <neilmatthewlott@yahoo.com>
> wrote:
> Let's say I have multiple modules each with their own ivy.xml
> <ivy-module version="2.0">
>    <info organisation="${organization.name}" module="$
> {interface.jar.prefix}"/>
>    <configurations>
>        <conf name="interface"  description="dependencies for
> interface"/>
>        <include file="path/to/included-configurations.xml"/>
>    </configurations>
>    <publications>
>        <artifact name="${interface.jar.prefix}" type="jar"
> conf="interface" ext="jar"/>
>    </publications>
>    <dependencies>
>           <dependency org="twc" name="mas-core" rev="${mas.version}"
> conf="interface->server"/>
>    </dependencies>
> </ivy-module>
> and I want them all to share an inherited configuration found in a
> file: included-configurations.xml
> <configuration>
>    <conf name="test"/>
> </configuration>
> <dependencies>
>   <dependency name="testng" rev="5.7" conf="test"/>
> </dependencies>
> so in the inherited configurations file I'd also like to include a
> dependency that goes along with that configuration.
> Is something like this possible?
> No, this is not possible in Ivy, but you can use text or xml processing
> tools to recompose your Ivy file before asking Ivy to resolve the
> dependencies of your module.
> Alternatively, since what you ask is close to maven 2 parent mechanism, I
> think it could be a nice addition to Ivy feature set. So feel free to open
> an issue, and even provide a patch :-)
> Xavier
> Thanks,
> Neil
> -- 
> Xavier Hanin - Independent Java Consultant
> http://xhab.blogspot.com/
> http://ant.apache.org/ivy/
> http://www.xoocode.org/

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


Mime
View raw message