IMHO, that sounds like a useful refactoring. I remember it taking awhile
to sink in that these SPI extension classes where providing implementations
in abstract classes since that wasn't what I'd expected from browsing the
rest of the Tuscany source structuring.
On a somewhat related note I was just wondering whether or how the function
in Axis2ServiceBinding.invokeTarget() could be moved into a base
ServiceBindingExtension.... which I would need to look into more to
understand. The tie back to Jeremy's point is the fact that this
abstract function certainly make the job of writing extensions much easier.
Scott
On 2/28/07, Jeremy Boynes <[EMAIL PROTECTED]> wrote:
One of the challenges with SPI is the amount of implementation it
contains, particularly in the extension package where we provide
baseclasses for many of the extension points.
The intention here was to provide implementation infrastructure
common to many extension points that they could use. The problem is
maintaining that requires frequent revision to the SPI module
(although not necessarily to the interfaces it defines).
I think we can get around this issue by replacing these with specific
implementation types that are part of the core implementation. For
example, instead of having to write code to implement a loader for
"MyModelObject", we would allow the user to define one declaratively
using something like:
<component name="myLoader">
<t:loader modelObject="com.example.MyModelObject"/>
</component>
I'm going to explore this related to the loaders and if it seems to
work well will see how it extends to other extension points.
--
Jeremy
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]