You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by "Crystal, Mayer" <ma...@gs.com> on 2007/03/16 16:35:36 UTC

Newbie questions

I just started fiddling with Ivy and I have 2 questions that I hope
someone can help me with:

1.  We currently have our own build system which handles dependencies
that I would like to migrate to Ivy.  For the first cut (instead of
redoing everything from scratch) I would like to write some form of
resolver which can interact with our current system and determine
dependencies and download the jars for Ivy.  In essence, both the jars
as well as the module descriptions (including dependencies) are behind
this webserver in our format.  What would be the easiest way to
intercept Ivy's request for data and dependencies and use our resolver
to determine the underlying dependencies and to retrieve the actual
jars?  (I looked at URLResolver and IBiblioResolver which seem to do
something similar, but the inheritance hierarchy and all the different
classes were a bit much - I was hoping that someone could give me a
quick start for this process :))


2.  Does Ivy have the ability (either built-in or contributed) to
package a project including all of its dependencies (both explicit and
transitive)?  For instance,  if I would like to create a tar file of the
entire application can I perform an Ant copy (with Ivy's help) which can
copy all of the jars into a lib directory?  If not, how would one go
about obtaining the necessary information in order to perform this type
of operation?



Thanks,
Mayer


Re: Newbie questions

Posted by Xavier Hanin <xa...@gmail.com>.
Ok, I better see what your environment, and the main problem I see is that
module metadata is not always in its own file. So I see several solutions:
- write a simple program which loads all your metadata files, and generates
one file per module (either generate an ivy file, or still your own format).
Then if you used your own format, you will have to write your own module
desciptor parser, but this shouldn't be too difficult.
- write your own module descriptor parser, dealing with your special case of
several module metadata in one file (which means that the same file will be
parsed several times, one for each module). Then configure your resolver to
look at the module specific location first for metadata, then to  the upper
level
- write your own resolver, looking for metadata at the appropriate
locations, and parsing your files on the fly. This is the most flexible but
also the most complex solution

For developer specific documentation, we are still in need to write it, so
any contribution is welcome :-) However, there are numerous API changes in
the upcoming version, so I think we'll start this kind of doc on the new API
and package structure.

HTH,

- Xavier

