Refactoring of all SequenceAnnotation web services
authorpvtroshin <pvtroshin@e3abac25-378b-4346-85de-24260fe3988d>
Fri, 17 Jun 2011 14:06:30 +0000 (14:06 +0000)
committerpvtroshin <pvtroshin@e3abac25-378b-4346-85de-24260fe3988d>
Fri, 17 Jun 2011 14:06:30 +0000 (14:06 +0000)
New version of Metro
Definition for IUPred exec
Stubs regenerated

git-svn-id: link to svn.lifesci.dundee.ac.uk/svn/barton/ptroshin/JABA2@4280 e3abac25-378b-4346-85de-24260fe3988d

48 files changed:
TODO.txt
WEB-INF/lib/webservices-api.jar
WEB-INF/lib/webservices-rt.jar
WEB-INF/lib/webservices-tools.jar
conf/Executable.properties
datamodel/compbio/data/sequence/FastaReader.java
datamodel/compbio/data/sequence/SequenceUtil.java
engine/compbio/engine/client/EnvVariableProcessor.java
how_to_add_new_webservice.txt
runner/compbio/runner/Util.java
testsrc/compbio/ws/client/TestAAConWS.java
webservices/compbio/data/msa/jaxws/JobSubmissionExceptionBean.java
webservices/compbio/data/msa/jaxws/LimitExceededExceptionBean.java
webservices/compbio/data/msa/jaxws/ResultNotAvailableExceptionBean.java
webservices/compbio/data/msa/jaxws/UnsupportedRuntimeExceptionBean.java
webservices/compbio/data/msa/jaxws/WrongParameterExceptionBean.java
webservices/compbio/ws/client/Constraints.java
webservices/compbio/ws/client/IOHelper.java
webservices/compbio/ws/client/Services.java
webservices/compbio/ws/client/client_help.txt
webservices/compbio/ws/server/AAConWS.java
webservices/compbio/ws/server/ClustalWS.java
webservices/compbio/ws/server/DisemblWS.java
webservices/compbio/ws/server/GlobPlotWS.java
webservices/compbio/ws/server/IUPredWS.java [new file with mode: 0644]
webservices/compbio/ws/server/JronnWS.java
webservices/compbio/ws/server/MafftWS.java
webservices/compbio/ws/server/MuscleWS.java
webservices/compbio/ws/server/ProbconsWS.java
webservices/compbio/ws/server/SAService.java [new file with mode: 0644]
webservices/compbio/ws/server/TcoffeeWS.java
webservices/compbio/ws/server/WSLogger.java [deleted file]
webservices/compbio/ws/server/WSUtil.java
webservices/compbio/ws/server/_WSLogger.java [new file with mode: 0644]
webservices/compbio/ws/server/resource/AAConWS.wsdl
webservices/compbio/ws/server/resource/ClustalWS.wsdl
webservices/compbio/ws/server/resource/DisemblWS.wsdl
webservices/compbio/ws/server/resource/DisemblWS_schema1.xsd
webservices/compbio/ws/server/resource/GlobPlotWS.wsdl
webservices/compbio/ws/server/resource/GlobPlotWS_schema1.xsd
webservices/compbio/ws/server/resource/IUPredWS.wsdl [new file with mode: 0644]
webservices/compbio/ws/server/resource/IUPredWS_schema1.xsd [new file with mode: 0644]
webservices/compbio/ws/server/resource/JronnWS.wsdl
webservices/compbio/ws/server/resource/MafftWS.wsdl
webservices/compbio/ws/server/resource/MuscleWS.wsdl
webservices/compbio/ws/server/resource/RegistryWS.wsdl
webservices/compbio/ws/server/resource/RegistryWS_schema1.xsd
webservices/compbio/ws/server/resource/TcoffeeWS.wsdl

index ac892fa..ca7bc9c 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,5 +1,8 @@
+TODO write some help on the executable.properties within this file! \r
 check that after binaries relocation build tasks point to correct locations!\r
 GET rid of binaries/help directory!\r
+update binaries\r
+\r
 TODO: \r
 Registry 1 week\r
 webservices - 1 week\r
index 87294ed..84f50ae 100644 (file)
Binary files a/WEB-INF/lib/webservices-api.jar and b/WEB-INF/lib/webservices-api.jar differ
index c7b7086..6741549 100644 (file)
Binary files a/WEB-INF/lib/webservices-rt.jar and b/WEB-INF/lib/webservices-rt.jar differ
index 651722d..e0426b8 100644 (file)
Binary files a/WEB-INF/lib/webservices-tools.jar and b/WEB-INF/lib/webservices-tools.jar differ
index b9bdac3..f0b72c8 100644 (file)
@@ -30,6 +30,7 @@ muscle.cluster.settings=-l h_cpu=24:00:00 -l h_vmem=6000M -l ram=6000M
 #local.mafft.bin.windows=\r
 local.mafft.bin=binaries/src/mafft/binaries/mafft\r
 cluster.mafft.bin=/homes/pvtroshin/workspace/jaba2/binaries/src/mafft/core/mafft\r
+# These paths will be converted to absolute if relative.\r
 mafft.bin.env=MAFFT_BINARIES#binaries/src/mafft/binaries;FASTA_4_MAFFT#binaries/src/fasta34/fasta34;\r
 mafft.--aamatrix.path=binaries/matrices\r
 mafft.presets.file=conf/settings/MafftPresets.xml\r
@@ -92,7 +93,9 @@ globplot.cluster.settings=-l h_cpu=24:00:00 -l h_vmem=6000M -l ram=6000M
 local.iupred.bin.windows=binaries/windows/iupred/iupred.exe \r
 local.iupred.bin=binaries/src/iupred/iupred\r
 # This must point to the directory where iupred binary is, with other files it depends on\r
-iupred.bin.env=IUPred_PATH#/homes/pvtroshin/workspace/jaba2/binaries/src/iupred\r
+#iupred.bin.env=IUPred_PATH#/homes/pvtroshin/workspace/jaba2/binaries/src/iupred\r
+# This path will be converted to absolute if relative. \r
+iupred.bin.env=IUPred_PATH#binaries/src/iupred\r
 cluster.iupred.bin=/homes/pvtroshin/workspace/jaba2/binaries/src/iupred/iupred\r
 iupred.parameters.file=conf/settings/IUPredParameters.xml\r
 iupred.limits.file=conf/settings/IUPredLimits.xml\r
index 2e1357f..38f1ccb 100644 (file)
@@ -19,6 +19,7 @@ package compbio.data.sequence;
 \r
 import java.io.File;\r
 import java.io.FileNotFoundException;\r
+import java.io.InputStream;\r
 import java.util.Iterator;\r
 import java.util.Scanner;\r
 \r
@@ -92,6 +93,19 @@ public class FastaReader implements Iterator<FastaSequence> {
                        }\r
                });\r
        }\r
+\r
+       /**\r
+        * This class will not close the incoming stream! So the client should do\r
+        * so.\r
+        * \r
+        * @param inputStream\r
+        * @throws FileNotFoundException\r
+        */\r
+       public FastaReader(final InputStream inputStream)\r
+                       throws FileNotFoundException {\r
+               input = new Scanner(inputStream);\r
+               input.useDelimiter("\\s*>");\r
+       }\r
        /**\r
         * {@inheritDoc}\r
         * \r
index 1c6d2e8..d65494e 100644 (file)
@@ -41,8 +41,9 @@ import compbio.util.Util;
 /**\r
  * Utility class for operations on sequences\r
  * \r
- * @author Petr Troshin\r
- * @version 1.0\r
+ * @author Peter Troshin\r
+ * @since 1.0\r
+ * @version 2.0 June 2011\r
  */\r
 public final class SequenceUtil {\r
 \r
@@ -99,19 +100,6 @@ public final class SequenceUtil {
        private SequenceUtil() {\r
        } // utility class, no instantiation\r
 \r
-       /*\r
-        * public static void write_PirSeq(OutputStream os, FastaSequence seq)\r
-        * throws IOException { BufferedWriter pir_out = new BufferedWriter(new\r
-        * OutputStreamWriter(os)); pir_out.write(">P1;" + seq.getId() +\r
-        * SysPrefs.newlinechar); pir_out.write(seq.getSequence() +\r
-        * SysPrefs.newlinechar); pir_out.close(); } public static void\r
-        * write_FastaSeq(OutputStream os, FastaSequence seq) throws IOException {\r
-        * BufferedWriter fasta_out = new BufferedWriter( new\r
-        * OutputStreamWriter(os)); fasta_out.write(">" + seq.getId() +\r
-        * SysPrefs.newlinechar); fasta_out.write(seq.getSequence() +\r
-        * SysPrefs.newlinechar); fasta_out.close(); }\r
-        */\r
-\r
        /**\r
         * @return true is the sequence contains only letters a,c, t, g, u\r
         */\r
@@ -268,28 +256,11 @@ public final class SequenceUtil {
        public static List<FastaSequence> readFasta(final InputStream inStream)\r
                        throws IOException {\r
                final List<FastaSequence> seqs = new ArrayList<FastaSequence>();\r
-\r
-               final BufferedReader infasta = new BufferedReader(\r
-                               new InputStreamReader(inStream, "UTF8"), 16000);\r
-               final Pattern pattern = Pattern.compile("//s+");\r
-\r
-               String line;\r
-               String sname = "", seqstr = null;\r
-               do {\r
-                       line = infasta.readLine();\r
-                       if ((line == null) || line.startsWith(">")) {\r
-                               if (seqstr != null) {\r
-                                       seqs.add(new FastaSequence(sname.substring(1), seqstr));\r
-                               }\r
-                               sname = line; // remove >\r
-                               seqstr = "";\r
-                       } else {\r
-                               final String subseq = pattern.matcher(line).replaceAll("");\r
-                               seqstr += subseq;\r
-                       }\r
-               } while (line != null);\r
-\r
-               infasta.close();\r
+               FastaReader reader = new FastaReader(inStream);\r
+               while (reader.hasNext()) {\r
+                       seqs.add(reader.next());\r
+               }\r
+               inStream.close();\r
                return seqs;\r
        }\r
 \r
index b968857..3423c8f 100644 (file)
@@ -49,7 +49,7 @@ public class EnvVariableProcessor {
                if (containsMultipleVariables(property)) {\r
                        return property.split(NEXT_ENV_PROPERTY_DELIMITER);\r
                }\r
-               return new String[] { property };\r
+               return new String[]{property};\r
        }\r
 \r
        static String getEnvVariableName(String property) {\r
@@ -92,6 +92,7 @@ public class EnvVariableProcessor {
         */\r
        private final static String mafft_binaries = "MAFFT_BINARIES";\r
        private final static String fasta4mafft = "FASTA_4_MAFFT";\r
+       private final static String iupred_path = "IUPred_PATH";\r
 \r
        public static Map<String, String> getEnvVariables(String property,\r
                        Class<?> clazz) {\r
@@ -101,12 +102,11 @@ public class EnvVariableProcessor {
                }\r
                for (String evar : getEnvVariableList(property)) {\r
                        if (!isValidEnvVariableProperty(evar)) {\r
-                               log\r
-                                               .error(clazz.getName()\r
-                                                               + " environment variable is specified by is NOT VALID! Skipping. "\r
-                                                               + "Valid format is propertyName"\r
-                                                               + PROP_NAME_VALUE_SEPARATOR + "propertyValue. "\r
-                                                               + "Given values is: " + evar);\r
+                               log.error(clazz.getName()\r
+                                               + " environment variable is specified by is NOT VALID! Skipping. "\r
+                                               + "Valid format is propertyName"\r
+                                               + PROP_NAME_VALUE_SEPARATOR + "propertyValue. "\r
+                                               + "Given values is: " + evar);\r
                        }\r
                        String varName = getEnvVariableName(evar);\r
                        String varValue = getEnvVariableValue(evar);\r
@@ -114,7 +114,8 @@ public class EnvVariableProcessor {
                        if (!PathValidator.isAbsolutePath(varValue)) {\r
                                varName = varName.trim();\r
                                if (varName.equalsIgnoreCase(mafft_binaries)\r
-                                               || varName.equalsIgnoreCase(fasta4mafft)) {\r
+                                               || varName.equalsIgnoreCase(fasta4mafft)\r
+                                               || varName.equalsIgnoreCase(iupred_path)) {\r
                                        varValue = compbio.engine.client.Util\r
                                                        .convertToAbsolute(varValue);\r
                                }\r
index 4f62d05..60a5803 100644 (file)
@@ -1,55 +1,80 @@
 How To add a new executable\r
 \r
-1) Add executable to the binaries folder. If it has source code and can be recompiled for different platforms include it under binaries/src \r
+1) Add executable to the binaries folder. If it has source code and can be \r
+recompiled for different platforms include it under binaries/src \r
 Edit binaries/src setexecutableflag.sh and compilebin.sh scripts accordingly. \r
 \r
-2) Make sure all the dependencies of the software being installed are satisfied. If there are other binaries they should be included as well. Keep the dependant binaries in subfolder for the main executable. Update compile and setexecflag scripts accordingly. \r
+2) Make sure all the dependencies of the software being installed are satisfied. \r
+If there are other binaries they should be included as well. Keep the dependant \r
+binaries in subfolder for the main executable. Update compile and setexecflag \r
+scripts accordingly. \r
 \r
 3) Make sure executable \r
-   - Does not have any hard links to its dependencies, e.g. is able to run from any installation folder and does not contain any hardcoded paths. (TODO examples...) \r
+   - Does not have any hard links to its dependencies, e.g. is able to run from \r
+   any installation folder and does not contain any hard coded paths. \r
+   (TODO examples...) \r
 \r
-4) Describe executable in conf/Exectuable.properties. The lowcase name of the wrapper should be included in the name of the property for example Clustal properties all include clustal as a part of the name e.g. local.clustalw.bin\r
+4) Describe executable in conf/Exectuable.properties. The lowercase name of the \r
+wrapper should be included in the name of the property for example Clustal \r
+properties all include clustal as a part of the name e.g. local.clustalw.bin\r
 The same property for Mafft will be called local.mafft.bin. \r
 \r
-5) Add <ExecutableName>Limit.xml, <ExecutableName>Parameters.xml and <ExecutableName>Presets.xml. All are optional (should be at least). If the executable does not support parameters you do not have to refer to the XXXParameter.xml file into the Executable.properties file. The same is true for Presets and Limits. \r
+5) Add <ExecutableName>Limit.xml, <ExecutableName>Parameters.xml and \r
+<ExecutableName>Presets.xml. All are optional (should be at least). If the \r
+executable does not support parameters you do not have to refer to the \r
+XXXParameter.xml file into the Executable.properties file. The same is true for \r
+Presets and Limits. \r
 \r
-6) Create a Java wrapper class for your executable. Create it within runner source directory. Examples of other wrappers can be found in compbio.runner.msa or compbio.runner.disorder packages. Wrapper should extend SkeletalExecutable<T> implements PipedExecutable<T> if you need to pass the input or collect the results from the standard in/out. Please see Mafft code as example. Wrapper should expend SkeletalExecutable<T> if input/output can be set as a parameter for an executable. Please see ClustalW code as example. \r
+6) Create a Java wrapper class for your executable. Create it within runner \r
+source directory. Examples of other wrappers can be found in compbio.runner.msa \r
+or compbio.runner.disorder packages. Wrapper should extend SkeletalExecutable<T> \r
+implements PipedExecutable<T> if you need to pass the input or collect the \r
+results from the standard in/out. Please see Mafft code as example. Wrapper \r
+should expend SkeletalExecutable<T> if input/output can be set as a parameter \r
+for an executable. Please see ClustalW code as example. \r
 \r
 7) Create a testcase suit for your wrapper and run the test cases. \r
 \r
-8) Create parser for the output files of your executable. Suggested location compbio.data.sequence.SequenceUtil  \r
+8) Create parser for the output files of your executable. Suggested location \r
+compbio.data.sequence.SequenceUtil  \r
 \r
 9) Test the parser\r
 \r
 10) Decide which web services interface your executable is going to match. \r
-    For example if the executable output can be represented as SequenceAnnotation then SequenceAnnotation interface might be appropriate. \r
+    For example if the executable output can be represented as \r
+    SequenceAnnotation then SequenceAnnotation interface might be appropriate. \r
     For multiple sequence alignment an Msa interface should be used. \r
 \r
-11) If you find a web interface that matches your returning data type, then implement a web service which confirms to it within a webservices source folder \r
+11) If you find a web interface that matches your returning data type, then \r
+implement a web service which confirms to it within a webservices source folder \r
 \r
 12) Register web service in WEB-INF/ web.xml and sun-jaxws.xml\r
 \r
 13) Add generated wsdl to wsbuild.xml ant script to generate the stubs\r
 \r
-14) Run build-server task in wsbuild file. Watch for errors. If the task fails that means that JAXB cannot serialize some of the data structures. Add appropriate annotations to your data types.\r
+14) Run build-server task in wsbuild file. Watch for errors. If the task fails \r
+that means that JAXB cannot serialize some of the data structures. Add \r
+appropriate annotations to your data types.\r
 Also check that \r
   - you do not have interfaces to serialize. JAXB cannot serialize them.\r
   - you have a default no args constructor (can be private if you do not need it)\r
   - JAXB cannot serialize a Map, use custom data structure instead!\r
