You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Kristian Rosenvold <kr...@gmail.com> on 2009/12/29 18:48:57 UTC

M3, plexus and guice ?

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. 

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. 

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 ? 

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".

Regards

Kristian Rosenvold

  


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


Re: M3, plexus and guice ?

Posted by Stuart McCulloch <mc...@gmail.com>.
2009/12/30 Kristian Rosenvold <kr...@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-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

-- 
Cheers, Stuart

Re: M3, plexus and guice ?

Posted by Stuart McCulloch <mc...@gmail.com>.
2009/12/30 Brett Porter <br...@apache.org>

>
> On 30/12/2009, at 9:07 AM, Christian Edward Gruber wrote:
>
> > Hey Jason.  Please keep me in the loop on this. I'll hapily contribute,
> since I'm hoping to improve docs on guice this upcoming quarter or two, and
> I don't want to lose my maven-fu whilst in the midst of Google's build
> toolset.
>
> Even if the code isn't directly in SVN, I think it makes sense to have that
> discussion here - something that important needs everyone to understand what
> is going on and various people will notice corner cases and gotchas. That
> seemed to work well for the parallel builds with the occasional updates
> (something that needs to be evaluated for preparedness for whichever version
> too...)
>

definitely - I'll finish up the docs and send out a link so people can
review them along with the code.


> - Brett
>
> --
> Brett Porter
> brett@apache.org
> http://brettporter.wordpress.com/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

-- 
Cheers, Stuart

Re: M3, plexus and guice ?

Posted by Stuart McCulloch <mc...@gmail.com>.
2009/12/30 Brett Porter <br...@apache.org>

>
> On 30/12/2009, at 9:07 AM, Christian Edward Gruber wrote:
>
> > Hey Jason.  Please keep me in the loop on this. I'll hapily contribute,
> since I'm hoping to improve docs on guice this upcoming quarter or two, and
> I don't want to lose my maven-fu whilst in the midst of Google's build
> toolset.
>
> Even if the code isn't directly in SVN, I think it makes sense to have that
> discussion here - something that important needs everyone to understand what
> is going on and various people will notice corner cases and gotchas. That
> seemed to work well for the parallel builds with the occasional updates
> (something that needs to be evaluated for preparedness for whichever version
> too...)
>

Hi folks,

FYI, we've started a series of articles describing our initial work
extending Guice to support Plexus:

  http://www.sonatype.com/people/2010/01/from-plexus-to-guice-1-why-guice/

http://www.sonatype.com/people/2010/01/from-plexus-to-guice-2-the-guiceplexus-bridge-and-custom-bean-injection/

http://www.sonatype.com/people/2010/01/from-plexus-to-guice-3-creating-a-guice-bean-extension-layer/

The above articles just introduce general bean injection, they don't cover
Plexus specific behavior.
I'll give an overview of what we have relating to Maven / Plexus in the blog
either this week or next
and we can then discuss and hash out the fine details relating to Maven3 on
the wiki.

-- 
Cheers, Stuart

- Brett
>
> --
> Brett Porter
> brett@apache.org
> http://brettporter.wordpress.com/
>

Re: M3, plexus and guice ?

Posted by Brett Porter <br...@apache.org>.
On 30/12/2009, at 9:07 AM, Christian Edward Gruber wrote:

> Hey Jason.  Please keep me in the loop on this. I'll hapily contribute, since I'm hoping to improve docs on guice this upcoming quarter or two, and I don't want to lose my maven-fu whilst in the midst of Google's build toolset.

Even if the code isn't directly in SVN, I think it makes sense to have that discussion here - something that important needs everyone to understand what is going on and various people will notice corner cases and gotchas. That seemed to work well for the parallel builds with the occasional updates (something that needs to be evaluated for preparedness for whichever version too...)

- Brett

--
Brett Porter
brett@apache.org
http://brettporter.wordpress.com/





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


Re: M3, plexus and guice ?

