ant elder wrote:
On 3/27/07, Jeremy Boynes <[EMAIL PROTECTED]> wrote:

<snip/>

One reason the SPI module is so large is that it does define many the
interfaces for the components in you diagram. I think there is room
for a reorganization there to clarify the usage of those interfaces.
I would propose we start with that ...


There have been several emails now which I think show some agreement that we can do some SPI refactoring. Here's something that could be a start of this
work:

One area is the extension SPI, on our architecture diagram [1] thats the
"Extensions" box at the top right. In the past we've had a lot of problems with extensions continually getting broken as the SPIs keep changing. This
has made maintaining extensions to be in a working state a big job and it
has led to some donated extension just being abandoned.

One of the reasons for this is that the SPIs more reflect the requirements
of the Tuscany runtime than the requirements of the extension being
contributed. For example, a container extension needs to enable creating,
initializing, invoking and destroying a component, along with exposing the components services, references and properties. Those things have remained pretty constant even though the SCA specs and Tuscany runtime and SPI have
undergone significant changes.

I think we should be able to create SPIs for these type of functions which clearly represent the requirements of a particular extension type, and that doing this would go along way to making things more stable. All this code is there in the current SPI so its mainly just a mater of refactoring parts out into separate bits with clearly defined function and adding adapter code so
the runtime can use them.

You can even envisage that if this is successful it could define a runtime
extension SPI for all the extensible areas of SCA assembly which could
eventually be standardized to provide portable SCA extensions in a way
similar to JBI.

What do people think, is this worth looking at? If so I'd like to make an
attempt at doing it for bindings and components using the Axis2 binding and
script container as guinea pigs. This should be pretty transparent to the
rest of the kernel as other than the adapter code it could all be separate
modules.

I think it's a very good idea. It may be interesting to try this as well with simpler component implementation and binding extensions, this could be an echo-binding that just echoes what it's passed, or a crud component implementation extension that just implements fixed create/retireve/update/delete methods for example. It would help illustrate the extension development model without the complexity of the Web service or script handling getting in the way. We probably need both to help refine the SPIs, real axis2 and script extensions and simpler ones that show the minimum required to develop an extension. I'll happy to help with this SPI work.


Comments?

  ...ant

[1]
http://cwiki.apache.org/confluence/display/TUSCANY/Kernel+Modulization+Design+Discussions


--
Jean-Sebastien


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

Reply via email to