protected IFuture callAsync(final IRemoteCall call, final IRemoteCallable callable) {
   final AbstractExecutor executor = new ThreadsExecutor();
   return executor.execute(
       new IProgressRunnable() {
         public Object run(IProgressMonitor monitor) throws Exception {
           if (callable == null) throw new ECFException("Callable not found"); // $NON-NLS-1$
           return invokeRemoteCall(call, callable);
         }
       },
       null);
 }
 protected void callAsync(
     IRemoteCall call, IRemoteCallable restClientCallable, IRemoteCallListener listener) {
   final AbstractExecutor executor = new ThreadsExecutor();
   executor.execute(new AsyncResult(call, restClientCallable, listener), null);
 }