Merge branch 'releases/Release_2_11_3_Branch'
[jalview.git] / src / jalview / util / HttpUtils.java
index 5473f5a..5438d4e 100644 (file)
@@ -25,10 +25,11 @@ import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.ProtocolException;
 import java.net.URL;
-import java.util.List;
 
 import javax.ws.rs.HttpMethod;
 
+import jalview.bin.Cache;
+
 public class HttpUtils
 {
 
@@ -73,10 +74,10 @@ public class HttpUtils
   {
     return file.startsWith("http://") || file.startsWith("https://");
   }
-  
 
   /**
    * wrapper to get/post to a URL or check headers
+   * 
    * @param url
    * @param ids
    * @param readTimeout
@@ -84,10 +85,10 @@ public class HttpUtils
    * @throws IOException
    * @throws ProtocolException
    */
-  public static boolean checkUrlAvailable(URL url,
-          int readTimeout) throws IOException, ProtocolException
+  public static boolean checkUrlAvailable(URL url, int readTimeout)
+          throws IOException, ProtocolException
   {
-    // System.out.println(System.currentTimeMillis() + " " + url);
+    // jalview.bin.Console.outPrintln(System.currentTimeMillis() + " " + url);
 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
 
@@ -101,4 +102,46 @@ public class HttpUtils
     return connection.getResponseCode() == 200;
   }
 
+  public static String getUserAgent()
+  {
+    return getUserAgent(null);
+  }
+
+  public static String getUserAgent(String className)
+  {
+    StringBuilder sb = new StringBuilder();
+    sb.append("Jalview");
+    sb.append('/');
+    sb.append(Cache.getDefault("VERSION", "Unknown"));
+    sb.append(" (");
+    sb.append(System.getProperty("os.name"));
+    sb.append("; ");
+    sb.append(System.getProperty("os.arch"));
+    sb.append(' ');
+    sb.append(System.getProperty("os.name"));
+    sb.append(' ');
+    sb.append(System.getProperty("os.version"));
+    sb.append("; ");
+    sb.append("java/");
+    sb.append(System.getProperty("java.version"));
+    sb.append("; ");
+    sb.append("jalview/");
+    sb.append(ChannelProperties.getProperty("channel"));
+    if (className != null)
+    {
+      sb.append("; ");
+      sb.append(className);
+    }
+    String installation = Cache.applicationProperties
+            .getProperty("INSTALLATION");
+    if (installation != null)
+    {
+      sb.append("; ");
+      sb.append(installation);
+    }
+    sb.append(')');
+    sb.append(" help@jalview.org");
+    return sb.toString();
+  }
+
 }