I agree.

I likewise share concerns about the performance of this. My preference would be for the policy to be better separated, but still applied during the resolution process. In my mind this had always been the place for 'conflict resolvers' to enforce policy during the process.

However, I'm glad to take a look at how it works. We should definitely have the spec in hand as we look at the alternatives.

- Brett

On 20/06/2007, at 1:38 AM, Kenney Westerhof wrote:

Jason van Zyl wrote:

On 18 Jun 07, at 10:43 PM 18 Jun 07, Ralph Goers wrote:

Jason van Zyl wrote:

And I'm still trying to get all the "getting prepared for 2.1" before I start fleshing out any specs. But the artifact resolution in 2.0.x is fundamentally wrong in not making a graph of the metadata before the artifacts are materialized so don't be overly surprised if much of the structure there gets wiped out in 2.1.

You and I discussed this before. Has any of the code been written to do this? While I have to agree that not creating the graph before processing has fundamental problems, I'm also concerned about what kind of performance impact this might have.


I do, but as I told brett (who also asked) what I have is an implementation that is agnostic to policy. What that means is that the spec is required and we need to work on that first. I'm just swamped with client work, the release and generally trying to clean up the wiki and jira but i'll make an attempt this weekend to drop some code.

That's cool, that it's agnostic to policy, That way we can apply the policy afterwards and show what the policy in effect does. We can also have a mojo apply several policies, producing several output graphs/trees to illustrate the differences, or we can split off the policies into smaller pieces so we can sequentially apply them - one for scope filtering, one for depMgt application, one for transitive deps maybe, one for snapshot handling, one for including optional dependencies based on code requirements (maybe), one for conflict resolution (latest/oldest for 2 nodes at the same depth). We can even flatten the structure so that we only have 1 version of a dep left in the module hierarchy in the reactor, or let each module use whatever version their
subscope tells them to use (so versions can differ per module).

I think having something policy-agnostic and filtering it out later is the best way to go - divide and conquer. So what you have doesn't necesarily need the spec applied to - we may just need to add another processing step after it that implements the spec. Whenever we change/improve the spec, it'll be an easy adjustment since it's not hardcoded in the dep resoluion, and we can simply apply different strategies for different versions of the poms/maven versions.

-- Kenney
Ralph

-------------------------------------------------------------------- -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder and PMC Chair, Apache Maven
jason at sonatype dot com
----------------------------------------------------------




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to