Merge pull request #8304 from eed3si9n/wip/runner

[1.x] Suppress JDK 25 warnings
This commit is contained in:
eugene yokota 2025-09-28 15:04:36 -04:00 committed by GitHub
commit 618ea851fe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 51 additions and 16 deletions

View File

@ -33,7 +33,9 @@ jobs:
uses: actions/setup-java@v5
with:
distribution: "zulu"
java-version: "8"
java-version: |
25
8
cache: sbt
- uses: sbt/setup-sbt@v1
with:
@ -55,12 +57,13 @@ jobs:
./client/target/bin/sbtn --sbt-script=$(pwd)/sbt about
./client/target/bin/sbtn --sbt-script=$(pwd)/sbt shutdown
# test launcher script
echo build using JDK 8 test using JDK 8 and JDK 11
echo build using JDK 8 test using JDK 8 and JDK 25
cd launcher-package
sbt -Dsbt.build.version=$TEST_SBT_VER rpm:packageBin debian:packageBin
sbt -Dsbt.build.version=$TEST_SBT_VER integrationTest/test
cd citest && ./test.sh
$HOME/bin/jabba install $JDK11 && exec $HOME/bin/jabba which --home $JDK11
JAVA_HOME="$JAVA_HOME_25_X64"
PATH="$JAVA_HOME_25_X64/bin:$PATH"
java -Xmx32m -version
./test.sh
- name: Client test (macOS)
@ -85,7 +88,7 @@ jobs:
./client/target/bin/sbtn --sbt-script=$(pwd)/launcher-package/src/universal/bin/sbt.bat about
./client/target/bin/sbtn --sbt-script=$(pwd)/launcher-package/src/universal/bin/sbt.bat shutdown
# test launcher script
echo build using JDK 8, test using JDK 8, on Windows
echo build using JDK 8 test using JDK 8 and JDK 25
cd launcher-package
bin/coursier.bat resolve
sbt -Dsbt.build.version=$TEST_SBT_VER integrationTest/test

View File

@ -1,3 +1,3 @@
-XX:+CMSClassUnloadingEnabled
#-XX:+CMSClassUnloadingEnabled
#-XX:ReservedCodeCacheSize=192m
#-Duser.timezone=GMT

View File

