./build.gradle

Print this page
rev 9457 : 8133750: Parse new JDK version string format in build.gradle
Reviewed-by:

*** 208,217 **** --- 208,240 ---- } finally { try { propStream.close() } catch (Exception e) { } } } + String[] parseJavaVersion(String jRuntimeVersion) { + def jVersion = jRuntimeVersion.split("[-\\+]")[0] + def tmpBuildNumber = "0" + if (jVersion.startsWith("1.")) { + // This is a pre-JEP-223 version string + def dashbIdx = jRuntimeVersion.lastIndexOf("-b") + if (dashbIdx != -1) { + tmpBuildNumber = jRuntimeVersion.substring(dashbIdx + 2) + } + } else { + // This is a post-JEP-223 version string + def plusIdx = jRuntimeVersion.indexOf("+") + if (plusIdx != -1) { + tmpBuildNumber = jRuntimeVersion.substring(plusIdx + 1) + } + } + def jBuildNumber = tmpBuildNumber.split("[-\\+]")[0] + def versionInfo = new String[2]; + versionInfo[0] = jVersion + versionInfo[1] = jBuildNumber + return versionInfo + } + /** * Fails the build with the specified error message * * @param msg the reason for the failure */
*** 276,287 **** defineProperty("JAVAH", cygpath("$JDK_HOME/bin/javah${IS_WINDOWS ? '.exe' : ''}")) defineProperty("JAVADOC", cygpath("$JDK_HOME/bin/javadoc${IS_WINDOWS ? '.exe' : ''}")) defineProperty("JDK_DOCS", "https://docs.oracle.com/javase/8/docs/api/") defineProperty("javaRuntimeVersion", System.getProperty("java.runtime.version")) ! defineProperty("javaVersion", javaRuntimeVersion.split("-")[0]) ! defineProperty("javaBuildNumber", javaRuntimeVersion.substring(javaRuntimeVersion.lastIndexOf("-b") + 2)) loadProperties("$projectDir/build.properties") def String closedCacheStubRuntime = cygpath("$projectDir") + "/../caches/sdk/rt" defineProperty("STUB_RUNTIME", BUILD_CLOSED ? closedCacheStubRuntime : cygpath("$JDK_HOME/jre")) --- 299,311 ---- defineProperty("JAVAH", cygpath("$JDK_HOME/bin/javah${IS_WINDOWS ? '.exe' : ''}")) defineProperty("JAVADOC", cygpath("$JDK_HOME/bin/javadoc${IS_WINDOWS ? '.exe' : ''}")) defineProperty("JDK_DOCS", "https://docs.oracle.com/javase/8/docs/api/") defineProperty("javaRuntimeVersion", System.getProperty("java.runtime.version")) ! def javaVersionInfo = parseJavaVersion(javaRuntimeVersion) ! defineProperty("javaVersion", javaVersionInfo[0]) ! defineProperty("javaBuildNumber", javaVersionInfo[1]) loadProperties("$projectDir/build.properties") def String closedCacheStubRuntime = cygpath("$projectDir") + "/../caches/sdk/rt" defineProperty("STUB_RUNTIME", BUILD_CLOSED ? closedCacheStubRuntime : cygpath("$JDK_HOME/jre"))
*** 751,773 **** // java version "1.7.0_45" // Java(TM) SE Runtime Environment (build 1.7.0_45-b18) // Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) // // We need to parse the second line ! def inStream = new java.io.BufferedReader(new java.io.InputStreamReader(new java.lang.ProcessBuilder(JAVA, "-version").start().getErrorStream())); try { ! if (inStream.readLine() != null) { ! String v = inStream.readLine(); if (v != null) { ! int ib = v.indexOf(" (build "); if (ib != -1) { ! String ver = v.substring(ib + 8, v.size() - 1); defineProperty("jdkRuntimeVersion", ver) ! defineProperty("jdkVersion", jdkRuntimeVersion.split("-")[0]) ! defineProperty("jdkBuildNumber", jdkRuntimeVersion.substring(jdkRuntimeVersion.lastIndexOf("-b") + 2)) ! } } } } finally { inStream.close(); } --- 775,797 ---- // java version "1.7.0_45" // Java(TM) SE Runtime Environment (build 1.7.0_45-b18) // Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) // // We need to parse the second line ! def inStream = new java.io.BufferedReader(new java.io.InputStreamReader(new java.lang.ProcessBuilder(JAVA, "-fullversion").start().getErrorStream())); try { ! String v = inStream.readLine().trim(); if (v != null) { ! int ib = v.indexOf("full version \""); if (ib != -1) { ! String str = v.substring(ib); ! String ver = str.substring(str.indexOf("\"") + 1, str.size() - 1); defineProperty("jdkRuntimeVersion", ver) ! def jdkVersionInfo = parseJavaVersion(ver) ! defineProperty("jdkVersion", jdkVersionInfo[0]) ! defineProperty("jdkBuildNumber", jdkVersionInfo[1]) } } } finally { inStream.close(); }
*** 826,836 **** logger.quiet("java version: ${javaVersion}") logger.quiet("java build number: ${javaBuildNumber}") logger.quiet("jdk.runtime.version: ${jdkRuntimeVersion}") logger.quiet("jdk version: ${jdkVersion}") logger.quiet("jdk build number: ${jdkBuildNumber}") ! logger.quiet("minimum java build number: ${jfxBuildJdkBuildnumMin}") logger.quiet("CONF: $CONF") logger.quiet("NUM_COMPILE_THREADS: $NUM_COMPILE_THREADS") logger.quiet("COMPILE_TARGETS: $COMPILE_TARGETS") logger.quiet("COMPILE_FLAGS_FILES: $COMPILE_FLAGS_FILES") logger.quiet("HUDSON_JOB_NAME: $HUDSON_JOB_NAME") --- 850,861 ---- logger.quiet("java version: ${javaVersion}") logger.quiet("java build number: ${javaBuildNumber}") logger.quiet("jdk.runtime.version: ${jdkRuntimeVersion}") logger.quiet("jdk version: ${jdkVersion}") logger.quiet("jdk build number: ${jdkBuildNumber}") ! logger.quiet("minimum jdk version: ${jfxBuildJdkVersion}") ! logger.quiet("minimum jdk build number: ${jfxBuildJdkBuildnumMin}") logger.quiet("CONF: $CONF") logger.quiet("NUM_COMPILE_THREADS: $NUM_COMPILE_THREADS") logger.quiet("COMPILE_TARGETS: $COMPILE_TARGETS") logger.quiet("COMPILE_FLAGS_FILES: $COMPILE_FLAGS_FILES") logger.quiet("HUDSON_JOB_NAME: $HUDSON_JOB_NAME")
*** 1048,1058 **** */ List parseJdkVersion(String version) { def arr = version.split("[_\\.]"); def intArr = []; arr.each { s -> intArr += Integer.parseInt(s); } ! if (intArr.size() < 4) intArr += 0; return intArr; } /** * Returns -1, 0, or 1 depending on whether JDK version "a" is less than, --- 1073,1083 ---- */ List parseJdkVersion(String version) { def arr = version.split("[_\\.]"); def intArr = []; arr.each { s -> intArr += Integer.parseInt(s); } ! while (intArr.size() < 4) intArr += 0; return intArr; } /** * Returns -1, 0, or 1 depending on whether JDK version "a" is less than,
*** 1076,1086 **** if (status < 0) { fail("java version mismatch: JDK version (${jdkVersion}) < minimum version (${jfxBuildJdkVersion})") } else if (status == 0) { def buildNum = Integer.parseInt(jdkBuildNumber) def minBuildNum = Integer.parseInt(jfxBuildJdkBuildnumMin) ! if (buildNum < minBuildNum) { fail("JDK build number ($buildNum) < minimum build number ($minBuildNum)") } } } } --- 1101,1111 ---- if (status < 0) { fail("java version mismatch: JDK version (${jdkVersion}) < minimum version (${jfxBuildJdkVersion})") } else if (status == 0) { def buildNum = Integer.parseInt(jdkBuildNumber) def minBuildNum = Integer.parseInt(jfxBuildJdkBuildnumMin) ! if (buildNum != 0 && buildNum < minBuildNum) { fail("JDK build number ($buildNum) < minimum build number ($minBuildNum)") } } } }