X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblRestClient.java;h=617ab21791de423b8f9467a8aac7e26cde274752;hb=00b73137cd165c4781c388b1230566986aed9213;hp=9dea886a2726461dfbb7c5d1628dbeb173667f1a;hpb=948bd3bcbacc509da0cefaae3eedd97300a6ccce;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblRestClient.java b/src/jalview/ext/ensembl/EnsemblRestClient.java index 9dea886..617ab21 100644 --- a/src/jalview/ext/ensembl/EnsemblRestClient.java +++ b/src/jalview/ext/ensembl/EnsemblRestClient.java @@ -20,8 +20,6 @@ */ package jalview.ext.ensembl; -import jalview.io.DataSourceType; -import jalview.io.FileParse; import jalview.util.StringUtils; import java.io.BufferedReader; @@ -62,21 +60,18 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher /* * update these constants when Jalview has been checked / updated for - * changes to Ensembl REST API (ref JAL-2105) + * changes to Ensembl REST API, and updated JAL-3018 * @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 = "10.0"; - private static final String LATEST_ENSEMBL_REST_VERSION = "6.1"; + private static final String LATEST_ENSEMBL_REST_VERSION = "10.0"; private static final String REST_CHANGE_LOG = "https://github.com/Ensembl/ensembl-rest/wiki/Change-log"; private static Map domainData; - // @see https://github.com/Ensembl/ensembl-rest/wiki/Output-formats - private static final String PING_URL = "http://rest.ensembl.org/info/ping.json"; - private final static long AVAILABILITY_RETEST_INTERVAL = 10000L; // 10 seconds private final static long VERSION_RETEST_INTERVAL = 1000L * 3600; // 1 hr @@ -156,22 +151,28 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher protected abstract boolean useGetRequest(); /** - * Return the desired value for the Content-Type request header - * - * @param multipleIds + * Returns the desired value for the Content-Type request header. Default is + * application/json, override if required to vary this. * * @return * @see https://github.com/Ensembl/ensembl-rest/wiki/HTTP-Headers */ - protected abstract String getRequestMimeType(boolean multipleIds); + protected String getRequestMimeType() + { + return "application/json"; + } /** - * Return the desired value for the Accept request header + * Return the desired value for the Accept request header. Default is + * application/json, override if required to vary this. * * @return * @see https://github.com/Ensembl/ensembl-rest/wiki/HTTP-Headers */ - protected abstract String getResponseMimeType(); + protected String getResponseMimeType() + { + return "application/json"; + } /** * Checks Ensembl's REST 'ping' endpoint, and returns true if response @@ -225,25 +226,20 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher } /** - * returns a reader to a Fasta response from the Ensembl sequence endpoint + * Returns a reader to a (Json) response from the Ensembl sequence endpoint. + * If the request failed the return value may be null. * * @param ids * @return * @throws IOException */ - protected FileParse getSequenceReader(List ids) throws IOException + protected BufferedReader getSequenceReader(List ids) + throws IOException { URL url = getUrl(ids); BufferedReader reader = getHttpResponse(url, ids); - if (reader == null) - { - // request failed - return null; - } - FileParse fp = new FileParse(reader, url.toString(), - DataSourceType.URL); - return fp; + return reader; } /** @@ -262,7 +258,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 @@ -271,7 +268,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 ids, int readTimeout) throws IOException @@ -335,8 +331,7 @@ abstract class EnsemblRestClient extends EnsemblSequenceFetcher boolean multipleIds = ids != null && ids.size() > 1; connection.setRequestMethod( multipleIds ? HttpMethod.POST : HttpMethod.GET); - connection.setRequestProperty("Content-Type", - getRequestMimeType(multipleIds)); + connection.setRequestProperty("Content-Type", getRequestMimeType()); connection.setRequestProperty("Accept", getResponseMimeType()); connection.setUseCaches(false);