git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' into patch/JAL-3088_finalbracenotinrightplace
[jalview.git]
/
src
/
jalview
/
ws
/
ebi
/
EBIFetchClient.java
diff --git
a/src/jalview/ws/ebi/EBIFetchClient.java
b/src/jalview/ws/ebi/EBIFetchClient.java
index
5dc3c94
..
3eef460
100644
(file)
--- a/
src/jalview/ws/ebi/EBIFetchClient.java
+++ b/
src/jalview/ws/ebi/EBIFetchClient.java
@@
-20,13
+20,15
@@
*/
package jalview.ws.ebi;
*/
package jalview.ws.ebi;
+import java.util.Locale;
+
import jalview.datamodel.DBRefSource;
import jalview.util.MessageManager;
import jalview.datamodel.DBRefSource;
import jalview.util.MessageManager;
+import jalview.util.Platform;
-import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileOutputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
@@
-91,7
+93,7
@@
public class EBIFetchClient
* the query formatted as db:query1;query2;query3
* @param format
* the format wanted
* the query formatted as db:query1;query2;query3
* @param format
* the format wanted
- * @param extension
+ * @param ext
* for the temporary file to hold response (without separator)
* @return the file holding the response
* @throws OutOfMemoryError
* for the temporary file to hold response (without separator)
* @return the file holding the response
* @throws OutOfMemoryError
@@
-134,8
+136,8
@@
public class EBIFetchClient
String database = parseIds(ids, querystring);
if (database == null)
{
String database = parseIds(ids, querystring);
if (database == null)
{
- System.err.println("Invalid Query string : '" + ids + "'");
- System.err.println("Should be of form 'dbname:q1;q2;q3;q4'");
+ jalview.bin.Console.errPrintln("Invalid Query string : '" + ids + "'");
+ jalview.bin.Console.errPrintln("Should be of form 'dbname:q1;q2;q3;q4'");
return null;
}
return null;
}
@@
-193,80
+195,83
@@
public class EBIFetchClient
* @param database
* @param format
* @param outFile
* @param database
* @param format
* @param outFile
- * @return
+ * @return array of lines from EBI only if outFile is null (which it will not
+ * be)
* @throws OutOfMemoryError
*/
String[] fetchBatch(String ids, String database, String format,
File outFile) throws OutOfMemoryError
{
* @throws OutOfMemoryError
*/
String[] fetchBatch(String ids, String database, String format,
File outFile) throws OutOfMemoryError
{
- // long time = System.currentTimeMillis();
String url = buildUrl(ids, database, format);
String url = buildUrl(ids, database, format);
-
+ InputStream is = null;
+ BufferedReader br = null;
try
{
URL rcall = new URL(url);
try
{
URL rcall = new URL(url);
-
HttpURLConnection conn = (HttpURLConnection) rcall.openConnection();
int responseCode = conn.getResponseCode();
HttpURLConnection conn = (HttpURLConnection) rcall.openConnection();
int responseCode = conn.getResponseCode();
- if (responseCode != 200)
- {
- System.err.println("Warning: response code " + responseCode
- + " for " + url);
- }
- InputStream is = new BufferedInputStream(conn.getInputStream());
- if (outFile != null)
+ if (responseCode == 200)
{
{
- /**@j2sNative
- * if (outFile._isTemp) {
- * outFile._bytes = is.$in.$in.buf;
- * return null;
- * }
- */
- FileOutputStream fio = new FileOutputStream(outFile);
- byte[] bb = new byte[32 * 1024];
- int l;
- while ((l = is.read(bb)) > 0)
+ is = conn.getInputStream();
+ if (outFile != null)
{
{
- fio.write(bb, 0, l);
+ Platform.streamToFile(is, outFile);
+ return null;
}
}
- fio.close();
- is.close();
- }
- else
- {
- BufferedReader br = new BufferedReader(new InputStreamReader(is));
+ br = new BufferedReader(new InputStreamReader(is));
String rtn;
String rtn;
- List<String> arl = new ArrayList<String>();
+ List<String> arl = new ArrayList<>();
while ((rtn = br.readLine()) != null)
{
arl.add(rtn);
}
while ((rtn = br.readLine()) != null)
{
arl.add(rtn);
}
- return arl.toArray(new String[arl.size()]);
+ return (String[]) arl.toArray();
}
}
+ jalview.bin.Console.errPrintln(
+ "Warning: response code " + responseCode + " for " + url);
} catch (OutOfMemoryError er)
{
} catch (OutOfMemoryError er)
{
- System.out.println("OUT OF MEMORY DOWNLOADING QUERY FROM " + database
+ jalview.bin.Console.outPrintln("OUT OF MEMORY DOWNLOADING QUERY FROM " + database
+ ":\n" + ids);
throw er;
} catch (Exception ex)
{
+ ":\n" + ids);
throw er;
} catch (Exception ex)
{
- if (ex.getMessage().startsWith(
+ if (!ex.getMessage().startsWith(
"uk.ac.ebi.jdbfetch.exceptions.DbfNoEntryFoundException"))
{
"uk.ac.ebi.jdbfetch.exceptions.DbfNoEntryFoundException"))
{
- return null;
+ jalview.bin.Console.errPrintln("Unexpected exception when retrieving from "
+ + database + "\nQuery was : '" + ids + "'");
+ ex.printStackTrace(System.err);
}
}
- System.err.println("Unexpected exception when retrieving from "
- + database + "\nQuery was : '" + ids + "'");
- ex.printStackTrace(System.err);
- return null;
} finally
{
} finally
{
- // System.err.println("EBIFetch took " + (System.currentTimeMillis() -
- // time) + " ms");
+ if (is != null)
+ {
+ try
+ {
+ is.close();
+ } catch (IOException e)
+ {
+ }
+ }
+ if (br != null)
+ {
+ try
+ {
+ br.close();
+ } catch (IOException e)
+ {
+ }
+ }
}
return null;
}
}
return null;
}
+ static
+ {
+ Platform.addJ2SDirectDatabaseCall("https://www.ebi.ac.uk/");
+ }
+
/**
* Constructs the URL to fetch from
*
/**
* Constructs the URL to fetch from
*
@@
-281,13
+286,14
@@
public class EBIFetchClient
if (database.equalsIgnoreCase(DBRefSource.EMBL)
|| database.equalsIgnoreCase(DBRefSource.EMBLCDS))
{
if (database.equalsIgnoreCase(DBRefSource.EMBL)
|| database.equalsIgnoreCase(DBRefSource.EMBLCDS))
{
- url = "https://www.ebi.ac.uk/ena/data/view/" + ids.toLowerCase()
- + (format != null ? "&" + format : "");
+ url = "https://www.ebi.ac.uk/ena/browser/api/embl/"
+ + ids.toLowerCase(Locale.ROOT) + "?download=true&gzip=true";
}
else
{
url = "https://www.ebi.ac.uk/Tools/dbfetch/dbfetch/"
}
else
{
url = "https://www.ebi.ac.uk/Tools/dbfetch/dbfetch/"
- + database.toLowerCase() + "/" + ids.toLowerCase()
+ + database.toLowerCase(Locale.ROOT) + "/"
+ + ids.toLowerCase(Locale.ROOT)
+ (format != null ? "/" + format : "");
}
return url;
+ (format != null ? "/" + format : "");
}
return url;