Merge branch 'JABAWS_Release_2_5' into develop
authorSasha Sherstnev <a.sherstnev@dundee.ac.uk>
Fri, 6 Sep 2013 16:23:22 +0000 (17:23 +0100)
committerSasha Sherstnev <a.sherstnev@dundee.ac.uk>
Fri, 6 Sep 2013 16:23:22 +0000 (17:23 +0100)
Conflicts:
.project
WEB-INF/sun-jaxws.xml
conf/Executable.properties
testsrc/compbio/data/sequence/SequenceUtilTester.java
webservices/compbio/data/msa/Category.java
webservices/compbio/ws/client/Jws2Client.java
webservices/compbio/ws/client/Services.java
webservices/compbio/ws/client/WSTester.java
webservices/compbio/ws/server/WSUtil.java
webservices/compbio/ws/server/resource/AAConWS.wsdl
webservices/compbio/ws/server/resource/AAConWS_schema1.xsd
webservices/compbio/ws/server/resource/ClustalWS.wsdl
webservices/compbio/ws/server/resource/ClustalWS_schema1.xsd
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
webservices/compbio/ws/server/resource/IUPredWS_schema1.xsd
webservices/compbio/ws/server/resource/JronnWS.wsdl
webservices/compbio/ws/server/resource/JronnWS_schema1.xsd
webservices/compbio/ws/server/resource/MafftWS.wsdl
webservices/compbio/ws/server/resource/MafftWS_schema1.xsd
webservices/compbio/ws/server/resource/MuscleWS.wsdl
webservices/compbio/ws/server/resource/MuscleWS_schema1.xsd
webservices/compbio/ws/server/resource/RegistryWS.wsdl
webservices/compbio/ws/server/resource/RegistryWS_schema1.xsd
webservices/compbio/ws/server/resource/TcoffeeWS.wsdl
webservices/compbio/ws/server/resource/TcoffeeWS_schema1.xsd
wsbuild.xml

12 files changed:
1  2 
WEB-INF/sun-jaxws.xml
WEB-INF/web.xml
datamodel/compbio/data/sequence/SequenceUtil.java
testsrc/compbio/data/sequence/SequenceUtilTester.java
testsrc/compbio/metadata/AllTestSuit.java
webservices/compbio/data/msa/Category.java
webservices/compbio/ws/client/Jws2Client.java
webservices/compbio/ws/client/Services.java
webservices/compbio/ws/client/ServicesUtil.java
webservices/compbio/ws/client/WSTester.java
webservices/compbio/ws/server/WSUtil.java
wsbuild.xml

@@@ -1,55 -1,42 +1,45 @@@
  <?xml version="1.0" encoding="UTF-8"?>\r
  <endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>\r