-  - Enum cannot be serialized as its abstract class (do not confuse with enum which is fine)\r
-  - Fields serialization leave a little more space for manoeuvre, so use it. If you do then you can accept and return interfaces, e.g. List, Map; abstract classes etc, from your methods. \r
+  - Enum cannot be serialized as its abstract class (do not confuse with enum \r
+  which is fine)\r
+  - Fields serialization leave a little more space for manoeuvre, so use it. If \r
+  you do then you can accept and return interfaces, e.g. List, Map; abstract \r
+  classes etc, from your methods. \r
   \r
-If you have the data on the server side, but nothing is coming through to the client, this is a JAXB serialization problem. They tend to be very silent and thus hard to debug. Check your data structure can be serialized! \r
+If you have the data on the server side, but nothing is coming through to the \r
+client, this is a JAXB serialization problem. They tend to be very silent and \r
+thus hard to debug. Check your data structure can be serialized! \r
 \r
-13) Modify the client to work with your web service. \r
+13) Modify the client to work with your new web service. Update Services \r
+enumeration to include new service and ensure that all the methods of this \r
+enumeration take into account the new service. Update the client help text \r
+(client_help.txt) and insert it into the Constraints class.   \r
 \r
-14) Test. \r
+14) Test the web service with the client \r
 \r
 15) Test on the cluster...\r
 \r
-\r
-\r
\r
-\r
-\r
-  \r
index 47f169b..41bddd4 100644 (file)
@@ -37,6 +37,7 @@ import compbio.engine.client.ConfExecutable;
 import compbio.engine.client.ConfiguredExecutable;\r
 import compbio.engine.client.Executable;\r
 import compbio.engine.conf.PropertyHelperManager;\r
+import compbio.metadata.JobSubmissionException;\r
 import compbio.metadata.PresetManager;\r
 import compbio.metadata.RunnerConfig;\r
 import compbio.util.PropertyHelper;\r
@@ -113,18 +114,20 @@ public final class Util {
        }\r
 \r
        public static void writeInput(List<FastaSequence> sequences,\r
-                       ConfiguredExecutable<?> exec) {\r
+                       ConfiguredExecutable<?> exec) throws JobSubmissionException {\r
 \r
-               File filein = new File(exec.getInput());\r
                try {\r
+                       File filein = new File(exec.getInput());\r
                        FileOutputStream fout = new FileOutputStream(filein);\r
                        log.debug("File path: " + filein.getAbsolutePath());\r
                        SequenceUtil.writeFasta(fout, sequences);\r
                        fout.close();\r
-               } catch (FileNotFoundException e) {\r
-                       e.printStackTrace();\r
                } catch (IOException e) {\r
-                       e.printStackTrace();\r
+                       log.error("IOException while writing input file into the disk: "\r
+                                       + e.getLocalizedMessage(), e);\r
+                       throw new JobSubmissionException(\r
+                                       "We are sorry by JABAWS server seems to have a problem! "\r
+                                                       + e.getLocalizedMessage(), e);\r
                }\r
        }\r
 \r
index 0954a2b..488d239 100644 (file)
@@ -80,7 +80,7 @@ public class TestAAConWS {
                        assertEquals(result.asSet().size(), 1);\r
 \r
                        assertEquals(result.asSet().iterator().next().getMethod(),\r
-                                       ConservationMethod.SHENKIN);\r
+                                       ConservationMethod.SHENKIN.toString());\r
                        List<Float> scores = result.asSet().iterator().next().getScores();\r
                        assertNotNull(scores);\r
                        assertEquals(scores.size(), 568);\r
