Parses java versions to extract a consistent set of version parts
+ */ +public class JavaVersion +{ + /** + * Context attribute that can be set to target a different version of the jvm than the current runtime. + * Acceptable values should correspond to those returned by JavaVersion.getPlatform(). + */ + public static final String JAVA_TARGET_PLATFORM = "org.eclipse.jetty.javaTargetPlatform"; + + public static final JavaVersion VERSION = parse(System.getProperty("java.version")); + + public static JavaVersion parse(String v) + { + // $VNUM is a dot-separated list of integers of arbitrary length + String[] split = v.split("[^0-9]"); + int len = Math.min(split.length, 3); + int[] version = new int[len]; + for (int i = 0; i < len; i++) + { + try + { + version[i] = Integer.parseInt(split[i]); + } + catch (Throwable e) + { + len = i - 1; + break; + } + } + + return new JavaVersion( + v, + (version[0] >= 9 || len == 1) ? version[0] : version[1], + version[0], + len > 1 ? version[1] : 0, + len > 2 ? version[2] : 0); + } + + private final String version; + private final int platform; + private final int major; + private final int minor; + private final int micro; + + private JavaVersion(String version, int platform, int major, int minor, int micro) + { + this.version = version; + this.platform = platform; + this.major = major; + this.minor = minor; + this.micro = micro; + } + + /** + * @return the string from which this JavaVersion was created + */ + public String getVersion() + { + return version; + } + + /** + *Returns the Java Platform version, such as {@code 8} for JDK 1.8.0_92 and {@code 9} for JDK 9.2.4.
+ * + * @return the Java Platform version + */ + public int getPlatform() + { + return platform; + } + + /** + *Returns the major number version, such as {@code 1} for JDK 1.8.0_92 and {@code 9} for JDK 9.2.4.
+ * + * @return the major number version + */ + public int getMajor() + { + return major; + } + + /** + *Returns the minor number version, such as {@code 8} for JDK 1.8.0_92 and {@code 2} for JDK 9.2.4.
+ * + * @return the minor number version + */ + public int getMinor() + { + return minor; + } + + /** + *Returns the micro number version (aka security number), such as {@code 0} for JDK 1.8.0_92 and {@code 4} for JDK 9.2.4.
+ * + * @return the micro number version + */ + public int getMicro() + { + return micro; + } + + /** + *Returns the update number version, such as {@code 92} for JDK 1.8.0_92 and {@code 0} for JDK 9.2.4.
+ * + * @return the update number version + */ + @Deprecated + public int getUpdate() + { + return 0; + } + + /** + *Returns the remaining string after the version numbers, such as {@code -internal} for + * JDK 1.8.0_92-internal and {@code -ea} for JDK 9-ea, or {@code +13} for JDK 9.2.4+13.
+ * + * @return the remaining string after the version numbers + */ + @Deprecated + public String getSuffix() + { + return null; + } + + @Override + public String toString() + { + return version; + } +} diff --git a/history.txt b/history.txt index cffdb42d7..fcfe8b14d 100644 --- a/history.txt +++ b/history.txt @@ -1,6 +1,16 @@ +2020-11-17 zzz + * Jetty: + - Update to 9.3.29.v20201019 + - Patch to fix console not starting on Java 11.0.9.1 + +2020-11-17 zzz + * Wrapper: Add missing binaries for armv7 and aarch64 + to installer (ticket #2308) + 2020-11-16 zzz * GeoIP 2020-11-01 * I2NP: Don't extend DataStructureImpl, to save space + * Imagegen: Update zxing to 3.4.1 * Wrapper: Update to 3.5.44 2020-11-11 zzz diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 59b43357e..affa6f41b 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 13; + public final static long BUILD = 14; /** for example "-test" */ public final static String EXTRA = "-rc";