JAL-3954 Do not retrieve alignment for failed jobs
[jalview.git] / src / jalview / ws2 / client / slivka / SlivkaWSDiscoverer.java
index a5f51ab..70e1c94 100644 (file)
@@ -8,8 +8,10 @@ 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;
 import jalview.ws2.api.WebService;
 import jalview.ws2.client.api.AbstractWebServiceDiscoverer;
 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
@@ -60,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;
     }
   }
@@ -101,7 +103,7 @@ public class SlivkaWSDiscoverer extends AbstractWebServiceDiscoverer
         wsb.actionClass(AlignmentAction.class);
         var msaService = wsb.build();
 
-        boolean canRealign = msaService.getName().endsWith("lustal");
+        boolean canRealign = msaService.getName().contains("lustal");
         var client = new SlivkaAlignmentWSClient(slivkaService);
         var actionBuilder = AlignmentAction.newBuilder(client);
         actionBuilder.name("Alignment");
@@ -119,6 +121,60 @@ public class SlivkaWSDiscoverer extends AbstractWebServiceDiscoverer
         }
         allServices.add(msaService);
       }
+      else if (serviceClass == SERVICE_CLASS_PROT_SEQ_ANALYSIS)
+      {
+        var wsb = WebService.<AnnotationAction> newBuilder();
+        initServiceBuilder(slivkaService, wsb);
+        wsb.category("Protein Disorder");
+        wsb.interactive(false);
+        wsb.actionClass(AnnotationAction.class);
+        var psaService = wsb.build();
+        var client = new SlivkaAnnotationWSClient(slivkaService);
+        var actionBuilder = AnnotationAction.newBuilder(client);
+        actionBuilder.webService(psaService);
+        actionBuilder.name("Analysis");
+        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;
@@ -131,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();