import jalview.bin.Console;
import jalview.bin.Jalview;
import jalview.util.ChannelProperties;
+import jalview.util.HttpUtils;
public class Plausible
{
- private static final String USER_AGENT = ChannelProperties
- .getProperty("app_name", "Jalview") + " "
- + Cache.getDefault("VERSION", "Unknown") + " "
- + MethodHandles.lookup().lookupClass() + " help@jalview.org";
+ private static final String USER_AGENT = HttpUtils.getUserAgent(
+ MethodHandles.lookup().lookupClass().getCanonicalName());
private static final String JALVIEW_ID = "Jalview Desktop";
Console.debug(
"Plausible: HTTP Request is: '" + urlSb.toString() + "'");
+ if (DEBUG)
+ {
+ Console.debug("Plausible: User-Agent is: '" + USER_AGENT + "'");
+ }
Console.debug("Plausible: POSTed JSON is:\n" + jsonString);
byte[] jsonBytes = jsonString.getBytes(StandardCharsets.UTF_8);
sb.append(response);
}
String body = sb.toString();
- Console.debug("Plausible response content; " + body);
+ Console.debug("Plausible response content:\n" + body);
}
} catch (MalformedURLException e)
{
{
headless = true;
}
- System.setProperty("http.agent",
- "Jalview Desktop/" + Cache.getDefault("VERSION", "Unknown"));
+ System.setProperty("http.agent", HttpUtils.getUserAgent());
try
{
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
{
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();
+ }
+
}