On 3/16/07, Crystal, Mayer <ma...@gs.com> wrote:
>
> Thanks for the responses. Regarding my first question, here is some more
> detail:
>
>
> We currently have our own set of modules which are defined in XML files
> which look something like:
>
> <module id="yyy.zzz">
>     <depends id="111"/>
>     <depends id="222"/>
> ... (other ant stuff)
> </module>
>
> <module id="111">
>     <depends id="333"/>
> </module>
>
> <module id="222">
>         <export name=" 222.jar"/>
> </module>
>
> <module id="333">
>         <export name="333_1.jar" />
>         <export name="333_2.jar" />
> </module>
>
> Each one of these module definitions can be in different files.  We have
> a standard naming convention so I should be able to find it - for
> instance, the definition for module yyy.zzz will either be in a file
> yyy.zzz.xml or in a file yyy.xml.  So, I have the logic which can
> actually find the module based on the module's id.  Similarly, the jar
> created by the module will be places in a specific directory with a
> specific name (i.e. /lib/yyy.zzz.jar) and all of the dependent jars that
> are defined via the export command are in a specific location on my
> server so once I have the name and dependencies I can easily figure out
> how to download it.
>
> As you've pointed out, I think this is very similar to what the
> URLResolver is doing.  My only question is how do I override this to
> handle my specific setup.  One thought that I had was to create a class
> similar to the URLResolver which would look something like:
>
> public class MyResolver extends RepositoryResolver {
>     public MyResolver() {
>         setRepository(new MyRepository());
>     }
>     public String getTypeName() {
>         return "myrepository";
>     }
> }
>
>
> And then implement the MyRepository which could be a subclass of
> URLRepository which simply overloads the get and getResource methods.
> My only remaining questions are:  how do I deal with the dependency
> management (this doesn't seem to be part of the repository class)?  If I
> do have to implement my own resolvers are there any developer-centric
> documents that explain the overall architecture of the abstract classes
> and what the various classes are meant to do and how they interact with
> the system (i.e. DownloadReport, ArtifactDownloadReport,
> ResolvedModuleRevision, etc...) - what are the expected returns, how are
> error handled by the system?  I read the online documentation, but I
> didn't find any in-depth documents regarding these types of internals
> (so far I've been learning this by looking at the source).  If you have
> any pointers or suggestions on how better to solve this problem please
> feel free to let me know :)
>
>
> Thanks again,
> Mayer
>
>
>
> -----Original Message-----
> From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
> Sent: Friday, March 16, 2007 12:29 PM
> To: ivy-user@incubator.apache.org
> Subject: Re: Newbie questions
>
> On 3/16/07, Crystal, Mayer <ma...@gs.com> wrote:
> >
> > I just started fiddling with Ivy and I have 2 questions that I hope
> > someone can help me with:
> >
> > 1.  We currently have our own build system which handles dependencies
> > that I would like to migrate to Ivy.  For the first cut (instead of
> > redoing everything from scratch) I would like to write some form of
> > resolver which can interact with our current system and determine
> > dependencies and download the jars for Ivy.  In essence, both the jars
>
> > as well as the module descriptions (including dependencies) are behind
>
> > this webserver in our format.  What would be the easiest way to
> > intercept Ivy's request for data and dependencies and use our resolver
>
> > to determine the underlying dependencies and to retrieve the actual
> > jars?  (I looked at URLResolver and IBiblioResolver which seem to do
> > something similar, but the inheritance hierarchy and all the different
>
> > classes were a bit much - I was hoping that someone could give me a
> > quick start for this process :))
>
>
> Could you give some more details on what you're trying to do. Depending
> on your needs, you may find a way to deal with them with only some
> configuration of an existing resolver (like the URL or VFS resolver,
> which can match a lot of environments), or overriding the URL resolver,
> or provide your own repository (see URLRepository for example of how to
> implement a Repository), or if your needs are really specific implement
> your own resolver, but it's rarely necessary.
>
> - Xavier
>
> 2.  Does Ivy have the ability (either built-in or contributed) to
> > package a project including all of its dependencies (both explicit and
>
> > transitive)?  For instance,  if I would like to create a tar file of
> > the entire application can I perform an Ant copy (with Ivy's help)
> > which can copy all of the jars into a lib directory?  If not, how
> > would one go about obtaining the necessary information in order to
> > perform this type of operation?
> >
> >
> >
> > Thanks,
> > Mayer
> >
> >
>

RE: Newbie questions

Posted by "Crystal, Mayer" <ma...@gs.com>.
Thanks for the suggestions.  I've decided to take the 'simpler' road of
doing what John suggested.  I've already implemented a converter from my
current repository and I've updated the list of patterns for the
resolver...  Things seem to working pretty well :)


Thanks again,
Mayer


-----Original Message-----
From: John Gill [mailto:llignhoj@gmail.com] 
Sent: Saturday, March 17, 2007 9:24 AM
To: ivy-user@incubator.apache.org
Subject: Re: Newbie questions

I was faced with a similar problem, and what I did was write a program
that converted the legacy files into ivy files and then use a dual
resolver.

To make it easy to read one XML file and write the other one. I got the
xsd for ivy.xml files, and wrote another for the legacy xml file that I
wanted to convert into ivy, and then used XMLBeans to create a library
to read the legacy files and write the ivy.xml files.

On 3/17/07, Crystal, Mayer <ma...@gs.com> wrote:
>
> Thanks for the responses. Regarding my first question, here is some 
> more
> detail:
>
>
> We currently have our own set of modules which are defined in XML 
> files which look something like:
>
> <module id=" yyy.zzz">
>     <depends id="111"/>
>     <depends id="222"/>
> ... (other ant stuff)
> </module>
>
> <module id="111">
>     <depends id="333"/>
> </module>
>
> <module id="222">
>         <export name="222.jar"/>
> </module>
>
> <module id="333">
>         <export name="333_1.jar" />
>         <export name="333_2.jar" />
> </module>
>
> Each one of these module definitions can be in different files.  We 
> have a standard naming convention so I should be able to find it - for

> instance, the definition for module yyy.zzz will either be in a file 
> yyy.zzz.xml or in a file yyy.xml.  So, I have the logic which can 
> actually find the module based on the module's id.  Similarly, the jar

> created by the module will be places in a specific directory with a 
> specific name (i.e. /lib/yyy.zzz.jar) and all of the dependent jars 
> that are defined via the export command are in a specific location on 
> my server so once I have the name and dependencies I can easily figure

