KMT-2945 cherry-pick kryo and obejenesis changes from 866a7800af4e299b6bc5bc2f000f616377ab135d

Only cherrypiciking the bare minimum required for KMP plugin to run on AS 262 without unnecesarily affecting other products.

GitOrigin-RevId: cd57c7fe13175c75d372476c19b5e02b35222ac1
This commit is contained in:
Jan Kleprlik
2026-09-07 11:04:15 +00:00
committed by intellij-monorepo-bot
parent 03d73bbc24
commit a14c079dc6
10 changed files with 196 additions and 2 deletions
+1
View File
@@ -1067,6 +1067,7 @@
<module fileurl="file://$PROJECT_DIR$/libraries/kotlinx/serialization/core/intellij.libraries.kotlinx.serialization.core.iml" filepath="$PROJECT_DIR$/libraries/kotlinx/serialization/core/intellij.libraries.kotlinx.serialization.core.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/kotlinx/serialization/json/intellij.libraries.kotlinx.serialization.json.iml" filepath="$PROJECT_DIR$/libraries/kotlinx/serialization/json/intellij.libraries.kotlinx.serialization.json.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/kotlinx/serialization/protobuf/intellij.libraries.kotlinx.serialization.protobuf.iml" filepath="$PROJECT_DIR$/libraries/kotlinx/serialization/protobuf/intellij.libraries.kotlinx.serialization.protobuf.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/kryo2/intellij.libraries.kryo2.iml" filepath="$PROJECT_DIR$/libraries/kryo2/intellij.libraries.kryo2.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/kryo5/intellij.libraries.kryo5.iml" filepath="$PROJECT_DIR$/libraries/kryo5/intellij.libraries.kryo5.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/ktor/client/intellij.libraries.ktor.client.iml" filepath="$PROJECT_DIR$/libraries/ktor/client/intellij.libraries.ktor.client.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/ktor/client-cio/intellij.libraries.ktor.client.cio.iml" filepath="$PROJECT_DIR$/libraries/ktor/client-cio/intellij.libraries.ktor.client.cio.iml" />
+1
View File
@@ -494,6 +494,7 @@ libraries/kotlinx/serialization/cbor
libraries/kotlinx/serialization/core
libraries/kotlinx/serialization/json
libraries/kotlinx/serialization/protobuf
libraries/kryo2
libraries/kryo5
libraries/ktor/client
libraries/ktor/client-cio
+45
View File
@@ -12444,6 +12444,51 @@ jvm_import(
visibility = ["//visibility:public"],
)
copy_file(
name = "com.esotericsoftware.kryo/kryo-2.24.0.jar_copy",
src = "@com_esotericsoftware_kryo-kryo-2_24_0_http//file",
out = "com.esotericsoftware.kryo/kryo-2.24.0.jar",
allow_symlink = True,
visibility = ["//visibility:public"],
)
copy_file(
name = "com.esotericsoftware.minlog/minlog-1.2.jar_copy",
src = "@com_esotericsoftware_minlog-minlog-1_2_http//file",
out = "com.esotericsoftware.minlog/minlog-1.2.jar",
allow_symlink = True,
visibility = ["//visibility:public"],
)
java_library(
name = "libraries-kryo2-_kryo",
visibility = ["//visibility:public"],
exports = [
# do not sort,
":com_esotericsoftware_kryo-kryo-2_24_0_http_import",
":com_esotericsoftware_minlog-minlog-1_2_http_import",
],
)
jvm_import(
name = "com_esotericsoftware_kryo-kryo-2_24_0_http_import",
jar = "@com_esotericsoftware_kryo-kryo-2_24_0_http//file",
source_jar = "@com_esotericsoftware_kryo-kryo-2_24_0-sources_http//file",
)
jvm_import(
name = "com_esotericsoftware_minlog-minlog-1_2_http_import",
jar = "@com_esotericsoftware_minlog-minlog-1_2_http//file",
source_jar = "@com_esotericsoftware_minlog-minlog-1_2-sources_http//file",
)
jvm_import(
name = "libraries-kryo2-_objenesis",
jar = "@org_objenesis-objenesis-3_4_http//file",
source_jar = "@org_objenesis-objenesis-3_4-sources_http//file",
visibility = ["//visibility:public"],
)
copy_file(
name = "com.esotericsoftware/kryo5-5.6.0.jar_copy",
src = "@com_esotericsoftware-kryo5-5_6_0_http//file",
+28
View File
@@ -9772,6 +9772,34 @@ http_file(
url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-protobuf-jvm/1.9.0/kotlinx-serialization-protobuf-jvm-1.9.0-sources.jar",
)
http_file(
name = "com_esotericsoftware_kryo-kryo-2_24_0_http",
downloaded_file_path = "kryo-2.24.0.jar",
sha256 = "7e56b32c635058f9aa2820f88919ab702d029cbcd15285da9992e36cc0ae52f2",
url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/com/esotericsoftware/kryo/kryo/2.24.0/kryo-2.24.0.jar",
)
http_file(
name = "com_esotericsoftware_minlog-minlog-1_2_http",
downloaded_file_path = "minlog-1.2.jar",
sha256 = "a678cb1aa8f5d03d901c992c75741841d98a9bc3d55dad02e84d65315c4e60f2",
url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/com/esotericsoftware/minlog/minlog/1.2/minlog-1.2.jar",
)
http_file(
name = "com_esotericsoftware_kryo-kryo-2_24_0-sources_http",
downloaded_file_path = "kryo-2.24.0-sources.jar",
sha256 = "617593f9253ee4246db001641630359df8a8ed9f306a1590e54d6cc091b37439",
url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/com/esotericsoftware/kryo/kryo/2.24.0/kryo-2.24.0-sources.jar",
)
http_file(
name = "com_esotericsoftware_minlog-minlog-1_2-sources_http",
downloaded_file_path = "minlog-1.2-sources.jar",
sha256 = "7c9f5c5b4a541ed9669de73bdc8afbade8cf45e2bbe36c1bd420f74533eedaa8",
url = "https://cache-redirector.jetbrains.com/repo1.maven.org/maven2/com/esotericsoftware/minlog/minlog/1.2/minlog-1.2-sources.jar",
)
http_file(
name = "com_esotericsoftware-kryo5-5_6_0_http",
downloaded_file_path = "kryo5-5.6.0.jar",
+55
View File
@@ -0,0 +1,55 @@
load("@rules_jvm//:jvm.bzl", "jvm_library")
### auto-generated section `build intellij.libraries.kryo2` start
jvm_library(
name = "kryo2",
srcs = glob(
[],
allow_empty = True,
),
module_name = "intellij.libraries.kryo2",
resource_strip_prefix = "resources",
resources = glob(
["resources/**/*"],
),
visibility = ["//visibility:public"],
exports = [
# do not sort,
"@lib//:libraries-kryo2-_kryo",
"@lib//:libraries-kryo2-_objenesis",
],
runtime_deps = [
# do not sort,
"@lib//:libraries-kryo2-_kryo",
"@lib//:libraries-kryo2-_objenesis",
],
)
jvm_library(
name = "kryo2_test_lib",
testonly = True,
srcs = glob(
[],
allow_empty = True,
),
kotlinc_opts = "@community//:k8",
module_name = "intellij.libraries.kryo2",
visibility = ["//visibility:public"],
exports = [
# do not sort,
"@lib//:libraries-kryo2-_kryo",
"@lib//:libraries-kryo2-_objenesis",
],
runtime_deps = [":kryo2"],
)
### auto-generated section `build intellij.libraries.kryo2` end
### auto-generated section `iml intellij.libraries.kryo2` start
exports_files(
[
"intellij.libraries.kryo2.iml",
],
visibility = ["//visibility:public"],
)
### auto-generated section `iml intellij.libraries.kryo2` end
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library" exported="">
<library name="Kryo" type="repository">
<properties maven-id="com.esotericsoftware.kryo:kryo:2.24.0">
<verification>
<artifact url="file://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/kryo/2.24.0/kryo-2.24.0.jar">
<sha256sum>7e56b32c635058f9aa2820f88919ab702d029cbcd15285da9992e36cc0ae52f2</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/minlog/1.2/minlog-1.2.jar">
<sha256sum>a678cb1aa8f5d03d901c992c75741841d98a9bc3d55dad02e84d65315c4e60f2</sha256sum>
</artifact>
</verification>
<exclude>
<dependency maven-id="org.objenesis:objenesis" />
</exclude>
</properties>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/kryo/2.24.0/kryo-2.24.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/minlog/1.2/minlog-1.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/kryo/2.24.0/kryo-2.24.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/minlog/1.2/minlog-1.2-sources.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library" exported="">
<library name="Objenesis" type="repository">
<properties include-transitive-deps="false" maven-id="org.objenesis:objenesis:3.4">
<verification>
<artifact url="file://$MAVEN_REPOSITORY$/org/objenesis/objenesis/3.4/objenesis-3.4.jar">
<sha256sum>95488102feaf2e2858adf6b299353677dac6c15294006f8ed1c5556f8e3cd251</sha256sum>
</artifact>
</verification>
</properties>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/3.4/objenesis-3.4.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/3.4/objenesis-3.4-sources.jar!/" />
</SOURCES>
</library>
</orderEntry>
</component>
</module>
+7
View File
@@ -0,0 +1,7 @@
- name: dist.all/lib/intellij.libraries.kryo2.jar
modules:
- name: intellij.libraries.kryo2
libraries:
Kryo:
- name: $MAVEN_REPOSITORY$/com/esotericsoftware/kryo/kryo/2/kryo-2.jar
- name: $MAVEN_REPOSITORY$/com/esotericsoftware/minlog/minlog/1/minlog-1.jar
@@ -0,0 +1,2 @@
<idea-plugin visibility="internal">
</idea-plugin>
@@ -29,7 +29,6 @@ private val agentLibrariesNotForcedInSeparateJars = listOf(
fun isSeparateLibraryJar(fileName: String): Boolean {
return fileName.endsWith("-rt.jar") ||
fileName.startsWith("byte-buddy-") ||
fileName.startsWith("objenesis-") ||
(fileName.contains("-agent") && agentLibrariesNotForcedInSeparateJars.none { fileName.contains(it) }) ||
fileName.startsWith("maven-")
}
@@ -31,11 +31,12 @@ internal class LibraryFileCopyTrackerTest {
fun `detects jars packed separately`() {
assertThat(isSeparateLibraryJar("mockk-agent-1.14.5.jar")).isTrue()
assertThat(isSeparateLibraryJar("byte-buddy-1.17.7.jar")).isTrue()
assertThat(isSeparateLibraryJar("objenesis-3.4.jar")).isTrue()
assertThat(isSeparateLibraryJar("kotlin-reflect-rt.jar")).isTrue()
assertThat(isSeparateLibraryJar("maven-resolver-provider.jar")).isTrue()
assertThat(isSeparateLibraryJar("ideformer-agent.jar")).isFalse()
assertThat(isSeparateLibraryJar("code-agents-agent.jar")).isFalse()
assertThat(isSeparateLibraryJar("kotlin-stdlib.jar")).isFalse()
// an ordinary library: it must stay inside the content module that wraps it, or that module's jar ends up empty
assertThat(isSeparateLibraryJar("objenesis-3.4.jar")).isFalse()
}
}