Posted by Christian Edward Gruber <ch...@gmail.com>.
Hey Jason.  Please keep me in the loop on this. I'll hapily  
contribute, since I'm hoping to improve docs on guice this upcoming  
quarter or two, and I don't want to lose my maven-fu whilst in the  
midst of Google's build toolset.

Regards,
Christian
also cgruber@google.com
Sent from my iPhone.

On 2009-12-29, at 14:40, Jason van Zyl <ja...@sonatype.com> wrote:

> On 2009-12-29, at 2:27 PM, Kristian Rosenvold wrote:
>
>>
>>> If you like we can probably setup a git repo with a shimmed  
>>> version of Maven and you can start putting it through it's paces.  
>>> I can sync you and Stuart up offline and you can work on it when  
>>> you can.
>>>
>>
>> Sounds nice. I'll read up on the code. I need to get started with  
>> some
>> seriously long skiing trips to get rid of the christmas excess. I  
>> seem
>> to program well when sweating ;)
>>
>
> Ok, we'll try and set something up quickly with at least  
> instructions of what dependencies to use. Maybe we can make a  
> profile which uses one set of dependencies over another. For the  
> trunk build itself using Guice over Plexus will really just be a  
> slightly different set of artifacts. We'll try to get that sorted  
> out and get you on your way.
>
>> Kristian
>>
>>
>>
>>>> Kristian
>>>>
>>>>
>>>>
>>>> --- 
>>>> ------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>>
>>>
>>> Thanks,
>>>
>>> Jason
>>>
>>> ----------------------------------------------------------
>>> Jason van Zyl
>>> Founder,  Apache Maven
>>> http://twitter.com/jvanzyl
>>> ----------------------------------------------------------
>>>
>>>
>>> --- 
>>> ------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> http://twitter.com/jvanzyl
> ----------------------------------------------------------
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

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


Re: M3, plexus and guice ?

Posted by Jason van Zyl <ja...@sonatype.com>.
On 2009-12-29, at 2:27 PM, Kristian Rosenvold wrote:

> 
>> If you like we can probably setup a git repo with a shimmed version of Maven and you can start putting it through it's paces. I can sync you and Stuart up offline and you can work on it when you can.
>> 
> 
> Sounds nice. I'll read up on the code. I need to get started with some
> seriously long skiing trips to get rid of the christmas excess. I seem
> to program well when sweating ;) 
> 

Ok, we'll try and set something up quickly with at least instructions of what dependencies to use. Maybe we can make a profile which uses one set of dependencies over another. For the trunk build itself using Guice over Plexus will really just be a slightly different set of artifacts. We'll try to get that sorted out and get you on your way.

> Kristian
> 
> 
> 
>>> Kristian
>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>> 
>> 
>> Thanks,
>> 
>> Jason
>> 
>> ----------------------------------------------------------
>> Jason van Zyl
>> Founder,  Apache Maven
>> http://twitter.com/jvanzyl
>> ----------------------------------------------------------
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
> 

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
----------------------------------------------------------


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


Re: M3, plexus and guice ?

Posted by Kristian Rosenvold <kr...@gmail.com>.
> If you like we can probably setup a git repo with a shimmed version of Maven and you can start putting it through it's paces. I can sync you and Stuart up offline and you can work on it when you can.
> 

Sounds nice. I'll read up on the code. I need to get started with some
seriously long skiing trips to get rid of the christmas excess. I seem
to program well when sweating ;) 

Kristian

 

> > Kristian
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> > For additional commands, e-mail: dev-help@maven.apache.org
> > 
> 
> Thanks,
> 
> Jason
> 
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> http://twitter.com/jvanzyl
> ----------------------------------------------------------
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
> 



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


Re: M3, plexus and guice ?

Posted by Jason van Zyl <ja...@sonatype.com>.
On 2009-12-29, at 1:57 PM, Kristian Rosenvold wrote:

