summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-javacom <[email protected]>2025-09-29 10:16:05 +0300
committerrobot-javacom <[email protected]>2025-09-29 10:36:43 +0300
commite5d1d3a8bbbdfe5b7dd6020f5f4e68bcb6cfbaf4 (patch)
tree804a8346150cd8854a2b62b83803c90e5fa8e11a
parent4145772338d824a2163726ccd4df310b7057065e (diff)
Поддержать JDK 25 в аркадии
https://nda.ya.ru/t/8WYUG2pO7Kaaag commit_hash:5faed6ce4dc3add634be2e5b04f537573ff4c616
-rw-r--r--build/conf/java.conf36
-rw-r--r--build/mapping.conf.json10
-rw-r--r--build/platform/java/jdk/jdk25/jdk.json19
-rw-r--r--build/platform/java/jdk/jdk25/ya.make17
-rw-r--r--build/platform/java/jdk/ya.make4
-rw-r--r--build/plugins/java.py2
6 files changed, 82 insertions, 6 deletions
diff --git a/build/conf/java.conf b/build/conf/java.conf
index 160a7949e9e..bcce174f168 100644
--- a/build/conf/java.conf
+++ b/build/conf/java.conf
@@ -494,7 +494,7 @@ when($JDK_VERSION == "8") {
}
# tag:java-specific
-JDK_LATEST_VERSION=24
+JDK_LATEST_VERSION=25
JDK_LATEST_PEERDIR=build/platform/java/jdk/jdk${JDK_LATEST_VERSION}
# tag:java-specific
@@ -1213,7 +1213,7 @@ module JAR_LIBRARY: _COMPILABLE_JAR_BASE {
PEERDIR+=$ERROR_PRONE_PEERDIR
RUN_JAVAC_ARGS=--error-prone $ERROR_PRONE_RESOURCE/error_prone.jar
- when ($JDK_REAL_VERSION == "17" || $JDK_REAL_VERSION == "20" || $JDK_REAL_VERSION == "21" || $JDK_REAL_VERSION == "22" || $JDK_REAL_VERSION == "23" || $JDK_REAL_VERSION == "24") {
+ when ($JDK_REAL_VERSION == "17" || $JDK_REAL_VERSION == "20" || $JDK_REAL_VERSION == "21" || $JDK_REAL_VERSION == "22" || $JDK_REAL_VERSION == "23" || $JDK_REAL_VERSION == "24" || $JDK_REAL_VERSION == "25") {
JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16PLUS_ADD_OPENS
JAVAC_OPTS+=$ERROR_PRONE_JDK16PLUS_ADD_OPENS
_JAVAC_SEM+= && javac-flags $ERROR_PRONE_JDK16PLUS_ADD_OPENS
@@ -1382,8 +1382,10 @@ module _JAR_TEST: _COMPILABLE_JAR_BASE {
JDK_REAL_VERSION=
JDK_VERSION=
HAS_PER_MODULE_JDK_VERSION=no
-
-when ($JDK_VERSION == "24") {
+when ($JDK_VERSION == "25") {
+ JDK_REAL_VERSION=25
+}
+elsewhen ($JDK_VERSION == "24") {
JDK_REAL_VERSION=24
}
elsewhen ($JDK_VERSION == "23") {
@@ -1416,6 +1418,9 @@ when ($USE_SYSTEM_JDK) {
JDK_RESOURCE_PEERDIR=
}
otherwise {
+ when ($JDK_REAL_VERSION == "25") {
+ JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk25
+ }
when ($JDK_REAL_VERSION == "24") {
JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk24
}
@@ -1440,6 +1445,9 @@ otherwise {
}
# tag:java-specific
+when ($JDK_REAL_VERSION == "25") {
+ UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar25
+}
when ($JDK_REAL_VERSION == "24") {
UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar24
}
@@ -1469,6 +1477,9 @@ when ($USE_SYSTEM_JDK) {
JDK_RESOURCE=$USE_SYSTEM_JDK
}
otherwise {
+ when ($JDK_REAL_VERSION == "25") {
+ JDK_RESOURCE=$JDK25_RESOURCE_GLOBAL
+ }
when ($JDK_REAL_VERSION == "24") {
JDK_RESOURCE=$JDK24_RESOURCE_GLOBAL
}
@@ -1532,6 +1543,13 @@ when (!$USE_SYSTEM_ERROR_PRONE) {
JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_3_7_FORCED_OPTS
JAVAC_OPTS+=$ERROR_PRONE_2_3_7_FORCED_OPTS
}
+ elsewhen ($JDK_REAL_VERSION == "25") {
+ ERROR_PRONE_VERSION=2.41.0
+ ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.41.0
+ ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_41_0_RESOURCE_GLOBAL
+ JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_3_7_FORCED_OPTS
+ JAVAC_OPTS+=$ERROR_PRONE_2_3_7_FORCED_OPTS
+ }
otherwise {
ERROR_PRONE_VERSION=2.7.1
ERROR_PRONE_PEERDIR=build/platform/java/error_prone
@@ -1549,6 +1567,9 @@ when ($USE_SYSTEM_UBERJAR) {
UBERJAR_RESOURCE=$USE_SYSTEM_UBERJAR
}
otherwise {
+ when ($JDK_REAL_VERSION == "25") {
+ UBERJAR_RESOURCE=$UBERJAR25_RESOURCE_GLOBAL
+ }
when ($JDK_REAL_VERSION == "24") {
UBERJAR_RESOURCE=$UBERJAR24_RESOURCE_GLOBAL
}
@@ -1573,6 +1594,9 @@ otherwise {
}
# tag:java-specific
+when ($JDK_REAL_VERSION == "25") {
+ WITH_JDK_RESOURCE=$WITH_JDK25_RESOURCE_GLOBAL
+}
when ($JDK_REAL_VERSION == "24") {
WITH_JDK_RESOURCE=$WITH_JDK24_RESOURCE_GLOBAL
}
@@ -2240,10 +2264,10 @@ KOTLIN_JVM_TARGET=
when ($JDK_REAL_VERSION == "8") {
KOTLIN_JVM_TARGET=1.8
}
-elsewhen ($JDK_REAL_VERSION == "24") {
+elsewhen ($JDK_REAL_VERSION == "25") {
# remove when kotlin starts supporting jdk24 bytecode
# see also devtools/ya/jbuild/gen/actions/idea.py
- KOTLIN_JVM_TARGET=23
+ KOTLIN_JVM_TARGET=24
}
otherwise {
KOTLIN_JVM_TARGET=$JDK_REAL_VERSION
diff --git a/build/mapping.conf.json b/build/mapping.conf.json
index 15065b10f41..2e5fe788ba0 100644
--- a/build/mapping.conf.json
+++ b/build/mapping.conf.json
@@ -1350,6 +1350,7 @@
"9470950396": "{registry_endpoint}/9470950396",
"9470953132": "{registry_endpoint}/9470953132",
"9472685101": "{registry_endpoint}/9472685101",
+ "9827500942": "{registry_endpoint}/9827500942",
"5776379446": "{registry_endpoint}/5776379446",
"5777100597": "{registry_endpoint}/5777100597",
"5909067709": "{registry_endpoint}/5909067709",
@@ -1370,6 +1371,7 @@
"9470950188": "{registry_endpoint}/9470950188",
"9470952731": "{registry_endpoint}/9470952731",
"9472684959": "{registry_endpoint}/9472684959",
+ "9827500162": "{registry_endpoint}/9827500162",
"5776375952": "{registry_endpoint}/5776375952",
"5777098178": "{registry_endpoint}/5777098178",
"5909065014": "{registry_endpoint}/5909065014",
@@ -1390,6 +1392,7 @@
"9470949425": "{registry_endpoint}/9470949425",
"9470951956": "{registry_endpoint}/9470951956",
"9472684577": "{registry_endpoint}/9472684577",
+ "9827498529": "{registry_endpoint}/9827498529",
"5776374505": "{registry_endpoint}/5776374505",
"5777096988": "{registry_endpoint}/5777096988",
"5909063641": "{registry_endpoint}/5909063641",
@@ -1410,6 +1413,7 @@
"9470949154": "{registry_endpoint}/9470949154",
"9470951154": "{registry_endpoint}/9470951154",
"9472684317": "{registry_endpoint}/9472684317",
+ "9827497712": "{registry_endpoint}/9827497712",
"5776377955": "{registry_endpoint}/5776377955",
"5777099502": "{registry_endpoint}/5777099502",
"5909066324": "{registry_endpoint}/5909066324",
@@ -1430,6 +1434,7 @@
"9470949936": "{registry_endpoint}/9470949936",
"9470952456": "{registry_endpoint}/9470952456",
"9472684750": "{registry_endpoint}/9472684750",
+ "9827499366": "{registry_endpoint}/9827499366",
"7805449449": "{registry_endpoint}/7805449449",
"6391354461": "{registry_endpoint}/6391354461",
"7805449010": "{registry_endpoint}/7805449010",
@@ -3033,6 +3038,7 @@
"9470950396": "none-none-none-result_resources/jdk-darwin-aarch64.yandex.tgz",
"9470953132": "none-none-none-result_resources/jdk-darwin-aarch64.yandex.tgz",
"9472685101": "none-none-none-result_resources/jdk-darwin-aarch64.yandex.tgz",
+ "9827500942": "none-none-none-result_resources/jdk-darwin-aarch64.yandex.tgz",
"5776379446": "none-none-none-result_resources/jdk-darwin-x86_64.yandex.tgz",
"5777100597": "none-none-none-result_resources/jdk-darwin-x86_64.yandex.tgz",
"5909067709": "none-none-none-result_resources/jdk-darwin-x86_64.yandex.tgz",
@@ -3053,6 +3059,7 @@
"9470950188": "none-none-none-result_resources/jdk-darwin-x86_64.yandex.tgz",
"9470952731": "none-none-none-result_resources/jdk-darwin-x86_64.yandex.tgz",
"9472684959": "none-none-none-result_resources/jdk-darwin-x86_64.yandex.tgz",
+ "9827500162": "none-none-none-result_resources/jdk-darwin-x86_64.yandex.tgz",
"5776375952": "none-none-none-result_resources/jdk-linux-aarch64.yandex.tgz",
"5777098178": "none-none-none-result_resources/jdk-linux-aarch64.yandex.tgz",
"5909065014": "none-none-none-result_resources/jdk-linux-aarch64.yandex.tgz",
@@ -3073,6 +3080,7 @@
"9470949425": "none-none-none-result_resources/jdk-linux-aarch64.yandex.tgz",
"9470951956": "none-none-none-result_resources/jdk-linux-aarch64.yandex.tgz",
"9472684577": "none-none-none-result_resources/jdk-linux-aarch64.yandex.tgz",
+ "9827498529": "none-none-none-result_resources/jdk-linux-aarch64.yandex.tgz",
"5776374505": "none-none-none-result_resources/jdk-linux-x86_64.yandex.tgz",
"5777096988": "none-none-none-result_resources/jdk-linux-x86_64.yandex.tgz",
"5909063641": "none-none-none-result_resources/jdk-linux-x86_64.yandex.tgz",
@@ -3093,6 +3101,7 @@
"9470949154": "none-none-none-result_resources/jdk-linux-x86_64.yandex.tgz",
"9470951154": "none-none-none-result_resources/jdk-linux-x86_64.yandex.tgz",
"9472684317": "none-none-none-result_resources/jdk-linux-x86_64.yandex.tgz",
+ "9827497712": "none-none-none-result_resources/jdk-linux-x86_64.yandex.tgz",
"5776377955": "none-none-none-result_resources/jdk-windows-amd64.yandex.tgz",
"5777099502": "none-none-none-result_resources/jdk-windows-amd64.yandex.tgz",
"5909066324": "none-none-none-result_resources/jdk-windows-amd64.yandex.tgz",
@@ -3113,6 +3122,7 @@
"9470949936": "none-none-none-result_resources/jdk-windows-amd64.yandex.tgz",
"9470952456": "none-none-none-result_resources/jdk-windows-amd64.yandex.tgz",
"9472684750": "none-none-none-result_resources/jdk-windows-amd64.yandex.tgz",
+ "9827499366": "none-none-none-result_resources/jdk-windows-amd64.yandex.tgz",
"7805449449": "none-none-none-result_resources/protoc-linux-aarch_64.tgz",
"6391354461": "none-none-none-result_resources/protoc-linux-x86_64.tgz",
"7805449010": "none-none-none-result_resources/protoc-linux-x86_64.tgz",
diff --git a/build/platform/java/jdk/jdk25/jdk.json b/build/platform/java/jdk/jdk25/jdk.json
new file mode 100644
index 00000000000..c9616e93c69
--- /dev/null
+++ b/build/platform/java/jdk/jdk25/jdk.json
@@ -0,0 +1,19 @@
+{
+ "by_platform": {
+ "darwin-arm64": {
+ "uri": "sbr:9827500942"
+ },
+ "darwin-x86_64": {
+ "uri": "sbr:9827500162"
+ },
+ "linux-x86_64": {
+ "uri": "sbr:9827497712"
+ },
+ "linux-aarch64": {
+ "uri": "sbr:9827498529"
+ },
+ "win32-x86_64": {
+ "uri": "sbr:9827499366"
+ }
+ }
+}
diff --git a/build/platform/java/jdk/jdk25/ya.make b/build/platform/java/jdk/jdk25/ya.make
new file mode 100644
index 00000000000..f39cf86ebec
--- /dev/null
+++ b/build/platform/java/jdk/jdk25/ya.make
@@ -0,0 +1,17 @@
+RESOURCES_LIBRARY()
+
+DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE_BY_JSON(JDK25 jdk.json)
+SET_RESOURCE_URI_FROM_JSON(WITH_JDK25_URI jdk.json)
+
+IF (WITH_JDK25_URI)
+ DECLARE_EXTERNAL_RESOURCE(WITH_JDK25 ${WITH_JDK25_URI})
+ENDIF()
+
+END()
+
+IF (AUTOCHECK)
+ RECURSE_FOR_TESTS(ut)
+ENDIF()
+IF(YA_IDE_IDEA)
+ RECURSE_FOR_TESTS(ut)
+ENDIF()
diff --git a/build/platform/java/jdk/ya.make b/build/platform/java/jdk/ya.make
index 474ffa26a08..93bdc0a9738 100644
--- a/build/platform/java/jdk/ya.make
+++ b/build/platform/java/jdk/ya.make
@@ -3,6 +3,9 @@ RESOURCES_LIBRARY()
# Add new JDK to build/plugins/java.py (2 times)
IF(USE_SYSTEM_JDK)
MESSAGE(WARNING DEFAULT_JDK are disabled)
+ELSEIF(JDK_REAL_VERSION == "25")
+ DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE_BY_JSON(JDK_DEFAULT jdk25/jdk.json)
+ SET_RESOURCE_URI_FROM_JSON(WITH_JDK_URI jdk25/jdk.json)
ELSEIF(JDK_REAL_VERSION == "24")
DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE_BY_JSON(JDK_DEFAULT jdk24/jdk.json)
SET_RESOURCE_URI_FROM_JSON(WITH_JDK_URI jdk24/jdk.json)
@@ -42,6 +45,7 @@ RECURSE(
jdk22
jdk23
jdk24
+ jdk25
testing
)
diff --git a/build/plugins/java.py b/build/plugins/java.py
index 85d55d6de8b..0b85969a90e 100644
--- a/build/plugins/java.py
+++ b/build/plugins/java.py
@@ -72,6 +72,7 @@ def onjava_module(unit, *args):
'22',
'23',
'24',
+ '25',
):
data['ENABLE_PREVIEW'] = extract_macro_calls(unit, 'ENABLE_PREVIEW_VALUE', args_delim)
@@ -303,6 +304,7 @@ def on_jdk_version_macro_check(unit, *args):
'22',
'23',
'24',
+ '25',
)
if jdk_version not in available_versions:
ymake.report_configure_error(