package com.hubspot.baragon.utils;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
import org.apache.commons.lang3.time.DurationFormatUtils;
import com.google.common.base.Joiner;
public class JavaUtils {
public static final Joiner COMMA_JOINER = Joiner.on(", ").skipNulls();
private JavaUtils() { }
public static String getHostAddress() throws Exception {
final Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
final NetworkInterface current = interfaces.nextElement();
if (!current.isUp() || current.isLoopback() || current.isVirtual()) {
continue;
}
final Enumeration<InetAddress> addresses = current.getInetAddresses();
while (addresses.hasMoreElements()) {
final InetAddress current_addr = addresses.nextElement();
if (current_addr.isLoopbackAddress()) {
continue;
}
if (current_addr instanceof Inet4Address) {
return current_addr.getHostAddress();
}
}
}
throw new RuntimeException("Couldn't deduce host address");
}
private static final String DURATION_FORMAT = "mm:ss.S";
public static String duration(final long start) {
return DurationFormatUtils.formatDuration(System.currentTimeMillis() - start, DURATION_FORMAT);
}
}