JAL-3954 Do not retrieve alignment for failed jobs
[jalview.git] / src / jalview / ws2 / client / slivka / SlivkaWSDiscoverer.java
index 5bdbcfb..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;
     }
   }
@@ -155,7 +156,24 @@ public class SlivkaWSDiscoverer extends AbstractWebServiceDiscoverer
       }
       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
       {