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]