diff options
author | slewis | 2010-05-12 02:28:50 +0000 |
---|---|---|
committer | slewis | 2010-05-12 02:28:50 +0000 |
commit | 9135da3eebcb853133ddd37efde57d44280c58c6 (patch) | |
tree | 285181a8823a029299581aa574137de3505b3ce2 /compendium | |
parent | 82701570da0d654342191fa47a83a615001000d0 (diff) | |
download | org.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.java | 21 |
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) { |