Replaces InjectingObjectCodec with dependencies threaded through (Des|S)erializationContext.

PiperOrigin-RevId: 185547740
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
index ee37679..d5174c5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
@@ -17,9 +17,9 @@
 
 import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodecAdapter;
 import com.google.devtools.build.lib.skyframe.serialization.testutils.FsUtils;
 import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.vfs.FileSystem;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.build.lib.vfs.Root;
 import org.junit.Test;
@@ -32,9 +32,7 @@
 
   @Test
   public void testSerialization() throws Exception {
-    ObjectCodecTester.newBuilder(
-            GlobDescriptor.getCodec(
-                new InjectingObjectCodecAdapter<>(Root.CODEC, () -> FsUtils.TEST_FILESYSTEM)))
+    ObjectCodecTester.newBuilder(GlobDescriptor.CODEC)
         .addSubjects(
             GlobDescriptor.create(
                 PackageIdentifier.create("@foo", PathFragment.create("//bar")),
@@ -48,6 +46,7 @@
                 PathFragment.create("anotherSubdir"),
                 "pattern",
                 /*excludeDirs=*/ true))
+        .addDependency(FileSystem.class, FsUtils.TEST_FILESYSTEM)
         .verificationFunction((orig, deserialized) -> assertThat(deserialized).isSameAs(orig))
         .buildAndRunTests();
   }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageValueTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageValueTest.java
index 3c3652d..c8d9d9e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageValueTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageValueTest.java
@@ -21,12 +21,13 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.PackageCodecDependencies;
 import com.google.devtools.build.lib.packages.PackageCodecDependencies.SimplePackageCodecDependencies;
 import com.google.devtools.build.lib.packages.PackageDeserializationException;
 import com.google.devtools.build.lib.packages.PackageDeserializerInterface;
 import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
-import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodecAdapter;
 import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
 import com.google.protobuf.CodedInputStream;
@@ -43,13 +44,13 @@
 
   private PackageDeserializerInterface mockDeserializer;
   private ObjectCodec<PackageValue> underTest;
+  SimplePackageCodecDependencies codecDeps;
 
   @Before
   public void setUp() {
     this.mockDeserializer = mock(PackageDeserializerInterface.class);
-    this.underTest =
-        new InjectingObjectCodecAdapter<>(
-            PackageValue.CODEC, new SimplePackageCodecDependencies(null, mockDeserializer));
+    this.underTest = PackageValue.CODEC;
+    this.codecDeps = new SimplePackageCodecDependencies(null, mockDeserializer);
   }
 
   @Test
@@ -63,7 +64,10 @@
         .thenReturn(mockPackage);
 
     CodedInputStream codedIn = CodedInputStream.newInstance(new byte[] {1, 2, 3, 4});
-    PackageValue result = underTest.deserialize(DeserializationContext.create(), codedIn);
+    PackageValue result =
+        underTest.deserialize(
+            new DeserializationContext(ImmutableMap.of(PackageCodecDependencies.class, codecDeps)),
+            codedIn);
 
     assertThat(result.getPackage()).isSameAs(mockPackage);
   }
