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) {