JAL-3954 Do not retrieve alignment for failed jobs
[jalview.git] / src / jalview / ws2 / client / slivka / SlivkaWSDiscoverer.java
index 4829b49..70e1c94 100644 (file)
@@ -8,6 +8,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import jalview.bin.Cache;
+import jalview.bin.Console;
 import jalview.ws.params.ParamManager;
 import jalview.ws2.actions.alignment.AlignmentAction;
 import jalview.ws2.actions.annotation.AnnotationAction;
@@ -61,7 +62,7 @@ public class SlivkaWSDiscoverer extends AbstractWebServiceDiscoverer
       return services.isEmpty() ? STATUS_NO_SERVICES : STATUS_OK;
     } catch (IOException e)
     {
-      Cache.log.error("slivka could not retrieve services from " + url, e);
+      Console.error("slivka could not retrieve services from " + url, e);
       return STATUS_INVALID;
     }
   }
@@ -135,6 +136,45 @@ public class SlivkaWSDiscoverer extends AbstractWebServiceDiscoverer
         psaService.addAction(actionBuilder.build());
         allServices.add(psaService);
       }
+      else if (serviceClass == SERVICE_CLASS_CONSERVATION)
+      {
+        var wsb = WebService.<AnnotationAction> newBuilder();
+        initServiceBuilder(slivkaService, wsb);
+        wsb.category("Conservation");
+        wsb.interactive(true);
+        wsb.actionClass(AnnotationAction.class);
+        var conService = wsb.build();
+        var client = new SlivkaAnnotationWSClient(slivkaService);
+        var actionBuilder = AnnotationAction.newBuilder(client);
+        actionBuilder.webService(conService);
+        actionBuilder.name("");
+        actionBuilder.alignmentAnalysis(true);
+        actionBuilder.requireAlignedSequences(true);
+        actionBuilder.filterSymbols(true);
+        conService.addAction(actionBuilder.build());
+        allServices.add(conService);
+      }
+      else if (serviceClass == SERVICE_CLASS_RNA_SEC_STR_PRED)
+      {
+        var wsb = WebService.<AnnotationAction> newBuilder();
+        initServiceBuilder(slivkaService, wsb);
+        wsb.category("Secondary Structure Prediction");
+        wsb.interactive(true);
+        wsb.actionClass(AnnotationAction.class);
+        var predService = wsb.build();
+        var client = new SlivkaAnnotationWSClient(slivkaService);
+        var actionBuilder = AnnotationAction.newBuilder(client);
+        actionBuilder.webService(predService);
+        actionBuilder.name("Prediction");
+        actionBuilder.minSequences(2);
+        actionBuilder.allowNucleotide(true);
+        actionBuilder.allowProtein(false);
+        actionBuilder.alignmentAnalysis(true);
+        actionBuilder.requireAlignedSequences(true);
+        actionBuilder.filterSymbols(false);
+        predService.addAction(actionBuilder.build());
+        allServices.add(predService);
+      }
       else
       {
         continue;
@@ -147,7 +187,7 @@ public class SlivkaWSDiscoverer extends AbstractWebServiceDiscoverer
   {
     try
     {
-      wsBuilder.url(service.getUrl().toURL());
+      wsBuilder.url(service.getClient().getUrl().toURL());
     } catch (MalformedURLException e)
     {
       e.printStackTrace();