X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws2%2FWebServiceExecutor.java;fp=src%2Fjalview%2Fws2%2FWebServiceExecutor.java;h=0000000000000000000000000000000000000000;hb=86cd00a0cdc19cdb40b51e704067ec2c331f8e61;hp=86016d2a3f6cfa825b42951f43a43a54aa349800;hpb=23bcade7b5311e2a3e789bfdbc5f8b9d516511ff;p=jalview.git diff --git a/src/jalview/ws2/WebServiceExecutor.java b/src/jalview/ws2/WebServiceExecutor.java deleted file mode 100644 index 86016d2..0000000 --- a/src/jalview/ws2/WebServiceExecutor.java +++ /dev/null @@ -1,133 +0,0 @@ -package jalview.ws2; - -import java.io.IOException; -import java.util.EventObject; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -import jalview.bin.Cache; - -public class WebServiceExecutor -{ - private ScheduledExecutorService executor = Executors - .newSingleThreadScheduledExecutor(); - - public void submit(final WebServiceWorkerI worker) - { - executor.submit(() -> { - try - { - worker.startJobs(); - wsThreadSupport.submitted(worker); - } catch (Exception e) - { - Cache.log.error("Failed to submit web service jobs.", e); - wsThreadSupport.submissionFailed(worker, e); - return; - } - executor.schedule(() -> pollJobs(worker), 1, TimeUnit.SECONDS); - }); - } - - private void pollJobs(WebServiceWorkerI worker) - { - boolean done; - try - { - done = worker.pollJobs(); - } catch (Exception e) - { - Cache.log.error("Failed to poll web service jobs.", e); - for (WSJob job : worker.getJobs()) - { - job.setStatus(WSJobStatus.SERVER_ERROR); - } - wsThreadSupport.pollFailed(worker, e); - return; - } - if (!done) - { - executor.schedule(() -> pollJobs(worker), 1, TimeUnit.SECONDS); - } - else - { - worker.done(); - wsThreadSupport.done(worker); - } - } - - private WebServiceThreadSupport wsThreadSupport = new WebServiceThreadSupport(); - - public void addThreadListener(WebServiceThreadListenerI listener) - { - wsThreadSupport.addListener(listener); - } - - public void removeThreadListener(WebServiceThreadListenerI listener) - { - wsThreadSupport.removeListener(listener); - } - - public void shutdown() - { - executor.shutdownNow(); - } - -} - -class WebServiceThreadSupport implements WebServiceThreadListenerI -{ - List listeners = new CopyOnWriteArrayList<>(); - - @Override - public void submitted(WebServiceWorkerI thread) - { - for (var listener : listeners) - listener.submitted(thread); - } - - @Override - public void submissionFailed(WebServiceWorkerI thread, Exception e) - { - for (var listener : listeners) - listener.submissionFailed(thread, e); - } - - @Override - public void pollFailed(WebServiceWorkerI thread, Exception e) - { - for (var listener : listeners) - listener.pollFailed(thread, e); - } - - @Override - public void cancelled(WebServiceWorkerI thread) - { - for (var listener : listeners) - listener.cancelled(thread); - } - - @Override - public void done(WebServiceWorkerI thread) - { - for (var listener : listeners) - listener.done(thread); - } - - public void addListener(WebServiceThreadListenerI listener) - { - if (!listeners.contains(listener)) - { - listeners.add(listener); - } - } - - public void removeListener(WebServiceThreadListenerI listener) - { - listeners.remove(listener); - } -}