diff options
author | slewis | 2010-10-04 22:07:52 +0000 |
---|---|---|
committer | slewis | 2010-10-04 22:07:52 +0000 |
commit | 192c82653a961b1924b318c2a10aaeb81af0dd54 (patch) | |
tree | b270f728915ac657d86f34a7a43f5e1cb98f0aa3 | |
parent | a370bdf9f2afcd0f38144613f52c933a59d6bd32 (diff) | |
download | org.eclipse.ecf-192c82653a961b1924b318c2a10aaeb81af0dd54.tar.gz org.eclipse.ecf-192c82653a961b1924b318c2a10aaeb81af0dd54.tar.xz org.eclipse.ecf-192c82653a961b1924b318c2a10aaeb81af0dd54.zip |
Changes for implementing enhancement https://bugs.eclipse.org/bugs/show_bug.cgi?id=326949
2 files changed, 40 insertions, 7 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java index 27949794c..52b111dd5 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java @@ -204,26 +204,33 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer } /** - * @since 3.0 + * @since 3.4 */ - public IRemoteServiceReference[] getRemoteServiceReferences(ID targetID, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException { - Trace.entering(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_ENTERING, this.getClass(), "getRemoteServiceReferences", new Object[] {targetID, clazz, filter}); //$NON-NLS-1$ + public IRemoteServiceReference[] getRemoteServiceReferences(ID target, ID[] idFilter, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException { + Trace.entering(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_ENTERING, this.getClass(), "getRemoteServiceReferences", new Object[] {target, idFilter, clazz, filter}); //$NON-NLS-1$ // If no target specified, just search for all available references - if (targetID == null) { - final IRemoteServiceReference[] result = getRemoteServiceReferences((ID[]) null, clazz, filter); + if (target == null) { + final IRemoteServiceReference[] result = getRemoteServiceReferences(idFilter, clazz, filter); Trace.exiting(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_EXITING, this.getClass(), "getRemoteServiceReferences", result); //$NON-NLS-1$ return result; } // If we're not already connected, then connect to targetID - connectToRemoteServiceTarget(targetID); + connectToRemoteServiceTarget(target); // Now we're connected (or already were connected), so we look for remote service references for target - final IRemoteServiceReference[] result = getRemoteServiceReferences((ID[]) null, clazz, filter); + final IRemoteServiceReference[] result = getRemoteServiceReferences(idFilter, clazz, filter); Trace.exiting(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_EXITING, this.getClass(), "getRemoteServiceReferences", result); //$NON-NLS-1$ return result; } /** + * @since 3.0 + */ + public IRemoteServiceReference[] getRemoteServiceReferences(ID targetID, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException { + return getRemoteServiceReferences(targetID, null, clazz, filter); + } + + /** * @since 3.3 for preventing issues like bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=304427 */ protected void connectToRemoteServiceTarget(ID targetID) throws ContainerConnectException { @@ -1523,6 +1530,18 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer } /** + * @since 3.4 + */ + public IFuture asyncGetRemoteServiceReferences(final ID target, final ID[] idFilter, final String clazz, final String filter) { + IExecutor executor = new JobsExecutor("asyncGetRemoteServiceReferences"); //$NON-NLS-1$ + return executor.execute(new IProgressRunnable() { + public Object run(IProgressMonitor monitor) throws Exception { + return getRemoteServiceReferences(target, idFilter, clazz, filter); + } + }, null); + } + + /** * @since 3.0 */ public IFuture asyncGetRemoteServiceReferences(final ID target, final String clazz, final String filter) { diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java index 41c475d09..e3e9662a8 100644 --- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java +++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java @@ -123,4 +123,18 @@ public class RemoteServiceContainer extends TCPClientSOContainer implements IRem public IRemoteServiceReference[] getAllRemoteServiceReferences(String clazz, String filter) throws InvalidSyntaxException { return registry.getAllRemoteServiceReferences(clazz, filter); } + + /** + * @since 3.4 + */ + public IRemoteServiceReference[] getRemoteServiceReferences(ID target, ID[] idFilter, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException { + return registry.getRemoteServiceReferences(target, idFilter, clazz, filter); + } + + /** + * @since 3.4 + */ + public IFuture asyncGetRemoteServiceReferences(ID target, ID[] idFilter, String clazz, String filter) { + return registry.asyncGetRemoteServiceReferences(target, idFilter, clazz, filter); + } } |