ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles Scokart" <gscok...@gmail.com>
Subject RE: compile, runtime and interface configuration
Date Thu, 19 Apr 2007 06:42:05 GMT
Yes, thanks a lot.

Gilles

> -----Original Message-----
> From: Maarten Coene [mailto:maarten_coene@yahoo.com]
> Sent: mercredi 18 avril 2007 23:24
> To: ivy-user@incubator.apache.org
> Subject: Re: compile, runtime and interface configuration
> 
> If I remember things correctly, here is how it works.
> 
> When Ivy parses your Ivy file, it will create (internally) modify the
> configuration mapping of your dependencies.
> For instance, say you have:
> 
> <configurations defaultconfmapping="conf1->other1;conf2->other2">
>     <conf name="conf1" />
>     <conf name="conf2" extends="conf1" />
> </configurations>
> <dependencies>
>     <dependency name="other-module" conf="conf1" />
> </dependencies>
> 
> When Ivy parses this file, it will construct the following dependency (in-
> memory only):
>     <dependency name="other-module" conf="conf1->other1" />
> 
> 
> So, if you now resolve the conf2 configuration, you will only get the
> other1 dependencies of your other-module.
> 
> But here comes the confmappingoverride to the rescue ;-) When you set this
> attribute to true, Ivy will construct the following dependency in memory:
>     <dependency name="other-module" conf="conf1->other1;conf2->other2" />
> As you can see, the defaultmappings of the extending configurations are
> also added (although you didn't explicitly defined them)
> 
> 
> 
> When you now resolve the conf2 configuration, you'll get the other2
> dependencies of your other-module.
> 
> I hope this helps you understanding the impact of this attribute
> 
> regards,
> Maarten
> 
> 
> ----- Original Message ----
> From: Gilles Scokart <gscokart@gmail.com>
> To: ivy-user@incubator.apache.org
> Sent: Wednesday, April 18, 2007 9:30:14 AM
> Subject: RE: compile, runtime and interface configuration
> 
> Unfortunately, the thread is not available anymore.
> 
> Could you explain "the extending configurations will override the mappings
> of the configurations they extend from".   Because for the moment I'm not
> sure that "I understand the implications" ;-).
> 
> 
> Thanks,
> Gilles
> 
> 
> > -----Original Message-----
> > From: Maarten Coene [mailto:maarten_coene@yahoo.com]
> > Sent: mercredi 18 avril 2007 9:01
> > To: ivy-user@incubator.apache.org
> > Subject: Re: compile, runtime and interface configuration
> >
> > Gilles,
> >
> > you have to set the confmappingoverride property to true to have this
> > behaviour.
> > See http://incubator.apache.org/ivy/doc/ivyfile/configurations.html
> >
> > I think this will solve your problem...
> >
> > regards,
> > Maarten
> >
> > ----- Original Message ----
> > From: Gilles Scokart <gscokart@gmail.com>
> > To: ivy-user@incubator.apache.org
> > Sent: Wednesday, April 18, 2007 8:31:42 AM
> > Subject: RE: compile, runtime and interface configuration
> >
> > Ok, here is a simplified example:  A module 'User' depends on a module
> > 'Service'.  The module 'service' use in its interface some classes of
> the
> > module 'datatype', and use internally the module 'serviceImpl'
> >
> > Module 'user' :
> > <dependencies>
> >     <dependency org="X" name="service" rev="x" conf="compile"/>
> > </dependencies>
> >
> >
> > Module 'service' :
> > <dependencies>
> >     <dependency org="X" name="datatype" rev="x" conf="interface"/>
> >     <dependency org="X" name="serviceImpl" rev="x" conf="compile"/>
> > </dependencies>
> >
> >
> >
> > When I resolve the dependencies user, I would like to have
> > - in conf compile : service , datatype
> > - in conf runtime : service , datatype , serviceImpl
> >
> >
> > However, with the configuration :
> > <configurations
> >     defaultconfmapping="runtime -> runtime(default);
> >                         interface -> interface(default);
> >                         compile -> interface(default)">
> >
> >     <conf name="compile" extends="interface"/>
> >     <conf name="runtime" extends="compile"/>
> >     <conf name="interface"/>
> > </configurations>
> >
> > I think I have the configuration runtime containing only service and
> > datatype.
> >
> >
> > Gilles
> >
> >
> >
> > > -----Original Message-----
> > > From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
> > > Sent: mardi 17 avril 2007 17:28
> > > To: ivy-user@incubator.apache.org
> > > Subject: Re: compile, runtime and interface configuration
> > >
> > > On 4/17/07, Gilles Scokart <gscokart@gmail.com> wrote:
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Hi,
> > >
> > >
> > > Hi,
> > >
> > > I try to to define a system that use three types of configurations :
> > > > compile, runtime and interface.
> > > >
> > > >
> > > >
> > > > The compile dependencies are the one required to compile my modules.
> > > >
> > > > The runtime dependencies are the one required to run my modules.
> > > >
> > > > The interface dependencies are dependencies that I use in the
> > interface
> > > of
> > > > my module.  The means that the users of my module should
> transitively
> > > > inherit those interfaces in their compile (and runtime)
> dependencies.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Here is how I tried to declare those configurations :
> > > >
> > > >
> > > >
> > > > <configurations  defaultconfmapping=" runtime -> runtime(default);
> > > >
> > > >                                       interface ->
> interface(default);
> > > >
> > > >                                       compile ->
> interface(default)">
> > > >
> > > >
> > > >
> > > >             <conf name="compile" extends="interface"
> description="the
> > > > compile-time dependencies" />
> > > >
> > > >             <conf name="runtime" extends="compile " description="The
> > > > runtime
> > > > configuration"/>
> > > >
> > > >             <conf name="interface" description="The interface
> > > > configuration"/>
> > > >
> > > > </configurations>
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > When I have A depends in B (compile dep) and B depends on C (compile
> > > dep),
> > > > I
> > > > was expecting to have implicitly A depends on C (runtime dep).  But
> it
> > > > seems
> > > > not to be.
> > >
> > >
> > > Could you be more precise when you talk about your deps configurations
> > > (giving the dependency element of each ivy file), because I'm not sure
> > how
> > > you use the defaultconfmapping you have defined.
> > >
> > > Xavier
> > >
> > > I have the impression that ivy first resolve the compile dependencies
> > > > transitively, then resolve runtime dependencies transitively and add
> > the
> > > > one
> > > > obtained by the compile dep resolution.
> > >
> > >
> > >
> > > Is my understanding correct?  What are the other alternative to do
> what
> > I
> > > > want to do?  Am I forced to flag all compile dependencies also as
> > > runtime
> > > > dependencies?
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Thanks for your help.
> > > >
> > > >
> > > >
> > > > Gilles
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Learn Ivy at ApacheCon: http://www.eu.apachecon.com/
> > > Manage your dependencies with Ivy!
> > > http://incubator.apache.org/ivy/
> >
> >
> >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> 
> 
> 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com


Mime
View raw message