RESOLVED - bug 277573: [RFC119] Make remote service identifiable in service registry by setting ServicePublication.ENDPOINT_ID
https://bugs.eclipse.org/bugs/show_bug.cgi?id=277573
diff --git a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/DiscoveredServiceTrackerImpl.java b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/DiscoveredServiceTrackerImpl.java
index de8d61f..9fb2051 100644
--- a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/DiscoveredServiceTrackerImpl.java
+++ b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/DiscoveredServiceTrackerImpl.java
@@ -32,6 +32,7 @@
import org.eclipse.ecf.osgi.services.discovery.RemoteServiceEndpointDescription;
import org.eclipse.ecf.osgi.services.discovery.RemoteServicePublication;
import org.eclipse.ecf.osgi.services.discovery.ServiceEndpointDescription;
+import org.eclipse.ecf.osgi.services.discovery.ServicePublication;
import org.eclipse.ecf.osgi.services.distribution.IDistributionConstants;
import org.eclipse.ecf.osgi.services.distribution.IProxyContainerFinder;
import org.eclipse.ecf.osgi.services.distribution.IProxyDistributionListener;
@@ -60,6 +61,7 @@
org.eclipse.ecf.remoteservice.Constants.SERVICE_ID,
org.eclipse.ecf.remoteservice.Constants.SERVICE_CONTAINER_ID,
org.eclipse.ecf.remoteservice.Constants.SERVICE_RANKING,
+ IDistributionConstants.SERVICE_EXPORTED_CONFIGS,
RemoteServicePublication.ENDPOINT_ID,
RemoteServicePublication.ENDPOINT_INTERFACE_NAME,
RemoteServicePublication.ENDPOINT_LOCATION,
@@ -686,6 +688,15 @@
props.put(propKeys[i], rsReference.getProperty(propKeys[i]));
}
}
+
+ // make the service identifiable by consumers
+ // especially org.eclipse.ecf.remoteservice.ui.dosgi
+ final ID endpointId = (ID) rsReference
+ .getProperty(org.eclipse.ecf.remoteservice.Constants.SERVICE_CONTAINER_ID);
+ final Long serviceId = (Long) rsReference
+ .getProperty(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
+ props.put(ServicePublication.ENDPOINT_ID, endpointId + "#" + serviceId); //$NON-NLS-1$
+
// finally add service.imported.configs
addImportedConfigsProperties(
getContainerTypeDescription(rsContainer.getContainer()),