-     <endpoint\r
-         name='RegistryWS'\r
-         implementation='compbio.ws.server.RegistryWS'\r
-         url-pattern='/RegistryWS'/>\r
-     <endpoint\r
-         name='ClustalWS'\r
-         implementation='compbio.ws.server.ClustalWS'\r
-         url-pattern='/ClustalWS'/>\r
-     <endpoint\r
-         name='ClustalOWS'\r
-         implementation='compbio.ws.server.ClustalOWS'\r
-         url-pattern='/ClustalOWS'/>\r
-     <endpoint\r
-         name='MuscleWS'\r
-         implementation='compbio.ws.server.MuscleWS'\r
-         url-pattern='/MuscleWS'/>\r
-     <endpoint\r
-         name='TcoffeeWS'\r
-         implementation='compbio.ws.server.TcoffeeWS'\r
-         url-pattern='/TcoffeeWS'/>\r
-     <endpoint\r
-         name='MafftWS'\r
-         implementation='compbio.ws.server.MafftWS'\r
-         url-pattern='/MafftWS'/>\r
-     <endpoint\r
-         name='ProbconsWS'\r
-         implementation='compbio.ws.server.ProbconsWS'\r
-         url-pattern='/ProbconsWS'/>\r
-     <endpoint\r
-         name='AAConWS'\r
-         implementation='compbio.ws.server.AAConWS'\r
-         url-pattern='/AAConWS'/>\r
-     <endpoint\r
-         name='JronnWS'\r
-         implementation='compbio.ws.server.JronnWS'\r
-         url-pattern='/JronnWS'/>\r
-     <endpoint\r
-         name='DisemblWS'\r
-         implementation='compbio.ws.server.DisemblWS'\r
-         url-pattern='/DisemblWS'/>\r
-     <endpoint\r
-         name='GlobPlotWS'\r
-         implementation='compbio.ws.server.GlobPlotWS'\r
-         url-pattern='/GlobPlotWS'/>\r
-     <endpoint\r
-         name='IUPredWS'\r
-         implementation='compbio.ws.server.IUPredWS'\r
-         url-pattern='/IUPredWS'/>\r
-     <endpoint\r
-       name='RNAalifoldWS'\r
-       implementation='compbio.ws.server.RNAalifoldWS'\r
-       url-pattern='/RNAalifoldWS'/>\r
+       <endpoint name='RegistryWS'\r
+               implementation='compbio.ws.server.RegistryWS'\r
+               url-pattern='/RegistryWS'/>\r
+       <endpoint name='ClustalWS'\r
+               implementation='compbio.ws.server.ClustalWS'\r
+               url-pattern='/ClustalWS'/>\r
+       <endpoint name='ClustalOWS'\r
+               implementation='compbio.ws.server.ClustalOWS'\r
+               url-pattern='/ClustalOWS'/>\r
+       <endpoint name='MuscleWS'\r
+               implementation='compbio.ws.server.MuscleWS'\r
+               url-pattern='/MuscleWS'/>\r
+       <endpoint name='TcoffeeWS'\r
+               implementation='compbio.ws.server.TcoffeeWS'\r
+               url-pattern='/TcoffeeWS'/>\r
+       <endpoint name='MafftWS'\r
+               implementation='compbio.ws.server.MafftWS'\r
+               url-pattern='/MafftWS'/>\r
+       <endpoint name='ProbconsWS'\r
+               implementation='compbio.ws.server.ProbconsWS'\r
+               url-pattern='/ProbconsWS'/>\r
+       <endpoint name='AAConWS'\r
+               implementation='compbio.ws.server.AAConWS'\r
+               url-pattern='/AAConWS'/>\r
+       <endpoint name='JronnWS'\r
+               implementation='compbio.ws.server.JronnWS'\r
+               url-pattern='/JronnWS'/>\r
+       <endpoint name='DisemblWS'\r
+               implementation='compbio.ws.server.DisemblWS'\r
+               url-pattern='/DisemblWS'/>\r
+       <endpoint name='GlobPlotWS'\r
+               implementation='compbio.ws.server.GlobPlotWS'\r
+               url-pattern='/GlobPlotWS'/>\r
+       <endpoint name='IUPredWS'\r
+               implementation='compbio.ws.server.IUPredWS'\r
+               url-pattern='/IUPredWS'/>\r
+       <endpoint name='JpredWS'\r
+               implementation='compbio.ws.server.JpredWS'\r
+               url-pattern='/JpredWS'/>\r
++      <endpoint name='RNAalifoldWS'\r
++              implementation='compbio.ws.server.RNAalifoldWS'\r
++              url-pattern='/RNAalifoldWS'/>\r
  </endpoints>\r
diff --cc WEB-INF/web.xml
                <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>\r
                <load-on-startup>1</load-on-startup>\r
        </servlet>\r
 +      \r
 +      <servlet>\r
 +              <servlet-name>RNAalifoldWS</servlet-name>\r
 +              <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>\r
 +              <load-on-startup>1</load-on-startup>\r
 +      </servlet>\r
 +      <servlet>\r
 +              <display-name>Apache-Axis Servlet</display-name>\r
 +              <servlet-name>AxisServlet</servlet-name>\r
 +              <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>\r
 +      </servlet>\r
 +      <servlet>\r
 +              <display-name>Axis Admin Servlet</display-name>\r
 +              <servlet-name>AdminServlet</servlet-name>\r
 +              <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>\r
 +              <load-on-startup>100</load-on-startup>\r
 +      </servlet>\r
  \r
