rusefi/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java

36 lines
1.3 KiB
Java
Raw Normal View History

package com.rusefi.core;
2020-05-30 13:08:18 -07:00
2020-07-24 12:16:20 -07:00
import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;
2020-05-30 13:08:18 -07:00
import java.util.concurrent.atomic.AtomicReference;
2023-09-26 19:28:26 -07:00
public interface rusEFIVersion {
2024-02-27 18:43:42 -08:00
int CONSOLE_VERSION = 20240227;
2023-09-26 19:28:26 -07:00
AtomicReference<String> firmwareVersion = new AtomicReference<>("N/A");
2020-07-24 12:16:20 -07:00
2023-09-26 19:28:26 -07:00
static long classBuildTimeMillis() {
2020-07-24 12:16:20 -07:00
Class<?> clazz = rusEFIVersion.class;
URL resource = clazz.getResource(clazz.getSimpleName() + ".class");
if (resource == null) {
throw new IllegalStateException("Failed to find class file for class: " +
clazz.getName());
}
if (resource.getProtocol().equals("file")) {
try {
return new File(resource.toURI()).lastModified();
} catch (URISyntaxException e) {
return 0;
}
} else if (resource.getProtocol().equals("jar")) {
String path = resource.getPath();
return new File(path.substring(5, path.indexOf("!"))).lastModified();
} else {
throw new IllegalArgumentException("Unhandled url protocol: " +
resource.getProtocol() + " for class: " +
2021-10-07 12:46:38 -07:00
clazz.getName() + " resource: " + resource);
2020-07-24 12:16:20 -07:00
}
}
2020-05-30 13:08:18 -07:00
}