Merge branch 'Jalview-BH/JAL-3026-JAL-3063-JAXB' into trialMerge
[jalview.git] / src / jalview / ext / ensembl / EnsemblRestClient.java
index e6b1264..97172fa 100644 (file)
@@ -20,6 +20,9 @@
  */
 package jalview.ext.ensembl;
 
+import jalview.bin.Jalview;
+import jalview.io.DataSourceType;
+import jalview.io.FileParse;
 import jalview.util.StringUtils;
 
 import java.io.BufferedReader;
@@ -64,13 +67,13 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher
    * @see https://github.com/Ensembl/ensembl-rest/wiki/Change-log
    * @see http://rest.ensembl.org/info/rest?content-type=application/json
    */
-  private static final String LATEST_ENSEMBLGENOMES_REST_VERSION = "6.0";
+  private static final String LATEST_ENSEMBLGENOMES_REST_VERSION = "7.0";
 
-  private static final String LATEST_ENSEMBL_REST_VERSION = "6.1";
+  private static final String LATEST_ENSEMBL_REST_VERSION = "7.0";
 
   private static final String REST_CHANGE_LOG = "https://github.com/Ensembl/ensembl-rest/wiki/Change-log";
 
-  private static Map<String, EnsemblInfo> domainData = new HashMap<>();
+  private static Map<String, EnsemblData> domainData;
 
   private final static long AVAILABILITY_RETEST_INTERVAL = 10000L; // 10 seconds
 
@@ -80,10 +83,10 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher
 
   static
   {
+    domainData = new HashMap<>();
     domainData.put(DEFAULT_ENSEMBL_BASEURL,
-            new EnsemblInfo(DEFAULT_ENSEMBL_BASEURL, LATEST_ENSEMBL_REST_VERSION));
-    domainData.put(DEFAULT_ENSEMBL_GENOMES_BASEURL,
-            new EnsemblInfo(
+            new EnsemblData(DEFAULT_ENSEMBL_BASEURL, LATEST_ENSEMBL_REST_VERSION));
+    domainData.put(DEFAULT_ENSEMBL_GENOMES_BASEURL, new EnsemblData(
             DEFAULT_ENSEMBL_GENOMES_BASEURL, LATEST_ENSEMBLGENOMES_REST_VERSION));
   }
 
@@ -102,11 +105,11 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher
     if (!domainData.containsKey(ensemblDomain))
     {
       domainData.put(ensemblDomain,
-              new EnsemblInfo(ensemblDomain, LATEST_ENSEMBL_REST_VERSION));
+              new EnsemblData(ensemblDomain, LATEST_ENSEMBL_REST_VERSION));
     }
     if (!domainData.containsKey(ensemblGenomesDomain))
     {
-      domainData.put(ensemblGenomesDomain, new EnsemblInfo(
+      domainData.put(ensemblGenomesDomain, new EnsemblData(
               ensemblGenomesDomain, LATEST_ENSEMBLGENOMES_REST_VERSION));
     }
   }
@@ -258,7 +261,8 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher
   }
 
   /**
-   * Sends the HTTP request and gets the response as a reader
+   * Sends the HTTP request and gets the response as a reader. Returns null if
+   * the HTTP response code was not 200.
    * 
    * @param url
    * @param ids
@@ -267,7 +271,6 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher
    *          in milliseconds
    * @return
    * @throws IOException
-   *           if response code was not 200, or other I/O error
    */
   protected BufferedReader getHttpResponse(URL url, List<String> ids,
           int readTimeout) throws IOException
@@ -334,12 +337,15 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher
     connection.setRequestProperty("Content-Type", getRequestMimeType());
     connection.setRequestProperty("Accept", getResponseMimeType());
 
-    connection.setUseCaches(false);
     connection.setDoInput(true);
     connection.setDoOutput(multipleIds);
 
-    connection.setConnectTimeout(CONNECT_TIMEOUT_MS);
-    connection.setReadTimeout(readTimeout);
+    if (!Jalview.isJS()) 
+    {
+      connection.setUseCaches(false);
+      connection.setConnectTimeout(CONNECT_TIMEOUT_MS);
+      connection.setReadTimeout(readTimeout);
+    }
 
     if (multipleIds)
     {
@@ -391,7 +397,7 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher
    */
   protected boolean isEnsemblAvailable()
   {
-    EnsemblInfo info = domainData.get(getDomain());
+    EnsemblData info = domainData.get(getDomain());
 
     long now = System.currentTimeMillis();
 
@@ -465,7 +471,7 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher
    */
   private void checkEnsemblRestVersion()
   {
-    EnsemblInfo info = domainData.get(getDomain());
+    EnsemblData info = domainData.get(getDomain());
 
     JSONParser jp = new JSONParser();
     URL url = null;