+       <servlet>\r
+               <servlet-name>JpredWS</servlet-name>\r
+               <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>\r
+               <load-on-startup>1</load-on-startup>\r
+       </servlet>\r
\r
        <!-- JABAWS servlet mappings -->\r
        <servlet-mapping>\r
                <servlet-name>listings</servlet-name>\r
                <servlet-name>IUPredWS</servlet-name>\r
                <url-pattern>/IUPredWS</url-pattern>\r
        </servlet-mapping>\r
 +      \r
 +      <servlet-mapping>\r
 +              <servlet-name>RNAalifoldWS</servlet-name>\r
 +              <url-pattern>/RNAalifoldWS</url-pattern>\r
 +      </servlet-mapping>\r
 +      <servlet-mapping>\r
 +              <servlet-name>AxisServlet</servlet-name>\r
 +              <url-pattern>/servlet/AxisServlet</url-pattern>\r
 +      </servlet-mapping>\r
 +      <servlet-mapping>\r
 +              <servlet-name>AxisServlet</servlet-name>\r
 +              <url-pattern>*.jws</url-pattern>\r
 +      </servlet-mapping>\r
 +      <servlet-mapping>\r
 +              <servlet-name>AxisServlet</servlet-name>\r
 +              <url-pattern>/services/*</url-pattern>\r
 +      </servlet-mapping>\r
 +      <servlet-mapping>\r
 +              <servlet-name>AdminServlet</servlet-name>\r
 +              <url-pattern>/servlet/AdminServlet</url-pattern>\r
 +      </servlet-mapping>\r
  \r
+       <servlet-mapping>\r
+               <servlet-name>JpredWS</servlet-name>\r
+               <url-pattern>/JpredWS</url-pattern>\r
+       </servlet-mapping>\r
  \r
  \r
        <!-- JABAWS security constraints -->\r
@@@ -30,8 -32,8 +32,9 @@@ import java.io.InputStreamReader
  import java.io.OutputStream;\r
  import java.io.OutputStreamWriter;\r
  import java.util.ArrayList;\r
 +import java.util.Arrays;\r
  import java.util.HashMap;\r
+ import java.util.Collections;\r
  import java.util.HashSet;\r
  import java.util.List;\r
  import java.util.Map;\r
@@@ -140,42 -133,9 +133,38 @@@ public class SequenceUtilTester 
                }\r
        }\r
  \r
 -      // This method tests the loading of horizontally formatted Jronn output file\r
 +      // Potential Bug :- Sequence names are shortened to 2-3 letters\r
 +      @Test\r
 +      public void testReadFastaWriteClustal() {\r
 +              \r
 +              try {\r
 +                      FileInputStream fio = new FileInputStream(\r
 +                                      AllTestSuit.TEST_DATA_PATH + "TO1381.fasta");\r
 +                      assertNotNull(fio);\r
 +                      List<FastaSequence> fseqs = SequenceUtil.readFasta(fio);\r
 +                      assertNotNull(fseqs);\r
 +                      fio.close();\r
 +                      \r
 +                      char gapChar = '-';\r
 +                      FileOutputStream fou = new FileOutputStream(\r
 +                                      AllTestSuit.TEST_DATA_PATH + "TO1381.aln.written");\r
 +                      SequenceUtil.writeClustal(fou, fseqs, gapChar);\r
 +                      fou.close();\r
 +                      \r
 +              } catch (FileNotFoundException e) {\r
 +                      e.printStackTrace();\r
 +                      fail(e.getLocalizedMessage());\r
 +              } catch (IOException e) {\r
 +                      e.printStackTrace();\r
 +                      fail(e.getLocalizedMessage());\r
 +              }\r
-       }               \r
-               \r
-                       \r
++      }\r
 +\r
-                       \r
-       \r
 +      /**\r
 +       * This test tests the loading of horizontally formatted Jronn output file\r
 +       */\r
        @Test\r
-       public void loadJronnFile() {\r
+       public void LoadJronnFile() {\r
  \r
                FileInputStream fio;\r
                try {\r
                        fail(e.getMessage());\r
                }\r
        }\r
+       @Test\r
+       public void ReadJpredResults() {\r
+               try {\r
+                       InputStream inStream = new FileInputStream(AllTestSuit.TEST_DATA_PATH + "Jpred.test1.out");\r
+                       List<FastaSequence> result = SequenceUtil.readJpredFile(inStream);\r
+                       inStream.close();\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 19);\r
+               } catch (IOException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               }\r
+       }\r
  }\r
 +\r
@@@ -64,15 -43,9 +43,11 @@@ public class AllTestSuit 
        public static final String RUNNER_TEST_LOGGER = "RunnerLogger";\r
  \r
        public static final String test_input = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "TO1381.fasta";\r
\r
        public static final String test_alignment_input = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "TO1381.fasta.aln";\r
\r
        public static final String test_input_real = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "50x500Protein.fasta";\r
\r
        public static final String test_input_dna = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "3dnaseqs.fasta";\r
\r
        public static final String test_input_large = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "1000x3000Dna.fasta";\r
 +      \r
 +      public static final String test_input_aln = AllTestSuit.TEST_DATA_PATH_ABSOLUTE + "unfolded_RF00031.aln";\r
  \r
  }\r
