On 28-Feb-08, at 3:00 PM, Barrie Treloar wrote:

Jason, do you want to talk some more about XBean, DI, & Maven/Plexus etc?


XBean Reflect (XBR) is really something more akin to Guice. XBR is more complete then what I have in Plexus and I honestly only ever cared about private field injection and Plexus only does constructor and setter injection now. XBR does private field, constructor, bean factory, and setter injections. Dain and I chatted and decided to come up with an interface for DI that XBR would provide and that Plexus could consume. Dain has done the XBR side and is now going to remove Plexus' DI in favor of XBR. XBR is currently used in OpenEJB and David Jencks might be interested in it for Geronimo. So that would be the first step of collapsing out the DI code in Plexus and using XBR as a library.

I have also been talking with the Pico folks and if we could then abstract some container features I would be happy to chop out another huge chunk of Plexus and use Pico. So I'm hoping that we can arrive at the interface for DI which Pico and Plexus can use, and then take the bottom out of Plexus and use Pico in there. Ultimately the features I have in Plexus that I like are specifically for plugin systems like Maven. I have mechanisms for component configuration, configuration sources which can configure multiple components (like an application specific configuration being mapped on to components, this is what is done in Nexus), dynamic metadata translation (maven plugins are plexus components which are flipped on the fly), dynamic component discovery (maven plugins don't exist anywhere in the system until they are downloaded and wired up in the container), and runtime nature of a component system. Really this is what I am interested in and if Dain, Paul, Mauro, Peter want to do the DI and base container stuff that's great. We have all made containers and while it's very interesting we all go to bed at 10pm now, have lives (well some of us) and if we want any traction we know we have to work together. Dain, Paul and myself have been trying to hash this out for 4 years while things like Spring just took over, and things like Juice popped up. We're trying to take our personalities out of the equation (and that is very, very, very hard as we're all territorial which is good and bad) and make a better system.

The other interesting thing is that Dain sees JAXB as being an almost complete DI system itself. So if we create this interface and we can get Kohsuke to mess around with JAXB then maybe we can throw all our stuff away and let JAXB do the DI. That's where we're headed and it finally looks like we're making some headway. Dain will probably be done the first pass next week sometime and then we'll spend a week finding all the problems by running the Maven ITs. None of us are interested in using Spring but we're interested in running Spring applications which there are chunks of code lying around. And none of us are really interested in using OSGi but definitely want to interoperate (I actually had a good chat with Jeff McAffer and we actually talked about what would need to be done to run Maven on OSGi). We all like containers and want to continue working on them and we realize we can work on more interesting problems if we work together. This may seem perfectly obviously but it's been nearly impossible to get this point. Dain, Paul, and myself are very similar and in the past many of the conversation would go something like "Hmm, that's nice. My container can do this, my container can do that ... yada yada yada." Meanwhile many other systems have cropped up and served people better. I'm not a big fan of Spring's internals or architecture but absolutely no one can argue with their dedication to users, good documentation, helpful community and we realize we've done a disservice to people using our stuff because we can't cooperate. The merger of XBR into Plexus will be the first step away from this pattern and it's almost done.

I've had a brief look at http://geronimo.apache.org/xbean/index.html
but some of the pages are thin and the diagrams are coming up with
exceptions.

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


Thanks,

Jason

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

We know what we are, but know not what we may be.

-- Shakespeare



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

Reply via email to