diff --git a/build.sbt b/build.sbt index f9747c2f5..06847bf6b 100644 --- a/build.sbt +++ b/build.sbt @@ -433,6 +433,10 @@ lazy val workerProj = (project in file("worker")) // run / fork := false, Test / fork := true, mimaSettings, + mimaBinaryIssueFilters ++= Vector( + exclude[MissingClassProblem]("com.google.gson.typeadapters.RuntimeTypeAdapterFactory"), + exclude[IncompatibleResultTypeProblem]("sbt.internal.worker1.WorkerMain.mkGson"), + ), ) .configure(addSbtIOForTest) diff --git a/main-actions/src/main/scala/sbt/ForkTests.scala b/main-actions/src/main/scala/sbt/ForkTests.scala index 08072b8df..aea61c893 100755 --- a/main-actions/src/main/scala/sbt/ForkTests.scala +++ b/main-actions/src/main/scala/sbt/ForkTests.scala @@ -8,7 +8,7 @@ package sbt -import com.google.gson.{ JsonObject, JsonParser, JsonSyntaxException } +import org.scalasbt.shadedgson.com.google.gson.{ JsonObject, JsonParser, JsonSyntaxException } import testing.{ Logger as _, Task as _, * } import java.io.* import java.util.ArrayList diff --git a/main-actions/src/main/scala/sbt/internal/WorkerExchange.scala b/main-actions/src/main/scala/sbt/internal/WorkerExchange.scala index 322df8a0f..0d9133beb 100644 --- a/main-actions/src/main/scala/sbt/internal/WorkerExchange.scala +++ b/main-actions/src/main/scala/sbt/internal/WorkerExchange.scala @@ -9,7 +9,7 @@ package sbt package internal -import com.google.gson.Gson +import org.scalasbt.shadedgson.com.google.gson.Gson import java.io.* import sbt.io.IO import sbt.internal.worker1.* diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 183a224b0..5442c8a0b 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -90,7 +90,7 @@ object Dependencies { val templateResolverApi = "org.scala-sbt" % "template-resolver" % "0.1" val remoteapis = "com.eed3si9n.remoteapis.shaded" % "shaded-remoteapis-java" % "2.3.0-M1-52317e00d8d4c37fa778c628485d220fb68a8d08" - val gson = "com.google.code.gson" % "gson" % "2.13.1" + val gson = "org.scala-sbt.gson" % "shaded-gson" % "2.13.1" val scalaCompiler = "org.scala-lang" %% "scala3-compiler" % scala3 val scala3Library = "org.scala-lang" %% "scala3-library" % scala3 diff --git a/sbt-app/src/sbt-test/dependency-management/update-sbt-classifiers/build.sbt b/sbt-app/src/sbt-test/dependency-management/update-sbt-classifiers/build.sbt index b69cd7cde..05d1b4ba3 100644 --- a/sbt-app/src/sbt-test/dependency-management/update-sbt-classifiers/build.sbt +++ b/sbt-app/src/sbt-test/dependency-management/update-sbt-classifiers/build.sbt @@ -33,7 +33,6 @@ lazy val root = (project in file(".")) "com.eed3si9n:sjson-new-scalajson_3", "com.github.ben-manes.caffeine:caffeine", "com.github.mwiede:jsch", - "com.google.code.gson:gson", "com.google.errorprone:error_prone_annotations", "com.lmax:disruptor", "com.swoval:file-tree-views", @@ -77,6 +76,7 @@ lazy val root = (project in file(".")) "org.scala-sbt:zinc-core_3", "org.scala-sbt:zinc-persist_3", "org.scala-sbt:zinc_3", + "org.scala-sbt.gson:shaded-gson", "org.slf4j:slf4j-api", ) def assertCollectionsEqual(message: String, expected: Seq[String], actual: Seq[String]): Unit = diff --git a/worker/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java b/worker/src/main/java/org/scalasbt/shadedgson/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java similarity index 93% rename from worker/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java rename to worker/src/main/java/org/scalasbt/shadedgson/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java index 00e9b3dd4..faeed0e9d 100644 --- a/worker/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java +++ b/worker/src/main/java/org/scalasbt/shadedgson/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java @@ -14,19 +14,19 @@ * limitations under the License. */ -package com.google.gson.typeadapters; +package org.scalasbt.shadedgson.com.google.gson.typeadapters; -import com.google.errorprone.annotations.CanIgnoreReturnValue; -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonPrimitive; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; +import org.scalasbt.shadedgson.com.google.errorprone.annotations.CanIgnoreReturnValue; +import org.scalasbt.shadedgson.com.google.gson.Gson; +import org.scalasbt.shadedgson.com.google.gson.JsonElement; +import org.scalasbt.shadedgson.com.google.gson.JsonObject; +import org.scalasbt.shadedgson.com.google.gson.JsonParseException; +import org.scalasbt.shadedgson.com.google.gson.JsonPrimitive; +import org.scalasbt.shadedgson.com.google.gson.TypeAdapter; +import org.scalasbt.shadedgson.com.google.gson.TypeAdapterFactory; +import org.scalasbt.shadedgson.com.google.gson.reflect.TypeToken; +import org.scalasbt.shadedgson.com.google.gson.stream.JsonReader; +import org.scalasbt.shadedgson.com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; diff --git a/worker/src/main/java/sbt/internal/worker1/ForkTestMain.java b/worker/src/main/java/sbt/internal/worker1/ForkTestMain.java index a362d3a66..22d824171 100644 --- a/worker/src/main/java/sbt/internal/worker1/ForkTestMain.java +++ b/worker/src/main/java/sbt/internal/worker1/ForkTestMain.java @@ -8,7 +8,7 @@ package sbt.internal.worker1; -import com.google.gson.Gson; +import org.scalasbt.shadedgson.com.google.gson.Gson; import sbt.testing.*; diff --git a/worker/src/main/java/sbt/internal/worker1/ThrowableAdapterFactory.java b/worker/src/main/java/sbt/internal/worker1/ThrowableAdapterFactory.java index 9616afe9e..51c09d7ca 100644 --- a/worker/src/main/java/sbt/internal/worker1/ThrowableAdapterFactory.java +++ b/worker/src/main/java/sbt/internal/worker1/ThrowableAdapterFactory.java @@ -8,12 +8,12 @@ package sbt.internal.worker1; -import com.google.gson.Gson; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; +import org.scalasbt.shadedgson.com.google.gson.Gson; +import org.scalasbt.shadedgson.com.google.gson.TypeAdapter; +import org.scalasbt.shadedgson.com.google.gson.TypeAdapterFactory; +import org.scalasbt.shadedgson.com.google.gson.reflect.TypeToken; +import org.scalasbt.shadedgson.com.google.gson.stream.JsonReader; +import org.scalasbt.shadedgson.com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.ArrayList; diff --git a/worker/src/main/java/sbt/internal/worker1/WorkerMain.java b/worker/src/main/java/sbt/internal/worker1/WorkerMain.java index ec45e3889..995ada951 100644 --- a/worker/src/main/java/sbt/internal/worker1/WorkerMain.java +++ b/worker/src/main/java/sbt/internal/worker1/WorkerMain.java @@ -8,13 +8,13 @@ package sbt.internal.worker1; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.google.gson.JsonPrimitive; -import com.google.gson.typeadapters.RuntimeTypeAdapterFactory; +import org.scalasbt.shadedgson.com.google.gson.Gson; +import org.scalasbt.shadedgson.com.google.gson.GsonBuilder; +import org.scalasbt.shadedgson.com.google.gson.JsonElement; +import org.scalasbt.shadedgson.com.google.gson.JsonObject; +import org.scalasbt.shadedgson.com.google.gson.JsonParser; +import org.scalasbt.shadedgson.com.google.gson.JsonPrimitive; +import org.scalasbt.shadedgson.com.google.gson.typeadapters.RuntimeTypeAdapterFactory; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.IOException;