Jim,
My comments inline
Jim Marino wrote:
On Mar 23, 2007, at 8:52 PM, Jean-Sebastien Delfino wrote:
Davanum Srinivas wrote:
Sebastien,
Can you please explain to everyone the purpose of this svn area and
what you are planning to do here?
thanks,
dims
Dims,
In the sandbox, I am trying to demonstrate a modular Tuscany kernel
that can support what I described in this thread:
http://www.mail-archive.com/[email protected]/msg15782.html
I'm working on this in sandbox/sebastien/java/sca/modules.
Basically I'm trying to come up with a set of black-box modules, with
minimum SPIs, minimum inter-dependencies, covering the following
aspects:
- modules/assembly - SCA core assembly model
- modules/policy - SCA Policy model
- modules/scdl - SCDL support (reading/writing the model from/to SCDL)
- modules/builder - A prototype of a different API to the assembly
model (showing how the same model can implement multiple interfaces)
- modules/java and java-scdl - SCA Java model and SCDL support for it
- modules/wsdl and wsdl-scdl - SCA WSDL model and SCDL support for it
- modules/crud and crud-scdl - a prototype of a simplistic SCA
component implementation type, to help validate the pluggability into
the model and the SCDL support
- modules/http http-tomcat and http-jetty - embedded Tomcat and
Jetty, I want to experiment with a binding (probably based on HTTP)
and I'm not sure which to pick between Tomcat and Jetty for that so I
pulled these two modules in as well and put in modules/http a small
ServletHost interface that will help integrate them.
I'm also just starting to prototype a variant implementation of the
assembly model, to see how a fairly different model implementation
can be swapped without breaking the other pieces (using the assembly
model API interfaces).
So this first set of modules covers part of the SCA metadata/model
story. Next I'd like to start looking at the execution runtime and
see how the execution part of kernel/core can be split in multiple
modules as well. I'd like to see how the SCA Java component support
can be extracted as a separate module for example.
I also copied to my sandbox a top-down build structure including end
to end samples and integration tests, which I'd like to use to
validate that these ideas and this assembly of modules hold together.
So, as I said in the above thread, I'd like feedback, ideas or help
with this work. People have asked for a more concrete proposal and
more details, the proposal is starting to take shape, and I'm happy
to continue to work on it wherever the community feel it should be done.
>From looking at the above description and the commit history it seems
you have forked the code.
I copied some of the Tuscany code to my sandbox to work on the
modularization proposal, as I obviously didn't want to start from scratch.
For example, the "variant implementation of the assembly model" has a
number of changes that coupled with what you describe above will
basically require a re-write of kernel.
I have not committed yet this variant implementation of the assembly
model as I just started to experiment with it yesterday. What I have in
the sandbox at the moment is a set of interfaces defining an assembly
model API, and a default implementation of these interfaces. The variant
implementation that I'm talking about is a prototype of a different
implementation of (a subset of) the same model interfaces, backed by
Spring bean definitions. This will help illustrate how clean interfaces
allow for alternate implementations of one or more modules, and
facilitate the integration with a particular runtime environment (Spring
in this case). I've just spent a few hours on this prototype so it's not
really baked yet, but I'll commit what I have soon so that people can
take a look if they are interested.
With respect to "a re-write of kernel" I hope we can avoid re-writing
it... I'm not sure why you're saying that this will require a re-write.
Now that I've made some progress on the metadata handling (models etc),
as I already said in my previous email, my intention is to start looking
at how to modularize the execution part of the kernel, and I obviously
don't want to restart it from scratch. I'm hoping to have to adjust only
some of the runtime builders and minimize changes in the rest of the
kernel core. It's not really serious to speculate anyway, I think that
prototyping this work will actually tell what's required.
What are the reasons for these changes? Couldn't trunk be
incrementally improved? Are there any plans for merging this with trunk?
As you said yourself when you asked me to continue to work on this in a
sandbox instead of trunk in:
http://www.mail-archive.com/[email protected]/msg15726.html, the
approach taken is significantly different than the design we have in
trunk. I am prototyping a different design, with independent modules,
minimal interfaces between them, and no circular dependencies between
the modules.
It's not up to me to decide on any plans to merge this with trunk. I'm
hoping that our community will see value in this work and will allow
some of these ideas to be applied to the trunk at some point, and
perhaps this can be done incrementally.
Is this a revolution?
Jim
The approach that I'm prototyping is different from what we have in
trunk and some of the design changes are revolutionary in nature, but I
don't know if that makes it a revolution. At this point I'm simply
trying to show that approach through concrete work and code.
--
Jean-Sebastien
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]