>>>> Jean-Sebastien Delfino wrote:
>>>> ...
>>>> I can do the following:
- Provide a few pre-canned init methods that bootstrap the subset of a
Tuscany runtime required for your scenarios. I'll start with these:
a) list deployables in a contribution
b) resolve deployables given the set of available contributions
- Come up with samples (easier to understand than test cases)
showing how
to use the init methods and the current SPIs to implement these
scenarios.
I'll probably keep the init method in each sample to start with, and
then
as we work through more usage scenarios I'm hoping that we can find
common
init patterns that we can then push into proper SPIs for all to reuse.
...
To allow programs to work with the Tuscany model extensions without
dragging a dependency on the runtime modules (which is one of the
ideas discussed here), I need to push the following interfaces/classes:
o.a.t.sca.core.ExtensionPointRegistry
o.a.t.sca.core.DefaultExtensionPointRegistry
o.a.t.sca.core.ModuleActivator
down from module core to module extensibility
This is transparent to all modules that use these classes, as there is
no name change and module core already has a compile dependency on
module extensibility.
If there's no objection I'll do that at the end of the day tomorrow.
I've made some progress with what was discussed here:
- Moved ExtensionPointRegistry to module extensibility
- Started to create sample tasks showing how to bootstrap a subset of
Tuscany to work with the various models [1], see ListDeployables.java,
ListDependencies.java, ListComponents.java, and WireComponents.java.
I've also added to extensibility a ModuleActivatorExtensionPoint (since
people seemed interested in working with module activators directly [2]
and I needed that too in the sample tasks) and a UtilityExtensionPoint
useful to hold common utilities like the monitor factory or the
interface contract mapper used in some of the sample tasks too.
The init() methods in the sample programs are there to help explore the
various Tuscany bootstrap patterns required for these common tasks,
candidate to become generic utility methods if people want that.
This is work in progress, subject to changes and improvements in the
next few days. I'm also in the process of adding more sample tasks to
show XML schema based validation, composite include processing,
assignment of composites to SCA nodes etc.
Feedback is welcome.
[1]
http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/domain-management/
[2] http://marc.info/?t=120769026900001&r=1&w=2
--
Jean-Sebastien