Skip to content

Commit a16798d

Browse files
goodwinnkSpace
authored andcommitted
Force using 2.8.9+ gson version as a dependency
Mitigate google/gson#1991 ^KT-51837 Fixed
1 parent 3ac8d95 commit a16798d

File tree

8 files changed

+94
-49
lines changed

8 files changed

+94
-49
lines changed

build.gradle.kts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,20 @@ buildscript {
3434
classpath(kotlin("serialization", bootstrapKotlinVersion))
3535
classpath("org.jetbrains.dokka:dokka-gradle-plugin:0.9.17")
3636
}
37+
38+
val versionPropertiesFile = project.rootProject.projectDir.resolve("gradle/versions.properties")
39+
val versionProperties = java.util.Properties()
40+
versionPropertiesFile.inputStream().use { propInput ->
41+
versionProperties.load(propInput)
42+
}
43+
configurations.all {
44+
resolutionStrategy.eachDependency {
45+
if (requested.group == "com.google.code.gson" && requested.name == "gson") {
46+
useVersion(versionProperties["versions.gson"] as String)
47+
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
48+
}
49+
}
50+
}
3751
}
3852

3953
plugins {

buildSrc/build.gradle.kts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,20 @@ buildscript {
2626
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}")
2727
classpath("org.jetbrains.kotlin:kotlin-sam-with-receiver:${project.bootstrapKotlinVersion}")
2828
}
29+
30+
val versionPropertiesFile = project.rootProject.projectDir.parentFile.resolve("gradle/versions.properties")
31+
val versionProperties = java.util.Properties()
32+
versionPropertiesFile.inputStream().use { propInput ->
33+
versionProperties.load(propInput)
34+
}
35+
configurations.all {
36+
resolutionStrategy.eachDependency {
37+
if (requested.group == "com.google.code.gson" && requested.name == "gson") {
38+
useVersion(versionProperties["versions.gson"] as String)
39+
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
40+
}
41+
}
42+
}
2943
}
3044

3145
logger.info("buildSrcKotlinVersion: " + extra["bootstrapKotlinVersion"])

buildSrc/settings.gradle

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,28 @@ pluginManagement {
1111
}
1212
}
1313