> out how to download it.
>
> As you've pointed out, I think this is very similar to what the 
> URLResolver is doing.  My only question is how do I override this to 
> handle my specific setup.  One thought that I had was to create a 
> class similar to the URLResolver which would look something like:
>
> public class MyResolver extends RepositoryResolver {
>     public MyResolver() {
>         setRepository(new MyRepository());
>     }
>     public String getTypeName() {
>         return "myrepository";
>     }
> }
>
>
> And then implement the MyRepository which could be a subclass of 
> URLRepository which simply overloads the get and getResource methods.
> My only remaining questions are:  how do I deal with the dependency 
> management (this doesn't seem to be part of the repository class)?  If

> I do have to implement my own resolvers are there any 
> developer-centric documents that explain the overall architecture of 
> the abstract classes and what the various classes are meant to do and 
> how they interact with the system (i.e. DownloadReport, 
> ArtifactDownloadReport, ResolvedModuleRevision, etc...) - what are the

> expected returns, how are error handled by the system?  I read the 
> online documentation, but I didn't find any in-depth documents 
> regarding these types of internals (so far I've been learning this by 
> looking at the source).  If you have any pointers or suggestions on 
> how better to solve this problem please feel free to let me know :)
>
>
> Thanks again,
> Mayer
>
>
>
> -----Original Message-----
> From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
> Sent: Friday, March 16, 2007 12:29 PM
> To: ivy-user@incubator.apache.org
> Subject: Re: Newbie questions
>
> On 3/16/07, Crystal, Mayer <mayer.crystal@gs.com > wrote:
> >
> > I just started fiddling with Ivy and I have 2 questions that I hope 
> > someone can help me with:
> >
> > 1.  We currently have our own build system which handles 
> > dependencies that I would like to migrate to Ivy.  For the first cut

> > (instead of redoing everything from scratch) I would like to write 
> > some form of resolver which can interact with our current system and

> > determine dependencies and download the jars for Ivy.  In essence, 
> > both the jars
>
> > as well as the module descriptions (including dependencies) are 
> > behind
>
> > this webserver in our format.  What would be the easiest way to 
> > intercept Ivy's request for data and dependencies and use our 
> > resolver
>
> > to determine the underlying dependencies and to retrieve the actual 
> > jars?  (I looked at URLResolver and IBiblioResolver which seem to do

> > something similar, but the inheritance hierarchy and all the 
> > different
>
> > classes were a bit much - I was hoping that someone could give me a 
> > quick start for this process :))
>
>
> Could you give some more details on what you're trying to do. 
> Depending on your needs, you may find a way to deal with them with 
> only some configuration of an existing resolver (like the URL or VFS 
> resolver, which can match a lot of environments), or overriding the 
> URL resolver, or provide your own repository (see URLRepository for 
> example of how to implement a Repository), or if your needs are really

> specific implement your own resolver, but it's rarely necessary.
>
> - Xavier
>
> 2.  Does Ivy have the ability (either built-in or contributed) to
> > package a project including all of its dependencies (both explicit 
> > and
>
> > transitive)?  For instance,  if I would like to create a tar file of

