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 Jim Adams <Ji...@sas.com> on 2008/01/12 14:44:24 UTC

Ivy internals question

We have extended ivy somewhat at my company and are making calls directly into the ivy API at times. The question is: What operations will ruin the in-memory representation of a resolve? What I am seeing is that I am resolving and then later publishing but, in between, I am asking to download the latest integration version of the original ivy.xml file. What gets published then includes revisions of latest.integrations instead of the versions determined during the resolve.

I am performing these calls to get the module. Then I parse it to get the dependencies (non-transitive). I can then test those dependencies against those from the resolve report.

            // go out and find what was resolved as latest.revision. This returns what is out
            // in the repo for this ivy.xml file
            DependencyResolver resolver = settings.getResolver(id);
                        ResolvedModuleRevision _module = resolver.getDependency(dependencyDescriptor, new ResolveData(resEngine, rOpt, null ));

My task is a IvyPostResolveTask so that I can get to the last resolve report. Am I screwing up future uses of the last resolve report?


Jim Adams
Jim.Adams@sas.com
Principal Systems Developer
SAS Institute



Re: Ivy internals question

Posted by Xavier Hanin <xa...@gmail.com>.
On Jan 12, 2008 2:44 PM, Jim Adams <Ji...@sas.com> wrote:

> We have extended ivy somewhat at my company and are making calls directly
> into the ivy API at times. The question is: What operations will ruin the
> in-memory representation of a resolve? What I am seeing is that I am
> resolving and then later publishing but, in between, I am asking to download
> the latest integration version of the original ivy.xml file. What gets
> published then includes revisions of latest.integrations instead of the
> versions determined during the resolve.
>
> I am performing these calls to get the module. Then I parse it to get the
> dependencies (non-transitive). I can then test those dependencies against
> those from the resolve report.
>
>            // go out and find what was resolved as latest.revision. This
> returns what is out
>            // in the repo for this ivy.xml file
>            DependencyResolver resolver = settings.getResolver(id);
>                        ResolvedModuleRevision _module =
> resolver.getDependency(dependencyDescriptor, new ResolveData(resEngine,
> rOpt, null ));
>
> My task is a IvyPostResolveTask so that I can get to the last resolve
> report. Am I screwing up future uses of the last resolve report?

No. The only task/operation changing  this in memory representation is
ResolveEngine#resolve. And even if you really need to call resolve, you can
just use a different resolve ID, so there shouldn't be any problem.

Xavier

>
>
>
> Jim Adams
> Jim.Adams@sas.com
> Principal Systems Developer
> SAS Institute
>
>
>


-- 
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://ant.apache.org/ivy/
http://www.xoocode.org/