[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] in ECF service client, how to get the ID of a service being added?
|
Hi David,
David Donohue wrote:
Hello,
My ECF client is using ServiceTracker to be notified of services from
remote servers. Using generic service. My method
addingService(ServiceReference reference)
gets called whenever a new service starts up. In that method, how can
I identify what is the ID/URI of a server that hosts the service?
The OSGi remote services specification does not require/guarantee that
the ID/URI of the service host be available via the proxy's service
reference.
Having said that, you can/could add the ID as custom service property on
registration...e.g. on service host registration:
Properties props = new Properties();
props.put("myHostContainerName",containerID.getName());
context.registerService(svcInterfaces,svcImpl,props);
And then on the receiver side you can/could lookup and use the value of
the "myHostContainerName" property e.g.
remoteHostContainerName = reference.getProperty("myHostContainerName");
If you wish, another way with ECF's remote services, you can/could also
use the RemoteServiceTracker
(class=org.eclipse.ecf.remoteservice.util.tracker.RemoteServiceTracker).
The advantage of this is that then you will get the
IRemoteServiceReference in the addingService call and be able to access
the remote host containerID directly...e.g.
public IRemoteService addingService(IRemoteServiceReference rref) {
ID remoteContainerID = rref.getID().getContainerID();
...Do what you wish with it.
Thanks,
Scott
Thanks,
David Donohue
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev