Revert "Reflective events passed from device to test suite"

This reverts commit 29a167e0f3bcadfa958ac75f8e0b43ac2d216bcc.

Reverted due to bot failures on test:
  JavaLangClassJsonTest.testInstrumentationWithCustomOracle

Change-Id: I0b9bc2856854234f34ff9955403cade2caf528f3
diff --git a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveEventType.java b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveEventType.java
deleted file mode 100644
index e942bd6..0000000
--- a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveEventType.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (c) 2025, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.assistant.runtime;
-
-public enum ReflectiveEventType {
-  CLASS_NEW_INSTANCE,
-  CLASS_GET_DECLARED_METHOD,
-  CLASS_GET_DECLARED_METHODS,
-  CLASS_GET_DECLARED_FIELD,
-  CLASS_GET_DECLARED_FIELDS,
-  CLASS_GET_DECLARED_CONSTRUCTOR,
-  CLASS_GET_DECLARED_CONSTRUCTORS,
-  CLASS_GET_METHOD,
-  CLASS_GET_METHODS,
-  CLASS_GET_FIELD,
-  CLASS_GET_FIELDS,
-  CLASS_GET_CONSTRUCTOR,
-  CLASS_GET_CONSTRUCTORS,
-  CLASS_GET_NAME,
-  CLASS_FOR_NAME,
-  CLASS_GET_COMPONENT_TYPE,
-  CLASS_GET_PACKAGE,
-  CLASS_IS_ASSIGNABLE_FROM,
-  CLASS_GET_SUPERCLASS,
-  CLASS_AS_SUBCLASS,
-  CLASS_IS_INSTANCE,
-  CLASS_CAST,
-  CLASS_FLAG,
-  ATOMIC_INTEGER_FIELD_UPDATER_NEW_UPDATER,
-  ATOMIC_LONG_FIELD_UPDATER_NEW_UPDATER,
-  ATOMIC_REFERENCE_FIELD_UPDATER_NEW_UPDATER,
-  SERVICE_LOADER_LOAD,
-  PROXY_NEW_PROXY_INSTANCE;
-}
diff --git a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationJsonLogger.java b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationJsonLogger.java
deleted file mode 100644
index 57d4ca1..0000000
--- a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationJsonLogger.java
+++ /dev/null
@@ -1,278 +0,0 @@
-// Copyright (c) 2025, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.assistant.runtime;
-
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.ATOMIC_INTEGER_FIELD_UPDATER_NEW_UPDATER;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.ATOMIC_LONG_FIELD_UPDATER_NEW_UPDATER;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.ATOMIC_REFERENCE_FIELD_UPDATER_NEW_UPDATER;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_AS_SUBCLASS;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_CAST;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_FLAG;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_FOR_NAME;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_COMPONENT_TYPE;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_CONSTRUCTOR;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_CONSTRUCTORS;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_DECLARED_CONSTRUCTOR;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_DECLARED_CONSTRUCTORS;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_DECLARED_FIELD;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_DECLARED_FIELDS;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_DECLARED_METHOD;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_DECLARED_METHODS;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_FIELD;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_FIELDS;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_METHOD;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_METHODS;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_NAME;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_PACKAGE;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_GET_SUPERCLASS;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_IS_ASSIGNABLE_FROM;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_IS_INSTANCE;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.CLASS_NEW_INSTANCE;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.PROXY_NEW_PROXY_INSTANCE;
-import static com.android.tools.r8.assistant.runtime.ReflectiveEventType.SERVICE_LOADER_LOAD;
-
-import com.android.tools.r8.assistant.runtime.ReflectiveOracle.Stack;
-import com.android.tools.r8.keepanno.annotations.KeepForApi;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.lang.reflect.InvocationHandler;
-
-// This logs the information in JSON-like format,
-// manually encoded to avoid loading gson on the mobile.
-@KeepForApi
-public class ReflectiveOperationJsonLogger implements ReflectiveOperationReceiver {
-
-  private final FileWriter output;
-
-  public ReflectiveOperationJsonLogger() throws IOException {
-    String property = System.getProperty("com.android.tools.r8.reflectiveJsonLogger", "log.txt");
-    File file = new File(property);
-    file.createNewFile();
-    this.output = new FileWriter(file);
-    output.write("[");
-  }
-
-  public void finished() throws IOException {
-    output.write("{}]");
-    output.close();
-  }
-
-  private String[] methodToString(Class<?> holder, String method, Class<?>... parameters) {
-    String[] methodStrings = new String[parameters.length + 2];
-    methodStrings[0] = printClass(holder);
-    methodStrings[1] = method;
-    for (int i = 0; i < parameters.length; i++) {
-      methodStrings[i + 2] = printClass(parameters[i]);
-    }
-    return methodStrings;
-  }
-
-  private String[] constructorToString(Class<?> holder, Class<?>... parameters) {
-    return methodToString(holder, "<init>", parameters);
-  }
-
-  private String printClass(Class<?> clazz) {
-    return clazz.getName();
-  }
-
-  private String printClassLoader(ClassLoader classLoader) {
-    return classLoader == null ? "null" : printClass(classLoader.getClass());
-  }
-
-  private void output(ReflectiveEventType event, Stack stack, String... args) {
-    try {
-      output.write("{\"event\": \"");
-      output.write(event.name());
-      output.write("\"");
-      if (stack != null) {
-        output.write(", \"stack\": ");
-        printArray(stack.stackTraceElementsAsString());
-      }
-      assert args != null;
-      output.write(", \"args\": ");
-      printArray(args);
-      output.write("},\n");
-      output.flush();
-    } catch (IOException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  private void printArray(String... args) throws IOException {
-    output.write("[");
-    for (int i = 0; i < args.length; i++) {
-      output.write("\"");
-      output.write(args[i]);
-      output.write("\"");
-      if (i != args.length - 1) {
-        output.write(", ");
-      }
-    }
-    output.write("]");
-  }
-
-  @Override
-  public void onClassNewInstance(Stack stack, Class<?> clazz) {
-    output(CLASS_NEW_INSTANCE, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassGetDeclaredMethod(
-      Stack stack, Class<?> clazz, String method, Class<?>... parameters) {
-    output(CLASS_GET_DECLARED_METHOD, stack, methodToString(clazz, method, parameters));
-  }
-
-  @Override
-  public void onClassGetDeclaredMethods(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_DECLARED_METHODS, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassGetDeclaredField(Stack stack, Class<?> clazz, String fieldName) {
-    output(CLASS_GET_DECLARED_FIELD, stack, printClass(clazz), fieldName);
-  }
-
-  @Override
-  public void onClassGetDeclaredFields(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_DECLARED_FIELDS, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassGetDeclaredConstructor(Stack stack, Class<?> clazz, Class<?>... parameters) {
-    output(CLASS_GET_DECLARED_CONSTRUCTOR, stack, constructorToString(clazz, parameters));
-  }
-
-  @Override
-  public void onClassGetDeclaredConstructors(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_DECLARED_CONSTRUCTORS, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassGetMethod(Stack stack, Class<?> clazz, String method, Class<?>... parameters) {
-    output(CLASS_GET_METHOD, stack, methodToString(clazz, method, parameters));
-  }
-
-  @Override
-  public void onClassGetMethods(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_METHODS, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassGetField(Stack stack, Class<?> clazz, String fieldName) {
-    output(CLASS_GET_FIELD, stack, printClass(clazz), fieldName);
-  }
-
-  @Override
-  public void onClassGetFields(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_FIELDS, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassGetConstructor(Stack stack, Class<?> clazz, Class<?>... parameters) {
-    output(CLASS_GET_CONSTRUCTOR, stack, constructorToString(clazz, parameters));
-  }
-
-  @Override
-  public void onClassGetConstructors(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_CONSTRUCTORS, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassGetName(Stack stack, Class<?> clazz, NameLookupType lookupType) {
-    output(CLASS_GET_NAME, stack, printClass(clazz), lookupType.name());
-  }
-
-  @Override
-  public void onClassForName(
-      Stack stack, String className, boolean initialize, ClassLoader classLoader) {
-    output(
-        CLASS_FOR_NAME,
-        stack,
-        className,
-        Boolean.toString(initialize),
-        printClassLoader(classLoader));
-  }
-
-  @Override
-  public void onClassGetComponentType(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_COMPONENT_TYPE, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassGetPackage(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_PACKAGE, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassIsAssignableFrom(Stack stack, Class<?> clazz, Class<?> sup) {
-    output(CLASS_IS_ASSIGNABLE_FROM, stack, printClass(clazz), printClass(sup));
-  }
-
-  @Override
-  public void onClassGetSuperclass(Stack stack, Class<?> clazz) {
-    output(CLASS_GET_SUPERCLASS, stack, printClass(clazz));
-  }
-
-  @Override
-  public void onClassAsSubclass(Stack stack, Class<?> holder, Class<?> clazz) {
-    output(CLASS_AS_SUBCLASS, stack, printClass(holder), printClass(clazz));
-  }
-
-  @Override
-  public void onClassIsInstance(Stack stack, Class<?> holder, Object object) {
-    output(CLASS_IS_INSTANCE, stack, printClass(holder), printClass(object.getClass()));
-  }
-
-  @Override
-  public void onClassCast(Stack stack, Class<?> holder, Object object) {
-    output(CLASS_CAST, stack, printClass(holder), printClass(object.getClass()));
-  }
-
-  @Override
-  public void onClassFlag(Stack stack, Class<?> clazz, ClassFlag classFlag) {
-    output(CLASS_FLAG, stack, printClass(clazz), classFlag.name());
-  }
-
-  @Override
-  public void onAtomicIntegerFieldUpdaterNewUpdater(Stack stack, Class<?> clazz, String name) {
-    output(ATOMIC_INTEGER_FIELD_UPDATER_NEW_UPDATER, stack, printClass(clazz), name);
-  }
-
-  @Override
-  public void onAtomicLongFieldUpdaterNewUpdater(Stack stack, Class<?> clazz, String name) {
-    output(ATOMIC_LONG_FIELD_UPDATER_NEW_UPDATER, stack, printClass(clazz), name);
-  }
-
-  @Override
-  public void onAtomicReferenceFieldUpdaterNewUpdater(
-      Stack stack, Class<?> clazz, Class<?> fieldClass, String name) {
-    output(ATOMIC_REFERENCE_FIELD_UPDATER_NEW_UPDATER, stack, printClass(clazz), name);
-  }
-
-  @Override
-  public void onServiceLoaderLoad(Stack stack, Class<?> clazz, ClassLoader classLoader) {
-    output(SERVICE_LOADER_LOAD, stack, printClass(clazz), printClassLoader(classLoader));
-  }
-
-  @Override
-  public void onProxyNewProxyInstance(
-      Stack stack,
-      ClassLoader classLoader,
-      Class<?>[] interfaces,
-      InvocationHandler invocationHandler) {
-    String[] methodStrings = new String[interfaces.length + 2];
-    methodStrings[0] = printClassLoader(classLoader);
-    methodStrings[1] = invocationHandler.toString();
-    for (int i = 0; i < interfaces.length; i++) {
-      methodStrings[i + 2] = printClass(interfaces[i]);
-    }
-    output(PROXY_NEW_PROXY_INSTANCE, stack, methodStrings);
-  }
-
-  public boolean requiresStackInformation() {
-    return true;
-  }
-}
diff --git a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOracle.java b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOracle.java
index e28ce3c..32c841c 100644
--- a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOracle.java
+++ b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOracle.java
@@ -65,14 +65,6 @@
       }
       return sb.toString();
     }
-
-    public String[] stackTraceElementsAsString() {
-      String[] result = new String[stackTraceElements.length];
-      for (int i = 0; i < stackTraceElements.length; i++) {
-        result[i] = stackTraceElements[i].toString();
-      }
-      return result;
-    }
   }
 
   public static void onClassNewInstance(Class<?> clazz) {
diff --git a/src/main/java/com/android/tools/r8/R8AssistantCommand.java b/src/main/java/com/android/tools/r8/R8AssistantCommand.java
index c939563..55efbd7 100644
--- a/src/main/java/com/android/tools/r8/R8AssistantCommand.java
+++ b/src/main/java/com/android/tools/r8/R8AssistantCommand.java
@@ -5,8 +5,6 @@
 
 import com.android.tools.r8.assistant.ClassInjectionHelper;
 import com.android.tools.r8.assistant.runtime.EmptyReflectiveOperationReceiver;
-import com.android.tools.r8.assistant.runtime.ReflectiveEventType;
-import com.android.tools.r8.assistant.runtime.ReflectiveOperationJsonLogger;
 import com.android.tools.r8.assistant.runtime.ReflectiveOperationLogger;
 import com.android.tools.r8.assistant.runtime.ReflectiveOperationReceiver;
 import com.android.tools.r8.assistant.runtime.ReflectiveOracle;
@@ -150,8 +148,6 @@
     R8AssistantCommand makeCommand() {
       injectClasses(
           EmptyReflectiveOperationReceiver.class,
-          ReflectiveEventType.class,
-          ReflectiveOperationJsonLogger.class,
           ReflectiveOperationLogger.class,
           ReflectiveOperationReceiver.NameLookupType.class,
           ReflectiveOperationReceiver.ClassFlag.class,
diff --git a/src/main/java/com/android/tools/r8/assistant/postprocessing/ReflectiveOperationJsonParser.java b/src/main/java/com/android/tools/r8/assistant/postprocessing/ReflectiveOperationJsonParser.java
deleted file mode 100644
index b60812e..0000000
--- a/src/main/java/com/android/tools/r8/assistant/postprocessing/ReflectiveOperationJsonParser.java
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (c) 2025, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.assistant.postprocessing;
-
-import com.android.tools.r8.assistant.postprocessing.model.ReflectiveEvent;
-import com.android.tools.r8.assistant.runtime.ReflectiveEventType;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ReflectiveOperationJsonParser {
-  public List<ReflectiveEvent> parse(Path file) throws IOException {
-    List<ReflectiveEvent> result = new ArrayList<>();
-    String contents = Files.readString(file) + "{}]";
-    JsonArray events = new JsonParser().parse(contents).getAsJsonArray();
-    for (JsonElement eventElement : events) {
-      JsonObject event = eventElement.getAsJsonObject();
-      if (event.isEmpty()) {
-        break;
-      }
-      ReflectiveEventType eventType = ReflectiveEventType.valueOf(event.get("event").getAsString());
-      JsonElement stackElement = event.get("stack");
-      String[] stack = stackElement != null ? toStringArray(stackElement) : null;
-      JsonElement argsElement = event.get("args");
-      String[] args = argsElement != null ? toStringArray(argsElement) : null;
-      result.add(ReflectiveEvent.instantiate(eventType, stack, args));
-    }
-    return result;
-  }
-
-  private String[] toStringArray(JsonElement argsElement) {
-    JsonArray jsonArray = argsElement.getAsJsonArray();
-    String[] strings = new String[jsonArray.size()];
-    for (int i = 0; i < strings.length; i++) {
-      strings[i] = jsonArray.get(i).getAsString();
-    }
-    return strings;
-  }
-}
diff --git a/src/main/java/com/android/tools/r8/assistant/postprocessing/model/ReflectiveEvent.java b/src/main/java/com/android/tools/r8/assistant/postprocessing/model/ReflectiveEvent.java
deleted file mode 100644
index 538f131..0000000
--- a/src/main/java/com/android/tools/r8/assistant/postprocessing/model/ReflectiveEvent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (c) 2025, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.assistant.postprocessing.model;
-
-import com.android.tools.r8.assistant.runtime.ReflectiveEventType;
-import java.util.Arrays;
-
-public class ReflectiveEvent {
-
-  private final ReflectiveEventType eventType;
-  private final String[] stack;
-  private final String[] args;
-
-  protected ReflectiveEvent(ReflectiveEventType eventType, String[] stack, String[] args) {
-    this.eventType = eventType;
-    this.stack = stack;
-    this.args = args;
-  }
-
-  @Override
-  public String toString() {
-    return eventType + (stack != null ? "[s]" : "") + "(" + Arrays.toString(args) + ")";
-  }
-
-  public static ReflectiveEvent instantiate(
-      ReflectiveEventType eventType, String[] stack, String[] args) {
-    // TODO(b/428836085): Switch on the eventType and build a subclass, make this class abstract.
-    return new ReflectiveEvent(eventType, stack, args);
-  }
-}
diff --git a/src/test/java/com/android/tools/r8/assistant/JavaLangClassJsonTest.java b/src/test/java/com/android/tools/r8/assistant/JavaLangClassJsonTest.java
deleted file mode 100644
index 960d60f..0000000
--- a/src/test/java/com/android/tools/r8/assistant/JavaLangClassJsonTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (c) 2025, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.assistant;
-
-import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.assistant.JavaLangClassTestClass.Bar;
-import com.android.tools.r8.assistant.JavaLangClassTestClass.Foo;
-import com.android.tools.r8.assistant.postprocessing.ReflectiveOperationJsonParser;
-import com.android.tools.r8.assistant.postprocessing.model.ReflectiveEvent;
-import com.android.tools.r8.assistant.runtime.ReflectiveOperationJsonLogger;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
-
-@RunWith(Parameterized.class)
-public class JavaLangClassJsonTest extends TestBase {
-
-  @Parameter(0)
-  public TestParameters parameters;
-
-  @Parameters(name = "{0}")
-  public static TestParametersCollection data() {
-    return getTestParameters().withNativeMultidexDexRuntimes().withMaximumApiLevel().build();
-  }
-
-  @Test
-  public void testInstrumentationWithCustomOracle() throws Exception {
-    Path path = Paths.get(temp.newFile().getAbsolutePath());
-    testForAssistant()
-        .addProgramClasses(JavaLangClassTestClass.class, Foo.class, Bar.class)
-        .addInstrumentationClasses(Instrumentation.class)
-        .setCustomReflectiveOperationReceiver(Instrumentation.class)
-        .setMinApi(parameters)
-        .compile()
-        .addVmArguments("-Dcom.android.tools.r8.reflectiveJsonLogger=" + path)
-        .run(parameters.getRuntime(), JavaLangClassTestClass.class)
-        .assertSuccess();
-    List<ReflectiveEvent> reflectiveEvents = new ReflectiveOperationJsonParser().parse(path);
-    Assert.assertEquals(28, reflectiveEvents.size());
-  }
-
-  public static class Instrumentation extends ReflectiveOperationJsonLogger {
-    public Instrumentation() throws IOException {}
-  }
-}