Hi,
I made some changes around the how EndpointRegistry is used for a Node and
how the EndpointReference is bound an endpoint in the registry.
URL: http://svn.apache.org/viewvc?rev=823672&view=rev
Log:
Refactor the runtime build logic into EndpointReferenceBinder
Refactor the endpoint-wrapper into domainRegistryFactory that delegates to
endpoint registry implementations by the scheme
Improve/workaround the monitor so that it can be shared by multiple nodes
(We need a better design for this)
Basically, each Node can be configured with the following information:
domain: The URI of the domain that the Node belongs.
domainRegistryURI: The URI that can be used to connect to a domain registry,
such vm://localhost, multicast://<address>:<port>?attr1=v1&attr=v2.
When the Node starts, it looks up the DomainRegistryFactory (replacing
EndpointRegistryWrapper) which knows how to find an implementation of
EndpointRegistry that support the scheme such as "vm" or "multicast". An
instance is created for the given registry URI and domain URI and cached by
the combined key. I removed the endpoint-wrapper module.
I also refactored the runtimebuild code from the EndpointReferenceBuilder
into a new utility called EndpointReferenceBinder that can bind a EPR to the
endpoint in the endpoint registry that is passed in as an argument.
When I tried to bring up the tests in domain-node, I discovered some flaws
in our Monitor creation and usages. I'll start a different thread for that.
Thanks,
Raymond
---
Raymond Feng
Apache Tuscany PMC Member: http://tuscany.apache.org
Co-author of Tuscany In Action (A book on Tuscany SCA):
http://tuscanyinaction.com/