Hi Xavier,

Thanks for the responses. Please see below for my comment:

Quoting Xavier Hanin <[EMAIL PROTECTED]>:

The ApacheUrlLister, depsite its name, is able to list urls on a good number
of http server, as long as they have directory listing enabled. In the case
of maven proxy, I guess you can't browse a directory, or the directory
doesn't look like usual http servers directory listing.

You are right, the directory page the proxy generates is rendered differently, which of course throws the UrlLister off the track. :-)

So opening the settings to be able to set the URLLister used is a good idea,
but I think that as part of our attempt to make better integration with
maven repository we should also make sure that the ibiblio resolver is
compatible with maven-proxy (I think we should use maven metadata files,
instead of browsing directories as we do).

I agree. Working with the maven metadata not only solves this problem, but also the more troublesome one where the proxy won't be able to list all the artifacts properly if it doesn't have all of them locally already, because proxies don't go to the underlying repository for directory listing.

Could you open an issue for opening the API of URLResolver, and I'll open
one for maven proxy compatibility.

Will do as soon as I can.

This is really strange. I haven't tested with a cache resolver (it's not
very often used, since Ivy itself relies on its cache as often as possible
without any specific settings), but it's unit tested in general case, and
I've checked the code and I don't see why if the first resolver returns
something the chain could continue (with returnFirst=true). But if you want
to help us investigate, could you please send a debug log, adn we'll see if
we better understand what's happening.

Sure, will do with the latest trunk build as soon as I get to it.

For whatever its worth, my guess (from skimming through the code) is that in the ivy metadata files generated in the local cache, the resolver associated to an artifact is always kept as the one that resolved it _originally_, rather than getting updated to be the one that was able to resolve it _most recently_. That's probably why if I commented out ibiblioResolver, it would start reporting the artifact being resolved by the cacheResolver, and stay that way even after I put the ibiblioResolver back.

Thanks.
--
Jing Xue



Reply via email to