Utils.java
/*
* Copyright (C) 2021 B3Partners B.V.
*
* SPDX-License-Identifier: MIT
*/
package nl.b3p.brmo.bgt.loader;
import java.text.MessageFormat;
import java.time.Duration;
import java.time.Instant;
import java.util.ResourceBundle;
public class Utils {
public static String formatTimeSince(Instant start) {
return formatDuration(Duration.between(start, Instant.now()));
}
public static String formatDuration(Duration d) {
String days = d.toDaysPart() > 0 ? d.toDaysPart() + "d " : "";
if (d.toHoursPart() == 0 && d.toMinutesPart() == 0) {
return days + d.toSecondsPart() + "s";
} else if (d.toHoursPart() == 0) {
return String.format("%s%dm %2ds", days, d.toMinutesPart(), d.toSecondsPart());
}
return String.format(
"%s%dh %2dm %2ds", days, d.toHoursPart(), d.toMinutesPart(), d.toSecondsPart());
}
public static final String BUNDLE_NAME = "BGTLoader";
private static final ResourceBundle bundle = ResourceBundle.getBundle(BUNDLE_NAME);
public static ResourceBundle getBundle() {
return bundle;
}
public static String getBundleString(String key) {
return bundle.getString(key);
}
public static String getMessageFormattedString(String key, Object... args) {
ResourceBundle bundle = getBundle();
return new MessageFormat(bundle.getString(key), bundle.getLocale()).format(args);
}
public static String getLoaderVersion() {
return getBundleString("app.version");
}
public static String getBrmoVersion() {
return getBundleString("brmo.version");
}
public static String getUserAgent() {
return String.format(
"%s, %s (%s)/%s, %s/%s",
getBundleString("app.user-agent"),
System.getProperty("os.name"),
System.getProperty("os.arch"),
System.getProperty("os.version"),
System.getProperty("java.vm.name"),
System.getProperty("java.vm.version"));
}
}