@@@ -34,8 -35,8 +35,8 @@@ public class Category 
        public static final String CATEGORY_ALIGNMENT = "Alignment";\r
        public static final String CATEGORY_DISORDER = "Protein Disorder";\r
        public static final String CATEGORY_CONSERVATION = "Conservation";\r
-       public static final String CATEGORY_RNASTRUCT = "RNA Structure Prediction";\r
+       public static final String CATEGORY_PREDICTION = "Prediction";\r
 -      \r
 +\r
        public String name;\r
        Set<Services> services;\r
  \r
                disorder_services.add(Services.GlobPlotWS);\r
                disorder_services.add(Services.IUPredWS);\r
                disorder_services.add(Services.JronnWS);\r
\r
                Category disorder = new Category(CATEGORY_DISORDER, disorder_services);\r
\r
                Set<Services> conservation_services = new HashSet<Services>();\r
                conservation_services.add(Services.AAConWS);\r
+               Category conservation = new Category(CATEGORY_CONSERVATION, conservation_services);\r
  \r
-               Category conservation = new Category(CATEGORY_CONSERVATION,\r
-                               conservation_services);\r
+               Set<Services> prediction_services = new HashSet<Services>();\r
+               prediction_services.add(Services.JpredWS);\r
++              prediction_services.add(Services.RNAalifoldWS);\r
+               Category prediction = new Category(CATEGORY_PREDICTION, prediction_services);\r
  \r
-               Set<Services> rnastruct_services = new HashSet<Services>();\r
-               rnastruct_services.add(Services.RNAalifoldWS);\r
-               \r
-               Category rnastruct = new Category(CATEGORY_RNASTRUCT,\r
-                               rnastruct_services);\r
-               \r
                Set<Category> categories = new HashSet<Category>();\r
                categories.add(alignment);\r
                categories.add(disorder);\r
@@@ -509,18 -459,8 +460,8 @@@ public class Jws2Client 
                }\r
                return alignment;\r
        }\r
 -\r
 +      \r
        /**\r
-        * Prints Jws2Client usage information to standard out\r
-        * \r
-        * @param exitStatus\r
-        */\r
-       static void printUsage(int exitStatus) {\r
-               System.out.println(Constraints.help_text);\r
-               System.exit(exitStatus);\r
-       }\r
\r
-       /**\r
         * Starts command line client, if no parameter are supported print help. Two\r
         * parameters are required for successful call the JWS2 host name and a\r
         * service name.\r
@@@ -39,8 -39,7 +39,7 @@@ public enum Services 
         * Make sure this class has NO references to runners or engines as it is a\r
         * part of minimal client package. Such things should go into ServicesUtil\r
         */\r
-       MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS,\r
-       JronnWS, DisemblWS, GlobPlotWS, IUPredWS, RNAalifoldWS;\r
 -      MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS, JpredWS;\r
++      MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS, JpredWS, RNAalifoldWS;\r
  \r
        public static Services getService(String servName) {\r
                servName = servName.trim().toLowerCase();\r
                        case DisemblWS :\r
                        case GlobPlotWS :\r
                        case IUPredWS :\r
 +                      case RNAalifoldWS :\r
                                return SequenceAnnotation.class;\r
\r
-                               // deliberate leaking\r
+                       case JpredWS :\r
                        case ClustalWS :\r
                        case ClustalOWS :\r
                        case MafftWS :\r
                        case ProbconsWS :\r
                        case TcoffeeWS :\r
                                return MsaWS.class;\r
-                               \r
++\r
                        default :\r
-                               throw new RuntimeException("Unrecognised Web Service Type "\r
-                                               + this + " - Should never happened!");\r
+                               throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
                }\r
        }\r
  \r