14+
File versionPropertiesFile = new File(rootProject.projectDir.parentFile, "gradle/versions.properties")
15+
def versionProperties = new Properties()
16+
versionPropertiesFile.withInputStream {
17+
versionProperties.load(it)
18+
}
19+
dependencyResolutionManagement {
20+
components {
21+
withModule("com.google.code.gson:gson") {
22+
allVariants {
23+
withDependencies {
24+
add("com.google.code.gson:gson") {
25+
version {
26+
it.require(versionProperties['versions.gson'])
27+
}
28+
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
29+
}
30+
}
31+
}
32+
}
33+
}
34+
}
35+
1436
buildscript {
1537
repositories {
1638
if (cacheRedirectorEnabled == 'true') {

buildSrc/src/main/kotlin/dependencies.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ fun Project.commonDependency(group: String, artifact: String, vararg suffixesAnd
5555
return "$group:$artifact${artifactSuffixes.joinToString("")}:${commonDependencyVersion(group, artifact)}${classifiers.joinToString("")}"
5656
}
5757

58-
fun Project.commonDependencyVersion(group: String, artifact: String) =
58+
fun Project.commonDependencyVersion(group: String, artifact: String): String =
5959
when {
6060
rootProject.extra.has("versions.$artifact") -> rootProject.extra["versions.$artifact"]
6161
rootProject.extra.has("versions.$group") -> rootProject.extra["versions.$group"]
6262
else -> throw GradleException("Neither versions.$artifact nor versions.$group is defined in the root project's extra")
63-
}
63+
} as String
6464

6565
fun Project.preloadedDeps(
6666
vararg artifactBaseNames: String,

gradle/verification-metadata.xml

Lines changed: 4 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1435,52 +1435,10 @@
14351435
<sha256 value="19889dbdf1b254b2601a5ee645b8147a974644882297684c798afe5d63d78dfe" origin="Generated by Gradle"/>
14361436
</artifact>
14371437
</component>
1438-
<component group="com.google.code.gson" name="gson" version="2.3">
1439-
<artifact name="gson-2.3.jar">
1440-
<md5 value="6da6d8d4f1554196599bcb76896b3393" origin="Generated by Gradle"/>
1441-
<sha256 value="9466512cd8cf0bd66a8a3661685373f7b3deafded11096e044926ff5c82c7a4c" origin="Generated by Gradle"/>
1442-
</artifact>
1443-
<artifact name="gson-2.3.pom">
1444-
<md5 value="87a568aecb9d712276f12ba36bf6e637" origin="Generated by Gradle"/>
1445-
<sha256 value="1a56992fc50f838fd091b6b9701b30da64b00bd2fe76ad2c800212eb459b49e2" origin="Generated by Gradle"/>
1446-
</artifact>
1447-
</component>
1448-
<component group="com.google.code.gson" name="gson" version="2.8.0">
1449-
<artifact name="gson-2.8.0.jar">
1450-
<md5 value="a42f1f5bfa4e6f123ddcab3de7e0ff81" origin="Generated by Gradle"/>
1451-
<sha256 value="c6221763bd79c4f1c3dc7f750b5f29a0bb38b367b81314c4f71896e340c40825" origin="Generated by Gradle"/>
1452-
</artifact>
1453-
</component>
1454-
<component group="com.google.code.gson" name="gson" version="2.8.2">
1455-
<artifact name="gson-2.8.2.jar">
1456-
<md5 value="2330bde3467e7cfec44d38e74f27dab8" origin="Generated by Gradle"/>
1457-
<sha256 value="b7134929f7cc7c04021ec1cc27ef63ab907e410cf0588e397b8851181eb91092" origin="Generated by Gradle"/>
1458-
</artifact>
1459-
<artifact name="gson-2.8.2.pom">
1460-
<md5 value="cd4f370197bd707193590374ef143bdf" origin="Generated by Gradle"/>
1461-
<sha256 value="91b9f17a54e6c340c8d3ea4b359401170706eb26a82d51909abe6ba80081aed8" origin="Generated by Gradle"/>
1462-
</artifact>
1463-
</component>
1464-
<component group="com.google.code.gson" name="gson" version="2.8.6">
1465-
<artifact name="gson-2.8.6.jar">
1466-
<md5 value="310f5841387183aca7900fead98d4858" origin="Generated by Gradle"/>
1467-
<sha256 value="c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f" origin="Generated by Gradle"/>
1468-
</artifact>
1469-
<artifact name="gson-2.8.6.pom">
1470-
<md5 value="deef8ec40f570ca92dc58736ad3c9718" origin="Generated by Gradle"/>
1471-
<sha256 value="2174415a647332d30fda04bd1cfc708a3ecc84eaf7517f596188d8244e103911" origin="Generated by Gradle"/>
1472-
</artifact>
1473-
</component>
1474-
<component group="com.google.code.gson" name="gson-parent" version="2.8.2">
1475-
<artifact name="gson-parent-2.8.2.pom">
1476-
<md5 value="58a0e59a30107cc11e1e4823ab9f6aac" origin="Generated by Gradle"/>
1477-
<sha256 value="cf5c43860b53ba5a95c19bc6525cc43d3488a6fe3df2f649c0099a613a0640e3" origin="Generated by Gradle"/>
1478-
</artifact>
1479-
</component>
1480-
<component group="com.google.code.gson" name="gson-parent" version="2.8.6">
1481-
<artifact name="gson-parent-2.8.6.pom">
1482-
<md5 value="7c2c8f3078bd187f5d81b6dcada6888a" origin="Generated by Gradle"/>
1483-
<sha256 value="3736463859ec19267295e894940ae82a8f684413031122fe35ce7cff7e30a774" origin="Generated by Gradle"/>
1438+
<component group="com.google.code.gson" name="gson" version="2.8.9">
1439+
<artifact name="gson-2.8.9.jar">
1440+
<md5 value="e67627f67e03301092dc7de0a2d7cef8" origin="Generated by Gradle"/>
1441+
<sha256 value="d3999291855de495c94c743761b8ab5176cfeabe281a5ab0d8e8d45326fd703e" origin="Generated by Gradle"/>
14841442
</artifact>
14851443
</component>
14861444
<component group="com.google.crypto.tink" name="tink" version="1.3.0-rc2">

gradle/versions.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ versions.commons-lang=2.4
1212
versions.gradle-api=4.5.1
1313
versions.groovy-xml=2.5.11
1414
versions.groovy=2.5.11
15-
versions.gson=2.8.6
15+
versions.gson=2.8.9
1616
versions.guava=29.0-jre
1717
versions.intellij-deps-fastutil=8.4.1-4
1818
versions.jdom=2.0.6

kotlin-native/gradle/kotlinGradlePlugin.gradle

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,21 @@ project.buildscript.repositories {
1010
mavenCentral()
1111
}
1212

13+
File versionPropertiesFile = new File(rootProject.projectDir, "gradle/versions.properties")
14+
def versionProperties = new Properties()
15+
versionPropertiesFile.withInputStream {
16+
versionProperties.load(it)
17+
}
18+
19+
project.buildscript.configurations.all {
20+
resolutionStrategy.eachDependency {
21+
if (requested.group == "com.google.code.gson" && requested.name == "gson") {
22+
useVersion(versionProperties['versions.gson'])
23+
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
24+
}
25+
}
26+
}
27+
1328
project.buildscript.dependencies {
1429
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}"
1530
}

settings.gradle

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,28 @@ plugins {
3838
id "com.gradle.common-custom-user-data-gradle-plugin" version "1.4" apply false
3939
}
4040

41+
File versionPropertiesFile = new File(rootProject.projectDir, "gradle/versions.properties")
42+
def versionProperties = new Properties()
43+
versionPropertiesFile.withInputStream {
44+
versionProperties.load(it)
45+
}
46+
dependencyResolutionManagement {
47+
components {
48+
withModule("com.google.code.gson:gson") {
49+
allVariants {
50+
withDependencies {
51+
add("com.google.code.gson:gson") {
52+
version {
53+
it.require(versionProperties['versions.gson'])
54+
}
55+
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
56+
}
57+
}
58+
}
59+
}
60+
}
61+
}
62+
4163
def buildProperties = BuildPropertiesKt.getKotlinBuildPropertiesForSettings(settings)
4264

4365
if (buildProperties.buildScanServer != null) {

0 commit comments

Comments
 (0)