Update Gson to version 2.10.1
Also add it to third_party to easily use it in tests.
Bug: b/289363570
Bug: b/295302135
Change-Id: I84f875d0fc9414f4f9992a6affcc933613b07119
diff --git a/.gitignore b/.gitignore
index c113321..57831fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -112,6 +112,8 @@
third_party/gradle/gradle.tar.gz
third_party/gradle/gradle-8.0
third_party/gradle/gradle-8.0.tar.gz
+third_party/gson/gson-2.10.1
+third_party/gson/gson-2.10.1.tar.gz
third_party/internal/*
third_party/iosched_2019
third_party/iosched_2019.tar.gz
diff --git a/build.gradle b/build.gradle
index f6167f0..7885763 100644
--- a/build.gradle
+++ b/build.gradle
@@ -26,7 +26,7 @@
espressoVersion = '3.0.0'
fastutilVersion = '7.2.1'
guavaVersion = '31.1-jre'
- gsonVersion = '2.7'
+ gsonVersion = '2.10.1'
junitVersion = '4.13-beta-2'
mockitoVersion = '2.10.0'
// The kotlin version is only here to specify the kotlin language level,
@@ -329,6 +329,7 @@
"gradle/gradle",
"google/google-java-format/1.14.0",
"google-java-format",
+ "gson/gson-2.10.1",
"iosched_2019",
"jacoco/0.8.2",
"jacoco/0.8.6",
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
index 55cb8df..bdd1ac0 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -292,7 +292,7 @@
const val asmVersion = "9.5"
const val errorproneVersion = "2.18.0"
const val fastUtilVersion = "7.2.1"
- const val gsonVersion = "2.7"
+ const val gsonVersion = "2.10.1"
const val guavaVersion = "31.1-jre"
const val javassist = "3.29.2-GA"
const val junitVersion = "4.13-beta-2"
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 177d064..21999ee 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -182,6 +182,8 @@
public static final Path JACOCO_ROOT = Paths.get(THIRD_PARTY_DIR, "jacoco", "0.8.6");
public static final Path JACOCO_AGENT = JACOCO_ROOT.resolve(Paths.get("lib", "jacocoagent.jar"));
public static final Path JACOCO_CLI = JACOCO_ROOT.resolve(Paths.get("lib", "jacococli.jar"));
+ public static final Path GSON =
+ Paths.get(THIRD_PARTY_DIR, "gson", "gson-2.10.1", "gson-2.10.1.jar");
public static final String PROGUARD_SETTINGS_FOR_INTERNAL_APPS =
THIRD_PARTY_DIR + "proguardsettings/";
@@ -693,7 +695,7 @@
}
private String getStringContent(Path path) {
- assert path.toFile().exists();
+ assert path.toFile().exists() : path + " does not exist";
if (path.toFile().length() > 0) {
try {
return FileUtils.readTextFile(path, Charsets.UTF_8);
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
index c861001..b778869 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
@@ -3,12 +3,12 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.desugar.desugaredlibrary.gson;
-import static com.android.tools.r8.desugar.desugaredlibrary.gson.GsonDesugaredLibraryTestUtils.GSON_2_8_1_JAR;
import static com.android.tools.r8.desugar.desugaredlibrary.gson.GsonDesugaredLibraryTestUtils.GSON_CONFIGURATION;
import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.desugar.desugaredlibrary.DesugaredLibraryTestBase;
import com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification;
import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification;
@@ -54,7 +54,7 @@
Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
.addProgramClassesAndInnerClasses(AllMapsTestClass.class)
- .addProgramFiles(GSON_2_8_1_JAR)
+ .addProgramFiles(ToolHelper.GSON)
.addKeepMainRule(AllMapsTestClass.class)
.addKeepRuleFiles(GSON_CONFIGURATION)
.allowUnusedDontWarnPatterns()
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonDesugaredLibraryTestUtils.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonDesugaredLibraryTestUtils.java
index 655e117..f52ab55 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonDesugaredLibraryTestUtils.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonDesugaredLibraryTestUtils.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification;
import java.io.IOException;
import java.nio.file.Path;
-import java.nio.file.Paths;
import org.junit.rules.TemporaryFolder;
public abstract class GsonDesugaredLibraryTestUtils {
@@ -18,9 +17,6 @@
ToolHelper.getSourceFileForTestClass(GsonDesugaredLibraryTestUtils.class)
.getParent()
.resolve("gson.cfg");
- // TODO(b/289363570): GSON should not rely on Iosched.
- static final Path GSON_2_8_1_JAR =
- Paths.get(ToolHelper.THIRD_PARTY_DIR, "iosched_2019/gson-2.8.1.jar");
static String uniqueName(
TemporaryFolder temp,
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
index d1a5a9e..25e481b 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
@@ -3,12 +3,12 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.desugar.desugaredlibrary.gson;
-import static com.android.tools.r8.desugar.desugaredlibrary.gson.GsonDesugaredLibraryTestUtils.GSON_2_8_1_JAR;
import static com.android.tools.r8.desugar.desugaredlibrary.gson.GsonDesugaredLibraryTestUtils.GSON_CONFIGURATION;
import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.DEFAULT_SPECIFICATIONS;
import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.desugar.desugaredlibrary.DesugaredLibraryTestBase;
import com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification;
import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification;
@@ -51,7 +51,7 @@
Assume.assumeTrue(libraryDesugaringSpecification.hasEmulatedInterfaceDesugaring(parameters));
testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
.addProgramClassesAndInnerClasses(OptionalTestClass.class)
- .addProgramFiles(GSON_2_8_1_JAR)
+ .addProgramFiles(ToolHelper.GSON)
.addKeepMainRule(OptionalTestClass.class)
.addKeepRuleFiles(GSON_CONFIGURATION)
.allowUnusedDontWarnPatterns()
diff --git a/third_party/dependencies.tar.gz.sha1 b/third_party/dependencies.tar.gz.sha1
index aa1e6a7..714ebaa 100644
--- a/third_party/dependencies.tar.gz.sha1
+++ b/third_party/dependencies.tar.gz.sha1
@@ -1 +1 @@
-ca36d85787d7df692bc383cfad225580f1a9cece
\ No newline at end of file
+6a61ba19b7b9d0b776839b5f6d2efee7732db399
\ No newline at end of file
diff --git a/third_party/gson/gson-2.10.1.tar.gz.sha1 b/third_party/gson/gson-2.10.1.tar.gz.sha1
new file mode 100644
index 0000000..4aa633e
--- /dev/null
+++ b/third_party/gson/gson-2.10.1.tar.gz.sha1
@@ -0,0 +1 @@
+8fc5790fdad2407c49644fe944931a0ba1e498e8
\ No newline at end of file
diff --git a/tools/create_local_maven_with_dependencies.py b/tools/create_local_maven_with_dependencies.py
index d6c0dd7..428722f 100755
--- a/tools/create_local_maven_with_dependencies.py
+++ b/tools/create_local_maven_with_dependencies.py
@@ -24,7 +24,7 @@
KOTLIN_METADATA_VERSION = '0.6.2'
KOTLIN_VERSION = '1.8.0'
GUAVA_VERSION = '31.1-jre'
-GSON_VERSION = '2.7'
+GSON_VERSION = '2.10.1'
JAVASSIST_VERSION = '3.29.2-GA'
JUNIT_VERSION = '4.13-beta-2'
MOCKITO_VERSION = '2.10.0'