Finally, the new web services are working
authorpvtroshin <pvtroshin@e3abac25-378b-4346-85de-24260fe3988d>
Thu, 10 Feb 2011 13:50:10 +0000 (13:50 +0000)
committerpvtroshin <pvtroshin@e3abac25-378b-4346-85de-24260fe3988d>
Thu, 10 Feb 2011 13:50:10 +0000 (13:50 +0000)
git-svn-id: link to svn.lifesci.dundee.ac.uk/svn/barton/ptroshin/JABA2@3738 e3abac25-378b-4346-85de-24260fe3988d

17 files changed:
datamodel/compbio/data/sequence/Range.java
datamodel/compbio/data/sequence/Score.java
datamodel/compbio/data/sequence/ScoreManager.java
how_to_add_new_webservice.txt
testsrc/compbio/data/sequence/SequenceUtilTester.java
webservices/compbio/data/msa/jaxws/GetAnnotationResponse.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/server/resource/AAConWS.wsdl
webservices/compbio/ws/server/resource/AAConWS_schema1.xsd
webservices/compbio/ws/server/resource/DisemblWS_schema1.xsd
webservices/compbio/ws/server/resource/GlobPlotWS_schema1.xsd
webservices/compbio/ws/server/resource/JronnWS_schema1.xsd
wsbuild.xml

