|Re: [ecf-dev] help|
On 3/22/2011 8:47 AM, ronen hamias wrote:
It seems to me that you will likely need to implement your own topology manager to address your use case...since it involves controlling the remote service export and import process in a specific, application-defined way.
The OSGi RSA specification explicitly allows for multiple/alternative topology managers...so that the remote service export and import process (in response to discovery), can be controlled as appropriate. The specification has a great deal of flexibility in this area (topology managers)...specifically to support use cases like yours.
Further the RSA impl in ECF 3.5 fully allows for the creation of other topology managers...and supports using/creating alternative topology managers.
But, since the ECF RSA implementation is relatively new, there are not (yet) many existing public examples of alternative topology managers based upon the ECF RSA impl. There is, however, the 'BasicTopologyManager', which is the one that comes with ECF 3.5...and enables the basic support for remote service export and import. The source code for the BasicTopologyManager is here:
This topology manager extends the AbstractTopologyManager
You are of course welcome to reuse any of the code in ECF...or you can use it as example code to create your own topology manager to meet your use case. Note that the the ECF RSA impl allows quite a good deal of flexibility *without* a new topology manager...e.g. the IHostContainerSelector and IConsumerContainerSelector structure...but you can also create a completely new topology manager (not based upon BasicTopologyManager or AbstractTopologyManager), if you desire.
I myself am in the process of creating some alternative topology managers (e.g. for exporting/importing REST-based remote services), under the auspices of my own commercial venture (composent.com). If you are interested in working with me directly on this, then please contact me directly at slewis at composent.com. Obviously, since I'm the primary author of ECF's RSA implementation...as well as the BasicTopologyManager/AbstractTopologyManager and the underlying RSA implementation, I have some direct knowledge of how to do this :).