Change header template for a new version
[jabaws.git] / webservices / compbio / ws / client / WSTester.java
index 7091f02..8838903 100644 (file)
@@ -1,6 +1,6 @@
-/* Copyright (c) 2009 Peter Troshin\r
+/* Copyright (c) 2011 Peter Troshin\r
  *  \r
- *  JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.0     \r
+ *  JAva Bioinformatics Analysis Web Services (JABAWS) @version: 2.0     \r
  * \r
  *  This library is free software; you can redistribute it and/or modify it under the terms of the\r
  *  Apache License version 2 as published by the Apache Software Foundation\r
@@ -26,9 +26,12 @@ import java.io.ByteArrayInputStream;
 import java.io.Closeable;\r
 import java.io.IOException;\r
 import java.io.PrintWriter;\r
+import java.net.ConnectException;\r
 import java.util.Arrays;\r
 import java.util.List;\r
 \r
+import javax.xml.ws.WebServiceException;\r
+\r
 import org.apache.log4j.Logger;\r
 \r
 import compbio.data.msa.JABAService;\r
@@ -116,6 +119,15 @@ public class WSTester {
        private final PrintWriter writer;\r
        private final String hostname;\r
 \r
+       /**\r
+        * Construct an instance of JABAWS tester\r
+        * \r
+        * @param hostname\r
+        *            - fully qualified host and context name of JABAWS e.g.\r
+        *            http://nanna.cluster.lifesci.dundee.ac.uk:8080/jaba\r
+        * @param writer\r
+        *            a PrintWriter instance to writer test log to.\r
+        */\r
        public WSTester(String hostname, PrintWriter writer) {\r
                if (Util.isEmpty(hostname)) {\r
                        throw new NullPointerException("Hostname must be provided!");\r
@@ -209,7 +221,7 @@ public class WSTester {
         *             executable does not exists for a server platform\r
         */\r
        @SuppressWarnings("unchecked")\r
-       private <T> boolean checkService(JABAService wservice) {\r
+       private <T> boolean checkService(JABAService wservice, Services service) {\r
                try {\r
                        if (wservice == null) {\r
                                throw new NullPointerException(\r
@@ -219,7 +231,8 @@ public class WSTester {
                        if (wservice instanceof MsaWS) {\r
                                return testMsaWS((MsaWS<T>) wservice);\r
                        } else if (wservice instanceof SequenceAnnotation) {\r
-                               return testSequenceAnnotationWS((SequenceAnnotation<T>) wservice);\r
+                               return testSequenceAnnotationWS(\r
+                                               (SequenceAnnotation<T>) wservice, service);\r
                        } else {\r
                                throw new UnsupportedOperationException("The service: "\r
                                                + wservice.getClass() + " is not supported! ");\r
@@ -230,11 +243,15 @@ public class WSTester {
                }\r
        }\r
 \r
-       private <T> boolean testSequenceAnnotationWS(SequenceAnnotation<T> wservice)\r
-                       throws Exception {\r
+       private <T> boolean testSequenceAnnotationWS(\r
+                       SequenceAnnotation<T> wservice, Services service) throws Exception {\r
                writer.print("Calling analyse.........");\r
-               boolean success = testDefaultAnalyse(loadAlignment(), wservice, null,\r
-                               null);\r
+\r
+               List<FastaSequence> input = loadSeqs();\r
+               if (service == Services.AAConWS) {\r
+                       input = loadAlignment();\r
+               }\r
+               boolean success = testDefaultAnalyse(input, wservice, null, null);\r
 \r
                PresetManager<T> presetman = wservice.getPresets();\r
                if (presetman != null) {\r
@@ -242,8 +259,7 @@ public class WSTester {
                        if (presets != null && !presets.isEmpty()) {\r
                                Preset<T> preset = presets.get(0);\r
                                writer.print("Calling analyse with Preset.........");\r
-                               success = testDefaultAnalyse(loadAlignment(), wservice, preset,\r
-                                               null);\r
+                               success = testDefaultAnalyse(input, wservice, preset, null);\r
                        }\r
                }\r
                testMetadata(wservice);\r
@@ -304,6 +320,7 @@ public class WSTester {
                LimitsManager<T> limits = msaws.getLimits();\r
                if (limits != null && limits.getLimits().size() > 0) {\r
                        writer.println(OK);\r
+                       // writer.println("Limits details: \n" + limits.toString());\r
                } else {\r
                        writer.println(UNSUPPORTED);\r
                }\r
@@ -398,7 +415,17 @@ public class WSTester {
 \r
        }\r
 \r
-       public boolean checkService(Services service) {\r
+       /**\r
+        * Test JABA web service\r
+        * \r
+        * @param service\r
+        *            the service to test\r
+        * @return true if the service works as expected, false otherwise\r
+        * @throws WebServiceException\r
+        * @throws ConnectException\r
+        */\r
+       public boolean checkService(Services service) throws ConnectException,\r
+                       WebServiceException {\r
                JABAService ws = Jws2Client.connect(hostname, service);\r
                if (ws == null) {\r
                        writer.println("Cannot estabilish the connection to host "\r
@@ -408,7 +435,7 @@ public class WSTester {
                boolean succeed = false;\r
                try {\r
                        writer.println("Checking service " + service.toString());\r
-                       succeed = checkService(ws);\r
+                       succeed = checkService(ws, service);\r
                } finally {\r
                        FileUtil.closeSilently(((Closeable) ws));\r
                }\r