Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2010-05-12 02:28:50 +0000
committerslewis2010-05-12 02:28:50 +0000
commit9135da3eebcb853133ddd37efde57d44280c58c6 (patch)
tree285181a8823a029299581aa574137de3505b3ce2 /compendium
parent82701570da0d654342191fa47a83a615001000d0 (diff)
downloadorg.eclipse.ecf-9135da3eebcb853133ddd37efde57d44280c58c6.tar.gz
org.eclipse.ecf-9135da3eebcb853133ddd37efde57d44280c58c6.tar.xz
org.eclipse.ecf-9135da3eebcb853133ddd37efde57d44280c58c6.zip
Fix for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=311730
Diffstat (limited to 'compendium')
-rw-r--r--compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/DiscoveredServiceTrackerImpl.java21
1 files changed, 18 insertions, 3 deletions
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 b16c6efbb..70ed844f3 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
@@ -210,8 +210,9 @@ public class DiscoveredServiceTrackerImpl implements DiscoveredServiceTracker {
ID endpointID = endpointDescription.getEndpointAsID();
// Get remote service filter from the service endpoint description
// if it exists.
- String remoteServiceFilter = endpointDescription
- .getRemoteServicesFilter();
+ String remoteServiceFilter = getFullRemoteServicesFilter(
+ endpointDescription.getRemoteServicesFilter(),
+ endpointDescription.getRemoteServiceId());
// Get provided interfaces as collection
Collection providedInterfaces = endpointDescription
.getProvidedInterfaces();
@@ -258,13 +259,27 @@ public class DiscoveredServiceTrackerImpl implements DiscoveredServiceTracker {
: Arrays.asList(remoteReferences)
.toString()), null);
continue;
- } else
+ } else {
registerRemoteServiceReferences(endpointDescription,
rsContainers[i], remoteReferences);
+ }
}
}
}
+ private String getFullRemoteServicesFilter(String remoteServicesFilter,
+ long remoteServiceId) {
+ if (remoteServiceId < 0)
+ return remoteServicesFilter;
+ StringBuffer filter = new StringBuffer("(&(") //$NON-NLS-1$
+ .append(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID)
+ .append("=").append(remoteServiceId).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (remoteServicesFilter != null)
+ filter.append(remoteServicesFilter);
+ filter.append(")"); //$NON-NLS-1$
+ return filter.toString();
+ }
+
private void firePreGetRemoteServiceReferences(
final IRemoteServiceEndpointDescription endpointDescription,
final IRemoteServiceContainer remoteServiceContainer) {

Back to the top