+       \r
+       String getServiceNamespace() {\r
+               switch (this) {\r
 -                      case JpredWS :\r
++                      case RNAalifoldWS :\r
+                       case AAConWS :\r
+                       case JronnWS :\r
+                       case DisemblWS :\r
+                       case GlobPlotWS :\r
+                       case IUPredWS :\r
 -                      case ClustalOWS :\r
+                               return JABAService.V2_SERVICE_NAMESPACE;\r
++                      case ClustalOWS :\r
++                      case JpredWS :\r
+                       case ClustalWS :\r
+                       case MafftWS :\r
+                       case MuscleWS :\r
+                       case ProbconsWS :\r
+                       case TcoffeeWS :\r
+                               return JABAService.SERVICE_NAMESPACE;\r
+                       default :\r
+                               throw new RuntimeException("Unrecognised JABAWS Namespace for service " + this +"!");\r
+               }\r
+       }\r
+       \r
        JABAService getInterface(Service service) {\r
                assert service != null;\r
  \r
                                return PROBCONS_INFO;\r
                        case TcoffeeWS :\r
                                return TCOFFEE_INFO;\r
 +                      case RNAalifoldWS :\r
 +                              return RNAALIFOLD_INFO;\r
                        default :\r
-                               throw new RuntimeException("Unrecognised Web Service Type "\r
-                                               + this + " - Should never happened!");\r
+                               throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
                }\r
        }\r
  \r
                        MafftWS,\r
                        "Katoh, Toh 2010 (Bioinformatics 26:1899-1900)\r\n"\r
                                        + "Parallelization of the MAFFT multiple sequence alignment program. ",\r
-                       "6.8.57", "http://mafft.cbrc.jp/alignment/software/").toString();;\r
+                       "6.8.57", "http://mafft.cbrc.jp/alignment/software/").toString();\r
  \r
-       // TODO reference\r
 +      public static final String RNAALIFOLD_INFO = new ServiceInfo(\r
 +                      RNAalifoldWS,\r
 +                      "Ivo L. Hofacker, Martin Fekete, and Peter F. Stadler 'Secondary Structure Prediction"\r
 +                      + " for Aligned RNA Sequences'. J.Mol.Biol. 319: 1059-1066, 2002. Stephan H. Bernhart,"\r
 +                      + " Ivo L. Hofacker, Sebastian Will, Andreas R. Gruber, and Peter F. Stadler. "\r
 +                      + "'RNAalifold: Improved consensus structure prediction for RNA alignments'. BMC Bioinformatics, 9:474, 2008.\r\n",\r
-                       "2.1.2", "http://www.tbi.univie.ac.at/RNA/").toString();;\r
-                       \r
++                      "2.1.2", "http://www.tbi.univie.ac.at/RNA/").toString();\r
++\r
        @XmlAccessorType(XmlAccessType.FIELD)\r
        static class ServiceInfo {\r
                Services service;\r
        public static void main(String[] args) {\r
                System.out.println(MUSCLE_INFO);\r
        }\r
--}
++}\r
@@@ -54,12 -56,8 +57,10 @@@ public class ServicesUtil 
                                return Jronn.class;\r
                        case IUPredWS :\r
                                return IUPred.class;\r
 +                      case RNAalifoldWS :\r
 +                              return RNAalifold.class;\r
                        default :\r
-                               throw new RuntimeException(\r
-                                               "Unknown web service implementation class for service: "\r
-                                                               + service);\r
+                               throw new RuntimeException("Unknown web service implementation class for service: " + service);\r
                }\r
        }\r
  \r