@@ -75,7 +79,8 @@
 
     try {
       underTest.deserialize(
-          DeserializationContext.create(), CodedInputStream.newInstance(new byte[] {1, 2, 3, 4}));
+          new DeserializationContext(ImmutableMap.of(PackageCodecDependencies.class, codecDeps)),
+          CodedInputStream.newInstance(new byte[] {1, 2, 3, 4}));
       fail("Expected exception");
     } catch (IllegalStateException e) {
       assertThat(e)
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
index 5d24b9e..4928d73 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
@@ -52,7 +52,6 @@
 import com.google.devtools.build.lib.events.EventKind;
 import com.google.devtools.build.lib.events.StoredEventHandler;
 import com.google.devtools.build.lib.skyframe.ActionTemplateExpansionValue.ActionTemplateExpansionKey;
-import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodecAdapter;
 import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
 import com.google.devtools.build.lib.testutil.TestUtils;
 import com.google.devtools.build.lib.vfs.FileStatus;
@@ -118,9 +117,9 @@
 
   @Test
   public void testCodec() throws Exception {
-    ObjectCodecTester.newBuilder(
-            new InjectingObjectCodecAdapter<>(Artifact.CODEC, () -> scratch.getFileSystem()))
+    ObjectCodecTester.newBuilder(Artifact.CODEC)
         .addSubjects(outOne, outOneFileOne)
+        .addDependency(FileSystem.class, scratch.getFileSystem())
         .buildAndRunTests();
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecsTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecsTest.java
index 3b84c93..dc835c7 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecsTest.java
@@ -26,6 +26,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.protobuf.ByteString;
 import com.google.protobuf.CodedInputStream;
 import com.google.protobuf.CodedOutputStream;
@@ -79,10 +80,10 @@
   @Before
   public final void setup() {
     spyObjectCodec = spy(new IntegerCodec());
-    this.underTest = new ObjectCodecs(
-        ObjectCodecRegistry.newBuilder()
-            .add(KNOWN_CLASSIFIER, spyObjectCodec)
-            .build());
+    this.underTest =
+        new ObjectCodecs(
+            ObjectCodecRegistry.newBuilder().add(KNOWN_CLASSIFIER, spyObjectCodec).build(),
+            ImmutableMap.of());
   }
 
   @Test
@@ -224,8 +225,10 @@
 
   @Test
   public void testSerializeFailsWhenNoCustomCodecAndFallbackDisabled() throws Exception {
-    ObjectCodecs underTest = new ObjectCodecs(
-        ObjectCodecRegistry.newBuilder().setAllowDefaultCodec(false).build());
+    ObjectCodecs underTest =
+        new ObjectCodecs(
+            ObjectCodecRegistry.newBuilder().setAllowDefaultCodec(false).build(),
+            ImmutableMap.of());
     SerializationException.NoCodecException expected =
         expectThrows(
             SerializationException.NoCodecException.class, () -> underTest.serialize("X", "Y"));
@@ -237,8 +240,10 @@
   @Test
   public void testDeserializeFailsWhenNoCustomCodecAndFallbackDisabled() throws Exception {
     ByteString serialized = ByteString.copyFromUtf8("doesn't matter");
-    ObjectCodecs underTest = new ObjectCodecs(
-        ObjectCodecRegistry.newBuilder().setAllowDefaultCodec(false).build());
+    ObjectCodecs underTest =
+        new ObjectCodecs(
+            ObjectCodecRegistry.newBuilder().setAllowDefaultCodec(false).build(),
+            ImmutableMap.of());
     SerializationException.NoCodecException expected =
         expectThrows(
             SerializationException.NoCodecException.class,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
index f6532fc..f1bac51 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
@@ -14,6 +14,7 @@
 
 package com.google.devtools.build.lib.skyframe.serialization;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.cmdline.LabelCodec;
 import com.google.devtools.build.lib.skyframe.PrecomputedValue;
@@ -30,13 +31,15 @@
   public PrecomputedValueCodecTest() {
     super(
         new PrecomputedValueCodec(
-            () -> new ObjectCodecs(
-                ObjectCodecRegistry.newBuilder()
-                    .asClassKeyedBuilder()
-                    // Note no PathFragmentCodec.
-                    .add(String.class, StringCodecs.asciiOptimized())
-                    .add(Label.class, LabelCodec.INSTANCE)
-                    .build())),
+            () ->
+                new ObjectCodecs(
+                    ObjectCodecRegistry.newBuilder()
+                        .asClassKeyedBuilder()
+                        // Note no PathFragmentCodec.
+                        .add(String.class, StringCodecs.asciiOptimized())
+                        .add(Label.class, LabelCodec.INSTANCE)
+                        .build(),
+                    ImmutableMap.of())),
         new PrecomputedValue(PathFragment.create("java serializable 1")),
         new PrecomputedValue(PathFragment.create("java serializable 2")),
         new PrecomputedValue("first string"),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
index 30f4e08..f922e43 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
@@ -16,6 +16,7 @@
 
 import static org.junit.Assert.fail;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
 import com.google.devtools.build.lib.cmdline.RepositoryName;
 import com.google.devtools.build.lib.cmdline.RepositoryNameCodec;
@@ -47,7 +48,7 @@
   @Test
   public void testDeserializeBadDataThrowsSerializationException() {
     try {
-      fromBytes(INVALID_ENCODED_REPOSITORY_NAME);
+      fromBytes(new DeserializationContext(ImmutableMap.of()), INVALID_ENCODED_REPOSITORY_NAME);
       fail("Expected exception");
     } catch (SerializationException | IOException e) {
       // Expected.