Replace truth.FailureStrategy with truth.FailureMetadata in bazel's Subjects.
Also changed truth.SubjectFactory to truth.Subject.Factory (plain renaming) and use method reference instead of anonymous class to create the factory when applicable.
FailureMetadata, an opaque object to its users, is introduced to replace FailureStrategy in in custom Subject in order to resolve some existing flaws of FailureStrategy as well as enable new features to be added to Truth.
New API is available in Truth-0.36, if there is a build/pom.xml, it's also updated to use this version.
PiperOrigin-RevId: 175308179
diff --git a/src/test/java/com/google/devtools/build/skyframe/NodeEntrySubjectFactory.java b/src/test/java/com/google/devtools/build/skyframe/NodeEntrySubjectFactory.java
index 7278085..f38c311 100644
--- a/src/test/java/com/google/devtools/build/skyframe/NodeEntrySubjectFactory.java
+++ b/src/test/java/com/google/devtools/build/skyframe/NodeEntrySubjectFactory.java
@@ -13,18 +13,18 @@
 // limitations under the License.
 package com.google.devtools.build.skyframe;
 
-import com.google.common.truth.FailureStrategy;
-import com.google.common.truth.SubjectFactory;
+import com.google.common.truth.FailureMetadata;
+import com.google.common.truth.Subject;
 import com.google.common.truth.Truth;
 
-/** {@link SubjectFactory} for {@link NodeEntry} objects, providing {@link NodeEntrySubject}s. */
-public class NodeEntrySubjectFactory extends SubjectFactory<NodeEntrySubject, NodeEntry> {
+/** {@link Subject.Factory} for {@link NodeEntry} objects, providing {@link NodeEntrySubject}s. */
+public class NodeEntrySubjectFactory implements Subject.Factory<NodeEntrySubject, NodeEntry> {
   public static NodeEntrySubject assertThatNodeEntry(NodeEntry nodeEntry) {
     return Truth.assertAbout(new NodeEntrySubjectFactory()).that(nodeEntry);
   }
 
   @Override
-  public NodeEntrySubject getSubject(FailureStrategy failureStrategy, NodeEntry nodeEntry) {
-    return new NodeEntrySubject(failureStrategy, nodeEntry);
+  public NodeEntrySubject createSubject(FailureMetadata failureMetadata, NodeEntry nodeEntry) {
+    return new NodeEntrySubject(failureMetadata, nodeEntry);
   }
 }