Thread {Des,S}erializationContext through Package serialization interface
PiperOrigin-RevId: 185609826
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 648343c..0f11326 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -35,7 +35,9 @@
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.AttributeMap.AcceptsLabelAttribute;
import com.google.devtools.build.lib.packages.License.DistributionType;
+import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationContext;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.devtools.build.lib.syntax.SkylarkSemantics;
import com.google.devtools.build.lib.util.SpellChecker;
@@ -1582,22 +1584,22 @@
@Override
public void serialize(
- com.google.devtools.build.lib.skyframe.serialization.SerializationContext context,
+ SerializationContext context,
Package input,
CodedOutputStream codedOut)
throws IOException, SerializationException {
PackageCodecDependencies codecDeps = context.getDependency(PackageCodecDependencies.class);
- codecDeps.getPackageSerializer().serialize(input, codedOut);
+ codecDeps.getPackageSerializer().serialize(context, input, codedOut);
}
@Override
public Package deserialize(
- com.google.devtools.build.lib.skyframe.serialization.DeserializationContext context,
+ DeserializationContext context,
CodedInputStream codedIn)
throws SerializationException, IOException {
PackageCodecDependencies codecDeps = context.getDependency(PackageCodecDependencies.class);
try {
- return codecDeps.getPackageDeserializer().deserialize(codedIn);
+ return codecDeps.getPackageDeserializer().deserialize(context, codedIn);
} catch (PackageDeserializationException e) {
throw new SerializationException("Failed to deserialize Package", e);
} catch (InterruptedException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializerInterface.java b/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializerInterface.java
index ea74a4d..afdfac0 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializerInterface.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializerInterface.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.packages;
+import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
import com.google.protobuf.CodedInputStream;
import java.io.IOException;
@@ -34,6 +35,6 @@
* @throws IOException on failures reading from {@code codedIn}
* @throws InterruptedException
*/
- Package deserialize(CodedInputStream codedIn)
+ Package deserialize(DeserializationContext context, CodedInputStream codedIn)
throws PackageDeserializationException, IOException, InterruptedException;
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java b/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
index a06e454..6463fca 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.packages;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationContext;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
@@ -32,6 +33,6 @@
* @param codedOut the stream to write {@code pkg}'s serialized representation to
* @throws IOException on failure writing to {@code codedOut}
*/
- void serialize(Package pkg, CodedOutputStream codedOut)
+ void serialize(SerializationContext context, Package pkg, CodedOutputStream codedOut)
throws SerializationException, IOException;
}
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 c8d9d9e..38cbbf7 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
@@ -36,7 +36,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import org.mockito.ArgumentCaptor;
/** Basic tests for {@link PackageValue}. */
@RunWith(JUnit4.class)
@@ -60,8 +59,8 @@
// Mock because all we need is to verify that we're properly delegating to Package deserializer.
Package mockPackage = mock(Package.class);
- when(mockDeserializer.deserialize(ArgumentCaptor.forClass(CodedInputStream.class).capture()))
- .thenReturn(mockPackage);
+ when(mockDeserializer.deserialize(
+ any(DeserializationContext.class), any(CodedInputStream.class))).thenReturn(mockPackage);
CodedInputStream codedIn = CodedInputStream.newInstance(new byte[] {1, 2, 3, 4});
PackageValue result =
@@ -75,7 +74,8 @@
@Test
public void testInterruptedExceptionRaisesIllegalStateException() throws Exception {
InterruptedException staged = new InterruptedException("Stop that!");
- doThrow(staged).when(mockDeserializer).deserialize(any(CodedInputStream.class));
+ doThrow(staged).when(mockDeserializer)
+ .deserialize(any(DeserializationContext.class), any(CodedInputStream.class));
try {
underTest.deserialize(