diff options
author | slewis | 2010-10-04 22:07:54 +0000 |
---|---|---|
committer | slewis | 2010-10-04 22:07:54 +0000 |
commit | c83ffdcabd55773a53de0735e7e6ae55dc9bca9c (patch) | |
tree | 39532a535d666532cd7bd96cd5230a740373158e /providers/bundles | |
parent | 192c82653a961b1924b318c2a10aaeb81af0dd54 (diff) | |
download | org.eclipse.ecf-c83ffdcabd55773a53de0735e7e6ae55dc9bca9c.tar.gz org.eclipse.ecf-c83ffdcabd55773a53de0735e7e6ae55dc9bca9c.tar.xz org.eclipse.ecf-c83ffdcabd55773a53de0735e7e6ae55dc9bca9c.zip |
Changes for implementing enhancement https://bugs.eclipse.org/bugs/show_bug.cgi?id=326949
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); } |