@@@ -61,27 -62,22 +62,25 @@@ import compbio.util.Util
  public class WSTester {\r
  \r
        /**\r
-        * Sequences to be used as input for all WS\r
+        * Test sequences to be used as input for WS\r
         */\r
-       public static final String fastaInput = ">Foo\n"\r
-                       + "MTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV"\r
-                       + "\n>Bar\n"\r
-                       + "ASDAAPEHPGIALWLHALEDAGQAEAAAAYTRAHQLLPEEPYITAQLLNAVA\n";\r
\r
-       public static final String fastaAlignment = ">Foo\n"\r
-                       + "MTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV--------\n"\r
-                       + ">Bar\n"\r
-                       + "ASDAAPEH------------PGIALWLHALE-DAGQAEAAA---AYTRAHQLLPEEPYITAQLLNAVA\n"\r
-                       + "";\r
\r
-       public static final String fastaRNAAlignment = ">Foo\n"\r
-                       + "C-UUGCGUUAAUGAGAACAGAAACG-UAAA--CUAUAA-CCUAG-G-GGUUUCUGUUGGAUGGUUG----GCAAC\n"\r
-                       + ">Bar\n"\r
-                       + "G-UGGCGCUUAUGACGCAGUUGUCU-UAAA-CUCGAAC--UCGA-GCGGGCAAUUGCUGAU-UACGAUUAACCAC\n";\r
+       public static final String fastaInput2records = \r
+                       ">Foo\nMTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV\n"\r
+               +   ">Bar\nASDAAPEHPGIALWLHALEDAGQAEAAAAYTRAHQLLPEEPYITAQLLNAVA\n";\r
+       public static final String fastaInput1record = \r
+                       ">Foo\nMTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV\n";\r
+       public static final String fastaAlignment = \r
+                       ">Foo\nMTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAV--------\n"\r
+               +   ">Bar\nASDAAPEH------------PGIALWLHALE-DAGQAEAAA---AYTRAHQLLPEEPYITAQLLNAVA\n";\r
++      public static final String fastaRNAAlignment = \r
++                      ">Foo\nC-UUGCGUUAAUGAGAACAGAAACG-UAAA--CUAUAA-CCUAG-G-GGUUUCUGUUGGAUGGUUG----GCAAC\n"\r
++              +   ">Bar\nG-UGGCGCUUAUGACGCAGUUGUCU-UAAA-CUCGAAC--UCGA-GCGGGCAAUUGCUGAU-UACGAUUAACCAC\n";\r
  \r
+       /**\r
+        * Status strings\r
+        */\r
        private static final String FAILED = "FAILED";\r
        private static final String OK = "OK";\r
\r
        private static final String UNSUPPORTED = "UNSUPPORTED";\r
  \r
        /**\r
                        SequenceAnnotation<T> wservice, Services service) throws Exception {\r
                writer.print("Calling analyse.........");\r
  \r
-               List<FastaSequence> input = loadSeqs();\r
+               List<FastaSequence> input = loadSeqs(2);\r
 -              if (service == Services.AAConWS) {\r
 +              if (service == Services.AAConWS ) {\r
                        input = loadAlignment();\r
 +              } else if (service == Services.RNAalifoldWS) {\r
 +                      input = loadRNAAlignment();\r
                }\r
                boolean success = testDefaultAnalyse(input, wservice, null, null);\r
  \r
@@@ -190,11 -189,8 +208,9 @@@ public final class WSUtil 
                        throws ResultNotAvailableException {\r
                WSUtil.validateJobId(jobId);\r
                AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
-               ConfiguredExecutable<T> aacon = (ConfiguredExecutable<T>) asyncEngine\r
-                               .getResults(jobId);\r
-               \r
+               ConfiguredExecutable<T> aacon = (ConfiguredExecutable<T>) asyncEngine.getResults(jobId);\r
                ScoreManager mas = aacon.getResults();\r
 +              \r
                log.trace(jobId + " getConservation : " + mas);\r
                return mas;\r
        }\r
diff --cc wsbuild.xml
@@@ -28,7 -29,7 +29,8 @@@
        <property name="iupred.wsdl" location="${wsdl.dir}/IUPredWS.wsdl" />\r
        <property name="jronn.wsdl" location="${wsdl.dir}/JronnWS.wsdl" />\r
        <property name="registry.wsdl" location="${wsdl.dir}/RegistryWS.wsdl" />\r
 +      <property name="rnaalifold.wsdl" location="${wsdl.dir}/RNAalifold.wsdl" />  \r
\r
        <taskdef name="wsgen" onerror="report" classname="com.sun.tools.ws.ant.WsGen">\r
                <classpath refid="project.classpath" />\r
        </taskdef>\r
                                <classpath refid="classes.path" />\r
                                <classpath refid="project.classpath" />\r
                </wsgen>\r
-               \r
 +              <wsgen sei="compbio.ws.server.RNAalifoldWS"\r
 +                              sourcedestdir="${basedir}/webservices"\r
 +                              destdir="${classes}"\r
 +                              resourcedestdir="${wsdl.dir}"\r
 +                              keep="true" genwsdl="true"\r
 +                              extension="false"\r
 +                              xendorsed="true"\r
 +                              verbose="true">\r
 +                              <classpath refid="classes.path" />\r
 +                              <classpath refid="project.classpath" />\r
 +              </wsgen>\r
 +              \r
        </target>\r
 +              \r
  \r
        <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">\r
                <classpath refid="project.classpath" />\r
                                package="compbio.ws.client.stub" target="2.1"\r
                                quiet="false">\r
                        </wsimport>\r
-               \r
 +                      <wsimport wsdl="${rnaalifold.wsdl}" \r
 +                              sourcedestdir="${basedir}/webservices/" \r
 +                              keep="true" extension="false" \r
 +                              verbose="true" xnocompile="true" xendorsed="true"\r
 +                              package="compbio.ws.client.stub" target="2.1"\r
 +                              quiet="false">\r
 +                      </wsimport>\r
 +                      \r
                </target>\r
  \r
        <!-- \r