index 30950b4..869aea5 100644 (file)
@@ -9,8 +9,8 @@ import javax.xml.bind.annotation.XmlType;
 \r
 /**\r
  * This class was generated by the JAX-WS RI.\r
- * JAX-WS RI 2.2.1-hudson-28-\r
- * Generated source version: 2.2.1\r
+ * JAX-WS RI 2.2.3-b01-\r
+ * Generated source version: 2.2.3\r
  * \r
  */\r
 @XmlRootElement(name = "JobSubmissionException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index c9c3a4e..9e63199 100644 (file)
@@ -9,8 +9,8 @@ import javax.xml.bind.annotation.XmlType;
 \r
 /**\r
  * This class was generated by the JAX-WS RI.\r
- * JAX-WS RI 2.2.1-hudson-28-\r
- * Generated source version: 2.2.1\r
+ * JAX-WS RI 2.2.3-b01-\r
+ * Generated source version: 2.2.3\r
  * \r
  */\r
 @XmlRootElement(name = "LimitExceededException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index be8a26d..79f413a 100644 (file)
@@ -9,8 +9,8 @@ import javax.xml.bind.annotation.XmlType;
 \r
 /**\r
  * This class was generated by the JAX-WS RI.\r
- * JAX-WS RI 2.2.1-hudson-28-\r
- * Generated source version: 2.2.1\r
+ * JAX-WS RI 2.2.3-b01-\r
+ * Generated source version: 2.2.3\r
  * \r
  */\r
 @XmlRootElement(name = "ResultNotAvailableException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index 5e1268a..b349081 100644 (file)
@@ -9,8 +9,8 @@ import javax.xml.bind.annotation.XmlType;
 \r
 /**\r
  * This class was generated by the JAX-WS RI.\r
- * JAX-WS RI 2.2.1-hudson-28-\r
- * Generated source version: 2.2.1\r
+ * JAX-WS RI 2.2.3-b01-\r
+ * Generated source version: 2.2.3\r
  * \r
  */\r
 @XmlRootElement(name = "UnsupportedRuntimeException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index 62be910..630d8a5 100644 (file)
@@ -9,8 +9,8 @@ import javax.xml.bind.annotation.XmlType;
 \r
 /**\r
  * This class was generated by the JAX-WS RI.\r
- * JAX-WS RI 2.2.1-hudson-28-\r
- * Generated source version: 2.2.1\r
+ * JAX-WS RI 2.2.3-b01-\r
+ * Generated source version: 2.2.3\r
  * \r
  */\r
 @XmlRootElement(name = "WrongParameterException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index 6cb6992..e76ee6a 100644 (file)
@@ -32,7 +32,7 @@ class Constraints {
                        + "-h=<host_context>  - a full URL to the JABAWS web server including context \r\n"\r
                        + "                     path e.g. http://10.31.1.159:8080/ws\r\n"\r
                        + "-s=<ServiceName>   - one of [MafftWS, MuscleWS, ClustalWS, TcoffeeWS, ProbconsWS, \r\n"\r
-                       + "                     AAConWS, JronnWS, DisemblWS, GlobPlotWS]\r\n"\r
+                       + "                     AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS]\r\n"\r
                        + "                     <serviceName> is required for all ACTIONS but -list_services\r\n"\r
                        + "\r\n"\r
                        + "ACTIONS: \r\n"\r
index 88b695a..137c570 100644 (file)
@@ -112,6 +112,9 @@ public class IOHelper {
         *            the AACon scores to output\r
         */\r
        static void writeOut(Writer writer, ScoreManager results) {\r
+               if (results == null) {\r
+                       return;\r
+               }\r
                try {\r
                        results.writeOut(writer);\r
                } catch (IOException e) {\r
index 1048fb8..a7b9969 100644 (file)
@@ -33,6 +33,7 @@ import compbio.engine.client.Executable;
 import compbio.runner.conservation.AACon;\r
 import compbio.runner.disorder.Disembl;\r
 import compbio.runner.disorder.GlobPlot;\r
+import compbio.runner.disorder.IUPred;\r
 import compbio.runner.disorder.Jronn;\r
 import compbio.runner.msa.ClustalW;\r
 import compbio.runner.msa.Mafft;\r
@@ -45,7 +46,7 @@ import compbio.runner.msa.Tcoffee;
  * \r
  */\r
 public enum Services {\r
-       MafftWS, MuscleWS, ClustalWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPred;\r
+       MafftWS, MuscleWS, ClustalWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS;\r
 \r
        public static Services getService(String servName) {\r
                servName = servName.trim().toLowerCase();\r
@@ -89,6 +90,8 @@ public enum Services {
                                return GlobPlot.class;\r
                        case JronnWS :\r
                                return Jronn.class;\r
+                       case IUPredWS :\r
+                               return IUPred.class;\r
                        default :\r
                                throw new RuntimeException(\r
                                                "Unknown web service implementation class for service: "\r
@@ -153,7 +156,7 @@ public enum Services {
                        case JronnWS :\r
                        case DisemblWS :\r
                        case GlobPlotWS :\r
-\r
+                       case IUPredWS :\r
                                return SequenceAnnotation.class;\r
 \r
                                // deliberate leaking\r
index 7c70d4f..63947b1 100644 (file)
@@ -6,7 +6,7 @@ Usage: <Class or Jar file name> -h=host_and_context <-s=serviceName> ACTION [OPT
 -h=<host_context>  - a full URL to the JABAWS web server including context \r
                      path e.g. http://10.31.1.159:8080/ws\r
 -s=<ServiceName>   - one of [MafftWS, MuscleWS, ClustalWS, TcoffeeWS, ProbconsWS, \r
-                     AAConWS, JronnWS, DisemblWS, GlobPlotWS]\r
+                     AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS]\r
                      <serviceName> is required for all ACTIONS but -list_services\r
 \r
 ACTIONS: \r
index 1625ded..4cbebf2 100644 (file)
@@ -4,74 +4,31 @@ import java.io.File;
 import java.util.Arrays;\r
 import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
 import compbio.data.msa.SequenceAnnotation;\r
 import compbio.data.sequence.FastaSequence;\r
-import compbio.data.sequence.ScoreManager;\r
-import compbio.engine.AsyncExecutor;\r
 import compbio.engine.Configurator;\r
 import compbio.engine.client.ConfiguredExecutable;\r
-import compbio.engine.client.SkeletalExecutable;\r
 import compbio.metadata.ChunkHolder;\r
-import compbio.metadata.JobStatus;\r
 import compbio.metadata.JobSubmissionException;\r
-import compbio.metadata.Limit;\r
 import compbio.metadata.LimitExceededException;\r
-import compbio.metadata.LimitsManager;\r
-import compbio.metadata.Option;\r
-import compbio.metadata.Preset;\r
-import compbio.metadata.PresetManager;\r
-import compbio.metadata.ResultNotAvailableException;\r
-import compbio.metadata.RunnerConfig;\r
 import compbio.metadata.UnsupportedRuntimeException;\r
-import compbio.metadata.WrongParameterException;\r
-import compbio.runner.Util;\r
 import compbio.runner.conservation.AACon;\r
 \r
 @WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "AAConWS")\r
-public class AAConWS implements SequenceAnnotation<AACon> {\r
-\r
-       // Ask for resource injection\r
-       @Resource\r
-       WebServiceContext wsContext;\r
-\r
-       private static Logger statLog = Logger.getLogger("AAConWS-stats");\r
+public class AAConWS extends SAService<AACon>\r
+               implements\r
+                       SequenceAnnotation<AACon> {\r
 \r
        private static Logger log = Logger.getLogger(AAConWS.class);\r
 \r
-       private static final RunnerConfig<AACon> aaconOptions = Util\r
-                       .getSupportedOptions(AACon.class);\r
-\r
-       private static final PresetManager<AACon> aaconPresets = Util\r
-                       .getPresets(AACon.class);\r
-\r
-       private static final LimitsManager<AACon> limitMan = compbio.engine.client.Util\r
-                       .getLimits(new AACon().getType());\r
-\r
-       ConfiguredExecutable<AACon> init(List<FastaSequence> sequences)\r
-                       throws JobSubmissionException {\r
-               AACon aacon = new AACon();\r
-               aacon.setInput(SkeletalExecutable.INPUT).setOutput(\r
-                               SkeletalExecutable.OUTPUT);\r
-               return Configurator.configureExecutable(aacon, sequences);\r
+       public AAConWS() {\r
+               super(new AACon(), log);\r
        }\r
 \r
-       @Override\r
-       public ScoreManager getAnnotation(String jobId)\r
-                       throws ResultNotAvailableException {\r
-               WSUtil.validateJobId(jobId);\r
-               AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
-               ConfiguredExecutable<AACon> aacon = (ConfiguredExecutable<AACon>) asyncEngine\r
-                               .getResults(jobId);\r
-               ScoreManager mas = aacon.getResults();\r
-               log.trace(jobId + " getConservation : " + mas);\r
-               return mas;\r
-       }\r
        /*\r
         * @SuppressWarnings("unchecked") public JalviewAnnotation\r
         * getJalviewAnnotation(String jobId) throws ResultNotAvailableException {\r
@@ -80,67 +37,9 @@ public class AAConWS implements SequenceAnnotation<AACon> {
         */\r
 \r
        @Override\r
-       public Limit<AACon> getLimit(String presetName) {\r
-               if (limitMan == null) {\r
-                       // Limit is not defined\r
-                       return null;\r
-               }\r
-               return limitMan.getLimitByName(presetName);\r
-       }\r
-\r
-       @Override\r
-       public LimitsManager<AACon> getLimits() {\r
-               return limitMan;\r
-       }\r
-\r
-       @Override\r
-       public ChunkHolder pullExecStatistics(String jobId, long position) {\r
-               WSUtil.validateJobId(jobId);\r
-               String file = Configurator.getWorkDirectory(jobId) + File.separator\r
-                               + AACon.getStatFile();\r
-               return WSUtil.pullFile(file, position);\r
-       }\r
-\r
-       @Override\r
-       public boolean cancelJob(String jobId) {\r
-               WSUtil.validateJobId(jobId);\r
-               return WSUtil.cancelJob(jobId);\r
-       }\r
-\r
-       @Override\r
-       public JobStatus getJobStatus(String jobId) {\r
-               WSUtil.validateJobId(jobId);\r
-               return WSUtil.getJobStatus(jobId);\r
-       }\r
-\r
-       @Override\r
-       public PresetManager<AACon> getPresets() {\r
-               return aaconPresets;\r
-       }\r
-\r
-       @Override\r
-       public RunnerConfig<AACon> getRunnerOptions() {\r
-               return aaconOptions;\r
-       }\r
-\r
-       private String analize(List<FastaSequence> sequences,\r
-                       ConfiguredExecutable<AACon> confExec, Logger log, String method,\r
-                       Limit<AACon> limit) throws JobSubmissionException {\r
-               if (limit != null && limit.isExceeded(sequences)) {\r
-                       throw LimitExceededException.newLimitExceeded(limit, sequences);\r
-               }\r
-\r
-               compbio.runner.Util.writeInput(sequences, confExec);\r
-               AsyncExecutor engine = Configurator.getAsyncEngine(confExec);\r
-               String jobId = engine.submitJob(confExec);\r
-               return jobId;\r
-       }\r
-\r
-       @Override\r
        public String analize(List<FastaSequence> sequences)\r
                        throws UnsupportedRuntimeException, LimitExceededException,\r
                        JobSubmissionException {\r
-\r
                WSUtil.validateAAConInput(sequences);\r
                ConfiguredExecutable<AACon> confAAcon = init(sequences);\r
 \r
@@ -148,39 +47,16 @@ public class AAConWS implements SequenceAnnotation<AACon> {
                // TODO: This violates encapsulation, should be moved to the runners\r
                // level.\r
                confAAcon.addParameters(Arrays.asList("-m=SHENKIN"));\r
-               return analize(sequences, confAAcon, null, "analize", getLimit(""));\r
-       }\r
-\r
-       @Override\r
-       public String customAnalize(List<FastaSequence> sequences,\r
-                       List<Option<AACon>> options) throws UnsupportedRuntimeException,\r
-                       LimitExceededException, JobSubmissionException,\r
-                       WrongParameterException {\r
-               WSUtil.validateAAConInput(sequences);\r
-               ConfiguredExecutable<AACon> confAACon = init(sequences);\r
-               // Could not do that! Space separated values\r
-               // will all be treated as keys! thus duplicates removed\r
-               // String params = cbuilder.getCommand();\r
-               List<String> params = WSUtil.getCommands(options,\r
-                               AACon.KEY_VALUE_SEPARATOR);\r
-               confAACon.addParameters(params);\r
-               return analize(sequences, confAACon, null, "customAnalize",\r
+               return WSUtil.analize(sequences, confAAcon, log, "AAConWS analize",\r
                                getLimit(""));\r
        }\r
 \r
        @Override\r
-       public String presetAnalize(List<FastaSequence> sequences,\r
-                       Preset<AACon> preset) throws UnsupportedRuntimeException,\r
-                       LimitExceededException, JobSubmissionException,\r
-                       WrongParameterException {\r
-               WSUtil.validateAAConInput(sequences);\r
-               if (preset == null) {\r
-                       throw new WrongParameterException("Preset must be provided!");\r
-               }\r
-               ConfiguredExecutable<AACon> confAAcon = init(sequences);\r
-               confAAcon.addParameters(preset.getOptions());\r
-               Limit<AACon> limit = getLimit(preset.getName());\r
-               return WSUtil.align(sequences, confAAcon, null, "presetAnalize", limit);\r
+       public ChunkHolder pullExecStatistics(String jobId, long position) {\r
+               WSUtil.validateJobId(jobId);\r
+               String file = Configurator.getWorkDirectory(jobId) + File.separator\r
+                               + AACon.getStatFile();\r
+               return WSUtil.pullFile(file, position);\r
        }\r
 \r
 }\r
index 93d0c7f..22fad0c 100644 (file)
@@ -21,9 +21,7 @@ package compbio.ws.server;
 import java.io.File;\r
 import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
@@ -46,20 +44,12 @@ import compbio.metadata.RunnerConfig;
 import compbio.metadata.WrongParameterException;\r
 import compbio.runner.Util;\r
 import compbio.runner.msa.ClustalW;\r
-import compbio.util.Timer;\r
-import compbio.ws.client.Services;\r
 \r
 @WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = "http://msa.data.compbio/01/01/2010/", serviceName = "ClustalWS")\r
 public class ClustalWS implements MsaWS<ClustalW> {\r
 \r
-       // Ask for resource injection\r
-       @Resource\r
-       private WebServiceContext wsContext;\r
-\r
        private static Logger log = Logger.getLogger(ClustalWS.class);\r
 \r
-       private static volatile WSLogger logger;\r
-\r
        private static final RunnerConfig<ClustalW> clustalOptions = Util\r
                        .getSupportedOptions(ClustalW.class);\r
 \r
@@ -69,30 +59,13 @@ public class ClustalWS implements MsaWS<ClustalW> {
        private static final LimitsManager<ClustalW> limitMan = compbio.engine.client.Util\r
                        .getLimits(new ClustalW().getType());\r
 \r
-       /*\r
-        * Initialise the logger. This cannot be done in the constructor as the\r
-        * WebServiceContext is not available at the object construction time\r
-        */\r
-       private WSLogger getLogger() {\r
-               if (logger == null) {\r
-                       synchronized (ClustalWS.class) {\r
-                               if (logger == null) {\r
-                                       logger = WSLogger.getStatLogger(Services.ClustalWS,\r
-                                                       wsContext);\r
-                               }\r
-                       }\r
-               }\r
-               return logger;\r
-       }\r
-\r
        @Override\r
        public String align(List<FastaSequence> sequences)\r
                        throws JobSubmissionException {\r
 \r
                WSUtil.validateFastaInput(sequences);\r
                ConfiguredExecutable<ClustalW> confClust = init(sequences);\r
-               return WSUtil.align(sequences, confClust, getLogger(), "align",\r
-                               getLimit(""));\r
+               return WSUtil.align(sequences, confClust, log, "align", getLimit(""));\r
        }\r
 \r
        ConfiguredExecutable<ClustalW> init(List<FastaSequence> dataSet)\r
@@ -114,8 +87,7 @@ public class ClustalWS implements MsaWS<ClustalW> {
                Limit<ClustalW> limit = getLimit(preset.getName());\r
                ConfiguredExecutable<ClustalW> confClust = init(sequences);\r
                confClust.addParameters(preset.getOptions());\r
-               return WSUtil.align(sequences, confClust, getLogger(), "presetAlign",\r
-                               limit);\r
+               return WSUtil.align(sequences, confClust, log, "presetAlign", limit);\r
        }\r
 \r
        @Override\r
@@ -128,39 +100,35 @@ public class ClustalWS implements MsaWS<ClustalW> {
                                ClustalW.KEY_VALUE_SEPARATOR);\r
                confClust.addParameters(params);\r
                log.info("Setting parameters: " + params);\r
-               return WSUtil.align(sequences, confClust, getLogger(), "customAlign",\r
+               return WSUtil.align(sequences, confClust, log, "customAlign",\r
                                getLimit(""));\r
        }\r
 \r
        @Override\r
        public RunnerConfig<ClustalW> getRunnerOptions() {\r
-               Timer timer = Timer.getMilliSecondsTimer();\r
-               getLogger().logAll(timer, "getRunnerOptions");\r
                return clustalOptions;\r
        }\r
 \r
        @SuppressWarnings("unchecked")\r
        @Override\r
        public Alignment getResult(String jobId) throws ResultNotAvailableException {\r
-               Timer timer = Timer.getMilliSecondsTimer();\r
+\r
                WSUtil.validateJobId(jobId);\r
                AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
                ConfiguredExecutable<ClustalW> clustal = (ConfiguredExecutable<ClustalW>) asyncEngine\r
                                .getResults(jobId);\r
                Alignment al = clustal.getResults();\r
-               getLogger().log(timer, "getResults", jobId);\r
+\r
                return al;\r
        }\r
 \r
        @Override\r
        public Limit<ClustalW> getLimit(String presetName) {\r
-               Timer timer = Timer.getMilliSecondsTimer();\r
                if (limitMan == null) {\r
                        // No limit is configured\r
                        return null;\r
                }\r
                Limit<ClustalW> limit = limitMan.getLimitByName(presetName);\r
-               getLogger().logAll(timer, "getLimit");\r
                return limit;\r
        }\r
 \r
@@ -171,37 +139,30 @@ public class ClustalWS implements MsaWS<ClustalW> {
 \r
        @Override\r
        public boolean cancelJob(String jobId) {\r
-               Timer timer = Timer.getMilliSecondsTimer();\r
                WSUtil.validateJobId(jobId);\r
                boolean result = WSUtil.cancelJob(jobId);\r
-               getLogger().logFine(timer, "Cancel");\r
                return result;\r
        }\r
 \r
        @Override\r
        public JobStatus getJobStatus(String jobId) {\r
-               Timer timer = Timer.getMilliSecondsTimer();\r
                WSUtil.validateJobId(jobId);\r
                JobStatus status = WSUtil.getJobStatus(jobId);\r
-               getLogger().logFine(timer, "getJobStatus");\r
                return status;\r
        }\r
 \r
        @Override\r
        public PresetManager<ClustalW> getPresets() {\r
-               Timer timer = Timer.getMilliSecondsTimer();\r
-               getLogger().logAll(timer, "pullExecStatistics");\r
                return clustalPresets;\r
        }\r
 \r
        @Override\r
        public ChunkHolder pullExecStatistics(String jobId, long position) {\r
-               Timer timer = Timer.getMilliSecondsTimer();\r
+\r
                WSUtil.validateJobId(jobId);\r
                String file = Configurator.getWorkDirectory(jobId) + File.separator\r
                                + ClustalW.getStatFile();\r
                ChunkHolder cholder = WSUtil.pullFile(file, position);\r
-               getLogger().logFine(timer, "pullExecStatistics");\r
                return cholder;\r
        }\r
 \r
index 50d249b..059695f 100644 (file)
@@ -2,137 +2,29 @@ package compbio.ws.server;
 \r
 import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
 import compbio.data.msa.SequenceAnnotation;\r
 import compbio.data.sequence.FastaSequence;\r
-import compbio.data.sequence.ScoreManager;\r
-import compbio.engine.AsyncExecutor;\r
-import compbio.engine.Configurator;\r
-import compbio.engine.client.ConfiguredExecutable;\r
-import compbio.engine.client.SkeletalExecutable;\r
-import compbio.metadata.ChunkHolder;\r
-import compbio.metadata.JobStatus;\r
 import compbio.metadata.JobSubmissionException;\r
-import compbio.metadata.Limit;\r
 import compbio.metadata.LimitExceededException;\r
-import compbio.metadata.LimitsManager;\r
 import compbio.metadata.Option;\r
 import compbio.metadata.Preset;\r
-import compbio.metadata.PresetManager;\r
-import compbio.metadata.ResultNotAvailableException;\r
-import compbio.metadata.RunnerConfig;\r
 import compbio.metadata.UnsupportedRuntimeException;\r
 import compbio.metadata.WrongParameterException;\r
-import compbio.runner.Util;\r
 import compbio.runner.disorder.Disembl;\r
 \r
 @WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "DisemblWS")\r
-public class DisemblWS implements SequenceAnnotation<Disembl> {\r
-\r
-       // Ask for resource injection\r
-       @Resource\r
-       WebServiceContext wsContext;\r
-\r
-       private static Logger statLog = Logger.getLogger("DisemblWS-stats");\r
+public class DisemblWS extends SAService<Disembl>\r
+               implements\r
+                       SequenceAnnotation<Disembl> {\r
 \r
        private static Logger log = Logger.getLogger(DisemblWS.class);\r
 \r
-       private static final RunnerConfig<Disembl> disemblOptions = Util\r
-                       .getSupportedOptions(Disembl.class);\r
-\r
-       private static final PresetManager<Disembl> disemblPresets = Util\r
-                       .getPresets(Disembl.class);\r
-\r
-       private static final LimitsManager<Disembl> limitMan = compbio.engine.client.Util\r
-                       .getLimits(new Disembl().getType());\r
-\r
-       ConfiguredExecutable<Disembl> init(List<FastaSequence> sequences)\r
-                       throws JobSubmissionException {\r
-               Disembl disembl = new Disembl();\r
-               disembl.setInput(SkeletalExecutable.INPUT);\r
-               return Configurator.configureExecutable(disembl, sequences);\r
-       }\r
-\r
-       @Override\r
-       public ScoreManager getAnnotation(String jobId)\r
-                       throws ResultNotAvailableException {\r
-               WSUtil.validateJobId(jobId);\r
-               AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
-               ConfiguredExecutable<Disembl> disembl = (ConfiguredExecutable<Disembl>) asyncEngine\r
-                               .getResults(jobId);\r
-               ScoreManager mas = disembl.getResults();\r
-               log.trace(jobId + " getDisorder : " + mas);\r
-               return mas;\r
-       }\r
-\r
-       @Override\r
-       public Limit<Disembl> getLimit(String presetName) {\r
-               if (limitMan == null) {\r
-                       // Limit is not defined\r
-                       return null;\r
-               }\r
-               return limitMan.getLimitByName(presetName);\r
-       }\r
-\r
-       @Override\r
-       public LimitsManager<Disembl> getLimits() {\r
-               return limitMan;\r
-       }\r
-\r
-       @Override\r
-       public ChunkHolder pullExecStatistics(String jobId, long position) {\r
-               // Execution stat is not supported\r
-               return new ChunkHolder("", -1);\r
-       }\r
-\r
-       @Override\r
-       public boolean cancelJob(String jobId) {\r
-               WSUtil.validateJobId(jobId);\r
-               return WSUtil.cancelJob(jobId);\r
-       }\r
-\r
-       @Override\r
-       public JobStatus getJobStatus(String jobId) {\r
-               WSUtil.validateJobId(jobId);\r
-               return WSUtil.getJobStatus(jobId);\r
-       }\r
-\r
-       @Override\r
-       public PresetManager<Disembl> getPresets() {\r
-               return disemblPresets;\r
-       }\r
-\r
-       @Override\r
-       public RunnerConfig<Disembl> getRunnerOptions() {\r
-               return disemblOptions;\r
-       }\r
-\r
-       String analize(List<FastaSequence> sequences,\r
-                       ConfiguredExecutable<Disembl> confExec, Logger log, String method,\r
-                       Limit<Disembl> limit) throws JobSubmissionException {\r
-               if (limit != null && limit.isExceeded(sequences)) {\r
-                       throw LimitExceededException.newLimitExceeded(limit, sequences);\r
-               }\r
-\r
-               compbio.runner.Util.writeInput(sequences, confExec);\r
-               AsyncExecutor engine = Configurator.getAsyncEngine(confExec);\r
-               String jobId = engine.submitJob(confExec);\r
-               return jobId;\r
-       }\r
-\r
-       @Override\r
-       public String analize(List<FastaSequence> sequences)\r
-                       throws UnsupportedRuntimeException, LimitExceededException,\r
-                       JobSubmissionException {\r
-               WSUtil.validateFastaInput(sequences);\r
-               ConfiguredExecutable<Disembl> confDisembl = init(sequences);\r
-\r
-               return analize(sequences, confDisembl, null, "analize", getLimit(""));\r
+       public DisemblWS() {\r
+               super(new Disembl(), log);\r
        }\r
 \r
        /*\r
index 4c15b7c..e7a76ec 100644 (file)
@@ -2,136 +2,29 @@ package compbio.ws.server;
 \r
 import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
 import compbio.data.msa.SequenceAnnotation;\r
 import compbio.data.sequence.FastaSequence;\r
-import compbio.data.sequence.ScoreManager;\r
-import compbio.engine.AsyncExecutor;\r
-import compbio.engine.Configurator;\r
-import compbio.engine.client.ConfiguredExecutable;\r
-import compbio.engine.client.SkeletalExecutable;\r
-import compbio.metadata.ChunkHolder;\r
-import compbio.metadata.JobStatus;\r
 import compbio.metadata.JobSubmissionException;\r
-import compbio.metadata.Limit;\r
 import compbio.metadata.LimitExceededException;\r
-import compbio.metadata.LimitsManager;\r
 import compbio.metadata.Option;\r
 import compbio.metadata.Preset;\r
-import compbio.metadata.PresetManager;\r
-import compbio.metadata.ResultNotAvailableException;\r
-import compbio.metadata.RunnerConfig;\r
 import compbio.metadata.UnsupportedRuntimeException;\r
 import compbio.metadata.WrongParameterException;\r
-import compbio.runner.Util;\r
 import compbio.runner.disorder.GlobPlot;\r
 \r
 @WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "GlobPlotWS")\r
-public class GlobPlotWS implements SequenceAnnotation<GlobPlot> {\r
-\r
-       // Ask for resource injection\r
-       @Resource\r
-       WebServiceContext wsContext;\r
-\r
-       private static Logger statLog = Logger.getLogger("GlobPlotWS-stats");\r
+public class GlobPlotWS extends SAService<GlobPlot>\r
+               implements\r
+                       SequenceAnnotation<GlobPlot> {\r
 \r
        private static Logger log = Logger.getLogger(GlobPlotWS.class);\r
 \r
-       private static final RunnerConfig<GlobPlot> globPlotOptions = Util\r
-                       .getSupportedOptions(GlobPlot.class);\r
-\r
-       private static final PresetManager<GlobPlot> globPlotPresets = Util\r
-                       .getPresets(GlobPlot.class);\r
-\r
-       private static final LimitsManager<GlobPlot> limitMan = compbio.engine.client.Util\r
-                       .getLimits(new GlobPlot().getType());\r
-\r
-       ConfiguredExecutable<GlobPlot> init(List<FastaSequence> sequences)\r
-                       throws JobSubmissionException {\r
-               GlobPlot globPlot = new GlobPlot();\r
-               globPlot.setInput(SkeletalExecutable.INPUT);\r
-               return Configurator.configureExecutable(globPlot, sequences);\r
-       }\r
-       @Override\r
-       public ScoreManager getAnnotation(String jobId)\r
-                       throws ResultNotAvailableException {\r
-               WSUtil.validateJobId(jobId);\r
-               AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
-               ConfiguredExecutable<GlobPlot> globPlot = (ConfiguredExecutable<GlobPlot>) asyncEngine\r
-                               .getResults(jobId);\r
-               ScoreManager mas = globPlot.getResults();\r
-               log.trace(jobId + " getConservation : " + mas);\r
-               return mas;\r
-       }\r
-\r
-       @Override\r
-       public Limit<GlobPlot> getLimit(String presetName) {\r
-               if (limitMan == null) {\r
-                       // Limit is not defined\r
-                       return null;\r
-               }\r
-               return limitMan.getLimitByName(presetName);\r
-       }\r
-\r
-       @Override\r
-       public LimitsManager<GlobPlot> getLimits() {\r
-               return limitMan;\r
-       }\r
-\r
-       @Override\r
-       public ChunkHolder pullExecStatistics(String jobId, long position) {\r
-               // Execution stat is not supported\r
-               return new ChunkHolder("", -1);\r
-       }\r
-\r
-       @Override\r
-       public boolean cancelJob(String jobId) {\r
-               WSUtil.validateJobId(jobId);\r
-               return WSUtil.cancelJob(jobId);\r
-       }\r
-\r
-       @Override\r
-       public JobStatus getJobStatus(String jobId) {\r
-               WSUtil.validateJobId(jobId);\r
-               return WSUtil.getJobStatus(jobId);\r
-       }\r
-\r
-       @Override\r
-       public PresetManager<GlobPlot> getPresets() {\r
-               return globPlotPresets;\r
-       }\r
-\r
-       @Override\r
-       public RunnerConfig<GlobPlot> getRunnerOptions() {\r
-               return globPlotOptions;\r
-       }\r
-\r
-       String analize(List<FastaSequence> sequences,\r
-                       ConfiguredExecutable<GlobPlot> confExec, Logger log, String method,\r
-                       Limit<GlobPlot> limit) throws JobSubmissionException {\r
-               if (limit != null && limit.isExceeded(sequences)) {\r
-                       throw LimitExceededException.newLimitExceeded(limit, sequences);\r
-               }\r
-\r
-               compbio.runner.Util.writeInput(sequences, confExec);\r
-               AsyncExecutor engine = Configurator.getAsyncEngine(confExec);\r
-               String jobId = engine.submitJob(confExec);\r
-               return jobId;\r
-       }\r
-\r
-       @Override\r
-       public String analize(List<FastaSequence> sequences)\r
-                       throws UnsupportedRuntimeException, LimitExceededException,\r
-                       JobSubmissionException {\r
-               WSUtil.validateFastaInput(sequences);\r
-               ConfiguredExecutable<GlobPlot> confGlobPlot = init(sequences);\r
-\r
-               return analize(sequences, confGlobPlot, null, "analize", getLimit(""));\r
+       public GlobPlotWS() {\r
+               super(new GlobPlot(), log);\r
        }\r
 \r
        /*\r
diff --git a/webservices/compbio/ws/server/IUPredWS.java b/webservices/compbio/ws/server/IUPredWS.java
new file mode 100644 (file)
index 0000000..bd86c81
--- /dev/null
@@ -0,0 +1,42 @@
+package compbio.ws.server;\r
+\r
+import java.util.List;\r
+\r
+import javax.jws.WebService;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import compbio.data.msa.SequenceAnnotation;\r
+import compbio.data.sequence.FastaSequence;\r
+import compbio.metadata.JobSubmissionException;\r
+import compbio.metadata.LimitExceededException;\r
+import compbio.metadata.Preset;\r
+import compbio.metadata.UnsupportedRuntimeException;\r
+import compbio.metadata.WrongParameterException;\r
+import compbio.runner.disorder.IUPred;\r
+\r
+@WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "IUPredWS")\r
+public class IUPredWS extends SAService<IUPred>\r
+               implements\r
+                       SequenceAnnotation<IUPred> {\r
+\r
+       private static Logger log = Logger.getLogger(IUPredWS.class);\r
+\r
+       public IUPredWS() {\r
+               super(new IUPred(), log);\r
+       }\r
+\r
+       /*\r
+        * No presets are supported, thus the result of this call will be as simple\r
+        * call to analize without parameters\r
+        */\r
+       @Override\r
+       public String presetAnalize(List<FastaSequence> sequences,\r
+                       Preset<IUPred> preset) throws UnsupportedRuntimeException,\r
+                       LimitExceededException, JobSubmissionException,\r
+                       WrongParameterException {\r
+\r
+               return analize(sequences);\r
+       }\r
+\r
+}\r
index dc37f3f..ea3c215 100644 (file)
 package compbio.ws.server;\r
 \r
 import java.io.File;\r
-import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
 import compbio.data.msa.SequenceAnnotation;\r
-import compbio.data.sequence.FastaSequence;\r
-import compbio.data.sequence.ScoreManager;\r
-import compbio.engine.AsyncExecutor;\r
 import compbio.engine.Configurator;\r
-import compbio.engine.client.ConfiguredExecutable;\r
-import compbio.engine.client.SkeletalExecutable;\r
 import compbio.metadata.ChunkHolder;\r
-import compbio.metadata.JobStatus;\r
-import compbio.metadata.JobSubmissionException;\r
-import compbio.metadata.Limit;\r
-import compbio.metadata.LimitExceededException;\r
-import compbio.metadata.LimitsManager;\r
-import compbio.metadata.Option;\r
-import compbio.metadata.Preset;\r
-import compbio.metadata.PresetManager;\r
-import compbio.metadata.ResultNotAvailableException;\r
-import compbio.metadata.RunnerConfig;\r
-import compbio.metadata.UnsupportedRuntimeException;\r
-import compbio.metadata.WrongParameterException;\r
-import compbio.runner.Util;\r
 import compbio.runner.conservation.AACon;\r
 import compbio.runner.disorder.Jronn;\r
 \r
 @WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "JronnWS")\r
-public class JronnWS implements SequenceAnnotation<Jronn> {\r
-\r
-       // Ask for resource injection\r
-       @Resource\r
-       WebServiceContext wsContext;\r
-\r
-       private static Logger statLog = Logger.getLogger("JronnWS-stats");\r
+public class JronnWS extends SAService<Jronn>\r
+               implements\r
+                       SequenceAnnotation<Jronn> {\r
 \r
        private static Logger log = Logger.getLogger(JronnWS.class);\r
 \r
-       private static final RunnerConfig<Jronn> jronnOptions = Util\r
-                       .getSupportedOptions(Jronn.class);\r
-\r
-       private static final PresetManager<Jronn> jronnPresets = Util\r
-                       .getPresets(Jronn.class);\r
-\r
-       private static final LimitsManager<Jronn> limitMan = compbio.engine.client.Util\r
-                       .getLimits(new Jronn().getType());\r
-\r
-       ConfiguredExecutable<Jronn> init(List<FastaSequence> sequences)\r
-                       throws JobSubmissionException {\r
-               Jronn jronn = new Jronn();\r
-               jronn.setInput(SkeletalExecutable.INPUT).setOutput(\r
-                               SkeletalExecutable.OUTPUT);\r
-               return Configurator.configureExecutable(jronn, sequences);\r
-       }\r
-\r
-       @Override\r
-       public ScoreManager getAnnotation(String jobId)\r
-                       throws ResultNotAvailableException {\r
-               WSUtil.validateJobId(jobId);\r
-               AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
-               ConfiguredExecutable<Jronn> jronn = (ConfiguredExecutable<Jronn>) asyncEngine\r
-                               .getResults(jobId);\r
-               ScoreManager mas = jronn.getResults();\r
-               log.trace(jobId + " getConservation : " + mas);\r
-               return mas;\r
-       }\r
-\r
-       @Override\r
-       public Limit<Jronn> getLimit(String presetName) {\r
-               if (limitMan == null) {\r
-                       return null;\r
-               }\r
-               return limitMan.getLimitByName(presetName);\r
-       }\r
-\r
-       @Override\r
-       public LimitsManager<Jronn> getLimits() {\r
-               return limitMan;\r
+       public JronnWS() {\r
+               super(new Jronn(), log);\r
        }\r
 \r
        @Override\r
        public ChunkHolder pullExecStatistics(String jobId, long position) {\r
                WSUtil.validateJobId(jobId);\r
                String file = Configurator.getWorkDirectory(jobId) + File.separator\r
-                               + Jronn.getStatFile();\r
+                               + AACon.getStatFile();\r
                return WSUtil.pullFile(file, position);\r
        }\r
 \r
-       @Override\r
-       public boolean cancelJob(String jobId) {\r
-               WSUtil.validateJobId(jobId);\r
-               return WSUtil.cancelJob(jobId);\r
-       }\r
-\r
-       @Override\r
-       public JobStatus getJobStatus(String jobId) {\r
-               WSUtil.validateJobId(jobId);\r
-               return WSUtil.getJobStatus(jobId);\r
-       }\r
-\r
-       @Override\r
-       public PresetManager<Jronn> getPresets() {\r
-               return jronnPresets;\r
-       }\r
-\r
-       @Override\r
-       public RunnerConfig<Jronn> getRunnerOptions() {\r
-               return jronnOptions;\r
-       }\r
-\r
-       String analize(List<FastaSequence> sequences,\r
-                       ConfiguredExecutable<Jronn> confExec, Logger log, String method,\r
-                       Limit<Jronn> limit) throws JobSubmissionException {\r
-               if (limit != null && limit.isExceeded(sequences)) {\r
-                       throw LimitExceededException.newLimitExceeded(limit, sequences);\r
-               }\r
-\r
-               compbio.runner.Util.writeInput(sequences, confExec);\r
-               AsyncExecutor engine = Configurator.getAsyncEngine(confExec);\r
-               String jobId = engine.submitJob(confExec);\r
-               return jobId;\r
-       }\r
-\r
-       @Override\r
-       public String analize(List<FastaSequence> sequences)\r
-                       throws UnsupportedRuntimeException, LimitExceededException,\r
-                       JobSubmissionException {\r
-               WSUtil.validateFastaInput(sequences);\r
-               ConfiguredExecutable<Jronn> confJronn = init(sequences);\r
-\r
-               return analize(sequences, confJronn, null, "analize", getLimit(""));\r
-       }\r
-\r
-       @Override\r
-       public String customAnalize(List<FastaSequence> sequences,\r
-                       List<Option<Jronn>> options) throws UnsupportedRuntimeException,\r
-                       LimitExceededException, JobSubmissionException,\r
-                       WrongParameterException {\r
-               WSUtil.validateFastaInput(sequences);\r
-               ConfiguredExecutable<Jronn> confJronn = init(sequences);\r
-\r
-               List<String> params = WSUtil.getCommands(options,\r
-                               AACon.KEY_VALUE_SEPARATOR);\r
-               confJronn.addParameters(params);\r
-               return analize(sequences, confJronn, null, "customAnalize",\r
-                               getLimit(""));\r
-       }\r
-\r
-       @Override\r
-       public String presetAnalize(List<FastaSequence> sequences,\r
-                       Preset<Jronn> preset) throws UnsupportedRuntimeException,\r
-                       LimitExceededException, JobSubmissionException,\r
-                       WrongParameterException {\r
-               WSUtil.validateFastaInput(sequences);\r
-               if (preset == null) {\r
-                       throw new WrongParameterException("Preset must be provided!");\r
-               }\r
-               ConfiguredExecutable<Jronn> confJronn = init(sequences);\r
-               confJronn.addParameters(preset.getOptions());\r
-               Limit<Jronn> limit = getLimit(preset.getName());\r
-               return WSUtil.align(sequences, confJronn, null, "presetAnalize", limit);\r
-       }\r
-\r
 }\r
index 9b74ce6..eda824a 100644 (file)
@@ -21,9 +21,7 @@ package compbio.ws.server;
 import java.io.File;\r
 import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
@@ -50,12 +48,6 @@ import compbio.runner.msa.Mafft;
 @WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = "http://msa.data.compbio/01/01/2010/", serviceName = "MafftWS")\r
 public class MafftWS implements MsaWS<Mafft> {\r
 \r
-       // Ask for resource injection\r
-       @Resource\r
-       WebServiceContext wsContext;\r
-\r
-       private static Logger statLog = Logger.getLogger("MafftWS-stats");\r
-\r
        private static Logger log = Logger.getLogger(MafftWS.class);\r
 \r
        private static final RunnerConfig<Mafft> mafftOptions = Util\r
index aea5bc0..0e5d3ef 100644 (file)
@@ -21,9 +21,7 @@ package compbio.ws.server;
 import java.io.File;\r
 import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
@@ -51,12 +49,6 @@ import compbio.runner.msa.Muscle;
 @WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = "http://msa.data.compbio/01/01/2010/", serviceName = "MuscleWS")\r
 public class MuscleWS implements MsaWS<Muscle> {\r
 \r
-       // Ask for resource injection\r
-       @Resource\r
-       WebServiceContext wsContext;\r
-\r
-       private static Logger statLog = Logger.getLogger("MuscleWS-stats");\r
-\r
        private static Logger log = Logger.getLogger(MuscleWS.class);\r
 \r
        private static final RunnerConfig<Muscle> muscleOptions = Util\r
index 586352b..1d5430d 100644 (file)
@@ -21,9 +21,7 @@ package compbio.ws.server;
 import java.io.File;\r
 import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
@@ -50,12 +48,6 @@ import compbio.runner.msa.Probcons;
 @WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = "http://msa.data.compbio/01/01/2010/", serviceName = "ProbconsWS")\r
 public class ProbconsWS implements MsaWS<Probcons> {\r
 \r
-       // Ask for resource injection\r
-       @Resource\r
-       WebServiceContext wsContext;\r
-\r
-       private static Logger statLog = Logger.getLogger("ProbconsWS-stats");\r
-\r
        private static Logger log = Logger.getLogger(ProbconsWS.class);\r
 \r
        private static final RunnerConfig<Probcons> probconsOptions = Util\r
diff --git a/webservices/compbio/ws/server/SAService.java b/webservices/compbio/ws/server/SAService.java
new file mode 100644 (file)
index 0000000..244574d
--- /dev/null
@@ -0,0 +1,167 @@
+package compbio.ws.server;\r
+\r
+import java.util.List;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import compbio.data.sequence.FastaSequence;\r
+import compbio.data.sequence.ScoreManager;\r
+import compbio.engine.Configurator;\r
+import compbio.engine.client.ConfiguredExecutable;\r
+import compbio.engine.client.Executable;\r
+import compbio.engine.client.SkeletalExecutable;\r
+import compbio.metadata.ChunkHolder;\r
+import compbio.metadata.JobStatus;\r
+import compbio.metadata.JobSubmissionException;\r
+import compbio.metadata.Limit;\r
+import compbio.metadata.LimitExceededException;\r
+import compbio.metadata.LimitsManager;\r
+import compbio.metadata.Option;\r
+import compbio.metadata.Preset;\r
+import compbio.metadata.PresetManager;\r
+import compbio.metadata.ResultNotAvailableException;\r
+import compbio.metadata.RunnerConfig;\r
+import compbio.metadata.UnsupportedRuntimeException;\r
+import compbio.metadata.WrongParameterException;\r
+import compbio.runner.Util;\r
+import compbio.runner.conservation.AACon;\r
+\r
+/**\r
+ * Common methods for all SequenceAnnotation web services\r
+ * \r
+ * @author pvtroshin\r
+ * \r
+ * @param <T>\r
+ * \r
+ * @version 1.0 June 2011\r
+ * @since 2.0\r
+ */\r
+public abstract class SAService<T> {\r
+\r
+       private final RunnerConfig<T> aaconOptions;\r
+       private final PresetManager<T> aaconPresets;\r
+       private final LimitsManager<T> limitMan;\r
+       private SkeletalExecutable<T> exec;\r
+       private final Logger log;\r
+\r
+       /*\r
+        * FIXME - instances of the Runner (?) and their types should be defined in\r
+        * Executable IF\r
+        */\r
+       SAService(SkeletalExecutable<T> exec, Logger log) {\r
+               assert log != null;\r
+               assert exec != null;\r
+               this.log = log;\r
+               this.exec = exec;\r
+               this.limitMan = compbio.engine.client.Util.getLimits(exec.getType());\r
+               this.aaconOptions = Util\r
+                               .getSupportedOptions((Class<? extends Executable<T>>) exec\r
+                                               .getType());\r
+               this.aaconPresets = Util\r
+                               .getPresets((Class<? extends Executable<T>>) exec.getType());\r
+       }\r
+\r
+       ConfiguredExecutable<T> init(List<FastaSequence> sequences)\r
+                       throws JobSubmissionException {\r
+               // FIXME\r
+               try {\r
+                       exec = (SkeletalExecutable<T>) exec.getType().newInstance();\r
+               } catch (InstantiationException e) {\r
+                       log.error(e.getLocalizedMessage(), e);\r
+                       throw new JobSubmissionException(e.getLocalizedMessage(), e);\r
+               } catch (IllegalAccessException e) {\r
+                       log.error(e.getLocalizedMessage(), e);\r
+                       throw new JobSubmissionException(e.getLocalizedMessage(), e);\r
+               }\r
+               exec.setInput(SkeletalExecutable.INPUT).setOutput(\r
+                               SkeletalExecutable.OUTPUT);\r
+               return Configurator.configureExecutable(exec, sequences);\r
+       }\r
+\r
+       public ScoreManager getAnnotation(String jobId)\r
+                       throws ResultNotAvailableException {\r
+               return WSUtil.getAnnotation(jobId, log);\r
+       }\r
+\r
+       public boolean cancelJob(String jobId) {\r
+               WSUtil.validateJobId(jobId);\r
+               return WSUtil.cancelJob(jobId);\r
+       }\r
+\r
+       public JobStatus getJobStatus(String jobId) {\r
+               WSUtil.validateJobId(jobId);\r
+               return WSUtil.getJobStatus(jobId);\r
+       }\r
+\r
+       public Limit<T> getLimit(String presetName) {\r
+               if (limitMan == null) {\r
+                       // Limit is not defined\r
+                       return null;\r
+               }\r
+               return limitMan.getLimitByName(presetName);\r
+       }\r
+\r
+       public LimitsManager<T> getLimits() {\r
+               return limitMan;\r
+       }\r
+\r
+       public PresetManager<T> getPresets() {\r
+               return aaconPresets;\r
+       }\r
+\r
+       public RunnerConfig<T> getRunnerOptions() {\r
+               return aaconOptions;\r
+       }\r
+\r
+       public String analize(List<FastaSequence> sequences)\r
+                       throws UnsupportedRuntimeException, LimitExceededException,\r
+                       JobSubmissionException {\r
+               WSUtil.validateFastaInput(sequences);\r
+               ConfiguredExecutable<T> confIUPred = init(sequences);\r
+               return WSUtil.analize(sequences, confIUPred, log, "analize",\r
+                               getLimit(""));\r
+       }\r
+\r
+       public String customAnalize(List<FastaSequence> sequences,\r
+                       List<Option<T>> options) throws UnsupportedRuntimeException,\r
+                       LimitExceededException, JobSubmissionException,\r
+                       WrongParameterException {\r
+               WSUtil.validateAAConInput(sequences);\r
+               ConfiguredExecutable<T> confAACon = init(sequences);\r
+               // Could not do that! Space separated values\r
+               // will all be treated as keys! thus duplicates removed\r
+               // String params = cbuilder.getCommand();\r
+               List<String> params = WSUtil.getCommands(options,\r
+                               AACon.KEY_VALUE_SEPARATOR);\r
+               confAACon.addParameters(params);\r
+               return WSUtil.analize(sequences, confAACon, log, "customAnalize",\r
+                               getLimit(""));\r
+       }\r
+\r
+       public String presetAnalize(List<FastaSequence> sequences, Preset<T> preset)\r
+                       throws UnsupportedRuntimeException, LimitExceededException,\r
+                       JobSubmissionException, WrongParameterException {\r
+               WSUtil.validateAAConInput(sequences);\r
+               if (preset == null) {\r
+                       throw new WrongParameterException("Preset must be provided!");\r
+               }\r
+               ConfiguredExecutable<T> confAAcon = init(sequences);\r
+               confAAcon.addParameters(preset.getOptions());\r
+               Limit<T> limit = getLimit(preset.getName());\r
+               return WSUtil\r
+                               .analize(sequences, confAAcon, log, "presetAnalize", limit);\r
+       }\r
+\r
+       /**\r
+        * Assume statistics is not supported\r
+        * \r
+        * @param jobId\r
+        * @param position\r
+        * @return\r
+        */\r
+       public ChunkHolder pullExecStatistics(String jobId, long position) {\r
+               // Execution stat is not supported\r
+               return new ChunkHolder("", -1);\r
+       }\r
+\r
+}\r
index feb35f0..889efd8 100644 (file)
@@ -21,9 +21,7 @@ package compbio.ws.server;
 import java.io.File;\r
 import java.util.List;\r
 \r
-import javax.annotation.Resource;\r
 import javax.jws.WebService;\r
-import javax.xml.ws.WebServiceContext;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
@@ -52,12 +50,6 @@ import compbio.runner.msa.Tcoffee;
 @WebService(endpointInterface = "compbio.data.msa.MsaWS", targetNamespace = "http://msa.data.compbio/01/01/2010/", serviceName = "TcoffeeWS")\r
 public class TcoffeeWS implements MsaWS<Tcoffee> {\r
 \r
-       // Ask for resource injection\r
-       @Resource\r
-       WebServiceContext wsContext;\r
-\r
-       private static Logger statLog = Logger.getLogger("TcoffeeWS-stats");\r
-\r
        private static Logger log = Logger.getLogger(TcoffeeWS.class);\r
 \r
        private static final RunnerConfig<Tcoffee> tcoffeeOptions = Util\r
diff --git a/webservices/compbio/ws/server/WSLogger.java b/webservices/compbio/ws/server/WSLogger.java
deleted file mode 100644 (file)
index 28f6d10..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (c) 2010 Peter Troshin\r
- *  \r
- *  JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.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
- * \r
- *  This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\r
- *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache \r
- *  License for more details.\r
- * \r
- *  A copy of the license is in apache_license.txt. It is also available here:\r
- * @see: http://www.apache.org/licenses/LICENSE-2.0.txt\r
- * \r
- * Any republication or derived work distributed in source code form\r
- * must include this copyright and license notice.\r
- */\r
-package compbio.ws.server;\r
-\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.xml.ws.WebServiceContext;\r
-import javax.xml.ws.handler.MessageContext;\r
-\r
-import org.apache.log4j.Level;\r
-import org.apache.log4j.Logger;\r
-\r
-import compbio.util.Timer;\r
-import compbio.util.Util;\r
-import compbio.ws.client.Services;\r
-\r
-public class WSLogger {\r
-\r
-    private static final String SPACER = " ";\r
-\r
-    private final String wsname;\r
-    private final WebServiceContext wsContext;\r
-    private final Logger wsAccessLog;\r
-\r
-    private WSLogger(Services wsname, WebServiceContext context) {\r
-       this.wsname = wsname.toString();\r
-       this.wsContext = context;\r
-       this.wsAccessLog = Logger.getLogger(wsname.toString() + "-stats");\r
-       assert context != null : "WSContext was not injected";\r
-       assert wsAccessLog != null : "wsAccessLog is not obtained";\r
-    }\r
-\r
-    public static final WSLogger getStatLogger(Services service,\r
-           WebServiceContext wsContext) {\r
-       assert service != null;\r
-       return new WSLogger(service, wsContext);\r
-    }\r
-\r
-    /**\r
-     * [Request_thread timeofRequest] configured via log4j configuration\r
-     * RequestSource web_service timeToProcessRequest methodname {taskid}\r
-     * \r
-     * @param statLog\r
-     * @param wsContext\r
-     * @param jobId\r
-     * @param activity\r
-     */\r
-    private void log(Timer timer, String activity, Level level, String jobId) {\r
-       assert !Util.isEmpty(jobId) || !Util.isEmpty(activity); // At least one\r
-       // of the two must be defined\r
-       if (Util.isEmpty(jobId)) {\r
-           jobId = ""; // prevent is to be printed as null\r
-       } else {\r
-           assert !Util.isEmpty(activity) : "if jobId is defined, then activity must be defined too";\r
-       }\r
-\r
-       wsAccessLog.log(level, getRemoteAddress() + SPACER + wsname + SPACER\r
-               + timer.getTotalTime() + SPACER + activity + SPACER + jobId);\r
-    }\r
-\r
-    public void logAll(Timer timer, String activity) {\r
-       assert !Util.isEmpty(activity);\r
-       log(timer, activity, Level.TRACE, "");\r
-    }\r
-\r
-    public void logFine(Timer timer, String activity) {\r
-       assert !Util.isEmpty(activity);\r
-       log(timer, activity, Level.DEBUG, "");\r
-    }\r
-\r
-    public void log(Timer timer, String activity) {\r
-       assert !Util.isEmpty(activity);\r
-       log(timer, activity, Level.INFO, "");\r
-    }\r
-\r
-    public void log(Timer timer, String activity, String jobId) {\r
-       assert !Util.isEmpty(activity);\r
-       log(timer, activity, Level.INFO, jobId);\r
-    }\r
-\r
-    /*\r
-     * \r
-     * private static String getDataTimeForLog() { return\r
-     * DateFormat.getDateTimeInstance(DateFormat.MEDIUM,\r
-     * DateFormat.SHORT).format(System.currentTimeMillis()); }\r
-     * \r
-     * \r
-     * public static String getRemoteAddress(WebServiceContext wsContext) {\r
-     * assert wsContext != null : "WS context injection failed!"; MessageContext\r
-     * msContext = wsContext.getMessageContext(); HttpServletRequest request =\r
-     * (HttpServletRequest) msContext .get(MessageContext.SERVLET_REQUEST);\r
-     * return request == null ? "127.0.0.1" : request.getRemoteAddr(); }\r
-     */\r
-\r
-    public String getRemoteAddress() {\r
-       assert wsContext != null : "WS context injection failed!";\r
-       MessageContext msContext = wsContext.getMessageContext();\r
-       HttpServletRequest request = (HttpServletRequest) msContext\r
-               .get(MessageContext.SERVLET_REQUEST);\r
-       return request == null ? "127.0.0.1" : request.getRemoteAddr();\r
-    }\r
-\r
-}\r
index 6f33f24..1890d65 100644 (file)
@@ -19,11 +19,14 @@ package compbio.ws.server;
 \r
 import java.security.InvalidParameterException;\r
 import java.util.ArrayList;\r
+import java.util.HashSet;\r
 import java.util.List;\r
+import java.util.Set;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
 import compbio.data.sequence.FastaSequence;\r
+import compbio.data.sequence.ScoreManager;\r
 import compbio.engine.AsyncExecutor;\r
 import compbio.engine.Configurator;\r
 import compbio.engine.ProgressGetter;\r
@@ -34,14 +37,10 @@ import compbio.metadata.JobSubmissionException;
 import compbio.metadata.Limit;\r
 import compbio.metadata.LimitExceededException;\r
 import compbio.metadata.Option;\r
-import compbio.util.Timer;\r
+import compbio.metadata.ResultNotAvailableException;\r
 \r
 public final class WSUtil {\r
 \r
-       private static final String CACHE_KEY = "LIMITS_CACHE";\r
-\r
-       private static Logger log = Logger.getLogger(WSUtil.class);\r
-\r
        public static final void validateJobId(String jobId)\r
                        throws InvalidParameterException {\r
                if (!compbio.engine.client.Util.isValidJobId(jobId)) {\r
@@ -57,7 +56,14 @@ public final class WSUtil {
                        throw new JobSubmissionException(\r
                                        "List of fasta sequences required but not provided! ");\r
                }\r
+               Set<String> names = new HashSet<String>();\r
                for (FastaSequence fs : sequences) {\r
+                       boolean unique = names.add(fs.getId());\r
+                       if (!unique) {\r
+                               throw new JobSubmissionException(\r
+                                               "Input sequences must have unique names! \n"\r
+                                                               + "Sequence " + fs.getId() + " is a duplicate!");\r
+                       }\r
                        if (fs.getLength() == 0) {\r
                                throw new JobSubmissionException(\r
                                                "Sequence must not be empty! Sequence: " + fs.getId()\r
@@ -90,19 +96,31 @@ public final class WSUtil {
        }\r
 \r
        public static <T> String align(List<FastaSequence> sequences,\r
-                       ConfiguredExecutable<T> confExec, WSLogger logger,\r
+                       ConfiguredExecutable<T> confExec, Logger logger,\r
                        String callingMethod, Limit<T> limit)\r
                        throws LimitExceededException, JobSubmissionException {\r
-               Timer timer = Timer.getMilliSecondsTimer();\r
+\r
                if (limit != null && limit.isExceeded(sequences)) {\r
                        throw LimitExceededException.newLimitExceeded(limit, sequences);\r
                }\r
                compbio.runner.Util.writeInput(sequences, confExec);\r
                AsyncExecutor engine = Configurator.getAsyncEngine(confExec);\r
                String jobId = engine.submitJob(confExec);\r
-               if (logger != null) {\r
-                       logger.log(timer, callingMethod, jobId);\r
+               return jobId;\r
+       }\r
+\r
+       public static <T> String analize(List<FastaSequence> sequences,\r
+                       ConfiguredExecutable<T> confExec, Logger log, String method,\r
+                       Limit<T> limit) throws JobSubmissionException {\r
+               if (limit != null && limit.isExceeded(sequences)) {\r
+                       throw LimitExceededException.newLimitExceeded(limit, sequences);\r
                }\r
+               log.debug("Method: " + method + " with task: " + confExec.getTaskId());\r
+\r
+               compbio.runner.Util.writeInput(sequences, confExec);\r
+               AsyncExecutor engine = Configurator.getAsyncEngine(confExec);\r
+               String jobId = engine.submitJob(confExec);\r
+\r
                return jobId;\r
        }\r
 \r
@@ -137,6 +155,17 @@ public final class WSUtil {
                }\r
        }\r
 \r
+       public static <T> ScoreManager getAnnotation(String jobId, Logger log)\r
+                       throws ResultNotAvailableException {\r
+               WSUtil.validateJobId(jobId);\r
+               AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
+               ConfiguredExecutable<T> aacon = (ConfiguredExecutable<T>) asyncEngine\r
+                               .getResults(jobId);\r
+               ScoreManager mas = aacon.getResults();\r
+               log.trace(jobId + " getConservation : " + mas);\r
+               return mas;\r
+       }\r
+\r
        /*\r
         * UNUSED\r
         * \r
diff --git a/webservices/compbio/ws/server/_WSLogger.java b/webservices/compbio/ws/server/_WSLogger.java
new file mode 100644 (file)
index 0000000..5b8ebd1
--- /dev/null
@@ -0,0 +1,118 @@
+/* Copyright (c) 2010 Peter Troshin\r
+ *  \r
+ *  JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.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
+ * \r
+ *  This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\r
+ *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache \r
+ *  License for more details.\r
+ * \r
+ *  A copy of the license is in apache_license.txt. It is also available here:\r
+ * @see: http://www.apache.org/licenses/LICENSE-2.0.txt\r
+ * \r
+ * Any republication or derived work distributed in source code form\r
+ * must include this copyright and license notice.\r
+ */\r
+package compbio.ws.server;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.xml.ws.WebServiceContext;\r
+import javax.xml.ws.handler.MessageContext;\r
+\r
+import org.apache.log4j.Level;\r
+import org.apache.log4j.Logger;\r
+\r
+import compbio.util.Timer;\r
+import compbio.util.Util;\r
+import compbio.ws.client.Services;\r
+\r
+@Deprecated\r
+public class _WSLogger {\r
+\r
+       private static final String SPACER = " ";\r
+\r
+       private final String wsname;\r
+       private final WebServiceContext wsContext;\r
+       private final Logger wsAccessLog;\r
+\r
+       private _WSLogger(Services wsname, WebServiceContext context) {\r
+               this.wsname = wsname.toString();\r
+               this.wsContext = context;\r
+               this.wsAccessLog = Logger.getLogger(wsname.toString() + "-stats");\r
+               assert context != null : "WSContext was not injected";\r
+               assert wsAccessLog != null : "wsAccessLog is not obtained";\r
+       }\r
+\r
+       public static final _WSLogger getStatLogger(Services service,\r
+                       WebServiceContext wsContext) {\r
+               assert service != null;\r
+               return new _WSLogger(service, wsContext);\r
+       }\r
+\r
+       /**\r
+        * [Request_thread timeofRequest] configured via log4j configuration\r
+        * RequestSource web_service timeToProcessRequest methodname {taskid}\r
+        * \r
+        * @param statLog\r
+        * @param wsContext\r
+        * @param jobId\r
+        * @param activity\r
+        */\r
+       private void log(Timer timer, String activity, Level level, String jobId) {\r
+               assert !Util.isEmpty(jobId) || !Util.isEmpty(activity); // At least one\r
+               // of the two must be defined\r
+               if (Util.isEmpty(jobId)) {\r
+                       jobId = ""; // prevent is to be printed as null\r
+               } else {\r
+                       assert !Util.isEmpty(activity) : "if jobId is defined, then activity must be defined too";\r
+               }\r
+\r
+               wsAccessLog.log(level, getRemoteAddress() + SPACER + wsname + SPACER\r
+                               + timer.getTotalTime() + SPACER + activity + SPACER + jobId);\r
+       }\r
+\r
+       public void logAll(Timer timer, String activity) {\r
+               assert !Util.isEmpty(activity);\r
+               log(timer, activity, Level.TRACE, "");\r
+       }\r
+\r
+       public void logFine(Timer timer, String activity) {\r
+               assert !Util.isEmpty(activity);\r
+               log(timer, activity, Level.DEBUG, "");\r
+       }\r
+\r
+       public void log(Timer timer, String activity) {\r
+               assert !Util.isEmpty(activity);\r
+               log(timer, activity, Level.INFO, "");\r
+       }\r
+\r
+       public void log(Timer timer, String activity, String jobId) {\r
+               assert !Util.isEmpty(activity);\r
+               log(timer, activity, Level.INFO, jobId);\r
+       }\r
+\r
+       /*\r
+        * \r
+        * private static String getDataTimeForLog() { return\r
+        * DateFormat.getDateTimeInstance(DateFormat.MEDIUM,\r
+        * DateFormat.SHORT).format(System.currentTimeMillis()); }\r
+        * \r
+        * \r
+        * public static String getRemoteAddress(WebServiceContext wsContext) {\r
+        * assert wsContext != null : "WS context injection failed!"; MessageContext\r
+        * msContext = wsContext.getMessageContext(); HttpServletRequest request =\r
+        * (HttpServletRequest) msContext .get(MessageContext.SERVLET_REQUEST);\r
+        * return request == null ? "127.0.0.1" : request.getRemoteAddr(); }\r
+        */\r
+\r
+       public String getRemoteAddress() {\r
+               assert wsContext != null : "WS context injection failed!";\r
+               MessageContext msContext = wsContext.getMessageContext();\r
+               HttpServletRequest request = (HttpServletRequest) msContext\r
+                               .get(MessageContext.SERVLET_REQUEST);\r
+               return request == null ? "127.0.0.1" : request.getRemoteAddr();\r
+       }\r
+\r
+}\r
index 3f3a00a..9329c44 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/12/2010/" name="AAConWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/12/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
   <message name="ResultNotAvailableException">
     <part name="fault" element="tns:ResultNotAvailableException"/>
   </message>
-  <message name="cancelJob">
-    <part name="parameters" element="tns:cancelJob"/>
-  </message>
-  <message name="cancelJobResponse">
-    <part name="parameters" element="tns:cancelJobResponse"/>
-  </message>
   <message name="pullExecStatistics">
     <part name="parameters" element="tns:pullExecStatistics"/>
   </message>
   <message name="pullExecStatisticsResponse">
     <part name="parameters" element="tns:pullExecStatisticsResponse"/>
   </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
   <message name="getJobStatus">
     <part name="parameters" element="tns:getJobStatus"/>
   </message>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotationResponse" message="tns:getAnnotationResponse"/>
       <fault message="tns:ResultNotAvailableException" name="ResultNotAvailableException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotation/Fault/ResultNotAvailableException"/>
     </operation>
-    <operation name="cancelJob">
-      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
-      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
-    </operation>
     <operation name="pullExecStatistics">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
     </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
     <operation name="getJobStatus">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusRequest" message="tns:getJobStatus"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusResponse" message="tns:getJobStatusResponse"/>
         <soap:fault name="ResultNotAvailableException" use="literal"/>
       </fault>
     </operation>
-    <operation name="cancelJob">
+    <operation name="pullExecStatistics">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:body use="literal"/>
       </output>
     </operation>
-    <operation name="pullExecStatistics">
+    <operation name="cancelJob">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
index 9e12c14..b52327b 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/01/2010/" name="ClustalWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/01/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
   <message name="alignResponse">
     <part name="parameters" element="tns:alignResponse"/>
   </message>
-  <message name="cancelJob">
-    <part name="parameters" element="tns:cancelJob"/>
-  </message>
-  <message name="cancelJobResponse">
-    <part name="parameters" element="tns:cancelJobResponse"/>
-  </message>
   <message name="pullExecStatistics">
     <part name="parameters" element="tns:pullExecStatistics"/>
   </message>
   <message name="pullExecStatisticsResponse">
     <part name="parameters" element="tns:pullExecStatisticsResponse"/>
   </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
   <message name="getJobStatus">
     <part name="parameters" element="tns:getJobStatus"/>
   </message>
       <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/align/Fault/LimitExceededException"/>
       <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/align/Fault/JobSubmissionException"/>
     </operation>
-    <operation name="cancelJob">
-      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobRequest" message="tns:cancelJob"/>
-      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobResponse" message="tns:cancelJobResponse"/>
-    </operation>
     <operation name="pullExecStatistics">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
     </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
     <operation name="getJobStatus">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getJobStatusRequest" message="tns:getJobStatus"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getJobStatusResponse" message="tns:getJobStatusResponse"/>
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
     </operation>
-    <operation name="cancelJob">
+    <operation name="pullExecStatistics">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:body use="literal"/>
       </output>
     </operation>
-    <operation name="pullExecStatistics">
+    <operation name="cancelJob">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
index af14b4f..3635014 100644 (file)
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/12/2010/" name="DisemblWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/12/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
       <xsd:import namespace="http://msa.data.compbio/01/12/2010/" schemaLocation="DisemblWS_schema1.xsd"/>
     </xsd:schema>
   </types>
-  <message name="analize">
-    <part name="parameters" element="tns:analize"/>
+  <message name="customAnalize">
+    <part name="parameters" element="tns:customAnalize"/>
   </message>
-  <message name="analizeResponse">
-    <part name="parameters" element="tns:analizeResponse"/>
+  <message name="customAnalizeResponse">
+    <part name="parameters" element="tns:customAnalizeResponse"/>
   </message>
   <message name="UnsupportedRuntimeException">
     <part name="fault" element="tns:UnsupportedRuntimeException"/>
   <message name="JobSubmissionException">
     <part name="fault" element="tns:JobSubmissionException"/>
   </message>
-  <message name="customAnalize">
-    <part name="parameters" element="tns:customAnalize"/>
-  </message>
-  <message name="customAnalizeResponse">
-    <part name="parameters" element="tns:customAnalizeResponse"/>
-  </message>
   <message name="WrongParameterException">
     <part name="fault" element="tns:WrongParameterException"/>
   </message>
+  <message name="analize">
+    <part name="parameters" element="tns:analize"/>
+  </message>
+  <message name="analizeResponse">
+    <part name="parameters" element="tns:analizeResponse"/>
+  </message>
   <message name="presetAnalize">
     <part name="parameters" element="tns:presetAnalize"/>
   </message>
   <message name="ResultNotAvailableException">
     <part name="fault" element="tns:ResultNotAvailableException"/>
   </message>
-  <message name="cancelJob">
-    <part name="parameters" element="tns:cancelJob"/>
-  </message>
-  <message name="cancelJobResponse">
-    <part name="parameters" element="tns:cancelJobResponse"/>
-  </message>
   <message name="pullExecStatistics">
     <part name="parameters" element="tns:pullExecStatistics"/>
   </message>
   <message name="pullExecStatisticsResponse">
     <part name="parameters" element="tns:pullExecStatisticsResponse"/>
   </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
   <message name="getJobStatus">
     <part name="parameters" element="tns:getJobStatus"/>
   </message>
     <part name="parameters" element="tns:getRunnerOptionsResponse"/>
   </message>
   <portType name="SequenceAnnotation">
-    <operation name="analize">
-      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeRequest" message="tns:analize"/>
-      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeResponse" message="tns:analizeResponse"/>
-      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/UnsupportedRuntimeException"/>
-      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/LimitExceededException"/>
-      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/JobSubmissionException"/>
-    </operation>
     <operation name="customAnalize">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalizeRequest" message="tns:customAnalize"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalizeResponse" message="tns:customAnalizeResponse"/>
       <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/JobSubmissionException"/>
       <fault message="tns:WrongParameterException" name="WrongParameterException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/WrongParameterException"/>
     </operation>
+    <operation name="analize">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeRequest" message="tns:analize"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeResponse" message="tns:analizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/JobSubmissionException"/>
+    </operation>
     <operation name="presetAnalize">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalizeRequest" message="tns:presetAnalize"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalizeResponse" message="tns:presetAnalizeResponse"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotationResponse" message="tns:getAnnotationResponse"/>
       <fault message="tns:ResultNotAvailableException" name="ResultNotAvailableException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotation/Fault/ResultNotAvailableException"/>
     </operation>
-    <operation name="cancelJob">
-      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
-      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
-    </operation>
     <operation name="pullExecStatistics">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
     </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
     <operation name="getJobStatus">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusRequest" message="tns:getJobStatus"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusResponse" message="tns:getJobStatusResponse"/>
   </portType>
   <binding name="DisemblWSPortBinding" type="tns:SequenceAnnotation">
     <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
-    <operation name="analize">
+    <operation name="customAnalize">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
       <fault name="JobSubmissionException">
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
+      <fault name="WrongParameterException">
+        <soap:fault name="WrongParameterException" use="literal"/>
+      </fault>
     </operation>
-    <operation name="customAnalize">
+    <operation name="analize">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
       <fault name="JobSubmissionException">
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
-      <fault name="WrongParameterException">
-        <soap:fault name="WrongParameterException" use="literal"/>
-      </fault>
     </operation>
     <operation name="presetAnalize">
       <soap:operation soapAction=""/>
         <soap:fault name="ResultNotAvailableException" use="literal"/>
       </fault>
     </operation>
-    <operation name="cancelJob">
+    <operation name="pullExecStatistics">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:body use="literal"/>
       </output>
     </operation>
-    <operation name="pullExecStatistics">
+    <operation name="cancelJob">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
index c4f25f1..ab7d3ee 100644 (file)
 
   <xs:element name="runnerConfig" type="tns:runnerConfig"/>
 
+  <xs:complexType name="getJobStatus">
+    <xs:sequence>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getJobStatusResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:jobStatus" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
   <xs:complexType name="analize">
     <xs:sequence>
       <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getJobStatus">
-    <xs:sequence>
-      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="getJobStatusResponse">
-    <xs:sequence>
-      <xs:element name="return" type="tns:jobStatus" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-
   <xs:complexType name="getRunnerOptions">
     <xs:sequence/>
   </xs:complexType>
     </xs:sequence>
   </xs:complexType>
 
+  <xs:complexType name="getAnnotation">
+    <xs:sequence>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getAnnotationResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="scoreManager">
+    <xs:sequence>
+      <xs:element name="seqScores" type="tns:scoreHolder" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="scoreHolder">
+    <xs:sequence>
+      <xs:element name="id" type="xs:string" minOccurs="0"/>
+      <xs:element name="scores" type="tns:score" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="score">
+    <xs:sequence>
+      <xs:element name="method" type="xs:string" minOccurs="0"/>
+      <xs:element name="ranges" type="tns:range" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="scores" type="xs:float" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="range">
+    <xs:sequence>
+      <xs:element name="from" type="xs:int"/>
+      <xs:element name="to" type="xs:int"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ResultNotAvailableException">
+    <xs:sequence>
+      <xs:element name="message" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
   <xs:complexType name="getPresets">
     <xs:sequence/>
   </xs:complexType>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getAnnotation">
-    <xs:sequence>
-      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="getAnnotationResponse">
-    <xs:sequence>
-      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="scoreManager">
-    <xs:sequence>
-      <xs:element name="seqScores" type="tns:scoreHolder" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="scoreHolder">
-    <xs:sequence>
-      <xs:element name="id" type="xs:string" minOccurs="0"/>
-      <xs:element name="scores" type="tns:score" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="score">
-    <xs:sequence>
-      <xs:element name="method" type="xs:string" minOccurs="0"/>
-      <xs:element name="ranges" type="tns:range" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="scores" type="xs:float" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="range">
+  <xs:complexType name="customAnalize">
     <xs:sequence>
-      <xs:element name="from" type="xs:int"/>
-      <xs:element name="to" type="xs:int"/>
+      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="options" type="tns:option" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="ResultNotAvailableException">
+  <xs:complexType name="customAnalizeResponse">
     <xs:sequence>
-      <xs:element name="message" type="xs:string" minOccurs="0"/>
+      <xs:element name="return" type="xs:string" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="customAnalize">
-    <xs:sequence>
-      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="options" type="tns:option" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="customAnalizeResponse">
-    <xs:sequence>
-      <xs:element name="return" type="xs:string" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-
   <xs:simpleType name="jobStatus">
     <xs:restriction base="xs:string">
       <xs:enumeration value="PENDING"/>
index 766b329..b87e366 100644 (file)
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/12/2010/" name="GlobPlotWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/12/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
       <xsd:import namespace="http://msa.data.compbio/01/12/2010/" schemaLocation="GlobPlotWS_schema1.xsd"/>
     </xsd:schema>
   </types>
-  <message name="analize">
-    <part name="parameters" element="tns:analize"/>
+  <message name="customAnalize">
+    <part name="parameters" element="tns:customAnalize"/>
   </message>
-  <message name="analizeResponse">
-    <part name="parameters" element="tns:analizeResponse"/>
+  <message name="customAnalizeResponse">
+    <part name="parameters" element="tns:customAnalizeResponse"/>
   </message>
   <message name="UnsupportedRuntimeException">
     <part name="fault" element="tns:UnsupportedRuntimeException"/>
   <message name="JobSubmissionException">
     <part name="fault" element="tns:JobSubmissionException"/>
   </message>
-  <message name="customAnalize">
-    <part name="parameters" element="tns:customAnalize"/>
-  </message>
-  <message name="customAnalizeResponse">
-    <part name="parameters" element="tns:customAnalizeResponse"/>
-  </message>
   <message name="WrongParameterException">
     <part name="fault" element="tns:WrongParameterException"/>
   </message>
+  <message name="analize">
+    <part name="parameters" element="tns:analize"/>
+  </message>
+  <message name="analizeResponse">
+    <part name="parameters" element="tns:analizeResponse"/>
+  </message>
   <message name="presetAnalize">
     <part name="parameters" element="tns:presetAnalize"/>
   </message>
   <message name="ResultNotAvailableException">
     <part name="fault" element="tns:ResultNotAvailableException"/>
   </message>
-  <message name="cancelJob">
-    <part name="parameters" element="tns:cancelJob"/>
-  </message>
-  <message name="cancelJobResponse">
-    <part name="parameters" element="tns:cancelJobResponse"/>
-  </message>
   <message name="pullExecStatistics">
     <part name="parameters" element="tns:pullExecStatistics"/>
   </message>
   <message name="pullExecStatisticsResponse">
     <part name="parameters" element="tns:pullExecStatisticsResponse"/>
   </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
   <message name="getJobStatus">
     <part name="parameters" element="tns:getJobStatus"/>
   </message>
     <part name="parameters" element="tns:getRunnerOptionsResponse"/>
   </message>
   <portType name="SequenceAnnotation">
-    <operation name="analize">
-      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeRequest" message="tns:analize"/>
-      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeResponse" message="tns:analizeResponse"/>
-      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/UnsupportedRuntimeException"/>
-      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/LimitExceededException"/>
-      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/JobSubmissionException"/>
-    </operation>
     <operation name="customAnalize">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalizeRequest" message="tns:customAnalize"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalizeResponse" message="tns:customAnalizeResponse"/>
       <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/JobSubmissionException"/>
       <fault message="tns:WrongParameterException" name="WrongParameterException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/WrongParameterException"/>
     </operation>
+    <operation name="analize">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeRequest" message="tns:analize"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeResponse" message="tns:analizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/JobSubmissionException"/>
+    </operation>
     <operation name="presetAnalize">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalizeRequest" message="tns:presetAnalize"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalizeResponse" message="tns:presetAnalizeResponse"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotationResponse" message="tns:getAnnotationResponse"/>
       <fault message="tns:ResultNotAvailableException" name="ResultNotAvailableException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotation/Fault/ResultNotAvailableException"/>
     </operation>
-    <operation name="cancelJob">
-      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
-      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
-    </operation>
     <operation name="pullExecStatistics">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
     </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
     <operation name="getJobStatus">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusRequest" message="tns:getJobStatus"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusResponse" message="tns:getJobStatusResponse"/>
   </portType>
   <binding name="GlobPlotWSPortBinding" type="tns:SequenceAnnotation">
     <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
-    <operation name="analize">
+    <operation name="customAnalize">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
       <fault name="JobSubmissionException">
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
+      <fault name="WrongParameterException">
+        <soap:fault name="WrongParameterException" use="literal"/>
+      </fault>
     </operation>
-    <operation name="customAnalize">
+    <operation name="analize">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
       <fault name="JobSubmissionException">
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
-      <fault name="WrongParameterException">
-        <soap:fault name="WrongParameterException" use="literal"/>
-      </fault>
     </operation>
     <operation name="presetAnalize">
       <soap:operation soapAction=""/>
         <soap:fault name="ResultNotAvailableException" use="literal"/>
       </fault>
     </operation>
-    <operation name="cancelJob">
+    <operation name="pullExecStatistics">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:body use="literal"/>
       </output>
     </operation>
-    <operation name="pullExecStatistics">
+    <operation name="cancelJob">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
index 52acbb9..49ed492 100644 (file)
 
   <xs:element name="runnerConfig" type="tns:runnerConfig"/>
 
-  <xs:complexType name="getAnnotation">
+  <xs:complexType name="getJobStatus">
     <xs:sequence>
       <xs:element name="jobId" type="xs:string" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getAnnotationResponse">
-    <xs:sequence>
-      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="scoreManager">
-    <xs:sequence>
-      <xs:element name="seqScores" type="tns:scoreHolder" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="scoreHolder">
-    <xs:sequence>
-      <xs:element name="id" type="xs:string" minOccurs="0"/>
-      <xs:element name="scores" type="tns:score" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="score">
-    <xs:sequence>
-      <xs:element name="method" type="xs:string" minOccurs="0"/>
-      <xs:element name="ranges" type="tns:range" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="scores" type="xs:float" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="range">
-    <xs:sequence>
-      <xs:element name="from" type="xs:int"/>
-      <xs:element name="to" type="xs:int"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="ResultNotAvailableException">
+  <xs:complexType name="getJobStatusResponse">
     <xs:sequence>
-      <xs:element name="message" type="xs:string" minOccurs="0"/>
+      <xs:element name="return" type="tns:jobStatus" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getPresets">
-    <xs:sequence/>
+  <xs:complexType name="analize">
+    <xs:sequence>
+      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getPresetsResponse">
+  <xs:complexType name="analizeResponse">
     <xs:sequence>
-      <xs:element name="return" type="tns:presetManager" minOccurs="0"/>
+      <xs:element name="return" type="xs:string" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="presetManager">
+  <xs:complexType name="customAnalize">
     <xs:sequence>
-      <xs:element name="runnerClassName" type="xs:string"/>
-      <xs:element name="preset" type="tns:preset" maxOccurs="unbounded"/>
+      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="options" type="tns:option" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getLimits">
+  <xs:complexType name="option">
+    <xs:sequence>
+      <xs:element name="description" type="xs:string"/>
+      <xs:element name="optionNames" type="xs:string" maxOccurs="unbounded"/>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="furtherDetails" type="xs:anyURI" minOccurs="0"/>
+      <xs:element name="defaultValue" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="isRequired" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="customAnalizeResponse">
+    <xs:sequence>
+      <xs:element name="return" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getRunnerOptions">
     <xs:sequence/>
   </xs:complexType>
 
-  <xs:complexType name="getLimitsResponse">
+  <xs:complexType name="getRunnerOptionsResponse">
     <xs:sequence>
-      <xs:element name="return" type="tns:limitsManager" minOccurs="0"/>
+      <xs:element name="return" type="tns:runnerConfig" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="limitsManager">
+  <xs:complexType name="runnerConfig">
     <xs:sequence>
-      <xs:element name="runnerClassName" type="xs:string" minOccurs="0"/>
-      <xs:element name="limit" type="tns:limit" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="options" type="tns:option" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="parameters" type="tns:parameter" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="prmSeparator" type="xs:string" minOccurs="0"/>
+      <xs:element name="runnerClassName" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="limit">
+  <xs:complexType name="parameter">
+    <xs:complexContent>
+      <xs:extension base="tns:option">
+        <xs:sequence>
+          <xs:element name="possibleValues" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+          <xs:element name="validValue" type="tns:valueConstrain" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="valueConstrain">
     <xs:sequence>
-      <xs:element name="preset" type="xs:string" minOccurs="0"/>
-      <xs:element name="seqNumber" type="xs:int"/>
-      <xs:element name="seqLength" type="xs:int"/>
+      <xs:element name="type" type="tns:type"/>
+      <xs:element name="max" type="xs:string" minOccurs="0"/>
+      <xs:element name="min" type="xs:string" minOccurs="0"/>
     </xs:sequence>
-    <xs:attribute name="isDefault" type="xs:boolean" use="required"/>
   </xs:complexType>
 
-  <xs:complexType name="getLimit">
+  <xs:complexType name="getAnnotation">
     <xs:sequence>
-      <xs:element name="presetName" type="xs:string" minOccurs="0"/>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getLimitResponse">
+  <xs:complexType name="getAnnotationResponse">
     <xs:sequence>
-      <xs:element name="return" type="tns:limit" minOccurs="0"/>
+      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="cancelJob">
+  <xs:complexType name="scoreManager">
     <xs:sequence>
-      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+      <xs:element name="seqScores" type="tns:scoreHolder" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="cancelJobResponse">
+  <xs:complexType name="scoreHolder">
     <xs:sequence>
-      <xs:element name="return" type="xs:boolean"/>
+      <xs:element name="id" type="xs:string" minOccurs="0"/>
+      <xs:element name="scores" type="tns:score" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="customAnalize">
+  <xs:complexType name="score">
     <xs:sequence>
-      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="options" type="tns:option" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="method" type="xs:string" minOccurs="0"/>
+      <xs:element name="ranges" type="tns:range" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="scores" type="xs:float" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="option">
+  <xs:complexType name="range">
     <xs:sequence>
-      <xs:element name="description" type="xs:string"/>
-      <xs:element name="optionNames" type="xs:string" maxOccurs="unbounded"/>
-      <xs:element name="name" type="xs:string"/>
-      <xs:element name="furtherDetails" type="xs:anyURI" minOccurs="0"/>
-      <xs:element name="defaultValue" type="xs:string" minOccurs="0"/>
+      <xs:element name="from" type="xs:int"/>
+      <xs:element name="to" type="xs:int"/>
     </xs:sequence>
-    <xs:attribute name="isRequired" type="xs:boolean" use="required"/>
   </xs:complexType>
 
-  <xs:complexType name="customAnalizeResponse">
+  <xs:complexType name="ResultNotAvailableException">
     <xs:sequence>
-      <xs:element name="return" type="xs:string" minOccurs="0"/>
+      <xs:element name="message" type="xs:string" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="pullExecStatistics">
+  <xs:complexType name="getPresets">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="getPresetsResponse">
     <xs:sequence>
-      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
-      <xs:element name="position" type="xs:long"/>
+      <xs:element name="return" type="tns:presetManager" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="pullExecStatisticsResponse">
+  <xs:complexType name="presetManager">
     <xs:sequence>
-      <xs:element name="return" type="tns:chunkHolder" minOccurs="0"/>
+      <xs:element name="runnerClassName" type="xs:string"/>
+      <xs:element name="preset" type="tns:preset" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="chunkHolder">
+  <xs:complexType name="getLimits">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="getLimitsResponse">
     <xs:sequence>
-      <xs:element name="chunk" type="xs:string" minOccurs="0"/>
-      <xs:element name="position" type="xs:long"/>
+      <xs:element name="return" type="tns:limitsManager" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getJobStatus">
+  <xs:complexType name="limitsManager">
     <xs:sequence>
-      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+      <xs:element name="runnerClassName" type="xs:string" minOccurs="0"/>
+      <xs:element name="limit" type="tns:limit" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getJobStatusResponse">
+  <xs:complexType name="limit">
     <xs:sequence>
-      <xs:element name="return" type="tns:jobStatus" minOccurs="0"/>
+      <xs:element name="preset" type="xs:string" minOccurs="0"/>
+      <xs:element name="seqNumber" type="xs:int"/>
+      <xs:element name="seqLength" type="xs:int"/>
     </xs:sequence>
+    <xs:attribute name="isDefault" type="xs:boolean" use="required"/>
   </xs:complexType>
 
-  <xs:complexType name="analize">
+  <xs:complexType name="getLimit">
     <xs:sequence>
-      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="presetName" type="xs:string" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="analizeResponse">
+  <xs:complexType name="getLimitResponse">
     <xs:sequence>
-      <xs:element name="return" type="xs:string" minOccurs="0"/>
+      <xs:element name="return" type="tns:limit" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getRunnerOptions">
-    <xs:sequence/>
+  <xs:complexType name="cancelJob">
+    <xs:sequence>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="getRunnerOptionsResponse">
+  <xs:complexType name="cancelJobResponse">
     <xs:sequence>
-      <xs:element name="return" type="tns:runnerConfig" minOccurs="0"/>
+      <xs:element name="return" type="xs:boolean"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="runnerConfig">
+  <xs:complexType name="pullExecStatistics">
     <xs:sequence>
-      <xs:element name="options" type="tns:option" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="parameters" type="tns:parameter" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="prmSeparator" type="xs:string" minOccurs="0"/>
-      <xs:element name="runnerClassName" type="xs:string"/>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+      <xs:element name="position" type="xs:long"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="parameter">
-    <xs:complexContent>
-      <xs:extension base="tns:option">
-        <xs:sequence>
-          <xs:element name="possibleValues" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element name="validValue" type="tns:valueConstrain" minOccurs="0"/>
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
+  <xs:complexType name="pullExecStatisticsResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:chunkHolder" minOccurs="0"/>
+    </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="valueConstrain">
+  <xs:complexType name="chunkHolder">
     <xs:sequence>
-      <xs:element name="type" type="tns:type"/>
-      <xs:element name="max" type="xs:string" minOccurs="0"/>
-      <xs:element name="min" type="xs:string" minOccurs="0"/>
+      <xs:element name="chunk" type="xs:string" minOccurs="0"/>
+      <xs:element name="position" type="xs:long"/>
     </xs:sequence>
   </xs:complexType>
 
diff --git a/webservices/compbio/ws/server/resource/IUPredWS.wsdl b/webservices/compbio/ws/server/resource/IUPredWS.wsdl
new file mode 100644 (file)
index 0000000..e589bb1
--- /dev/null
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
+<definitions targetNamespace="http://msa.data.compbio/01/12/2010/" name="IUPredWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/12/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
+  <types>
+    <xsd:schema>
+      <xsd:import namespace="http://msa.data.compbio/01/12/2010/" schemaLocation="IUPredWS_schema1.xsd"/>
+    </xsd:schema>
+  </types>
+  <message name="customAnalize">
+    <part name="parameters" element="tns:customAnalize"/>
+  </message>
+  <message name="customAnalizeResponse">
+    <part name="parameters" element="tns:customAnalizeResponse"/>
+  </message>
+  <message name="UnsupportedRuntimeException">
+    <part name="fault" element="tns:UnsupportedRuntimeException"/>
+  </message>
+  <message name="LimitExceededException">
+    <part name="fault" element="tns:LimitExceededException"/>
+  </message>
+  <message name="JobSubmissionException">
+    <part name="fault" element="tns:JobSubmissionException"/>
+  </message>
+  <message name="WrongParameterException">
+    <part name="fault" element="tns:WrongParameterException"/>
+  </message>
+  <message name="analize">
+    <part name="parameters" element="tns:analize"/>
+  </message>
+  <message name="analizeResponse">
+    <part name="parameters" element="tns:analizeResponse"/>
+  </message>
+  <message name="presetAnalize">
+    <part name="parameters" element="tns:presetAnalize"/>
+  </message>
+  <message name="presetAnalizeResponse">
+    <part name="parameters" element="tns:presetAnalizeResponse"/>
+  </message>
+  <message name="getAnnotation">
+    <part name="parameters" element="tns:getAnnotation"/>
+  </message>
+  <message name="getAnnotationResponse">
+    <part name="parameters" element="tns:getAnnotationResponse"/>
+  </message>
+  <message name="ResultNotAvailableException">
+    <part name="fault" element="tns:ResultNotAvailableException"/>
+  </message>
+  <message name="pullExecStatistics">
+    <part name="parameters" element="tns:pullExecStatistics"/>
+  </message>
+  <message name="pullExecStatisticsResponse">
+    <part name="parameters" element="tns:pullExecStatisticsResponse"/>
+  </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
+  <message name="getJobStatus">
+    <part name="parameters" element="tns:getJobStatus"/>
+  </message>
+  <message name="getJobStatusResponse">
+    <part name="parameters" element="tns:getJobStatusResponse"/>
+  </message>
+  <message name="getLimit">
+    <part name="parameters" element="tns:getLimit"/>
+  </message>
+  <message name="getLimitResponse">
+    <part name="parameters" element="tns:getLimitResponse"/>
+  </message>
+  <message name="getLimits">
+    <part name="parameters" element="tns:getLimits"/>
+  </message>
+  <message name="getLimitsResponse">
+    <part name="parameters" element="tns:getLimitsResponse"/>
+  </message>
+  <message name="getPresets">
+    <part name="parameters" element="tns:getPresets"/>
+  </message>
+  <message name="getPresetsResponse">
+    <part name="parameters" element="tns:getPresetsResponse"/>
+  </message>
+  <message name="getRunnerOptions">
+    <part name="parameters" element="tns:getRunnerOptions"/>
+  </message>
+  <message name="getRunnerOptionsResponse">
+    <part name="parameters" element="tns:getRunnerOptionsResponse"/>
+  </message>
+  <portType name="SequenceAnnotation">
+    <operation name="customAnalize">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalizeRequest" message="tns:customAnalize"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalizeResponse" message="tns:customAnalizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/JobSubmissionException"/>
+      <fault message="tns:WrongParameterException" name="WrongParameterException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/WrongParameterException"/>
+    </operation>
+    <operation name="analize">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeRequest" message="tns:analize"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeResponse" message="tns:analizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/JobSubmissionException"/>
+    </operation>
+    <operation name="presetAnalize">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalizeRequest" message="tns:presetAnalize"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalizeResponse" message="tns:presetAnalizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalize/Fault/UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalize/Fault/LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalize/Fault/JobSubmissionException"/>
+      <fault message="tns:WrongParameterException" name="WrongParameterException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalize/Fault/WrongParameterException"/>
+    </operation>
+    <operation name="getAnnotation">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotationRequest" message="tns:getAnnotation"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotationResponse" message="tns:getAnnotationResponse"/>
+      <fault message="tns:ResultNotAvailableException" name="ResultNotAvailableException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotation/Fault/ResultNotAvailableException"/>
+    </operation>
+    <operation name="pullExecStatistics">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
+    </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
+    <operation name="getJobStatus">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusRequest" message="tns:getJobStatus"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusResponse" message="tns:getJobStatusResponse"/>
+    </operation>
+    <operation name="getLimit">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getLimitRequest" message="tns:getLimit"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getLimitResponse" message="tns:getLimitResponse"/>
+    </operation>
+    <operation name="getLimits">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getLimitsRequest" message="tns:getLimits"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getLimitsResponse" message="tns:getLimitsResponse"/>
+    </operation>
+    <operation name="getPresets">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getPresetsRequest" message="tns:getPresets"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getPresetsResponse" message="tns:getPresetsResponse"/>
+    </operation>
+    <operation name="getRunnerOptions">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getRunnerOptionsRequest" message="tns:getRunnerOptions"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getRunnerOptionsResponse" message="tns:getRunnerOptionsResponse"/>
+    </operation>
+  </portType>
+  <binding name="IUPredWSPortBinding" type="tns:SequenceAnnotation">
+    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+    <operation name="customAnalize">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+      <fault name="UnsupportedRuntimeException">
+        <soap:fault name="UnsupportedRuntimeException" use="literal"/>
+      </fault>
+      <fault name="LimitExceededException">
+        <soap:fault name="LimitExceededException" use="literal"/>
+      </fault>
+      <fault name="JobSubmissionException">
+        <soap:fault name="JobSubmissionException" use="literal"/>
+      </fault>
+      <fault name="WrongParameterException">
+        <soap:fault name="WrongParameterException" use="literal"/>
+      </fault>
+    </operation>
+    <operation name="analize">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+      <fault name="UnsupportedRuntimeException">
+        <soap:fault name="UnsupportedRuntimeException" use="literal"/>
+      </fault>
+      <fault name="LimitExceededException">
+        <soap:fault name="LimitExceededException" use="literal"/>
+      </fault>
+      <fault name="JobSubmissionException">
+        <soap:fault name="JobSubmissionException" use="literal"/>
+      </fault>
+    </operation>
+    <operation name="presetAnalize">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+      <fault name="UnsupportedRuntimeException">
+        <soap:fault name="UnsupportedRuntimeException" use="literal"/>
+      </fault>
+      <fault name="LimitExceededException">
+        <soap:fault name="LimitExceededException" use="literal"/>
+      </fault>
+      <fault name="JobSubmissionException">
+        <soap:fault name="JobSubmissionException" use="literal"/>
+      </fault>
+      <fault name="WrongParameterException">
+        <soap:fault name="WrongParameterException" use="literal"/>
+      </fault>
+    </operation>
+    <operation name="getAnnotation">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+      <fault name="ResultNotAvailableException">
+        <soap:fault name="ResultNotAvailableException" use="literal"/>
+      </fault>
+    </operation>
+    <operation name="pullExecStatistics">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="cancelJob">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getJobStatus">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getLimit">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getLimits">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getPresets">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getRunnerOptions">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+  </binding>
+  <service name="IUPredWS">
+    <port name="IUPredWSPort" binding="tns:IUPredWSPortBinding">
+      <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+    </port>
+  </service>
+</definitions>
+
diff --git a/webservices/compbio/ws/server/resource/IUPredWS_schema1.xsd b/webservices/compbio/ws/server/resource/IUPredWS_schema1.xsd
new file mode 100644 (file)
index 0000000..54d1b3d
--- /dev/null
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xs:schema version="1.0" targetNamespace="http://msa.data.compbio/01/12/2010/" xmlns:tns="http://msa.data.compbio/01/12/2010/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+  <xs:element name="JobSubmissionException" type="tns:JobSubmissionException"/>
+
+  <xs:element name="LimitExceededException" type="tns:LimitExceededException"/>
+
+  <xs:element name="ResultNotAvailableException" type="tns:ResultNotAvailableException"/>
+
+  <xs:element name="UnsupportedRuntimeException" type="tns:UnsupportedRuntimeException"/>
+
+  <xs:element name="WrongParameterException" type="tns:WrongParameterException"/>
+
+  <xs:element name="analize" type="tns:analize"/>
+
+  <xs:element name="analizeResponse" type="tns:analizeResponse"/>
+
+  <xs:element name="cancelJob" type="tns:cancelJob"/>
+
+  <xs:element name="cancelJobResponse" type="tns:cancelJobResponse"/>
+
+  <xs:element name="customAnalize" type="tns:customAnalize"/>
+
+  <xs:element name="customAnalizeResponse" type="tns:customAnalizeResponse"/>
+
+  <xs:element name="getAnnotation" type="tns:getAnnotation"/>
+
+  <xs:element name="getAnnotationResponse" type="tns:getAnnotationResponse"/>
+
+  <xs:element name="getJobStatus" type="tns:getJobStatus"/>
+
+  <xs:element name="getJobStatusResponse" type="tns:getJobStatusResponse"/>
+
+  <xs:element name="getLimit" type="tns:getLimit"/>
+
+  <xs:element name="getLimitResponse" type="tns:getLimitResponse"/>
+
+  <xs:element name="getLimits" type="tns:getLimits"/>
+
+  <xs:element name="getLimitsResponse" type="tns:getLimitsResponse"/>
+
+  <xs:element name="getPresets" type="tns:getPresets"/>
+
+  <xs:element name="getPresetsResponse" type="tns:getPresetsResponse"/>
+
+  <xs:element name="getRunnerOptions" type="tns:getRunnerOptions"/>
+
+  <xs:element name="getRunnerOptionsResponse" type="tns:getRunnerOptionsResponse"/>
+
+  <xs:element name="limits" type="tns:limitsManager"/>
+
+  <xs:element name="presetAnalize" type="tns:presetAnalize"/>
+
+  <xs:element name="presetAnalizeResponse" type="tns:presetAnalizeResponse"/>
+
+  <xs:element name="presets" type="tns:presetManager"/>
+
+  <xs:element name="pullExecStatistics" type="tns:pullExecStatistics"/>
+
+  <xs:element name="pullExecStatisticsResponse" type="tns:pullExecStatisticsResponse"/>
+
+  <xs:element name="runnerConfig" type="tns:runnerConfig"/>
+
+  <xs:complexType name="getJobStatus">
+    <xs:sequence>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getJobStatusResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:jobStatus" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="analize">
+    <xs:sequence>
+      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="fastaSequence">
+    <xs:sequence>
+      <xs:element name="id" type="xs:string" minOccurs="0"/>
+      <xs:element name="sequence" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="analizeResponse">
+    <xs:sequence>
+      <xs:element name="return" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="UnsupportedRuntimeException">
+    <xs:sequence>
+      <xs:element name="message" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="LimitExceededException">
+    <xs:sequence>
+      <xs:element name="actualNumberofSequences" type="xs:int"/>
+      <xs:element name="message" type="xs:string" minOccurs="0"/>
+      <xs:element name="numberOfSequencesAllowed" type="xs:int"/>
+      <xs:element name="sequenceLenghtActual" type="xs:int"/>
+      <xs:element name="sequenceLenghtAllowed" type="xs:int"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="JobSubmissionException">
+    <xs:sequence>
+      <xs:element name="message" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getRunnerOptions">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="getRunnerOptionsResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:runnerConfig" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="runnerConfig">
+    <xs:sequence>
+      <xs:element name="options" type="tns:option" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="parameters" type="tns:parameter" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="prmSeparator" type="xs:string" minOccurs="0"/>
+      <xs:element name="runnerClassName" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="option">
+    <xs:sequence>
+      <xs:element name="description" type="xs:string"/>
+      <xs:element name="optionNames" type="xs:string" maxOccurs="unbounded"/>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="furtherDetails" type="xs:anyURI" minOccurs="0"/>
+      <xs:element name="defaultValue" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="isRequired" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="parameter">
+    <xs:complexContent>
+      <xs:extension base="tns:option">
+        <xs:sequence>
+          <xs:element name="possibleValues" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+          <xs:element name="validValue" type="tns:valueConstrain" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="valueConstrain">
+    <xs:sequence>
+      <xs:element name="type" type="tns:type"/>
+      <xs:element name="max" type="xs:string" minOccurs="0"/>
+      <xs:element name="min" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getAnnotation">
+    <xs:sequence>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getAnnotationResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="scoreManager">
+    <xs:sequence>
+      <xs:element name="seqScores" type="tns:scoreHolder" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="scoreHolder">
+    <xs:sequence>
+      <xs:element name="id" type="xs:string" minOccurs="0"/>
+      <xs:element name="scores" type="tns:score" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="score">
+    <xs:sequence>
+      <xs:element name="method" type="xs:string" minOccurs="0"/>
+      <xs:element name="ranges" type="tns:range" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="scores" type="xs:float" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="range">
+    <xs:sequence>
+      <xs:element name="from" type="xs:int"/>
+      <xs:element name="to" type="xs:int"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ResultNotAvailableException">
+    <xs:sequence>
+      <xs:element name="message" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getPresets">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="getPresetsResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:presetManager" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="presetManager">
+    <xs:sequence>
+      <xs:element name="runnerClassName" type="xs:string"/>
+      <xs:element name="preset" type="tns:preset" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="preset">
+    <xs:sequence>
+      <xs:element name="name" type="xs:string"/>
+      <xs:element name="description" type="xs:string" minOccurs="0"/>
+      <xs:element name="optlist" minOccurs="0">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="option" type="xs:string" maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getLimits">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="getLimitsResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:limitsManager" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="limitsManager">
+    <xs:sequence>
+      <xs:element name="runnerClassName" type="xs:string" minOccurs="0"/>
+      <xs:element name="limit" type="tns:limit" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="limit">
+    <xs:sequence>
+      <xs:element name="preset" type="xs:string" minOccurs="0"/>
+      <xs:element name="seqNumber" type="xs:int"/>
+      <xs:element name="seqLength" type="xs:int"/>
+    </xs:sequence>
+    <xs:attribute name="isDefault" type="xs:boolean" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="getLimit">
+    <xs:sequence>
+      <xs:element name="presetName" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="getLimitResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:limit" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="cancelJob">
+    <xs:sequence>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="cancelJobResponse">
+    <xs:sequence>
+      <xs:element name="return" type="xs:boolean"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="customAnalize">
+    <xs:sequence>
+      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="options" type="tns:option" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="customAnalizeResponse">
+    <xs:sequence>
+      <xs:element name="return" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="WrongParameterException">
+    <xs:sequence>
+      <xs:element name="message" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="pullExecStatistics">
+    <xs:sequence>
+      <xs:element name="jobId" type="xs:string" minOccurs="0"/>
+      <xs:element name="position" type="xs:long"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="pullExecStatisticsResponse">
+    <xs:sequence>
+      <xs:element name="return" type="tns:chunkHolder" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="chunkHolder">
+    <xs:sequence>
+      <xs:element name="chunk" type="xs:string" minOccurs="0"/>
+      <xs:element name="position" type="xs:long"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="presetAnalize">
+    <xs:sequence>
+      <xs:element name="fastaSequences" type="tns:fastaSequence" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="preset" type="tns:preset" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="presetAnalizeResponse">
+    <xs:sequence>
+      <xs:element name="return" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="jobStatus">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="PENDING"/>
+      <xs:enumeration value="RUNNING"/>
+      <xs:enumeration value="CANCELLED"/>
+      <xs:enumeration value="FINISHED"/>
+      <xs:enumeration value="FAILED"/>
+      <xs:enumeration value="UNDEFINED"/>
+      <xs:enumeration value="STARTED"/>
+      <xs:enumeration value="SUBMITTED"/>
+      <xs:enumeration value="COLLECTED"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Integer"/>
+      <xs:enumeration value="Float"/>
+    </xs:restriction>
+  </xs:simpleType>
+</xs:schema>
+
index 68edea7..244be15 100644 (file)
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/12/2010/" name="JronnWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/12/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
       <xsd:import namespace="http://msa.data.compbio/01/12/2010/" schemaLocation="JronnWS_schema1.xsd"/>
     </xsd:schema>
   </types>
-  <message name="analize">
-    <part name="parameters" element="tns:analize"/>
+  <message name="customAnalize">
+    <part name="parameters" element="tns:customAnalize"/>
   </message>
-  <message name="analizeResponse">
-    <part name="parameters" element="tns:analizeResponse"/>
+  <message name="customAnalizeResponse">
+    <part name="parameters" element="tns:customAnalizeResponse"/>
   </message>
   <message name="UnsupportedRuntimeException">
     <part name="fault" element="tns:UnsupportedRuntimeException"/>
   <message name="JobSubmissionException">
     <part name="fault" element="tns:JobSubmissionException"/>
   </message>
-  <message name="customAnalize">
-    <part name="parameters" element="tns:customAnalize"/>
-  </message>
-  <message name="customAnalizeResponse">
-    <part name="parameters" element="tns:customAnalizeResponse"/>
-  </message>
   <message name="WrongParameterException">
     <part name="fault" element="tns:WrongParameterException"/>
   </message>
+  <message name="analize">
+    <part name="parameters" element="tns:analize"/>
+  </message>
+  <message name="analizeResponse">
+    <part name="parameters" element="tns:analizeResponse"/>
+  </message>
   <message name="presetAnalize">
     <part name="parameters" element="tns:presetAnalize"/>
   </message>
   <message name="ResultNotAvailableException">
     <part name="fault" element="tns:ResultNotAvailableException"/>
   </message>
-  <message name="cancelJob">
-    <part name="parameters" element="tns:cancelJob"/>
-  </message>
-  <message name="cancelJobResponse">
-    <part name="parameters" element="tns:cancelJobResponse"/>
-  </message>
   <message name="pullExecStatistics">
     <part name="parameters" element="tns:pullExecStatistics"/>
   </message>
   <message name="pullExecStatisticsResponse">
     <part name="parameters" element="tns:pullExecStatisticsResponse"/>
   </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
   <message name="getJobStatus">
     <part name="parameters" element="tns:getJobStatus"/>
   </message>
     <part name="parameters" element="tns:getRunnerOptionsResponse"/>
   </message>
   <portType name="SequenceAnnotation">
-    <operation name="analize">
-      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeRequest" message="tns:analize"/>
-      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeResponse" message="tns:analizeResponse"/>
-      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/UnsupportedRuntimeException"/>
-      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/LimitExceededException"/>
-      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/JobSubmissionException"/>
-    </operation>
     <operation name="customAnalize">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalizeRequest" message="tns:customAnalize"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalizeResponse" message="tns:customAnalizeResponse"/>
       <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/JobSubmissionException"/>
       <fault message="tns:WrongParameterException" name="WrongParameterException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/customAnalize/Fault/WrongParameterException"/>
     </operation>
+    <operation name="analize">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeRequest" message="tns:analize"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analizeResponse" message="tns:analizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/analize/Fault/JobSubmissionException"/>
+    </operation>
     <operation name="presetAnalize">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalizeRequest" message="tns:presetAnalize"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/presetAnalizeResponse" message="tns:presetAnalizeResponse"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotationResponse" message="tns:getAnnotationResponse"/>
       <fault message="tns:ResultNotAvailableException" name="ResultNotAvailableException" wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getAnnotation/Fault/ResultNotAvailableException"/>
     </operation>
-    <operation name="cancelJob">
-      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
-      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
-    </operation>
     <operation name="pullExecStatistics">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
     </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
     <operation name="getJobStatus">
       <input wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusRequest" message="tns:getJobStatus"/>
       <output wsam:Action="http://msa.data.compbio/01/12/2010/SequenceAnnotation/getJobStatusResponse" message="tns:getJobStatusResponse"/>
   </portType>
   <binding name="JronnWSPortBinding" type="tns:SequenceAnnotation">
     <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
-    <operation name="analize">
+    <operation name="customAnalize">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
       <fault name="JobSubmissionException">
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
+      <fault name="WrongParameterException">
+        <soap:fault name="WrongParameterException" use="literal"/>
+      </fault>
     </operation>
-    <operation name="customAnalize">
+    <operation name="analize">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
       <fault name="JobSubmissionException">
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
-      <fault name="WrongParameterException">
-        <soap:fault name="WrongParameterException" use="literal"/>
-      </fault>
     </operation>
     <operation name="presetAnalize">
       <soap:operation soapAction=""/>
         <soap:fault name="ResultNotAvailableException" use="literal"/>
       </fault>
     </operation>
-    <operation name="cancelJob">
+    <operation name="pullExecStatistics">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:body use="literal"/>
       </output>
     </operation>
-    <operation name="pullExecStatistics">
+    <operation name="cancelJob">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
index dba8c70..86bf801 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/01/2010/" name="MafftWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/01/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
   <message name="alignResponse">
     <part name="parameters" element="tns:alignResponse"/>
   </message>
-  <message name="cancelJob">
-    <part name="parameters" element="tns:cancelJob"/>
-  </message>
-  <message name="cancelJobResponse">
-    <part name="parameters" element="tns:cancelJobResponse"/>
-  </message>
   <message name="pullExecStatistics">
     <part name="parameters" element="tns:pullExecStatistics"/>
   </message>
   <message name="pullExecStatisticsResponse">
     <part name="parameters" element="tns:pullExecStatisticsResponse"/>
   </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
   <message name="getJobStatus">
     <part name="parameters" element="tns:getJobStatus"/>
   </message>
       <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/align/Fault/LimitExceededException"/>
       <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/align/Fault/JobSubmissionException"/>
     </operation>
-    <operation name="cancelJob">
-      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobRequest" message="tns:cancelJob"/>
-      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobResponse" message="tns:cancelJobResponse"/>
-    </operation>
     <operation name="pullExecStatistics">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
     </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
     <operation name="getJobStatus">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getJobStatusRequest" message="tns:getJobStatus"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getJobStatusResponse" message="tns:getJobStatusResponse"/>
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
     </operation>
-    <operation name="cancelJob">
+    <operation name="pullExecStatistics">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:body use="literal"/>
       </output>
     </operation>
-    <operation name="pullExecStatistics">
+    <operation name="cancelJob">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
index ce1332f..8993c91 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/01/2010/" name="MuscleWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/01/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
   <message name="alignResponse">
     <part name="parameters" element="tns:alignResponse"/>
   </message>
-  <message name="cancelJob">
-    <part name="parameters" element="tns:cancelJob"/>
-  </message>
-  <message name="cancelJobResponse">
-    <part name="parameters" element="tns:cancelJobResponse"/>
-  </message>
   <message name="pullExecStatistics">
     <part name="parameters" element="tns:pullExecStatistics"/>
   </message>
   <message name="pullExecStatisticsResponse">
     <part name="parameters" element="tns:pullExecStatisticsResponse"/>
   </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
   <message name="getJobStatus">
     <part name="parameters" element="tns:getJobStatus"/>
   </message>
       <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/align/Fault/LimitExceededException"/>
       <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/align/Fault/JobSubmissionException"/>
     </operation>
-    <operation name="cancelJob">
-      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobRequest" message="tns:cancelJob"/>
-      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobResponse" message="tns:cancelJobResponse"/>
-    </operation>
     <operation name="pullExecStatistics">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
     </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
     <operation name="getJobStatus">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getJobStatusRequest" message="tns:getJobStatus"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getJobStatusResponse" message="tns:getJobStatusResponse"/>
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
     </operation>
-    <operation name="cancelJob">
+    <operation name="pullExecStatistics">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:body use="literal"/>
       </output>
     </operation>
-    <operation name="pullExecStatistics">
+    <operation name="cancelJob">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
index 6ffd8d1..6760f66 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/12/2010/" name="RegistryWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/12/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
index 10a476b..a7cb4c7 100644 (file)
       <xs:enumeration value="JronnWS"/>
       <xs:enumeration value="DisemblWS"/>
       <xs:enumeration value="GlobPlotWS"/>
+      <xs:enumeration value="IUPredWS"/>
     </xs:restriction>
   </xs:simpleType>
 </xs:schema>
index 1ee9039..1ea1fcd 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.1 (branches/2.1-6728; 2011-02-03T14:14:58+0000) JAXWS-RI/2.2.3 JAXWS/2.2. -->
 <definitions targetNamespace="http://msa.data.compbio/01/01/2010/" name="TcoffeeWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://msa.data.compbio/01/01/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <types>
     <xsd:schema>
   <message name="ResultNotAvailableException">
     <part name="fault" element="tns:ResultNotAvailableException"/>
   </message>
-  <message name="customAlign">
-    <part name="parameters" element="tns:customAlign"/>
+  <message name="presetAlign">
+    <part name="parameters" element="tns:presetAlign"/>
   </message>
-  <message name="customAlignResponse">
-    <part name="parameters" element="tns:customAlignResponse"/>
+  <message name="presetAlignResponse">
+    <part name="parameters" element="tns:presetAlignResponse"/>
   </message>
   <message name="UnsupportedRuntimeException">
     <part name="fault" element="tns:UnsupportedRuntimeException"/>
   <message name="WrongParameterException">
     <part name="fault" element="tns:WrongParameterException"/>
   </message>
-  <message name="presetAlign">
-    <part name="parameters" element="tns:presetAlign"/>
+  <message name="customAlign">
+    <part name="parameters" element="tns:customAlign"/>
   </message>
-  <message name="presetAlignResponse">
-    <part name="parameters" element="tns:presetAlignResponse"/>
+  <message name="customAlignResponse">
+    <part name="parameters" element="tns:customAlignResponse"/>
   </message>
   <message name="align">
     <part name="parameters" element="tns:align"/>
   <message name="alignResponse">
     <part name="parameters" element="tns:alignResponse"/>
   </message>
-  <message name="cancelJob">
-    <part name="parameters" element="tns:cancelJob"/>
-  </message>
-  <message name="cancelJobResponse">
-    <part name="parameters" element="tns:cancelJobResponse"/>
-  </message>
   <message name="pullExecStatistics">
     <part name="parameters" element="tns:pullExecStatistics"/>
   </message>
   <message name="pullExecStatisticsResponse">
     <part name="parameters" element="tns:pullExecStatisticsResponse"/>
   </message>
+  <message name="cancelJob">
+    <part name="parameters" element="tns:cancelJob"/>
+  </message>
+  <message name="cancelJobResponse">
+    <part name="parameters" element="tns:cancelJobResponse"/>
+  </message>
   <message name="getJobStatus">
     <part name="parameters" element="tns:getJobStatus"/>
   </message>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getResultResponse" message="tns:getResultResponse"/>
       <fault message="tns:ResultNotAvailableException" name="ResultNotAvailableException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getResult/Fault/ResultNotAvailableException"/>
     </operation>
-    <operation name="customAlign">
-      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlignRequest" message="tns:customAlign"/>
-      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlignResponse" message="tns:customAlignResponse"/>
-      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlign/Fault/UnsupportedRuntimeException"/>
-      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlign/Fault/LimitExceededException"/>
-      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlign/Fault/JobSubmissionException"/>
-      <fault message="tns:WrongParameterException" name="WrongParameterException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlign/Fault/WrongParameterException"/>
-    </operation>
     <operation name="presetAlign">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/presetAlignRequest" message="tns:presetAlign"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/presetAlignResponse" message="tns:presetAlignResponse"/>
       <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/presetAlign/Fault/JobSubmissionException"/>
       <fault message="tns:WrongParameterException" name="WrongParameterException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/presetAlign/Fault/WrongParameterException"/>
     </operation>
+    <operation name="customAlign">
+      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlignRequest" message="tns:customAlign"/>
+      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlignResponse" message="tns:customAlignResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlign/Fault/UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlign/Fault/LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlign/Fault/JobSubmissionException"/>
+      <fault message="tns:WrongParameterException" name="WrongParameterException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/customAlign/Fault/WrongParameterException"/>
+    </operation>
     <operation name="align">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/alignRequest" message="tns:align"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/alignResponse" message="tns:alignResponse"/>
       <fault message="tns:LimitExceededException" name="LimitExceededException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/align/Fault/LimitExceededException"/>
       <fault message="tns:JobSubmissionException" name="JobSubmissionException" wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/align/Fault/JobSubmissionException"/>
     </operation>
-    <operation name="cancelJob">
-      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobRequest" message="tns:cancelJob"/>
-      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobResponse" message="tns:cancelJobResponse"/>
-    </operation>
     <operation name="pullExecStatistics">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/pullExecStatisticsRequest" message="tns:pullExecStatistics"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/pullExecStatisticsResponse" message="tns:pullExecStatisticsResponse"/>
     </operation>
+    <operation name="cancelJob">
+      <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobRequest" message="tns:cancelJob"/>
+      <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/cancelJobResponse" message="tns:cancelJobResponse"/>
+    </operation>
     <operation name="getJobStatus">
       <input wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getJobStatusRequest" message="tns:getJobStatus"/>
       <output wsam:Action="http://msa.data.compbio/01/01/2010/MsaWS/getJobStatusResponse" message="tns:getJobStatusResponse"/>
         <soap:fault name="ResultNotAvailableException" use="literal"/>
       </fault>
     </operation>
-    <operation name="customAlign">
+    <operation name="presetAlign">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:fault name="WrongParameterException" use="literal"/>
       </fault>
     </operation>
-    <operation name="presetAlign">
+    <operation name="customAlign">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:fault name="JobSubmissionException" use="literal"/>
       </fault>
     </operation>
-    <operation name="cancelJob">
+    <operation name="pullExecStatistics">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>
         <soap:body use="literal"/>
       </output>
     </operation>
-    <operation name="pullExecStatistics">
+    <operation name="cancelJob">
       <soap:operation soapAction=""/>
       <input>
         <soap:body use="literal"/>