I've just enabled the new endpoint reference/endpoint model in the
runtime at revision: 756070. Here's what it does.
For each service binding an endpoint model is created
There are no $promoted$ services anymore. The endpoint at the
appropriate level hosts the services and refers down to the promoted
service
For each reference target (where target is either a wire target or an
unwired binding) an endpoint reference model is created
For endpoint references of references that have a callback
interface an association with the callback services endpoint is
created
Before composite activation endpoint reference bindings are matched
with endpoint bindings
The endpoint for the endpoint reference is chosen
At activation/start
All endpoints have a wire created
All endpoing reference have a wire created
Wire operation is that same as it was before.
When it comes to interacting with the wire the old EndpointReference
structure is still in use. I need some help from Raymond to switch
this over to the new structure. So there are a number of classes in
the code based with "2" at the end of their name. I haven't removed
the classes they replace yet but assume that the version with "2" in
the name is active.
In particular be aware that there old CompositeActivatorImpl and
RuntimeWireImpl are no longer active.
Next steps.
Go through and remove anything that can be removed
Do a bit of tidying
Fix up the code to use EnpointReference2 throughout
Add any of the other features that Raymond has mentioned as we see fit.
Refactor to change all the classes with "2" at the end to their
proper names removing anything they replace.
Some pictures of the endpoint reference/endpoint model can be found
here [1]. I'm just adding some promotion/callback pictures at the
moment. Any comments, help gratefully received.
Regards
Simon
[1] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Endpoints