index 839ae28..1fabc07 100644 (file)
@@ -5,6 +5,12 @@ public class Range implements Comparable<Range> {
        public final int from;\r
        public final int to;\r
 \r
+       private Range() {\r
+               // JAXB default constructor should not be used\r
+               from = 0;\r
+               to = from;\r
+       }\r
+\r
        public Range(int from, int to) {\r
                this.from = from;\r
                this.to = to;\r
index b61c74e..f28bd0d 100644 (file)
@@ -12,8 +12,6 @@ import java.util.TreeSet;
 \r
 import javax.xml.bind.annotation.XmlAccessType;\r
 import javax.xml.bind.annotation.XmlAccessorType;\r
-import javax.xml.bind.annotation.XmlElement;\r
-import javax.xml.bind.annotation.XmlTransient;\r
 \r
 import compbio.util.annotation.Immutable;\r
 \r
@@ -28,25 +26,22 @@ import compbio.util.annotation.Immutable;
 @Immutable\r
 public class Score {\r
 \r
-       @XmlTransient\r
        static final NumberFormat NUMBER_FORMAT = NumberFormat\r
                        .getNumberInstance(Locale.UK);\r
        static {\r
                NUMBER_FORMAT.setGroupingUsed(false);\r
                NUMBER_FORMAT.setMaximumFractionDigits(3);\r
        }\r
+       // This should be Enum<?> but JAXB cannot serialize it.\r
+       private final String method;\r
 \r
-       private Enum<?> method;\r
-       // private String method;\r
-\r
-       @XmlElement\r
        private TreeSet<Range> ranges = new TreeSet<Range>();\r
 \r
-       @XmlElement\r
        private ArrayList<Float> scores = new ArrayList<Float>(0);\r
 \r
        private Score() {\r
                // JaXB default constructor\r
+               method = null;\r
        }\r
 \r
        /**\r
@@ -60,7 +55,7 @@ public class Score {
         *            alignment\r
         */\r
        public Score(Enum<?> method, ArrayList<Float> scores) {\r
-               this.method = method;\r
+               this.method = method.toString();\r
                this.scores = new ArrayList<Float>(scores);\r
        }\r
 \r
@@ -76,18 +71,18 @@ public class Score {
         *            function, usually can be calculated based on scores\r
         */\r
        public Score(Enum<?> method, ArrayList<Float> scores, TreeSet<Range> ranges) {\r
-               this.method = method;\r
+               this.method = method.toString();\r
                this.ranges = ranges;\r
                this.scores = scores;\r
        }\r
 \r
        public Score(Enum<?> method, TreeSet<Range> ranges) {\r
-               this.method = method;\r
+               this.method = method.toString();\r
                this.ranges = ranges;\r
        }\r
 \r
        public Score(Enum<?> method, float[] scores) {\r
-               this.method = method;\r
+               this.method = method.toString();\r
                this.scores = toList(scores);\r
        }\r
 \r
@@ -103,7 +98,7 @@ public class Score {
         * \r
         * @return the ConservationMethod\r
         */\r
-       public Enum<?> getMethod() {\r
+       public String getMethod() {\r
                return method;\r
        }\r
 \r
index f384308..7ddf894 100644 (file)
@@ -13,10 +13,12 @@ import java.util.Set;
 \r
 import javax.xml.bind.annotation.XmlAccessType;\r
 import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
 \r
 @XmlAccessorType(XmlAccessType.FIELD)\r
 public class ScoreManager {\r
 \r
+       @XmlTransient\r
        public static final String SINGLE_ENTRY_KEY = "Alignment";\r
 \r
        private List<ScoreHolder> seqScores;\r
@@ -104,7 +106,6 @@ public class ScoreManager {
                }\r
                writer.flush();\r
        }\r
-       \r
 \r
        @Override\r
        public int hashCode() {\r
@@ -132,13 +133,11 @@ public class ScoreManager {
                return true;\r
        }\r
 \r
-\r
-\r
        @XmlAccessorType(XmlAccessType.FIELD)\r
        public static class ScoreHolder {\r
 \r
                public String id;\r
-               public Set<Score> scores;\r
+               public HashSet<Score> scores;\r
 \r
                private ScoreHolder() {\r
                        // JAXB Default constructor should not be used otherwise\r
@@ -146,7 +145,7 @@ public class ScoreManager {
 \r
                ScoreHolder(String id, Set<Score> scores) {\r
                        this.id = id;\r
-                       this.scores = scores;\r
+                       this.scores = new HashSet<Score>(scores);\r
                }\r
 \r
                public void writeOut(OutputStream outStream) throws IOException {\r
@@ -158,13 +157,12 @@ public class ScoreManager {
 \r
                public Score getScoreByMethod(Enum<?> method) {\r
                        for (Score sc : scores) {\r
-                               if (method == sc.getMethod()) {\r
+                               if (method.toString().equals(sc.getMethod())) {\r
                                        return sc;\r
                                }\r
                        }\r
                        return null;\r
                }\r
-\r
                public int getNumberOfScores() {\r
                        return scores.size();\r
                }\r
@@ -200,7 +198,6 @@ public class ScoreManager {
                                return false;\r
                        return true;\r
                }\r
-               \r
-               \r
+\r
        }\r
 }\r
index cb11ba4..529aa42 100644 (file)
@@ -38,6 +38,10 @@ Check that
   - 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 manuevre, so use it. If you do you then \r
+  can accept and return interfaces, e.g. List, Map; abstract classes etc, from your methods. \r
+  \r
 If you have the data on the server side, but nothing is coming through to the client, \r
 this is a JAXB serialization problem. They tend to be very silent and thus hard to debug. Check your \r
 data structure can be serialized! \r
index 682bcad..b6e74ae 100644 (file)
@@ -232,11 +232,12 @@ public class SequenceUtilTester {
                        }\r
                        for (Score score : scores) {\r
 \r
-                               if (score.getMethod() == (Enum<?>) GlobProtResult.Disorder) {\r
+                               if (score.getMethod()\r
+                                               .equals(GlobProtResult.Disorder.toString())) {\r
                                        assertEquals(score.getRanges().size(), 7);\r
                                        assertTrue(score.getScores().isEmpty());\r
                                }\r
-                               if (score.getMethod() == (Enum<?>) GlobProtResult.Dydx) {\r
+                               if (GlobProtResult.valueOf(score.getMethod()) == GlobProtResult.Dydx) {\r
                                        assertFalse(score.getScores().isEmpty());\r
                                        assertTrue(score.getRanges().isEmpty());\r
                                }\r
index d7adf3c..749551e 100644 (file)
@@ -1,8 +1,6 @@
 \r
 package compbio.data.msa.jaxws;\r
 \r
-import java.util.HashMap;\r
-import java.util.HashSet;\r
 import javax.xml.bind.annotation.XmlAccessType;\r
 import javax.xml.bind.annotation.XmlAccessorType;\r
 import javax.xml.bind.annotation.XmlElement;\r
@@ -15,14 +13,14 @@ import javax.xml.bind.annotation.XmlType;
 public class GetAnnotationResponse {\r
 \r
     @XmlElement(name = "return", namespace = "")\r
-    private HashMap<String, HashSet<compbio.data.sequence.Score>> _return;\r
+    private compbio.data.sequence.ScoreManager _return;\r
 \r
     /**\r
      * \r
      * @return\r
-     *     returns HashMap<String,HashSet<Score>>\r
+     *     returns ScoreManager\r
      */\r
-    public HashMap<String, HashSet<compbio.data.sequence.Score>> getReturn() {\r
+    public compbio.data.sequence.ScoreManager getReturn() {\r
         return this._return;\r
     }\r
 \r
@@ -31,7 +29,7 @@ public class GetAnnotationResponse {
      * @param _return\r
      *     the value for the _return property\r
      */\r
-    public void setReturn(HashMap<String, HashSet<compbio.data.sequence.Score>> _return) {\r
+    public void setReturn(compbio.data.sequence.ScoreManager _return) {\r
         this._return = _return;\r
     }\r
 \r
index 30950b4..b2d62d6 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.1.6 in JDK 6\r
+ * Generated source version: 2.1.6\r
  * \r
  */\r
 @XmlRootElement(name = "JobSubmissionException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index c9c3a4e..e1bf0bf 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.1.6 in JDK 6\r
+ * Generated source version: 2.1.6\r
  * \r
  */\r
 @XmlRootElement(name = "LimitExceededException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index be8a26d..7016909 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.1.6 in JDK 6\r
+ * Generated source version: 2.1.6\r
  * \r
  */\r
 @XmlRootElement(name = "ResultNotAvailableException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index 5e1268a..fa77aae 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.1.6 in JDK 6\r
+ * Generated source version: 2.1.6\r
  * \r
  */\r
 @XmlRootElement(name = "UnsupportedRuntimeException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index 62be910..fc22bd0 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.1.6 in JDK 6\r
+ * Generated source version: 2.1.6\r
  * \r
  */\r
 @XmlRootElement(name = "WrongParameterException", namespace = "http://msa.data.compbio/01/12/2010/")\r
index dffcb48..c9c8412 100644 (file)
@@ -1,6 +1,6 @@
 <?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-. -->
-<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">
+<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. -->
+<definitions targetNamespace="http://msa.data.compbio/01/12/2010/" name="AAConWS" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://msa.data.compbio/01/12/2010/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
   <types>
     <xsd:schema>
       <xsd:import namespace="http://msa.data.compbio/01/12/2010/" schemaLocation="AAConWS_schema1.xsd"/>
   </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"/>
+      <input message="tns:analize"/>
+      <output message="tns:analizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="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: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"/>
+      <input message="tns:customAnalize"/>
+      <output message="tns:customAnalizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException"/>
+      <fault message="tns:WrongParameterException" name="WrongParameterException"/>
     </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"/>
+      <input message="tns:presetAnalize"/>
+      <output message="tns:presetAnalizeResponse"/>
+      <fault message="tns:UnsupportedRuntimeException" name="UnsupportedRuntimeException"/>
+      <fault message="tns:LimitExceededException" name="LimitExceededException"/>
+      <fault message="tns:JobSubmissionException" name="JobSubmissionException"/>
+      <fault message="tns:WrongParameterException" name="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"/>
+      <input message="tns:getAnnotation"/>
+      <output message="tns:getAnnotationResponse"/>
+      <fault message="tns:ResultNotAvailableException" name="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"/>
+      <input message="tns:pullExecStatistics"/>
+      <output 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"/>
+      <input message="tns:cancelJob"/>
+      <output 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"/>
+      <input message="tns:getJobStatus"/>
+      <output message="tns:getJobStatusResponse"/>
     </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"/>
+      <input message="tns:getPresets"/>
+      <output message="tns:getPresetsResponse"/>
     </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"/>
+      <input message="tns:getLimit"/>
+      <output 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"/>
+      <input message="tns:getLimits"/>
+      <output message="tns:getLimitsResponse"/>
     </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"/>
+      <input message="tns:getRunnerOptions"/>
+      <output message="tns:getRunnerOptionsResponse"/>
     </operation>
   </portType>
   <binding name="AAConWSPortBinding" type="tns:SequenceAnnotation">
index 77fe8df..038af26 100644 (file)
 
   <xs:complexType name="getAnnotationResponse">
     <xs:sequence>
-      <xs:element name="return" type="tns:hashMap" minOccurs="0"/>
+      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="hashMap">
-    <xs:complexContent>
-      <xs:extension base="tns:abstractMap">
-        <xs:sequence/>
-      </xs:extension>
-    </xs:complexContent>
+  <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="abstractMap" abstract="true">
-    <xs:sequence/>
+  <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">
index 6185886..97d6989 100644 (file)
 
   <xs:complexType name="getAnnotationResponse">
     <xs:sequence>
-      <xs:element name="return" type="tns:hashMap" minOccurs="0"/>
+      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="hashMap">
-    <xs:complexContent>
-      <xs:extension base="tns:abstractMap">
-        <xs:sequence/>
-      </xs:extension>
-    </xs:complexContent>
+  <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="abstractMap" abstract="true">
-    <xs:sequence/>
+  <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">
index 109e3fb..858d2c2 100644 (file)
 
   <xs:complexType name="getAnnotationResponse">
     <xs:sequence>
-      <xs:element name="return" type="tns:hashMap" minOccurs="0"/>
+      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="hashMap">
-    <xs:complexContent>
-      <xs:extension base="tns:abstractMap">
-        <xs:sequence/>
-      </xs:extension>
-    </xs:complexContent>
+  <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="abstractMap" abstract="true">
-    <xs:sequence/>
+  <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">
index 77fe8df..038af26 100644 (file)
 
   <xs:complexType name="getAnnotationResponse">
     <xs:sequence>
-      <xs:element name="return" type="tns:hashMap" minOccurs="0"/>
+      <xs:element name="return" type="tns:scoreManager" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="hashMap">
-    <xs:complexContent>
-      <xs:extension base="tns:abstractMap">
-        <xs:sequence/>
-      </xs:extension>
-    </xs:complexContent>
+  <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="abstractMap" abstract="true">
-    <xs:sequence/>
+  <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">
index dad6d25..bf55aaa 100644 (file)
@@ -26,8 +26,9 @@
        <property name="disembl.wsdl" location="${wsdl.dir}/DisemblWS.wsdl" />\r
        <property name="globplot.wsdl" location="${wsdl.dir}/GlobPlotWS.wsdl" />\r
        <property name="jronn.wsdl" location="${wsdl.dir}/JronnWS.wsdl" />\r
+       \r
 \r
-       <taskdef name="wsgen" classname="com.sun.tools.ws.ant.WsGen">\r
+       <taskdef name="wsgen" onerror="report" classname="com.sun.tools.ws.ant.WsGen">\r
                <classpath refid="project.classpath" />\r
        </taskdef>\r
 \r
@@ -47,6 +48,7 @@
                        <!-- destdir - Where to put generated classes -->\r
                        <!-- sourcedestdir -  Where to put generated source files -->\r
                        <!-- resourcedestdir - Where to put generated source files -->\r
+\r
                <wsgen sei="compbio.ws.server.AAConWS" \r
                                        sourcedestdir="${basedir}/webservices" \r
                                        destdir="${classes}" \r
@@ -58,6 +60,7 @@
                                        <classpath refid="classes.path" />\r
                                        <classpath refid="project.classpath" />\r
                </wsgen>\r
+\r
                <wsgen sei="compbio.ws.server.ClustalWS" \r
                                        sourcedestdir="${basedir}/webservices" \r
                                        destdir="${classes}" \r
                                                <classpath refid="classes.path" />\r
                                                <classpath refid="project.classpath" />\r
                </wsgen>\r
+               \r
                <wsgen sei="compbio.ws.server.DisemblWS" \r
                                                sourcedestdir="${basedir}/webservices" \r
                                                destdir="${classes}" \r