2009/12/30 Kristian Rosenvold <kristian.rosenv...@gmail.com> > Jason van Zyl wrote: > > > I honestly think it will be easier for people to get involved in the 3.0 > codebase. > > Somewhere along the line in the flurry of emails that have been coming > along today I got the impression that a transition to guice has been > called off for M3. >
Hi Kristian, I doubt it will make 3.0, but this isn't necessarily a bad thing as it means we're not changing a lot of things at once. We used Nexus as an early adopter to test and stabilize the shim code, which really helped nail down some issues - and it should soon be time to try it with Maven. Right now I can run exactly the same Nexus binaries with Plexus or Guice+shim - no code changes required. Supporting Maven means extending the shim which shouldn't be a huge piece of work, especially if other people help out :) When complete we should be able to drop it into 3.1 without breaking anyone. I think that's a shame, and having only recently gotten a little "more > involved" with the maven code-base, I have felt the pain that plexus can > inflict. > > I will try not to start any plexus-bashing, but given the discussion > that has been going on today about how M3 is a significant cleanup of > inner workings, I find stopping before getting rid of plexus strange. > Many legacy plugins will continue to use Plexus annotations to inject components, so we need to be compatible - hence the shim (provides Plexus API and semantics on top of vanilla Guice). When we first switch to the Guice-powered runtime these components and plugins will continue to use Plexus annotations like @requirement, but it'll be Guice doing the actual wiring. What happens next is the really interesting bit... I would be more than willing to spend a fair amount of time to make such > a transition happen, the sooner the better. Especially if there already > is a working plexus/guice adapter that can be used as basis. I get this > feeling I missed some discussion somewhere ? > The code is available at http://svn.sonatype.org/spice/trunk/spice-inject - I'm just finishing up the last Nexus related issue and sorting out documentation, as well as writing one or two blog entries about the new runtime. The code is modular, so you could use it to to mimic other IoC containers on top of Guice. I'll put together some notes explaining how I did the shim analysis for Nexus, as we'll need to do the same for Maven (it uses a slightly different version of Plexus) Thanks for the offer of help! But then again, we all must release sometime - I just needed to vent > my frustration with plexus. Switching to guice also has a motivational > effect on people wishing to work with the maven codebase; developers > like to work with code they feel is "hot". > Once the shim is done the really interesting work can start: making the most of the new runtime. Such as switching plugins over to use @Inject, contributing your own Guice bindings, etc. Nothing's written in stone yet, so there's plenty of opportunity to experiment and find best practices for getting the most from the runtime. Small steps, but important steps :) > Regards > > Kristian Rosenvold > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > -- Cheers, Stuart