Java: use ImmutableSet for outputs

Using a NestedSet here is unnecessary, as AbstractAction copies it to an ImmutableSet. Instead, use ImmutableSet from the beginning. This also avoids iterating over a NestedSet, which we're considering deprecating.

PiperOrigin-RevId: 284060034
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
index 3e19925..38d63d2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
@@ -132,7 +132,7 @@
       NestedSet<Artifact> mandatoryInputs,
       NestedSet<Artifact> transitiveInputs,
       NestedSet<Artifact> directJars,
-      NestedSet<Artifact> outputs,
+      ImmutableSet<Artifact> outputs,
       ImmutableMap<String, String> executionInfo,
       ExtraActionInfoSupplier extraActionInfoSupplier,
       CommandLine executableLine,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileActionBuilder.java
index ca2d05c..074c40d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileActionBuilder.java
@@ -301,9 +301,9 @@
         /* classpathMode= */ classpathMode);
   }
 
-  private NestedSet<Artifact> allOutputs() {
-    return NestedSetBuilder.<Artifact>stableOrder()
-        .addTransitive(outputs.toNestedSet())
+  private ImmutableSet<Artifact> allOutputs() {
+    return ImmutableSet.<Artifact>builder()
+        .addAll(outputs.toSet())
         .addAll(additionalOutputs)
         .build();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileOutputs.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileOutputs.java
index 3606b0e..dc27df7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileOutputs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileOutputs.java
@@ -15,9 +15,8 @@
 package com.google.devtools.build.lib.rules.java;
 
 import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
-import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
 import java.util.stream.Stream;
 import javax.annotation.Nullable;
 
@@ -59,13 +58,11 @@
     return toBuilder().output(output).build();
   }
 
-  public NestedSet<T> toNestedSet() {
-    NestedSetBuilder<T> result = NestedSetBuilder.<T>stableOrder();
+  public ImmutableSet<T> toSet() {
     // 'genClass' is created by a separate action
-    Stream.of(output(), manifestProto(), depsProto(), genSource(), nativeHeader())
+    return Stream.of(output(), manifestProto(), depsProto(), genSource(), nativeHeader())
         .filter(x -> x != null)
-        .forEachOrdered(result::add);
-    return result.build();
+        .collect(ImmutableSet.toImmutableSet());
   }
 
   @AutoValue.Builder
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileActionBuilder.java
index 0ec5cff..88e424c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileActionBuilder.java
@@ -264,8 +264,7 @@
             /* sourceJars= */ sourceJars,
             /* plugins= */ plugins);
 
-    NestedSet<Artifact> outputs =
-        NestedSetBuilder.create(Order.STABLE_ORDER, outputJar, outputDepsProto);
+    ImmutableSet<Artifact> outputs = ImmutableSet.of(outputJar, outputDepsProto);
 
     NestedSetBuilder<Artifact> mandatoryInputs =
         NestedSetBuilder.<Artifact>stableOrder()