[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [ecf-dev] ServiceTracker for remote services | 
Hi Scott,
thanks for your reply. I guess I will check out  the  
RemoteServiceTracker and look whether he does what we need.
Regards,
Eugen
Am May 11, 2009 um 19:33  schrieb Scott Lewis:
Hi Eugen,
Eugen Reiswich wrote:
Hi all,
I'm using ECF over XMPP with an Jabber-Server. What I need is the  
functionallity similar to an OSGi ServiceTracker. Is there  
something comparable in ECF?
There is, but it's not yet thoroughly tested.  It's a  
'RemoteServiceTracker', in  
org.eclipse.ecf.remoteservice.util.tracker.RemoteServiceTracker.
When I start my application I need the ability:
1. to search for remote services already provided by my online  
clients
2. I also want to be informed about new service registrations if a  
new client logs in and offers his remote services
Can the ECF ServiceDiscovery-API be used to deal with this problem?
Yes.
If yes, how would I use the ServiceDiscoveryAPI to create a  
ServiceTracker for ECF-remote-services?
Well, the discovery API can deliver arbitrary service  
properties...and these service properties can include things like  
the targetID...that can be used to to create a proxy for a client  
that is discovered...e.g.
IRemoteServiceReference[] ref =  
containerAdapter.getRemoteServiceReferences(targetID,interface,null);
IRemoteService rs = containerAdapter.getRemoteService(ref[0]);
Object proxy = rs.getProxy();
But one thing to say about this:  what is being described here is  
basically what the ECF implementation of RFC119 does...that is, it  
gets meta-data about discovered services from the discovery service  
properties, and then calls  
containerAdapter 
.getRemoteServiceReferences(targetID,interface,props) for you...then  
creates a proxy and puts it in the local service registry (where a  
ServiceTracker for that service will then be notified).
You can see test code that tests this mechanism (the RFC119 impl) in  
the org.eclipse.ecf.tests.osgi.services.distribution test bundle.   
In there are some test cases where a ServiceTracker is used so that  
client code can be notified when a remote service is discovered,  
lookedup, and then added to the local service registry (see  
org 
.eclipse 
.ecf 
.tests 
.osgi.services.distribution.AbstractServiceRegisterTest.testGetProxy  
for example).
Thanks,
Scott
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev