Skip to content

Commit

Permalink
Force using 2.8.9+ gson version as a dependency
Browse files Browse the repository at this point in the history
Mitigate google/gson#1991

^KT-51837 Fixed
  • Loading branch information
goodwinnk authored and Space committed Apr 18, 2022
1 parent 3ac8d95 commit a16798d
Show file tree
Hide file tree
Showing 8 changed files with 94 additions and 49 deletions.
14 changes: 14 additions & 0 deletions build.gradle.kts
Expand Up @@ -34,6 +34,20 @@ buildscript {
classpath(kotlin("serialization", bootstrapKotlinVersion))
classpath("org.jetbrains.dokka:dokka-gradle-plugin:0.9.17")
}

val versionPropertiesFile = project.rootProject.projectDir.resolve("gradle/versions.properties")
val versionProperties = java.util.Properties()
versionPropertiesFile.inputStream().use { propInput ->
versionProperties.load(propInput)
}
configurations.all {
resolutionStrategy.eachDependency {
if (requested.group == "com.google.code.gson" && requested.name == "gson") {
useVersion(versionProperties["versions.gson"] as String)
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
}
}
}
}

plugins {
Expand Down
14 changes: 14 additions & 0 deletions buildSrc/build.gradle.kts
Expand Up @@ -26,6 +26,20 @@ buildscript {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}")
classpath("org.jetbrains.kotlin:kotlin-sam-with-receiver:${project.bootstrapKotlinVersion}")
}

val versionPropertiesFile = project.rootProject.projectDir.parentFile.resolve("gradle/versions.properties")
val versionProperties = java.util.Properties()
versionPropertiesFile.inputStream().use { propInput ->
versionProperties.load(propInput)
}
configurations.all {
resolutionStrategy.eachDependency {
if (requested.group == "com.google.code.gson" && requested.name == "gson") {
useVersion(versionProperties["versions.gson"] as String)
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
}
}
}
}

logger.info("buildSrcKotlinVersion: " + extra["bootstrapKotlinVersion"])
Expand Down
22 changes: 22 additions & 0 deletions buildSrc/settings.gradle
Expand Up @@ -11,6 +11,28 @@ pluginManagement {
}
}

File versionPropertiesFile = new File(rootProject.projectDir.parentFile, "gradle/versions.properties")
def versionProperties = new Properties()
versionPropertiesFile.withInputStream {
versionProperties.load(it)
}
dependencyResolutionManagement {
components {
withModule("com.google.code.gson:gson") {
allVariants {
withDependencies {
add("com.google.code.gson:gson") {
version {
it.require(versionProperties['versions.gson'])
}
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
}
}
}
}
}
}

buildscript {
repositories {
if (cacheRedirectorEnabled == 'true') {
Expand Down
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/dependencies.kt
Expand Up @@ -55,12 +55,12 @@ fun Project.commonDependency(group: String, artifact: String, vararg suffixesAnd
return "$group:$artifact${artifactSuffixes.joinToString("")}:${commonDependencyVersion(group, artifact)}${classifiers.joinToString("")}"
}

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

fun Project.preloadedDeps(
vararg artifactBaseNames: String,
Expand Down
50 changes: 4 additions & 46 deletions gradle/verification-metadata.xml
Expand Up @@ -1435,52 +1435,10 @@
<sha256 value="19889dbdf1b254b2601a5ee645b8147a974644882297684c798afe5d63d78dfe" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.code.gson" name="gson" version="2.3">
<artifact name="gson-2.3.jar">
<md5 value="6da6d8d4f1554196599bcb76896b3393" origin="Generated by Gradle"/>
<sha256 value="9466512cd8cf0bd66a8a3661685373f7b3deafded11096e044926ff5c82c7a4c" origin="Generated by Gradle"/>
</artifact>
<artifact name="gson-2.3.pom">
<md5 value="87a568aecb9d712276f12ba36bf6e637" origin="Generated by Gradle"/>
<sha256 value="1a56992fc50f838fd091b6b9701b30da64b00bd2fe76ad2c800212eb459b49e2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.code.gson" name="gson" version="2.8.0">
<artifact name="gson-2.8.0.jar">
<md5 value="a42f1f5bfa4e6f123ddcab3de7e0ff81" origin="Generated by Gradle"/>
<sha256 value="c6221763bd79c4f1c3dc7f750b5f29a0bb38b367b81314c4f71896e340c40825" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.code.gson" name="gson" version="2.8.2">
<artifact name="gson-2.8.2.jar">
<md5 value="2330bde3467e7cfec44d38e74f27dab8" origin="Generated by Gradle"/>
<sha256 value="b7134929f7cc7c04021ec1cc27ef63ab907e410cf0588e397b8851181eb91092" origin="Generated by Gradle"/>
</artifact>
<artifact name="gson-2.8.2.pom">
<md5 value="cd4f370197bd707193590374ef143bdf" origin="Generated by Gradle"/>
<sha256 value="91b9f17a54e6c340c8d3ea4b359401170706eb26a82d51909abe6ba80081aed8" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.code.gson" name="gson" version="2.8.6">
<artifact name="gson-2.8.6.jar">
<md5 value="310f5841387183aca7900fead98d4858" origin="Generated by Gradle"/>
<sha256 value="c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f" origin="Generated by Gradle"/>
</artifact>
<artifact name="gson-2.8.6.pom">
<md5 value="deef8ec40f570ca92dc58736ad3c9718" origin="Generated by Gradle"/>
<sha256 value="2174415a647332d30fda04bd1cfc708a3ecc84eaf7517f596188d8244e103911" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.code.gson" name="gson-parent" version="2.8.2">
<artifact name="gson-parent-2.8.2.pom">
<md5 value="58a0e59a30107cc11e1e4823ab9f6aac" origin="Generated by Gradle"/>
<sha256 value="cf5c43860b53ba5a95c19bc6525cc43d3488a6fe3df2f649c0099a613a0640e3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.code.gson" name="gson-parent" version="2.8.6">
<artifact name="gson-parent-2.8.6.pom">
<md5 value="7c2c8f3078bd187f5d81b6dcada6888a" origin="Generated by Gradle"/>
<sha256 value="3736463859ec19267295e894940ae82a8f684413031122fe35ce7cff7e30a774" origin="Generated by Gradle"/>
<component group="com.google.code.gson" name="gson" version="2.8.9">
<artifact name="gson-2.8.9.jar">
<md5 value="e67627f67e03301092dc7de0a2d7cef8" origin="Generated by Gradle"/>
<sha256 value="d3999291855de495c94c743761b8ab5176cfeabe281a5ab0d8e8d45326fd703e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.crypto.tink" name="tink" version="1.3.0-rc2">
Expand Down
2 changes: 1 addition & 1 deletion gradle/versions.properties
Expand Up @@ -12,7 +12,7 @@ versions.commons-lang=2.4
versions.gradle-api=4.5.1
versions.groovy-xml=2.5.11
versions.groovy=2.5.11
versions.gson=2.8.6
versions.gson=2.8.9
versions.guava=29.0-jre
versions.intellij-deps-fastutil=8.4.1-4
versions.jdom=2.0.6
Expand Down
15 changes: 15 additions & 0 deletions kotlin-native/gradle/kotlinGradlePlugin.gradle
Expand Up @@ -10,6 +10,21 @@ project.buildscript.repositories {
mavenCentral()
}

File versionPropertiesFile = new File(rootProject.projectDir, "gradle/versions.properties")
def versionProperties = new Properties()
versionPropertiesFile.withInputStream {
versionProperties.load(it)
}

project.buildscript.configurations.all {
resolutionStrategy.eachDependency {
if (requested.group == "com.google.code.gson" && requested.name == "gson") {
useVersion(versionProperties['versions.gson'])
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
}
}
}

project.buildscript.dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}"
}
Expand Down
22 changes: 22 additions & 0 deletions settings.gradle
Expand Up @@ -38,6 +38,28 @@ plugins {
id "com.gradle.common-custom-user-data-gradle-plugin" version "1.4" apply false
}

File versionPropertiesFile = new File(rootProject.projectDir, "gradle/versions.properties")
def versionProperties = new Properties()
versionPropertiesFile.withInputStream {
versionProperties.load(it)
}
dependencyResolutionManagement {
components {
withModule("com.google.code.gson:gson") {
allVariants {
withDependencies {
add("com.google.code.gson:gson") {
version {
it.require(versionProperties['versions.gson'])
}
because("Force using same gson version because of https://github.com/google/gson/pull/1991")
}
}
}
}
}
}

def buildProperties = BuildPropertiesKt.getKotlinBuildPropertiesForSettings(settings)

if (buildProperties.buildScanServer != null) {
Expand Down

0 comments on commit a16798d

Please sign in to comment.