diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/IDEAJUnitListener.java b/java/java-runtime/src/com/intellij/rt/execution/junit/IDEAJUnitListener.java
similarity index 100%
rename from plugins/junit_rt/src/com/intellij/rt/execution/junit/IDEAJUnitListener.java
rename to java/java-runtime/src/com/intellij/rt/execution/junit/IDEAJUnitListener.java
diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/IDEAJUnitListenerEx.java b/java/java-runtime/src/com/intellij/rt/execution/junit/IDEAJUnitListenerEx.java
similarity index 100%
rename from plugins/junit_rt/src/com/intellij/rt/execution/junit/IDEAJUnitListenerEx.java
rename to java/java-runtime/src/com/intellij/rt/execution/junit/IDEAJUnitListenerEx.java
diff --git a/java/java-tests/testSrc/com/intellij/java/execution/ConfigurationsTest.java b/java/java-tests/testSrc/com/intellij/java/execution/ConfigurationsTest.java
index 9d78a0c9da85..5bf6a1c84a41 100644
--- a/java/java-tests/testSrc/com/intellij/java/execution/ConfigurationsTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/execution/ConfigurationsTest.java
@@ -44,7 +44,7 @@ import com.intellij.project.IntelliJProjectConfiguration;
import com.intellij.psi.*;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.rt.ant.execution.SegmentedOutputStream;
-import com.intellij.rt.execution.junit.JUnitStarter;
+import com.intellij.rt.junit.JUnitStarter;
import com.intellij.testFramework.CompilerTester;
import com.intellij.testFramework.MapDataContext;
import com.intellij.testFramework.PlatformTestUtil;
diff --git a/plugins/coverage/coverage_rt/intellij.java.coverage.rt.iml b/plugins/coverage/coverage_rt/intellij.java.coverage.rt.iml
index 3be4291b0267..0e2d3e8ebc38 100644
--- a/plugins/coverage/coverage_rt/intellij.java.coverage.rt.iml
+++ b/plugins/coverage/coverage_rt/intellij.java.coverage.rt.iml
@@ -12,5 +12,6 @@
+
\ No newline at end of file
diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java
index a1abd18707ed..4501b80472e5 100644
--- a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java
+++ b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java
@@ -64,7 +64,7 @@ public class JUnitConfiguration extends JavaTestConfigurationWithDiscoverySuppor
@NonNls public static final String FORK_KLASS = "class";
@NonNls public static final String FORK_REPEAT = "repeat";
// See #26522
- @NonNls public static final String JUNIT_START_CLASS = "com.intellij.rt.execution.junit.JUnitStarter";
+ @NonNls public static final String JUNIT_START_CLASS = "com.intellij.rt.junit.JUnitStarter";
@NonNls private static final String PATTERN_EL_NAME = "pattern";
@NonNls public static final String TEST_PATTERN = PATTERN_EL_NAME;
@NonNls private static final String TEST_CLASS_ATT_NAME = "testClass";
diff --git a/plugins/junit/src/com/intellij/execution/junit/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java
index 9c5bf57a2f2a..31aaf8ae14ee 100644
--- a/plugins/junit/src/com/intellij/execution/junit/TestObject.java
+++ b/plugins/junit/src/com/intellij/execution/junit/TestObject.java
@@ -41,9 +41,9 @@ import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.refactoring.listeners.RefactoringElementListener;
import com.intellij.rt.execution.junit.IDEAJUnitListener;
-import com.intellij.rt.execution.junit.JUnitStarter;
import com.intellij.rt.execution.junit.RepeatCount;
import com.intellij.rt.execution.testFrameworks.ForkedDebuggerHelper;
+import com.intellij.rt.junit.JUnitStarter;
import com.intellij.spi.SPIFileType;
import com.intellij.spi.psi.SPIClassProviderReferenceElement;
import com.intellij.util.Function;
diff --git a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java
index cc13d4b3a618..609a1ad86705 100644
--- a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java
+++ b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java
@@ -21,7 +21,7 @@ import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.PackageScope;
import com.intellij.psi.util.ClassUtil;
import com.intellij.refactoring.listeners.RefactoringElementListener;
-import com.intellij.rt.execution.junit.JUnitStarter;
+import com.intellij.rt.junit.JUnitStarter;
import com.intellij.util.Function;
import com.intellij.util.containers.JBTreeTraverser;
import org.jetbrains.annotations.NotNull;
diff --git a/plugins/junit/src/com/intellij/execution/junit/testDiscovery/JUnitTestDiscoveryConfigurationProducer.java b/plugins/junit/src/com/intellij/execution/junit/testDiscovery/JUnitTestDiscoveryConfigurationProducer.java
index 1637a1673cf4..6a5996a505af 100644
--- a/plugins/junit/src/com/intellij/execution/junit/testDiscovery/JUnitTestDiscoveryConfigurationProducer.java
+++ b/plugins/junit/src/com/intellij/execution/junit/testDiscovery/JUnitTestDiscoveryConfigurationProducer.java
@@ -17,7 +17,7 @@ import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.util.Pair;
import com.intellij.psi.PsiMethod;
-import com.intellij.rt.execution.junit.JUnitStarter;
+import com.intellij.rt.junit.JUnitStarter;
import org.jetbrains.annotations.NotNull;
import java.util.*;
diff --git a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java
index 1e94edbf348a..1a962a6bcb61 100644
--- a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java
+++ b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java
@@ -17,7 +17,7 @@ package com.intellij.junit5;
import com.intellij.rt.execution.junit.IDEAJUnitListener;
import com.intellij.rt.execution.junit.IDEAJUnitListenerEx;
-import com.intellij.rt.execution.junit.IdeaTestRunner;
+import com.intellij.rt.junit.IdeaTestRunner;
import org.junit.platform.engine.TestExecutionResult;
import org.junit.platform.launcher.*;
import org.junit.platform.launcher.core.LauncherFactory;
diff --git a/plugins/junit_rt/src/com/intellij/junit3/JUnit3IdeaTestRunner.java b/plugins/junit_rt/src/com/intellij/junit3/JUnit3IdeaTestRunner.java
index f86eea3d407a..14f51306e4d2 100644
--- a/plugins/junit_rt/src/com/intellij/junit3/JUnit3IdeaTestRunner.java
+++ b/plugins/junit_rt/src/com/intellij/junit3/JUnit3IdeaTestRunner.java
@@ -16,6 +16,8 @@
package com.intellij.junit3;
import com.intellij.rt.execution.junit.*;
+import com.intellij.rt.junit.DeafStream;
+import com.intellij.rt.junit.IdeaTestRunner;
import junit.framework.*;
import junit.textui.ResultPrinter;
import junit.textui.TestRunner;
diff --git a/plugins/junit_rt/src/com/intellij/junit4/JUnit4IdeaTestRunner.java b/plugins/junit_rt/src/com/intellij/junit4/JUnit4IdeaTestRunner.java
index cee1076394fa..ed18ee9ca95c 100644
--- a/plugins/junit_rt/src/com/intellij/junit4/JUnit4IdeaTestRunner.java
+++ b/plugins/junit_rt/src/com/intellij/junit4/JUnit4IdeaTestRunner.java
@@ -18,7 +18,7 @@ package com.intellij.junit4;
import com.intellij.rt.execution.junit.ComparisonFailureData;
import com.intellij.rt.execution.junit.IDEAJUnitListener;
import com.intellij.rt.execution.junit.IDEAJUnitListenerEx;
-import com.intellij.rt.execution.junit.IdeaTestRunner;
+import com.intellij.rt.junit.IdeaTestRunner;
import org.junit.internal.requests.ClassRequest;
import org.junit.internal.requests.FilterRequest;
import org.junit.runner.*;
diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/DeafStream.java b/plugins/junit_rt/src/com/intellij/rt/execution/junit/DeafStream.java
deleted file mode 100644
index 28d411349fa1..000000000000
--- a/plugins/junit_rt/src/com/intellij/rt/execution/junit/DeafStream.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2000-2009 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.intellij.rt.execution.junit;
-
-import java.io.OutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-public class DeafStream extends OutputStream {
- public static final DeafStream CURRENT = new DeafStream();
- public static final PrintStream DEAF_PRINT_STREAM = new PrintStream(CURRENT);
-
- public void write(int b) throws IOException {
- }
-}
diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/RunOnce.java b/plugins/junit_rt/src/com/intellij/rt/execution/junit/RunOnce.java
deleted file mode 100644
index 3874bc6a3bd2..000000000000
--- a/plugins/junit_rt/src/com/intellij/rt/execution/junit/RunOnce.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2000-2009 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.intellij.rt.execution.junit;
-
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import java.util.Hashtable;
-
-public class RunOnce extends TestResult {
- private final Hashtable myPeformedTests = new Hashtable();
- private static final String NOT_ALLOWED_IN_ID = ":";
-
- protected void run(TestCase test) {
- if (test.getClass().getName().startsWith(TestSuite.class.getName())) {
- super.run(test);
- }
- else {
- String testKey = keyOf(test);
- if (!myPeformedTests.containsKey(testKey)) {
- super.run(test);
- myPeformedTests.put(testKey, test);
- }
- }
- }
-
-
-
- private static String keyOf(TestCase test) {
- return test.getClass().getName() + NOT_ALLOWED_IN_ID + test.getName() + NOT_ALLOWED_IN_ID + test.toString();
- }
-}
diff --git a/plugins/junit_rt/src/com/intellij/rt/junit/DeafStream.java b/plugins/junit_rt/src/com/intellij/rt/junit/DeafStream.java
new file mode 100644
index 000000000000..10ffac1e6bac
--- /dev/null
+++ b/plugins/junit_rt/src/com/intellij/rt/junit/DeafStream.java
@@ -0,0 +1,14 @@
+// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package com.intellij.rt.junit;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+public class DeafStream extends OutputStream {
+ public static final DeafStream CURRENT = new DeafStream();
+ public static final PrintStream DEAF_PRINT_STREAM = new PrintStream(CURRENT);
+
+ public void write(int b) throws IOException {
+ }
+}
diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/IdeaTestRunner.java b/plugins/junit_rt/src/com/intellij/rt/junit/IdeaTestRunner.java
similarity index 74%
rename from plugins/junit_rt/src/com/intellij/rt/execution/junit/IdeaTestRunner.java
rename to plugins/junit_rt/src/com/intellij/rt/junit/IdeaTestRunner.java
index b40d52dad1ea..66979b7d2326 100644
--- a/plugins/junit_rt/src/com/intellij/rt/execution/junit/IdeaTestRunner.java
+++ b/plugins/junit_rt/src/com/intellij/rt/junit/IdeaTestRunner.java
@@ -1,20 +1,6 @@
-/*
- * Copyright 2000-2011 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.intellij.rt.execution.junit;
+package com.intellij.rt.junit;
import java.util.ArrayList;
import java.util.List;
diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitForkedSplitter.java b/plugins/junit_rt/src/com/intellij/rt/junit/JUnitForkedSplitter.java
similarity index 74%
rename from plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitForkedSplitter.java
rename to plugins/junit_rt/src/com/intellij/rt/junit/JUnitForkedSplitter.java
index 30e0f7616d11..6f32a1c26560 100644
--- a/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitForkedSplitter.java
+++ b/plugins/junit_rt/src/com/intellij/rt/junit/JUnitForkedSplitter.java
@@ -1,19 +1,5 @@
-/*
- * Copyright 2000-2015 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.intellij.rt.execution.junit;
+// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package com.intellij.rt.junit;
import com.intellij.rt.execution.testFrameworks.ForkedSplitter;
diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitForkedStarter.java b/plugins/junit_rt/src/com/intellij/rt/junit/JUnitForkedStarter.java
similarity index 59%
rename from plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitForkedStarter.java
rename to plugins/junit_rt/src/com/intellij/rt/junit/JUnitForkedStarter.java
index 40458d23194d..1a86f89759f8 100644
--- a/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitForkedStarter.java
+++ b/plugins/junit_rt/src/com/intellij/rt/junit/JUnitForkedStarter.java
@@ -1,19 +1,7 @@
-/*
- * Copyright 2000-2015 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.intellij.rt.execution.junit;
+// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package com.intellij.rt.junit;
+
+import com.intellij.rt.execution.junit.RepeatCount;
import java.util.ArrayList;
import java.util.List;
diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitStarter.java b/plugins/junit_rt/src/com/intellij/rt/junit/JUnitStarter.java
similarity index 92%
rename from plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitStarter.java
rename to plugins/junit_rt/src/com/intellij/rt/junit/JUnitStarter.java
index 625698ef13e3..fd020f3dd0fb 100644
--- a/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitStarter.java
+++ b/plugins/junit_rt/src/com/intellij/rt/junit/JUnitStarter.java
@@ -1,19 +1,7 @@
-/*
- * Copyright 2000-2011 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.intellij.rt.execution.junit;
+// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package com.intellij.rt.junit;
+
+import com.intellij.rt.execution.junit.RepeatCount;
import java.io.*;
import java.net.InetAddress;