+
+ /**
+ * Initial logging information helper for various versions output
+ *
+ * @param prefix
+ * @param value
+ * @param defaultValue
+ */
+ private static void appendIfNotNull(StringBuilder sb, String prefix,
+ String value, String suffix, String defaultValue)
+ {
+ if (value == null && defaultValue == null)
+ {
+ return;
+ }
+ String line = prefix + (value != null ? value : defaultValue) + suffix;
+ sb.append(line);
+ }
+
+ /**
+ *
+ * @return Jalview version, build details and JVM platform version for console
+ */
+ public static String getVersionDetailsForConsole()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.append("Jalview Version: ");
+ sb.append(jalview.bin.Cache.getDefault("VERSION", "TEST"));
+ sb.append("\n");
+ sb.append("Jalview Installation: ");
+ sb.append(jalview.bin.Cache.getDefault("INSTALLATION", "unknown"));
+ sb.append("\n");
+ sb.append("Build Date: ");
+ sb.append(jalview.bin.Cache.getDefault("BUILD_DATE", "unknown"));
+ sb.append("\n");
+ sb.append("Java version: ");
+ sb.append(System.getProperty("java.version"));
+ sb.append("\n");
+ sb.append(System.getProperty("os.arch"));
+ sb.append(" ");
+ sb.append(System.getProperty("os.name"));
+ sb.append(" ");
+ sb.append(System.getProperty("os.version"));
+ sb.append("\n");
+ appendIfNotNull(sb, "Install4j version: ",
+ System.getProperty("sys.install4jVersion"), "\n", null);
+ appendIfNotNull(sb, "Install4j template version: ",
+ System.getProperty("installer_template_version"), "\n", null);
+ appendIfNotNull(sb, "Launcher version: ",
+ System.getProperty("launcher_version"), "\n", null);
+ LookAndFeel laf = UIManager.getLookAndFeel();
+ String lafName = laf == null ? "Not obtained" : laf.getName();
+ String lafClass = laf == null ? "unknown" : laf.getClass().getName();
+ sb.append("LookAndFeel: ");
+ sb.append(lafName);
+ sb.append(" (");
+ sb.append(lafClass);
+ sb.append(")\n");
+ // Not displayed in release version ( determined by possible version number
+ // regex 9[9.]*9[.-_a9]* )
+ if (Pattern.matches("^\\d[\\d\\.]*\\d[\\.\\-\\w]*$",
+ jalview.bin.Cache.getDefault("VERSION", "TEST")))
+ {
+ appendIfNotNull(sb, "Getdown appdir: ",
+ System.getProperty("getdownappdir"), "\n", null);
+ appendIfNotNull(sb, "Java home: ", System.getProperty("java.home"),
+ "\n", "unknown");
+ }
+ return sb.toString();
+ }
+
+ /**
+ *
+ * @return build details as reported in splashscreen
+ */
+ public static String getBuildDetailsForSplash()
+ {
+ // consider returning more human friendly info
+ // eg 'built from Source' or update channel
+ return jalview.bin.Cache.getDefault("INSTALLATION", "unknown");
+ }
+
+ public static String getStackTraceString(Throwable t)
+ {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ t.printStackTrace(pw);
+ return sw.toString();
+ }
+
+ // proxy properties methods
+ public static void resetProxyProperties()
+ {
+ setProxyProperties(startupProxyProperties[0], startupProxyProperties[1],
+ startupProxyProperties[2], startupProxyProperties[3]);
+ StringBuilder sb = new StringBuilder();
+ sb.append("Setting proxy properties to: http.proxyHost=")
+ .append(startupProxyProperties[0]).append(", http.proxyPort=")
+ .append(startupProxyProperties[1]).append(", https.proxyHost=")
+ .append(startupProxyProperties[2]).append(", https.proxyPort=")
+ .append(startupProxyProperties[3]);
+ if (Cache.log == null)
+ {
+ System.err.println(sb.toString());
+ }
+ else
+ {
+ Cache.log.debug(sb.toString());
+ }
+ }
+
+ public static void setProxyProperties(String host, String port)
+ {
+ setProxyProperties(host, port, host, port);
+ }
+
+ public static void setProxyProperties(String httpHost, String httpPort,
+ String httpsHost, String httpsPort)
+ {
+ // cannot set property to null -- use clearProperty instead
+
+ // http.proxyHost
+ if (httpHost == null)
+ {
+ System.clearProperty("http.proxyHost");
+ }
+ else
+ {
+ System.setProperty("http.proxyHost", httpHost);
+ }
+
+ // http.proxyPort
+ if (httpPort == null)
+ {
+ System.clearProperty("http.proxyPort");
+ }
+ else
+ {
+ System.setProperty("http.proxyPort", httpPort);
+ }
+
+ // https.proxyHost
+ if (httpsHost == null)
+ {
+ System.clearProperty("https.proxyHost");
+ }
+ else
+ {
+ System.setProperty("https.proxyHost", httpsHost);
+ }
+
+ // https.proxyPort
+ if (httpsPort == null)
+ {
+ System.clearProperty("https.proxyPort");
+ }
+ else
+ {
+ System.setProperty("https.proxyPort", httpsPort);
+ }
+
+ }