2010/1/7 Kristian Rosenvold <kristian.rosenv...@gmail.com>:
> On Thu, 2010-01-07 at 08:37 +0000, Stephen Connolly wrote:
>> > I realized that the prime subject of contention is the injected
>> > resources - maybe ONLY that. So "scheduling" attached to phases or
>> > plugins is really ultimately not the prime target.  When thinking of
>> > Dan's Antrun plugin requirement of
>> > ${maven.dependency.org.apache.maven.antrunbug.provider.jar.path} I
>> > realized that if this were Spring/Guice; these problems would be solved
>> > by giving you a dynamic proxy instead of the real dependency. This proxy
>> > could/would know about the availability of the actual resource. If the
>> > resource isn't available yet it'd wait for it to become available before
>> > handing it off to the user. Spring handles web "Session" scope by
>> > injecting a singleton dynamic proxy into the client. Upon invocation,
>> > this object decides what the REAL target is and forwards the request
>> > there. Along the same lines it's at least theoretically possible that
>> > you could inject a proxy that potentially waits until the actual
>> > resource is available; effectively letting the injected project
>> > resources control the scheduling. Doesn't work well with injected
>> > Strings, though ;)
>> >
>>
>> but if you have the dynamic proxy wait before injecting!
>>
>> I haven't looked at the m3 core codebase, but we should only finalize
>> the mojo immediately before executing it, therefore we should be able
>> to block until all it's requirements are in the appropriate state...
>> should not matter if they are strings
>>
>
> Oooo. I can practically hear the hudson alarm bells from the m3
> integration test build chiming already ;)
>
> If you're right, the real essence of the problem is capturing the
> creation of the injectable state. If I was at a pub drinking (lots of)
> beer, I would probably suggest that you could invert the whole process
> and actually attach the creation of the state to the "fact" that someone
> is requesting it. This would be after a large number of beers.
>
> Cheers !

Side note:

Now that sounds like the concurrency code I wrote to convert from
Accurev to Subversion....

I actually ended up creating the state of a stream at a specific
revision because it was asked for (by a downstream stream/workspace or
by a subsequent revision)

Then I had a dynamic cache that tracked popular states... and then you
just step through each revision one by one and solve every stream.

I was able to convert 115789 revisions in one depot with 1000's of
streams/workspaces/snapshots on my quad core2 with 4GB of ram in only
3 days!  The SVN dump file took 4 days to load into subversion!

Of course if we were to implement that kind of approach for Maven then
you might not even build a specific module because nobody was looking
for it... hmmm even faster builds

>
> Kristian
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to