@ -27,19 +27,19 @@ lazy val root = (project in file("."))
assert(ys.size == 1, s"ys has more than one item: $ys")
assert(ys(0) startsWith "Java HotSpot(TM) 64-Bit Server VM warning")
},
checkNumericVersion = {
checkNumericVersion := {
val xs = IO.readLines(file("numericVersion.txt")).toVector
val expectedVersion = "^"+versionRegEx+"$"
assert(xs(0).matches(expectedVersion))
},
checkScriptVersion = {
checkScriptVersion := {
val xs = IO.readLines(file("scriptVersion.txt")).toVector
val expectedVersion = "^"+versionRegEx+"$"
assert(xs(0).matches(expectedVersion))
},
checkVersion = {
checkVersion := {
val out = IO.readLines(file("version.txt")).toVector.mkString("\n")
val expectedVersion =

View File

@ -2,16 +2,18 @@
SETLOCAL
SET JAVA_HOME=C:\jdk11
SET PATH=C:\jdk11\bin;%PATH%
SET JAVA_HOME=%JAVA_HOME_25_X64%
SET PATH=%JAVA_HOME_25_X64%\bin;%PATH%
SET SBT_OPTS=-Xmx4g -Dfile.encoding=UTF8
SET BASE_DIR=%CD%
SET SCRIPT_DIR=%~dp0
CD %SCRIPT_DIR%
"%BASE_DIR%freshly-baked\sbt\bin\sbt" about 1> output.txt 2> err.txt
"%BASE_DIR%freshly-baked\sbt\bin\sbt" check
"%BASE_DIR%\freshly-baked\sbt\bin\sbt" about 1> output.txt 2> err.txt
"%BASE_DIR%\freshly-baked\sbt\bin\sbt" check
CD %BASE_DIR%
ENDLOCAL
IF %errorlevel% NEQ 0 EXIT /b %errorlevel%

View File

@ -39,6 +39,7 @@ set sbt_args_color=
set sbt_args_no_colors=
set sbt_args_no_global=
set sbt_args_no_share=
set sbt_args_no_hide_jdk_warnings=
set sbt_args_sbt_jar=
set sbt_args_ivy=
set sbt_args_supershell=
@ -231,6 +232,14 @@ if defined _no_server_arg (
goto args_loop
)
if "%~0" == "--no-hide-jdk-warnings" set _no_hide_jdk_warnings=true
if defined _no_hide_jdk_warnings (
set _no_hide_jdk_warnings=
set sbt_args_no_hide_jdk_warnings=1
goto args_loop
)
if "%~0" == "-no-global" set _no_global_arg=true
if "%~0" == "--no-global" set _no_global_arg=true
@ -677,6 +686,12 @@ if defined sbt_args_no_server (
set _SBT_OPTS=-Dsbt.io.virtual=false -Dsbt.server.autostart=false !_SBT_OPTS!
)
if not defined sbt_args_no_hide_jdk_warnings (
if /I !JAVA_VERSION! EQU 25 (
set _SBT_OPTS=--sun-misc-unsafe-memory-access=allow --enable-native-access=ALL-UNNAMED !_SBT_OPTS!
)
)
rem TODO: _SBT_OPTS needs to be processed as args and diffed against SBT_ARGS
if !sbt_args_print_sbt_version! equ 1 (

23
sbt
View File

@ -28,6 +28,7 @@ declare sbtn_command="$SBTN_CMD"
declare sbtn_version="1.11.6"
declare use_colors=1
declare is_this_dir_sbt=""
declare hide_jdk_warnings=1
### ------------------------------- ###
### Helper methods for BASH scripts ###
@ -85,7 +86,7 @@ CYGWIN_FLAG=$(if is_cygwin; then echo true; else echo false; fi)
# windows style paths.
cygwinpath() {
local file="$1"
if [[ "$CYGWIN_FLAG" == "true" ]]; then #"
if [[ "$CYGWIN_FLAG" == "true" ]]; then
echo $(cygpath -w $file)
else
echo $file
@ -114,7 +115,7 @@ echoerr_error () {
echoerr -e "[${RED}error${NC}] $@"
else
echoerr "[error] $@"
fi
fi #"
}
vlog () {
[[ $sbt_verbose || $sbt_debug ]] && echoerr "$@"
@ -347,6 +348,18 @@ addSbtScriptProperty () {
fi
}
addJdkWorkaround () {
local is_25="$(expr $java_version "=" 25)"
if [[ "$hide_jdk_warnings" == "0" ]]; then
:
else
if [[ "$is_25" == "1" ]]; then
addJava "--sun-misc-unsafe-memory-access=allow"
addJava "--enable-native-access=ALL-UNNAMED"
fi
fi
}
require_arg () {
local type="$1"
local opt="$2"
@ -532,7 +545,7 @@ run() {
copyRt
# If we're in cygwin, we should use the windows config, and terminal hacks
if [[ "$CYGWIN_FLAG" == "true" ]]; then #"
if [[ "$CYGWIN_FLAG" == "true" ]]; then
stty -icanon min 1 -echo > /dev/null 2>&1
addJava "-Djline.terminal=jline.UnixTerminal"
addJava "-Dsbt.cygwin=true"
@ -572,7 +585,7 @@ run() {
exit_code=$?
# Clean up the terminal from cygwin hacks.
if [[ "$CYGWIN_FLAG" == "true" ]]; then #"
if [[ "$CYGWIN_FLAG" == "true" ]]; then
stty icanon echo > /dev/null 2>&1
fi
exit $exit_code
@ -705,6 +718,7 @@ process_args () {
-client|--client) use_sbtn=1 && shift ;;
--server) use_sbtn=0 && shift ;;
--jvm-client) use_sbtn=0 && use_jvm_client=1 && addSbt "--client" && shift ;;
--no-hide-jdk-warnings) hide_jdk_warnings=0 && shift ;;
-mem|--mem) require_arg integer "$1" "$2" && addMemory "$2" && shift 2 ;;
-jvm-debug|--jvm-debug) require_arg port "$1" "$2" && addDebugger $2 && shift 2 ;;
@ -867,6 +881,7 @@ else
vlog "[process_args] java_version = '$java_version'"
addDefaultMemory
addSbtScriptProperty
addJdkWorkaround
set -- "${residual_args[@]}"
argumentCount=$#
run