> On Tue, 2009-12-29 at 13:25 -0500, Jason van Zyl wrote:
> 
>> Taken us longer to make the adapter then we expected, and if we want 3.0 out in a reasonable timeframe it's just not something we can do.
> 
> Oh that's a shame, and you're totally right I probably don't see the
> full ramifications. I suppose I must have missed that bit if it was
> discussed on the list.
> 
>> Well, I'm not really concerned as a first priority whether you think the code is "hot". 
> 
> I wouldn't care about "hotness" as a feature either, but there is a very
> real motivational factor for getting people involved. At least in my day
> job I find that people are a lot more motivated to learn/use tools &
> frameworks they see as good for their personal evolution as developers. 
> 
> But you're totally right; most of the change should be invisible to the
> outside and it should be an undramatic change if done properly.  
> 
> 
>> The Plexus shim for Guice is here:
>> 
>> http://svn.sonatype.org/spice/trunk/spice-inject/
>> 
> 
> I will definitely take a look at that, thanks.
> 

If you like we can probably setup a git repo with a shimmed version of Maven and you can start putting it through it's paces. I can sync you and Stuart up offline and you can work on it when you can.

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

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
----------------------------------------------------------


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


Re: M3, plexus and guice ?

Posted by Kristian Rosenvold <kr...@gmail.com>.
On Tue, 2009-12-29 at 13:25 -0500, Jason van Zyl wrote:

> Taken us longer to make the adapter then we expected, and if we want 3.0 out in a reasonable timeframe it's just not something we can do.

Oh that's a shame, and you're totally right I probably don't see the
full ramifications. I suppose I must have missed that bit if it was
discussed on the list.

> Well, I'm not really concerned as a first priority whether you think the code is "hot". 

I wouldn't care about "hotness" as a feature either, but there is a very
real motivational factor for getting people involved. At least in my day
job I find that people are a lot more motivated to learn/use tools &
frameworks they see as good for their personal evolution as developers. 

But you're totally right; most of the change should be invisible to the
outside and it should be an undramatic change if done properly.  


> The Plexus shim for Guice is here:
> 
> http://svn.sonatype.org/spice/trunk/spice-inject/
> 

I will definitely take a look at that, thanks.

Kristian



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


Re: M3, plexus and guice ?

Posted by Jason van Zyl <ja...@sonatype.com>.
On 2009-12-29, at 12:48 PM, Kristian Rosenvold wrote:

> 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. 
> 

Taken us longer to make the adapter then we expected, and if we want 3.0 out in a reasonable timeframe it's just not something we can do.

> 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.
> 

In all honestly it affects almost no users. You're an advanced user, and we've had the same problems with Guice and we've had to create some shim code and make some changes in Guice as well. Nothing is perfect but leaving Plexus in 3.0 isn't going to affect average users. If the ITs work I don't see much value in rushing the switch. We testing all the edges with Nexus and when that's done we'll try Maven.

> 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. 
> 

Then you don't really understand how much work it is. It's impossible for anyone to see this when they don't work on this full-time.

> 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 ? 

I don't think you honestly understand the ramifications of changing the underlying system. The grid has slowly been built up over time to try and automate much of this and the ITs catch almost everything these days but it's not a small or trivial job. When we have found problems Stuart has been able to work with Jesse to patch Guice but we're still finding things and we fix them as we go. I think it's wiser to fully convert one system completely first, in this case Nexus, and then attempt the next system.

> 
> 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".

Well, I'm not really concerned as a first priority whether you think the code is "hot". I care about it being stable, making sure the grid is in place to catch anything, and that the ITs actually represent something we can rely on.

The Plexus shim for Guice is here:

http://svn.sonatype.org/spice/trunk/spice-inject/

Stuart has started playing around trying to get this to work with Maven but, again, we're focusing on Nexus first. But if you want to setup some builds and give feedback, patch guice, help setup the tests on the grid for validation and help write new ITs then that would be great. Myself, Stuart and Benjamin would be happy to get you started and point you in the right direction.

Given what I know about how the resources available to work on this and the general level of activity in the core I don't see Guice getting in for 3.0. But if it can be proven that a version of Maven running on top of Guice is a viable replacement then users won't notice and it can go in when it's ready somewhere along with 3.0.x line.

> 
> Regards
> 
> Kristian Rosenvold
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
> 

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
----------------------------------------------------------


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