diff options
Diffstat (limited to 'providers/bundles')
-rw-r--r-- | providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java index c02ea48d6..08de7fbdb 100644 --- a/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java +++ b/providers/bundles/org.eclipse.ecf.provider.r_osgi/src/org/eclipse/ecf/internal/provider/r_osgi/R_OSGiRemoteServiceContainer.java @@ -202,6 +202,17 @@ final class R_OSGiRemoteServiceContainer implements IRemoteServiceContainerAdapt return new RemoteServiceImpl(impl, rs); } + public IRemoteServiceReference[] getRemoteServiceReferences(ID target, ID[] idFilter, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException { + if (target == null) + return getRemoteServiceReferences(idFilter, clazz, filter); + if (idFilter == null) + return getRemoteServiceReferences(target, clazz, filter); + List idsList = Arrays.asList(idFilter); + // add target + idsList.add(target); + return getRemoteServiceReferences((ID[]) idsList.toArray(new ID[] {}), clazz, filter); + } + /** * get remote service references. * @@ -744,6 +755,15 @@ final class R_OSGiRemoteServiceContainer implements IRemoteServiceContainerAdapt }, null); } + public IFuture asyncGetRemoteServiceReferences(final ID target, final ID[] idFilter, final String clazz, final String filter) { + IExecutor executor = new ThreadsExecutor(); + return executor.execute(new IProgressRunnable() { + public Object run(IProgressMonitor monitor) throws Exception { + return getRemoteServiceReferences(target, idFilter, clazz, filter); + } + }, null); + } + public Namespace getRemoteServiceNamespace() { return IDFactory.getDefault().getNamespaceByName(R_OSGiRemoteServiceNamespace.NAME); } |