On 29/01/2007, at 3:56 AM, David Jencks wrote:
On Jan 28, 2007, at 3:48 AM, Gianny Damour wrote:
On 28/01/2007, at 7:26 PM, David Jencks wrote:
<snip>
I don't see any value in having a hierarchy here: I think that
each item should be present in exactly one place. For instance
if you have identical artifacts in 2 repos I'd regard that as an
error, although since they are identical it wouldn't matter which
one you picked. Could you provide an example of something your
proposed search strategy would be useful for?
i think that this may be useful in some very specific scenario.
For instance, a developer may want to upgrade some dependencies
used by a module his team is working on in a sandbox. If he simply
drops a newer version in the shared repository, then all the
developers will see the newer version upon server restart. This
can be avoided by updating the artifact_aliases property file of
each developer; however, this is less transparent than a solution
based on an hierarchical dependency resolution mechanism.
I don't think I understand what you have in mind yet. I would
expect that in a setup with multiple servers the stuff that's
specific to a particular server would be in the server-specific
repo we've been talking about. So if you want to upgrade a
dependency to a newer version you'd put the newer version in your
server-specific repo where your apps would find it but no one
else's apps would. The only scenario I can think of so far where
this wouldn't work is if it's a snapshot dependency so the old and
new files have exactly the same file name. I really think we
should NOT support anything that tries to distinguish between 2
files with the same artifact Id. If people want to have different
versions of a snapshot artifact in the server they should all be in
server-specific repos.
I was trying to consider the case where a non server-specific
dependency is to be upgraded. I was wrongly believing that artifact
version resolution was returning the highest version available of the
first Repository storing the to be resolved Artifact. Following your
comment, I checked the artifact resolution approach implemented by
DefaultArtifactResolver and I now understand why hierarchical
dependency resolution is useless. Thanks for taking the time to
explain it.
Gianny
thanks
david jencks