diff --git a/java/execution/impl/execution-impl.iml b/java/execution/impl/execution-impl.iml index 6f09b34438bb..e77e51c2895d 100644 --- a/java/execution/impl/execution-impl.iml +++ b/java/execution/impl/execution-impl.iml @@ -18,7 +18,6 @@ - diff --git a/java/execution/impl/src/com/intellij/execution/testDiscovery/InternalTestDiscoveryListener.java b/platform/testFramework/src/com/intellij/InternalTestDiscoveryListener.java similarity index 84% rename from java/execution/impl/src/com/intellij/execution/testDiscovery/InternalTestDiscoveryListener.java rename to platform/testFramework/src/com/intellij/InternalTestDiscoveryListener.java index 3b94aaaf0c98..a03bb6ddc02a 100644 --- a/java/execution/impl/src/com/intellij/execution/testDiscovery/InternalTestDiscoveryListener.java +++ b/platform/testFramework/src/com/intellij/InternalTestDiscoveryListener.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.execution.testDiscovery; +package com.intellij; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; @@ -39,7 +39,8 @@ public class InternalTestDiscoveryListener implements TestListener, Closeable { private final String myTracesDirectory; private List myCompletedMethodNames = new ArrayList(); private final Alarm myProcessTracesAlarm; - private TestDiscoveryIndex myDiscoveryIndex; + private Object myDiscoveryIndex; + private Class myDiscoveryIndexClass; public InternalTestDiscoveryListener() { myProcessTracesAlarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD, null); @@ -47,11 +48,12 @@ public class InternalTestDiscoveryListener implements TestListener, Closeable { myModuleName = System.getProperty("org.jetbrains.instrumentation.main.module"); } - private TestDiscoveryIndex getIndex() { + private Object getIndex() { if (myDiscoveryIndex == null) { final Project project = ProjectManager.getInstance().getDefaultProject(); try { - myDiscoveryIndex = (TestDiscoveryIndex)Class.forName(TestDiscoveryIndex.class.getName()) + myDiscoveryIndexClass = Class.forName("com.intellij.execution.testDiscovery.TestDiscoveryIndex"); + myDiscoveryIndex = myDiscoveryIndexClass .getConstructor(Project.class, String.class) .newInstance(project, myTracesDirectory); } @@ -91,7 +93,16 @@ public class InternalTestDiscoveryListener implements TestListener, Closeable { protected void flushCurrentTraces() { final String[] fullTestNames = ArrayUtil.toStringArray(myCompletedMethodNames); myCompletedMethodNames.clear(); - myProcessTracesAlarm.addRequest(() -> TestDiscoveryExtension.processAvailableTraces(fullTestNames, myTracesDirectory, myModuleName, "j", getIndex()), 100); + myProcessTracesAlarm.addRequest(() -> { + try { + final Method method = Class.forName("com.intellij.execution.testDiscovery.TestDiscoveryExtension") + .getMethod("processAvailableTraces", fullTestNames.getClass(), myTracesDirectory.getClass(), String.class, String.class, myDiscoveryIndexClass); + method.invoke(null, fullTestNames, myTracesDirectory, myModuleName, "j", getIndex()); + } + catch (Throwable e) { + e.printStackTrace(); + } + }, 100); } private static String getMethodName(Test test) {