> > the entire application can I perform an Ant copy (with Ivy's help) 
> > which can copy all of the jars into a lib directory?  If not, how 
> > would one go about obtaining the necessary information in order to 
> > perform this type of operation?
> >
> >
> >
> > Thanks,
> > Mayer
> >
> >
>



--
Regards,
John Gill

Re: Newbie questions

Posted by John Gill <ll...@gmail.com>.
I was faced with a similar problem, and what I did was write a program that
converted the legacy files into ivy files and then use a dual resolver.

To make it easy to read one XML file and write the other one. I got the xsd
for ivy.xml files, and wrote another for the legacy xml file that I wanted
to convert into ivy, and then used XMLBeans to create a library to read the
legacy files and write the ivy.xml files.

On 3/17/07, Crystal, Mayer <ma...@gs.com> wrote:
>
> Thanks for the responses. Regarding my first question, here is some more
> detail:
>
>
> We currently have our own set of modules which are defined in XML files
> which look something like:
>
> <module id=" yyy.zzz">
>     <depends id="111"/>
>     <depends id="222"/>
> ... (other ant stuff)
> </module>
>
> <module id="111">
>     <depends id="333"/>
> </module>
>
> <module id="222">
>         <export name="222.jar"/>
> </module>
>
> <module id="333">
>         <export name="333_1.jar" />
>         <export name="333_2.jar" />
> </module>
>
> Each one of these module definitions can be in different files.  We have
> a standard naming convention so I should be able to find it - for
> instance, the definition for module yyy.zzz will either be in a file
> yyy.zzz.xml or in a file yyy.xml.  So, I have the logic which can
> actually find the module based on the module's id.  Similarly, the jar
> created by the module will be places in a specific directory with a
> specific name (i.e. /lib/yyy.zzz.jar) and all of the dependent jars that
> are defined via the export command are in a specific location on my
> server so once I have the name and dependencies I can easily figure out
> how to download it.
>
> As you've pointed out, I think this is very similar to what the
> URLResolver is doing.  My only question is how do I override this to
> handle my specific setup.  One thought that I had was to create a class
> similar to the URLResolver which would look something like:
>
> public class MyResolver extends RepositoryResolver {
>     public MyResolver() {
>         setRepository(new MyRepository());
>     }
>     public String getTypeName() {
>         return "myrepository";
>     }
> }
>
>
> And then implement the MyRepository which could be a subclass of
> URLRepository which simply overloads the get and getResource methods.
> My only remaining questions are:  how do I deal with the dependency
> management (this doesn't seem to be part of the repository class)?  If I
> do have to implement my own resolvers are there any developer-centric
> documents that explain the overall architecture of the abstract classes
> and what the various classes are meant to do and how they interact with
> the system (i.e. DownloadReport, ArtifactDownloadReport,
> ResolvedModuleRevision, etc...) - what are the expected returns, how are
> error handled by the system?  I read the online documentation, but I
> didn't find any in-depth documents regarding these types of internals
> (so far I've been learning this by looking at the source).  If you have
> any pointers or suggestions on how better to solve this problem please
> feel free to let me know :)
>
>
> Thanks again,
> Mayer
>
>
>
> -----Original Message-----
> From: Xavier Hanin [mailto:xavier.hanin@gmail.com]
> Sent: Friday, March 16, 2007 12:29 PM
> To: ivy-user@incubator.apache.org
> Subject: Re: Newbie questions
>
> On 3/16/07, Crystal, Mayer <mayer.crystal@gs.com > wrote:
> >
> > I just started fiddling with Ivy and I have 2 questions that I hope
> > someone can help me with:
> >
> > 1.  We currently have our own build system which handles dependencies
> > that I would like to migrate to Ivy.  For the first cut (instead of
> > redoing everything from scratch) I would like to write some form of
> > resolver which can interact with our current system and determine
> > dependencies and download the jars for Ivy.  In essence, both the jars
>
> > as well as the module descriptions (including dependencies) are behind
>
> > this webserver in our format.  What would be the easiest way to
> > intercept Ivy's request for data and dependencies and use our resolver
>
> > to determine the underlying dependencies and to retrieve the actual
> > jars?  (I looked at URLResolver and IBiblioResolver which seem to do
> > something similar, but the inheritance hierarchy and all the different
>
> > classes were a bit much - I was hoping that someone could give me a
> > quick start for this process :))
>
>
> Could you give some more details on what you're trying to do. Depending
> on your needs, you may find a way to deal with them with only some
> configuration of an existing resolver (like the URL or VFS resolver,
> which can match a lot of environments), or overriding the URL resolver,
> or provide your own repository (see URLRepository for example of how to
> implement a Repository), or if your needs are really specific implement
> your own resolver, but it's rarely necessary.
>
> - Xavier
>
> 2.  Does Ivy have the ability (either built-in or contributed) to
> > package a project including all of its dependencies (both explicit and
>
> > transitive)?  For instance,  if I would like to create a tar file of
> > the entire application can I perform an Ant copy (with Ivy's help)
> > which can copy all of the jars into a lib directory?  If not, how
> > would one go about obtaining the necessary information in order to
> > perform this type of operation?
> >
> >
> >
> > Thanks,
> > Mayer
> >
> >
>



-- 
Regards,
John Gill

RE: Newbie questions

Posted by "Crystal, Mayer" <ma...@gs.com>.
Thanks for the responses. Regarding my first question, here is some more
detail:


We currently have our own set of modules which are defined in XML files
which look something like:

<module id="yyy.zzz">
    <depends id="111"/>
    <depends id="222"/>
... (other ant stuff)
</module> 

<module id="111">
    <depends id="333"/>
</module>

<module id="222">
	<export name="222.jar"/>
</module>

<module id="333">
	<export name="333_1.jar" />
	<export name="333_2.jar" />
</module>

Each one of these module definitions can be in different files.  We have
a standard naming convention so I should be able to find it - for
instance, the definition for module yyy.zzz will either be in a file
yyy.zzz.xml or in a file yyy.xml.  So, I have the logic which can
actually find the module based on the module's id.  Similarly, the jar
created by the module will be places in a specific directory with a
specific name (i.e. /lib/yyy.zzz.jar) and all of the dependent jars that
are defined via the export command are in a specific location on my
server so once I have the name and dependencies I can easily figure out
how to download it.

As you've pointed out, I think this is very similar to what the
URLResolver is doing.  My only question is how do I override this to
handle my specific setup.  One thought that I had was to create a class
similar to the URLResolver which would look something like:

public class MyResolver extends RepositoryResolver {    
    public MyResolver() {
        setRepository(new MyRepository());
    }
    public String getTypeName() {
        return "myrepository";
    }
}


And then implement the MyRepository which could be a subclass of
URLRepository which simply overloads the get and getResource methods.
My only remaining questions are:  how do I deal with the dependency
management (this doesn't seem to be part of the repository class)?  If I
do have to implement my own resolvers are there any developer-centric
documents that explain the overall architecture of the abstract classes
and what the various classes are meant to do and how they interact with
the system (i.e. DownloadReport, ArtifactDownloadReport,
ResolvedModuleRevision, etc...) - what are the expected returns, how are
error handled by the system?  I read the online documentation, but I
didn't find any in-depth documents regarding these types of internals
(so far I've been learning this by looking at the source).  If you have
any pointers or suggestions on how better to solve this problem please
feel free to let me know :)


Thanks again,
Mayer



-----Original Message-----
From: Xavier Hanin [mailto:xavier.hanin@gmail.com] 
Sent: Friday, March 16, 2007 12:29 PM
To: ivy-user@incubator.apache.org
Subject: Re: Newbie questions

On 3/16/07, Crystal, Mayer <ma...@gs.com> wrote:
>
> I just started fiddling with Ivy and I have 2 questions that I hope 
> someone can help me with:
>
> 1.  We currently have our own build system which handles dependencies 
> that I would like to migrate to Ivy.  For the first cut (instead of 
> redoing everything from scratch) I would like to write some form of 
> resolver which can interact with our current system and determine 
> dependencies and download the jars for Ivy.  In essence, both the jars

> as well as the module descriptions (including dependencies) are behind

> this webserver in our format.  What would be the easiest way to 
> intercept Ivy's request for data and dependencies and use our resolver

> to determine the underlying dependencies and to retrieve the actual 
> jars?  (I looked at URLResolver and IBiblioResolver which seem to do 
> something similar, but the inheritance hierarchy and all the different

> classes were a bit much - I was hoping that someone could give me a 
> quick start for this process :))


Could you give some more details on what you're trying to do. Depending
on your needs, you may find a way to deal with them with only some
configuration of an existing resolver (like the URL or VFS resolver,
which can match a lot of environments), or overriding the URL resolver,
or provide your own repository (see URLRepository for example of how to
implement a Repository), or if your needs are really specific implement
your own resolver, but it's rarely necessary.

- Xavier

2.  Does Ivy have the ability (either built-in or contributed) to
> package a project including all of its dependencies (both explicit and

> transitive)?  For instance,  if I would like to create a tar file of 
> the entire application can I perform an Ant copy (with Ivy's help) 
> which can copy all of the jars into a lib directory?  If not, how 
> would one go about obtaining the necessary information in order to 
> perform this type of operation?
>
>
>
> Thanks,
> Mayer
>
>

Re: Newbie questions

Posted by Xavier Hanin <xa...@gmail.com>.
On 3/16/07, Crystal, Mayer <ma...@gs.com> wrote:
>
> I just started fiddling with Ivy and I have 2 questions that I hope
> someone can help me with:
>
> 1.  We currently have our own build system which handles dependencies
> that I would like to migrate to Ivy.  For the first cut (instead of
> redoing everything from scratch) I would like to write some form of
> resolver which can interact with our current system and determine
> dependencies and download the jars for Ivy.  In essence, both the jars
> as well as the module descriptions (including dependencies) are behind
> this webserver in our format.  What would be the easiest way to
> intercept Ivy's request for data and dependencies and use our resolver
> to determine the underlying dependencies and to retrieve the actual
> jars?  (I looked at URLResolver and IBiblioResolver which seem to do
> something similar, but the inheritance hierarchy and all the different
> classes were a bit much - I was hoping that someone could give me a
> quick start for this process :))


Could you give some more details on what you're trying to do. Depending on
your needs, you may find a way to deal with them with only some
configuration of an existing resolver (like the URL or VFS resolver, which
can match a lot of environments), or overriding the URL resolver, or provide
your own repository (see URLRepository for example of how to implement a
Repository), or if your needs are really specific implement your own
resolver, but it's rarely necessary.

- Xavier

2.  Does Ivy have the ability (either built-in or contributed) to
> package a project including all of its dependencies (both explicit and
> transitive)?  For instance,  if I would like to create a tar file of the
> entire application can I perform an Ant copy (with Ivy's help) which can
> copy all of the jars into a lib directory?  If not, how would one go
> about obtaining the necessary information in order to perform this type
> of operation?
>
>
>
> Thanks,
> Mayer
>
>

Re[2]: Newbie questions

Posted by Dmitriy Korobskiy <dk...@gmail.com>.
Hi, Mayer
Re: your e-mail from Friday, March 16, 2007

MC> -----Original Message-----
MC> From: Crystal, Mayer [mailto:mayer.crystal@gs.com]
MC> Sent: Friday, March 16, 2007 10:36 AM
MC> To: ivy-user@incubator.apache.org
MC> Subject: Newbie questions

MC> I just started fiddling with Ivy and I have 2 questions that I hope
MC> someone can help me with:

MC> 1.  We currently have our own build system which handles dependencies
MC> that I would like to migrate to Ivy.  For the first cut (instead of
MC> redoing everything from scratch) I would like to write some form of
MC> resolver which can interact with our current system and determine
MC> dependencies and download the jars for Ivy.  In essence, both the jars
MC> as well as the module descriptions (including dependencies) are behind
MC> this webserver in our format.  What would be the easiest way to
MC> intercept Ivy's request for data and dependencies and use our resolver
MC> to determine the underlying dependencies and to retrieve the actual
MC> jars?  (I looked at URLResolver and IBiblioResolver which seem to do
MC> something similar, but the inheritance hierarchy and all the different
MC> classes were a bit much - I was hoping that someone could give me a
MC> quick start for this process :))

Can't help you with that.

MC> 2.  Does Ivy have the ability (either built-in or contributed) to
MC> package a project including all of its dependencies (both explicit and
MC> transitive)?  For instance,  if I would like to create a tar file of the
MC> entire application can I perform an Ant copy (with Ivy's help) which can
MC> copy all of the jars into a lib directory?  If not, how would one go
MC> about obtaining the necessary information in order to perform this type
MC> of operation?

Simply use <ivy:cachefileset conf="myconf"> after Ivy resolve, and then you can
do whatever Ant can do with that fileset. For example, you can <zip> it. The
cachefileset contains all the dependencies (optionally for a particular
configuration - see details in the docs) that Ivy resolved into its cache.

MC> Thanks,
MC> Mayer

Dmitriy <1-127-441 @ICQ, DKroot @Skype, DKroot1 @AIM, dkroot1_at_gmail_dot_com @Google Talk>


RE: Newbie questions

Posted by "Loehr, Ruel" <rl...@pointserve.com>.
1:  No idea.  That sounds tough and I would avoid it.

2)   Use ivy's retrieve task and copy the dependencies into a lib
directory.   Thane you can do your tar.

-----Original Message-----
From: Crystal, Mayer [mailto:mayer.crystal@gs.com] 
Sent: Friday, March 16, 2007 10:36 AM
To: ivy-user@incubator.apache.org
Subject: Newbie questions

I just started fiddling with Ivy and I have 2 questions that I hope
someone can help me with:

1.  We currently have our own build system which handles dependencies
that I would like to migrate to Ivy.  For the first cut (instead of
redoing everything from scratch) I would like to write some form of
resolver which can interact with our current system and determine
dependencies and download the jars for Ivy.  In essence, both the jars
as well as the module descriptions (including dependencies) are behind
this webserver in our format.  What would be the easiest way to
intercept Ivy's request for data and dependencies and use our resolver
to determine the underlying dependencies and to retrieve the actual
jars?  (I looked at URLResolver and IBiblioResolver which seem to do
something similar, but the inheritance hierarchy and all the different
classes were a bit much - I was hoping that someone could give me a
quick start for this process :))


2.  Does Ivy have the ability (either built-in or contributed) to
package a project including all of its dependencies (both explicit and
transitive)?  For instance,  if I would like to create a tar file of the
entire application can I perform an Ant copy (with Ivy's help) which can
copy all of the jars into a lib directory?  If not, how would one go
about obtaining the necessary information in order to perform this type
of operation?



Thanks,
Mayer