diff --git a/java/execution/impl/execution-impl.iml b/java/execution/impl/execution-impl.iml index b3e1db2cbc1f..602b82583a84 100644 --- a/java/execution/impl/execution-impl.iml +++ b/java/execution/impl/execution-impl.iml @@ -11,7 +11,6 @@ - diff --git a/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurationProducer.java b/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurationProducer.java index 3ddddf466c23..6401d8df6b12 100644 --- a/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurationProducer.java +++ b/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurationProducer.java @@ -24,9 +24,9 @@ import com.intellij.execution.JavaExecutionUtil; import com.intellij.execution.Location; import com.intellij.execution.RunnerAndConfigurationSettings; import com.intellij.execution.actions.ConfigurationContext; -import com.intellij.execution.junit.JUnitUtil; import com.intellij.execution.junit.JavaRuntimeConfigurationProducerBase; import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; import com.intellij.psi.JavaPsiFacade; @@ -36,6 +36,7 @@ import com.intellij.psi.PsiManager; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.PsiClassUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class AppletConfigurationProducer extends JavaRuntimeConfigurationProducerBase { private PsiClass myPsiClass; @@ -60,7 +61,7 @@ public class AppletConfigurationProducer extends JavaRuntimeConfigurationProduce RunnerAndConfigurationSettings settings = cloneTemplateConfiguration(project, context); final AppletConfiguration configuration = (AppletConfiguration)settings.getConfiguration(); configuration.MAIN_CLASS_NAME = JavaExecutionUtil.getRuntimeQualifiedName(myPsiClass); - configuration.setModule(new JUnitUtil.ModuleOfClass().convert(myPsiClass)); + configuration.setModule(myPsiClass.isValid() ? ModuleUtilCore.findModuleForPsiElement(myPsiClass) : null); configuration.setName(configuration.getGeneratedName()); return settings; } @@ -70,6 +71,7 @@ public class AppletConfigurationProducer extends JavaRuntimeConfigurationProduce } + @Nullable private static PsiClass getAppletClass(PsiElement element, final PsiManager manager) { while (element != null) { if (element instanceof PsiClass) { diff --git a/java/execution/impl/src/com/intellij/execution/junit/JUnitUtil.java b/java/execution/impl/src/com/intellij/execution/junit/JUnitUtil.java index 6c38b54e9d93..493f01137da4 100644 --- a/java/execution/impl/src/com/intellij/execution/junit/JUnitUtil.java +++ b/java/execution/impl/src/com/intellij/execution/junit/JUnitUtil.java @@ -20,7 +20,6 @@ import com.intellij.execution.*; import com.intellij.execution.junit2.info.MethodLocation; import com.intellij.execution.testframework.SourceScope; import com.intellij.openapi.module.Module; -import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; @@ -30,18 +29,13 @@ import com.intellij.psi.search.searches.ClassInheritorsSearch; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PsiClassUtil; import com.intellij.util.Processor; -import com.intellij.util.containers.Convertor; -import junit.runner.BaseTestRunner; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.runners.Parameterized; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.Iterator; @SuppressWarnings({"UtilityClassWithoutPrivateConstructor"}) public class JUnitUtil { @@ -51,6 +45,12 @@ public class JUnitUtil { @NonNls private static final String TEST_ANNOTATION = "org.junit.Test"; @NonNls public static final String RUN_WITH = "org.junit.runner.RunWith"; @NonNls public static final String SUITE_METHOD_NAME = "suite"; + private static final String BEFORE_ANNOTATION_NAME = "org.junit.Before"; + private static final String AFTER_ANNOTATION_NAME = "org.junit.After"; + private static final String PARAMETRIZED_PARAMETERS_ANNOTATION_NAME = "org.junit.runners.Parameterized.Parameters"; + private static final String AFTER_CLASS_ANNOTATION_NAME = "org.junit.AfterClass"; + private static final String BEFORE_CLASS_ANNOTATION_NAME = "org.junit.BeforeClass"; + private static final String PARAMETERIZED_CLASS_NAME = "org.junit.runners.Parameterized"; public static boolean isSuiteMethod(@NotNull PsiMethod psiMethod) { if (!psiMethod.hasModifierProperty(PsiModifier.PUBLIC)) return false; @@ -78,7 +78,7 @@ public class JUnitUtil { if (psiMethod.hasModifierProperty(PsiModifier.ABSTRACT)) return false; if (AnnotationUtil.isAnnotated(aClass, RUN_WITH, true)) return true; if (psiMethod.getParameterList().getParametersCount() > 0) return false; - if (psiMethod.hasModifierProperty(PsiModifier.STATIC) && BaseTestRunner.SUITE_METHODNAME.equals(psiMethod.getName())) return false; + if (psiMethod.hasModifierProperty(PsiModifier.STATIC) && SUITE_METHOD_NAME.equals(psiMethod.getName())) return false; if (!psiMethod.getName().startsWith("test")) return false; PsiClass testCaseClass = getTestCaseClassOrNull(location); return testCaseClass != null && psiMethod.getContainingClass().isInheritor(testCaseClass, true); @@ -91,15 +91,6 @@ public class JUnitUtil { return testCaseClass != null && aClass.isInheritor(testCaseClass, true); } - /** - * - * @param aClassLocation - * @return true if aClassLocation can be used as JUnit test class. - */ - private static boolean isTestClass(final Location aClassLocation) { - return isTestClass(aClassLocation.getPsiElement()); - } - public static boolean isTestClass(final PsiClass psiClass) { return isTestClass(psiClass, true, true); } @@ -151,7 +142,7 @@ public class JUnitUtil { final PsiAnnotationMemberValue value = attribute.getValue(); if (value instanceof PsiClassObjectAccessExpression ) { final PsiTypeElement typeElement = ((PsiClassObjectAccessExpression)value).getOperand(); - if (typeElement.getType().getCanonicalText().equals(Parameterized.class.getName())) { + if (typeElement.getType().getCanonicalText().equals(PARAMETERIZED_CLASS_NAME)) { return false; } } @@ -223,13 +214,13 @@ public class JUnitUtil { return true; } if (psiMethod.hasModifierProperty(PsiModifier.STATIC)) { - if (AnnotationUtil.isAnnotated(psiMethod, Arrays.asList(BeforeClass.class.getName(), AfterClass.class.getName(), - Parameterized.Parameters.class.getName().replace('$', '.')))) { + if (AnnotationUtil.isAnnotated(psiMethod, Arrays.asList(BEFORE_CLASS_ANNOTATION_NAME, AFTER_CLASS_ANNOTATION_NAME, + PARAMETRIZED_PARAMETERS_ANNOTATION_NAME))) { return true; } } else { - if (AnnotationUtil.isAnnotated(psiMethod, Arrays.asList(Before.class.getName(), After.class.getName()))) return true; + if (AnnotationUtil.isAnnotated(psiMethod, Arrays.asList(BEFORE_ANNOTATION_NAME, AFTER_ANNOTATION_NAME))) return true; } } return false; @@ -298,55 +289,6 @@ public class JUnitUtil { return null; } - /** - * @param collection - * @param comparator returns 0 iff elemets are incomparable. - * @return maximum elements - */ - public static Collection findMaximums(final Collection collection, final Comparator comparator) { - final ArrayList maximums = new ArrayList(); - loop: - for (final T candidate : collection) { - for (final T element : collection) { - if (comparator.compare(element, candidate) > 0) continue loop; - } - maximums.add(candidate); - } - return maximums; - } - - /*public static Map> buildAllDependencies(final Project project) { - final Module[] modules = ModuleManager.getInstance(project).getSortedModules(); - final HashMap> lessers = new HashMap>(); - int prevProcessedCount = 0; - while (modules.length > lessers.size()) { - for (int i = 0; i < modules.length; i++) { - final Module module = modules[i]; - if (lessers.containsKey(module)) continue; - final Module[] dependencies = ModuleRootManager.getInstance(module).getDependencies(); - if (lessers.keySet().containsAll(Arrays.asList(dependencies))) { - final HashSet allDependencies = new HashSet(); - for (int j = 0; j < dependencies.length; j++) { - final Module dependency = dependencies[j]; - allDependencies.add(dependency); - allDependencies.addAll(lessers.get(dependency)); - } - lessers.put(module, allDependencies); - } - } - if (lessers.size() == prevProcessedCount) return null; - prevProcessedCount = lessers.size(); - } - return lessers; - }*/ - - public static class ModuleOfClass implements Convertor { - public Module convert(final PsiClass psiClass) { - if (psiClass == null || !psiClass.isValid()) return null; - return ModuleUtil.findModuleForPsiElement(psiClass); - } - } - public static class NoJUnitException extends CantRunException { public NoJUnitException() { super(ExecutionBundle.message("no.junit.error.message")); diff --git a/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java b/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java index 0a4a3e6334ee..22dc20750689 100644 --- a/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java +++ b/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java @@ -23,8 +23,8 @@ import com.intellij.execution.configurations.JavaParameters; import com.intellij.execution.configurations.RunConfigurationModule; import com.intellij.execution.configurations.RuntimeConfigurationWarning; import com.intellij.execution.configurations.SimpleJavaParameters; -import com.intellij.execution.junit.JUnitUtil; import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.JavaSdk; import com.intellij.openapi.projectRoots.Sdk; @@ -78,7 +78,7 @@ public class JavaParametersUtil { if (psiFile == null) throw CantRunException.classNotFound(mainClassName, module); final VirtualFile virtualFile = psiFile.getVirtualFile(); if (virtualFile == null) throw CantRunException.classNotFound(mainClassName, module); - Module classModule = new JUnitUtil.ModuleOfClass().convert(psiClass); + Module classModule = psiClass.isValid() ? ModuleUtilCore.findModuleForPsiElement(psiClass) : null; if (classModule == null) classModule = module; ModuleFileIndex fileIndex = ModuleRootManager.getInstance(classModule).getFileIndex(); if (fileIndex.isInSourceContent(virtualFile)) { diff --git a/plugins/gradle/gradle.iml b/plugins/gradle/gradle.iml index 4239d57a2c9a..3ba09b0629ae 100644 --- a/plugins/gradle/gradle.iml +++ b/plugins/gradle/gradle.iml @@ -29,7 +29,7 @@ - + diff --git a/plugins/rearranger/rearranger.iml b/plugins/rearranger/rearranger.iml index bdf57652531f..bca8324f937a 100644 --- a/plugins/rearranger/rearranger.iml +++ b/plugins/rearranger/rearranger.iml @@ -10,7 +10,7 @@ - +