I checked in a first cut of some of the model changes discussed in this
thread in our sandbox under
http://svn.apache.org/repos/asf/incubator/tuscany/sandbox/sebastien/java/sca
(this is an SVN copy of the whole sca tree, including the changes to the
model and the corresponding changes in the rest of the runtime). Here's
a summary of the changes:
- Cleanup of the code to facilitate code generation, eventually.
- A few renames, Aggregate to Composite, AggregatePart to Part,
SimpleComponent to AtomicComponent, ComponentType to ComponentInfo, more
in line with the current spec discussions and Jim's latest changes to
the core runtime as well.
- Changed the handling of the maps of Components, EntryPoints,
ExternalServices, ConfiguredReferences, etc. now populated immediately
as you add objects to the model so that loaders can retrieve these
objects by name.
- Adjusted some of the model classes to have both attributes from the
physical model and attributes/relationships from the the logical model.
- Moved the contextFactory field from ConfiguredReference and
ConfiguredService to Component, EntryPoint, ExternalService (which are
the actual objects managed by the Contexts).
- Simplified the logic in some of the initialize() and freeze() methods.
I am debating the usefulness of the freeze() methods, and would like to
get thoughts from the other people in the group. What do people think
about merging freeze and initialize()? or getting rid of this freeze
capability altogether?
I have not added Autowire to the model yet, I still need to get my head
around Autowire before I do that.
Next, I'm planning to add Java5 annotations to the model interfaces to
declare the mapping between the model classes and the corresponding XSD
artifacts from sca-core.xsd. I also have a little more cleanup to do in
some of the classes, but I think I've reached a stable enough point now
with the rest of the runtime working with this model.
I had to catch up with changes in the main stream several times while I
was working in that branch and had a real hard time merging and
resolving conflicts... so if there is no objection, I would like to
merge this code back into the main code stream soon, tomorrow ideally,
before things get out of sync and I run into a nightmare of conflicts
again... Could people take a look and see if this updated model looks
reasonable before I do that? Thanks.
--
Jean-Sebastien