diff --git a/java/idea-ui/src/com/intellij/codeInsight/daemon/impl/SetupSDKNotificationProvider.java b/java/idea-ui/src/com/intellij/codeInsight/daemon/impl/SetupSDKNotificationProvider.java index ea25eec3f4c1..714a0efe77fd 100644 --- a/java/idea-ui/src/com/intellij/codeInsight/daemon/impl/SetupSDKNotificationProvider.java +++ b/java/idea-ui/src/com/intellij/codeInsight/daemon/impl/SetupSDKNotificationProvider.java @@ -16,14 +16,9 @@ package com.intellij.codeInsight.daemon.impl; import com.intellij.ProjectTopics; -import com.intellij.icons.AllIcons; import com.intellij.ide.highlighter.JavaClassFileType; -import com.intellij.lang.Language; -import com.intellij.lang.StdLanguages; import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.fileTypes.FileTypes; -import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.project.Project; @@ -95,9 +90,7 @@ public class SetupSDKNotificationProvider implements EditorNotifications.Provide public void run() { final Module module = ModuleUtil.findModuleForPsiElement(file); if (module != null) { - ModifiableRootModel modifiableModel = ModuleRootManager.getInstance(module).getModifiableModel(); - modifiableModel.inheritSdk(); - modifiableModel.commit(); + ModuleRootModificationUtil.setSdkInherited(module); } } }); diff --git a/java/idea-ui/src/com/intellij/ide/projectView/actions/CreateLibraryFromFilesDialog.java b/java/idea-ui/src/com/intellij/ide/projectView/actions/CreateLibraryFromFilesDialog.java index 5737389099ce..a75eb5d5ce5a 100644 --- a/java/idea-ui/src/com/intellij/ide/projectView/actions/CreateLibraryFromFilesDialog.java +++ b/java/idea-ui/src/com/intellij/ide/projectView/actions/CreateLibraryFromFilesDialog.java @@ -22,6 +22,7 @@ import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.impl.libraries.LibraryTypeServiceImpl; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.ui.OrderRoot; @@ -61,8 +62,10 @@ public class CreateLibraryFromFilesDialog extends DialogWrapper { myProject = project; myRoots = roots; final FormBuilder builder = LibraryNameAndLevelPanel.createFormBuilder(); - myDefaultName = LibrariesContainerFactory.createContainer(project).suggestUniqueLibraryName(LibraryTypeServiceImpl.suggestLibraryName(roots)); - myNameAndLevelPanel = new LibraryNameAndLevelPanel(builder, myDefaultName, Arrays.asList(LibrariesContainer.LibraryLevel.values()), LibrariesContainer.LibraryLevel.PROJECT); + myDefaultName = + LibrariesContainerFactory.createContainer(project).suggestUniqueLibraryName(LibraryTypeServiceImpl.suggestLibraryName(roots)); + myNameAndLevelPanel = new LibraryNameAndLevelPanel(builder, myDefaultName, Arrays.asList(LibrariesContainer.LibraryLevel.values()), + LibrariesContainer.LibraryLevel.PROJECT); myNameAndLevelPanel.setDefaultName(myDefaultName); myModulesCombobox = new ModulesCombobox(); myModulesCombobox.fillModules(myProject); @@ -141,9 +144,7 @@ public class CreateLibraryFromFilesDialog extends DialogWrapper { else { final Library library = LibrariesContainerFactory.createContainer(myProject).createLibrary(libraryName, level, myRoots); if (module != null) { - final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); - model.addLibraryEntry(library); - model.commit(); + ModuleRootModificationUtil.addDependency(module, library); } } } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OrderEntryFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OrderEntryFix.java index f24750334d90..e38e2e3c37b9 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OrderEntryFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OrderEntryFix.java @@ -158,7 +158,7 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { @Override public void run() { final LocateLibraryDialog dialog = new LocateLibraryDialog(currentModule, PathManager.getLibPath(), "annotations.jar", - QuickFixBundle.message("add.library.annotations.description")); + QuickFixBundle.message("add.library.annotations.description")); dialog.show(); if (dialog.isOK()) { new WriteCommandAction(project) { @@ -212,12 +212,9 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { final Runnable doit = new Runnable() { @Override public void run() { - ModifiableRootModel model = ModuleRootManager.getInstance(currentModule).getModifiableModel(); - final ModuleOrderEntry entry = model.addModuleOrderEntry(classModule); - if (ModuleRootManager.getInstance(currentModule).getFileIndex().isInTestSourceContent(classVFile)) { - entry.setScope(DependencyScope.TEST); - } - model.commit(); + final boolean test = ModuleRootManager.getInstance(currentModule).getFileIndex().isInTestSourceContent(classVFile); + ModuleRootModificationUtil.addDependency(currentModule, classModule, + test ? DependencyScope.TEST : DependencyScope.COMPILE, false); if (editor != null) { final List targetClasses = new ArrayList(); for (PsiClass psiClass : classes) { @@ -257,7 +254,8 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { if (entryForFile instanceof ExportableOrderEntry && ((ExportableOrderEntry)entryForFile).getScope() == DependencyScope.TEST && !ModuleRootManager.getInstance(currentModule).getFileIndex().isInTestSourceContent(classVFile)) { - } else { + } + else { continue; } } @@ -361,9 +359,9 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { final Module classModule, final Runnable doit) { final String message = QuickFixBundle.message("orderEntry.fix.circular.dependency.warning", classModule.getName(), - circularModules.getFirst().getName(), circularModules.getSecond().getName()); + circularModules.getFirst().getName(), circularModules.getSecond().getName()); if (ApplicationManager.getApplication().isUnitTestMode()) throw new RuntimeException(message); - ApplicationManager.getApplication().invokeLater(new Runnable(){ + ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { if (!project.isOpen()) return; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SetupJDKFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SetupJDKFix.java index bbe494cdc1dc..ad033fcb0e26 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SetupJDKFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SetupJDKFix.java @@ -24,8 +24,7 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService; import com.intellij.psi.CommonClassNames; import com.intellij.psi.JavaPsiFacade; @@ -34,15 +33,17 @@ import org.jetbrains.annotations.NotNull; /** * @author mike - * Date: Aug 20, 2002 + * Date: Aug 20, 2002 */ public class SetupJDKFix implements IntentionAction, HighPriorityAction { private static final SetupJDKFix ourInstance = new SetupJDKFix(); + public static SetupJDKFix getInstance() { return ourInstance; } - private SetupJDKFix() { } + private SetupJDKFix() { + } @Override @NotNull @@ -70,9 +71,7 @@ public class SetupJDKFix implements IntentionAction, HighPriorityAction { public void run() { Module module = ModuleUtil.findModuleForPsiElement(file); if (module != null) { - ModifiableRootModel modifiableModel = ModuleRootManager.getInstance(module).getModifiableModel(); - modifiableModel.inheritSdk(); - modifiableModel.commit(); + ModuleRootModificationUtil.setSdkInherited(module); } } }); diff --git a/java/java-impl/src/com/intellij/codeInspection/inferNullity/InferNullityAnnotationsAction.java b/java/java-impl/src/com/intellij/codeInspection/inferNullity/InferNullityAnnotationsAction.java index b3f54b8061d2..c56c86ee2f0c 100644 --- a/java/java-impl/src/com/intellij/codeInspection/inferNullity/InferNullityAnnotationsAction.java +++ b/java/java-impl/src/com/intellij/codeInspection/inferNullity/InferNullityAnnotationsAction.java @@ -34,8 +34,7 @@ import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectUtil; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryUtil; import com.intellij.openapi.ui.DialogWrapper; @@ -79,6 +78,7 @@ public class InferNullityAnnotationsAction extends BaseAnalysisAction { scope.accept(new PsiElementVisitor() { private int myFileCount = 0; final private Set processed = new HashSet(); + @Override public void visitFile(PsiFile file) { myFileCount++; @@ -94,7 +94,8 @@ public class InferNullityAnnotationsAction extends BaseAnalysisAction { if (module != null && !processed.contains(module)) { processed.add(module); if (JavaPsiFacade.getInstance(project) - .findClass(NullableNotNullManager.getInstance(project).getDefaultNullable(), GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(module)) == null) { + .findClass(NullableNotNullManager.getInstance(project).getDefaultNullable(), + GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(module)) == null) { modulesWithoutAnnotations.add(module); } if (PsiUtil.getLanguageLevel(file).compareTo(LanguageLevel.JDK_1_5) < 0) { @@ -104,13 +105,17 @@ public class InferNullityAnnotationsAction extends BaseAnalysisAction { } }); } - }, "Check applicability...", true, project)) return; + }, "Check applicability...", true, project)) { + return; + } if (!modulesWithLL.isEmpty()) { - Messages.showErrorDialog(project, "Infer Nullity Annotations requires the project language level be set to 1.5 or greater.", INFER_NULLITY_ANNOTATIONS); + Messages.showErrorDialog(project, "Infer Nullity Annotations requires the project language level be set to 1.5 or greater.", + INFER_NULLITY_ANNOTATIONS); return; } if (!modulesWithoutAnnotations.isEmpty()) { - final Library annotationsLib = LibraryUtil.findLibraryByClass(NullableNotNullManager.getInstance(project).getDefaultNullable(), project); + final Library annotationsLib = + LibraryUtil.findLibraryByClass(NullableNotNullManager.getInstance(project).getDefaultNullable(), project); if (annotationsLib != null) { String message = "Module" + (modulesWithoutAnnotations.size() == 1 ? " " : "s "); message += StringUtil.join(modulesWithoutAnnotations, new Function() { @@ -120,25 +125,27 @@ public class InferNullityAnnotationsAction extends BaseAnalysisAction { } }, ", "); message += (modulesWithoutAnnotations.size() == 1 ? " doesn't" : " don't"); - message += " refer to the existing '" + annotationsLib.getName() + "' library with IDEA nullity annotations. Would you like to add the dependenc"; - message += (modulesWithoutAnnotations.size() == 1 ? "y" : "ies")+ " now?"; - if (Messages.showOkCancelDialog(project, message, INFER_NULLITY_ANNOTATIONS, Messages.getErrorIcon()) == DialogWrapper.OK_EXIT_CODE) { + message += " refer to the existing '" + + annotationsLib.getName() + + "' library with IDEA nullity annotations. Would you like to add the dependenc"; + message += (modulesWithoutAnnotations.size() == 1 ? "y" : "ies") + " now?"; + if (Messages.showOkCancelDialog(project, message, INFER_NULLITY_ANNOTATIONS, Messages.getErrorIcon()) == + DialogWrapper.OK_EXIT_CODE) { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { for (Module module : modulesWithoutAnnotations) { - final ModifiableRootModel modifiableModel = ModuleRootManager.getInstance(module).getModifiableModel(); - modifiableModel.addLibraryEntry(annotationsLib); - modifiableModel.commit(); + ModuleRootModificationUtil.addDependency(module, annotationsLib); } } }); } - } else if (Messages.showOkCancelDialog(project, "Infer Nullity Annotations requires that the nullity annotations" + - " be available in all your project sources.\n\nYou will need to add annotations.jar as a library. " + - "It is possible to configure custom jar in e.g. Constant Conditions & Exceptions inspection or use JetBrains annotations available in installation. " + - " The IDEA nullity annotations are freely usable and redistributable under the Apache 2.0 license. Would you like to do it now?", - INFER_NULLITY_ANNOTATIONS, Messages.getErrorIcon()) == DialogWrapper.OK_EXIT_CODE) { + } + else if (Messages.showOkCancelDialog(project, "Infer Nullity Annotations requires that the nullity annotations" + + " be available in all your project sources.\n\nYou will need to add annotations.jar as a library. " + + "It is possible to configure custom jar in e.g. Constant Conditions & Exceptions inspection or use JetBrains annotations available in installation. " + + " The IDEA nullity annotations are freely usable and redistributable under the Apache 2.0 license. Would you like to do it now?", + INFER_NULLITY_ANNOTATIONS, Messages.getErrorIcon()) == DialogWrapper.OK_EXIT_CODE) { ApplicationManager.getApplication().invokeLater(new Runnable() { public void run() { final LocateLibraryDialog dialog = @@ -169,6 +176,7 @@ public class InferNullityAnnotationsAction extends BaseAnalysisAction { public void run() { scope.accept(new PsiElementVisitor() { int myFileCount = 0; + @Override public void visitFile(final PsiFile file) { myFileCount++; @@ -189,7 +197,9 @@ public class InferNullityAnnotationsAction extends BaseAnalysisAction { } }); } - }, INFER_NULLITY_ANNOTATIONS, true, project)) return; + }, INFER_NULLITY_ANNOTATIONS, true, project)) { + return; + } final Runnable applyRunnable = new Runnable() { @Override diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavySmartTypeCompletion15Test.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavySmartTypeCompletion15Test.groovy index c137c3e0ab11..259f7291e3b5 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavySmartTypeCompletion15Test.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavySmartTypeCompletion15Test.groovy @@ -4,7 +4,8 @@ import com.intellij.JavaTestUtil; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.StdModuleTypes; import com.intellij.testFramework.PsiTestUtil; -import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase; +import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase +import com.intellij.openapi.roots.ModuleRootModificationUtil; @SuppressWarnings(["ALL"]) public class HeavySmartTypeCompletion15Test extends JavaCodeInsightFixtureTestCase { @@ -17,7 +18,7 @@ public class HeavySmartTypeCompletion15Test extends JavaCodeInsightFixtureTestCa public void testGetInstance() throws Throwable { myFixture.configureFromExistingVirtualFile( - myFixture.copyFileToProject(BASE_PATH + "/foo/" + getTestName(false) + ".java", "foo/" + getTestName(false) + ".java")); + myFixture.copyFileToProject(BASE_PATH + "/foo/" + getTestName(false) + ".java", "foo/" + getTestName(false) + ".java")); myFixture.complete(CompletionType.SMART); myFixture.type('\n'); myFixture.checkResultByFile(BASE_PATH + "/foo/" + getTestName(false) + "-out.java"); @@ -83,8 +84,8 @@ public class HeavySmartTypeCompletion15Test extends JavaCodeInsightFixtureTestCa Module moduleA = PsiTestUtil.addModule(project, StdModuleTypes.JAVA, 'A', myFixture.tempDirFixture.findOrCreateDir("a")) Module moduleB = PsiTestUtil.addModule(project, StdModuleTypes.JAVA, 'B', myFixture.tempDirFixture.findOrCreateDir("b")) - PsiTestUtil.addDependency(myModule, moduleB) - PsiTestUtil.addDependency(moduleB, moduleA) + ModuleRootModificationUtil.addDependency(myModule, moduleB) + ModuleRootModificationUtil.addDependency(moduleB, moduleA) myFixture.addFileToProject('a/foo/Foo.java', 'package foo; public interface Foo {}') myFixture.addFileToProject('b/bar/Bar.java', 'package bar; public class Bar { public static void accept(foo.Foo i) {} }') @@ -93,5 +94,4 @@ public class HeavySmartTypeCompletion15Test extends JavaCodeInsightFixtureTestCa myFixture.type('\n') checkResult() } - } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/AdvHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/AdvHighlightingTest.java index 205bc25da987..cd2914873945 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/AdvHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/AdvHighlightingTest.java @@ -3,7 +3,6 @@ package com.intellij.codeInsight.daemon; import com.intellij.analysis.PackagesScopesProvider; import com.intellij.application.options.colors.ColorAndFontOptions; import com.intellij.codeInsight.daemon.impl.HighlightInfo; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; import com.intellij.openapi.editor.colors.EditorColorsManager; import com.intellij.openapi.editor.colors.EditorColorsScheme; @@ -15,8 +14,7 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.impl.JavaSdkImpl; import com.intellij.openapi.roots.LanguageLevelProjectExtension; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.packageDependencies.DependencyValidationManager; @@ -48,38 +46,113 @@ public class AdvHighlightingTest extends DaemonAnalyzerTestCase { return JavaSdkImpl.getMockJdk14(); } - public void testPackageLocals() throws Exception { doTest(BASE_PATH+"/packageLocals/x/sub/UsingMain.java", BASE_PATH+"/packageLocals", false, false); } - public void testPackageLocalClassInTheMiddle() throws Exception { doTest(BASE_PATH+"/packageLocals/x/A.java", BASE_PATH+"/packageLocals", false, false); } + public void testPackageLocals() throws Exception { + doTest(BASE_PATH + "/packageLocals/x/sub/UsingMain.java", BASE_PATH + "/packageLocals", false, false); + } - public void testEffectiveAccessLevel() throws Exception { doTest(BASE_PATH+"/accessLevel/effectiveAccess/p2/p3.java", BASE_PATH+"/accessLevel", false, false); } - public void testSingleImportConflict() throws Exception { doTest(BASE_PATH+"/singleImport/d.java", BASE_PATH+"/singleImport", false, false); } + public void testPackageLocalClassInTheMiddle() throws Exception { + doTest(BASE_PATH + "/packageLocals/x/A.java", BASE_PATH + "/packageLocals", false, false); + } - public void testDuplicateTopLevelClass() throws Exception { doTest(BASE_PATH+"/duplicateClass/A.java", BASE_PATH+"/duplicateClass", false, false); } - public void testDuplicateTopLevelClass2() throws Exception { doTest(BASE_PATH+"/duplicateClass/java/lang/Runnable.java", BASE_PATH+"/duplicateClass", false, false); } + public void testEffectiveAccessLevel() throws Exception { + doTest(BASE_PATH + "/accessLevel/effectiveAccess/p2/p3.java", BASE_PATH + "/accessLevel", false, false); + } - public void testProtectedConstructorCall() throws Exception { doTest(BASE_PATH+"/protectedConstructor/p2/C2.java", BASE_PATH+"/protectedConstructor", false, false); } - public void testProtectedConstructorCallInSamePackage() throws Exception { doTest(BASE_PATH+"/protectedConstructor/samePackage/C2.java", BASE_PATH+"/protectedConstructor", false, false); } - public void testProtectedConstructorCallInInner() throws Exception { doTest(BASE_PATH+"/protectedConstructorInInner/p2/C2.java", BASE_PATH+"/protectedConstructorInInner", false, false); } - public void testArrayLengthAccessFromSubClass() throws Exception { doTest(BASE_PATH+"/arrayLength/p2/SubTest.java", BASE_PATH+"/arrayLength", false, false); } - public void testAccessibleMember() throws Exception { doTest(BASE_PATH+"/accessibleMember/com/red/C.java", BASE_PATH+"/accessibleMember", false, false); } - public void testOnDemandImportConflict() throws Exception { doTest(BASE_PATH+"/onDemandImportConflict/Outer.java", BASE_PATH+"/onDemandImportConflict", false, false); } - public void testPackageLocalOverride() throws Exception { doTest(BASE_PATH+"/packageLocalOverride/y/C.java", BASE_PATH+"/packageLocalOverride", false, false); } - public void testPackageLocalOverrideJustCheckThatPackageLocalMethodDoesNotGetOverridden() throws Exception { doTest(BASE_PATH+"/packageLocalOverride/y/B.java", BASE_PATH+"/packageLocalOverride", false, false); } - public void testProtectedAccessFromOtherPackage() throws Exception { doTest(BASE_PATH+"/protectedAccessFromOtherPackage/a/Main.java", BASE_PATH+"/protectedAccessFromOtherPackage", false, false); } - public void testProtectedFieldAccessFromOtherPackage() throws Exception { doTest(BASE_PATH+"/protectedAccessFromOtherPackage/a/A.java", BASE_PATH+"/protectedAccessFromOtherPackage", false, false); } - public void testPackageLocalClassInTheMiddle1() throws Exception { doTest(BASE_PATH+"/foreignPackageInBetween/a/A1.java", BASE_PATH+"/foreignPackageInBetween", false, false); } + public void testSingleImportConflict() throws Exception { + doTest(BASE_PATH + "/singleImport/d.java", BASE_PATH + "/singleImport", false, false); + } - public void testImportOnDemand() throws Exception { doTest(BASE_PATH+"/importOnDemand/y/Y.java", BASE_PATH+"/importOnDemand", false, false); } - public void testImportOnDemandVsSingle() throws Exception { doTest(BASE_PATH+"/importOnDemandVsSingle/y/Y.java", BASE_PATH+"/importOnDemandVsSingle", false, false); } - public void testImportSingleVsSamePackage() throws Exception { doTest(BASE_PATH+"/importSingleVsSamePackage/y/Y.java", BASE_PATH+"/importSingleVsSamePackage", false, false); } - public void testImportSingleVsInherited() throws Exception { doTest(BASE_PATH + "/importSingleVsInherited/Test.java", BASE_PATH + "/importSingleVsInherited", false, false); } - public void testImportOnDemandVsInherited() throws Exception { doTest(BASE_PATH + "/importOnDemandVsInherited/Test.java", BASE_PATH + "/importOnDemandVsInherited", false, false); } + public void testDuplicateTopLevelClass() throws Exception { + doTest(BASE_PATH + "/duplicateClass/A.java", BASE_PATH + "/duplicateClass", false, false); + } - public void testOverridePackageLocal() throws Exception { doTest(BASE_PATH+"/overridePackageLocal/x/y/Derived.java", BASE_PATH+"/overridePackageLocal", false, false); } - public void testAlreadyImportedClass() throws Exception { doTest(BASE_PATH+"/alreadyImportedClass/pack/AlreadyImportedClass.java", BASE_PATH+"/alreadyImportedClass", false, false); } - public void testImportDefaultPackage() throws Exception { doTest(BASE_PATH+"/importDefaultPackage/x/Usage.java", BASE_PATH+"/importDefaultPackage", false, false); } - public void testImportDefaultPackage2() throws Exception { doTest(BASE_PATH+"/importDefaultPackage/x/ImportOnDemandUsage.java", BASE_PATH+"/importDefaultPackage", false, false); } - public void testImportDefaultPackageInvalid() throws Exception { doTest(BASE_PATH+"/importDefaultPackage/x/InvalidUse.java", BASE_PATH+"/importDefaultPackage", false, false); } + public void testDuplicateTopLevelClass2() throws Exception { + doTest(BASE_PATH + "/duplicateClass/java/lang/Runnable.java", BASE_PATH + "/duplicateClass", false, false); + } + + public void testProtectedConstructorCall() throws Exception { + doTest(BASE_PATH + "/protectedConstructor/p2/C2.java", BASE_PATH + "/protectedConstructor", false, false); + } + + public void testProtectedConstructorCallInSamePackage() throws Exception { + doTest(BASE_PATH + "/protectedConstructor/samePackage/C2.java", BASE_PATH + "/protectedConstructor", false, false); + } + + public void testProtectedConstructorCallInInner() throws Exception { + doTest(BASE_PATH + "/protectedConstructorInInner/p2/C2.java", BASE_PATH + "/protectedConstructorInInner", false, false); + } + + public void testArrayLengthAccessFromSubClass() throws Exception { + doTest(BASE_PATH + "/arrayLength/p2/SubTest.java", BASE_PATH + "/arrayLength", false, false); + } + + public void testAccessibleMember() throws Exception { + doTest(BASE_PATH + "/accessibleMember/com/red/C.java", BASE_PATH + "/accessibleMember", false, false); + } + + public void testOnDemandImportConflict() throws Exception { + doTest(BASE_PATH + "/onDemandImportConflict/Outer.java", BASE_PATH + "/onDemandImportConflict", false, false); + } + + public void testPackageLocalOverride() throws Exception { + doTest(BASE_PATH + "/packageLocalOverride/y/C.java", BASE_PATH + "/packageLocalOverride", false, false); + } + + public void testPackageLocalOverrideJustCheckThatPackageLocalMethodDoesNotGetOverridden() throws Exception { + doTest(BASE_PATH + "/packageLocalOverride/y/B.java", BASE_PATH + "/packageLocalOverride", false, false); + } + + public void testProtectedAccessFromOtherPackage() throws Exception { + doTest(BASE_PATH + "/protectedAccessFromOtherPackage/a/Main.java", BASE_PATH + "/protectedAccessFromOtherPackage", false, false); + } + + public void testProtectedFieldAccessFromOtherPackage() throws Exception { + doTest(BASE_PATH + "/protectedAccessFromOtherPackage/a/A.java", BASE_PATH + "/protectedAccessFromOtherPackage", false, false); + } + + public void testPackageLocalClassInTheMiddle1() throws Exception { + doTest(BASE_PATH + "/foreignPackageInBetween/a/A1.java", BASE_PATH + "/foreignPackageInBetween", false, false); + } + + public void testImportOnDemand() throws Exception { + doTest(BASE_PATH + "/importOnDemand/y/Y.java", BASE_PATH + "/importOnDemand", false, false); + } + + public void testImportOnDemandVsSingle() throws Exception { + doTest(BASE_PATH + "/importOnDemandVsSingle/y/Y.java", BASE_PATH + "/importOnDemandVsSingle", false, false); + } + + public void testImportSingleVsSamePackage() throws Exception { + doTest(BASE_PATH + "/importSingleVsSamePackage/y/Y.java", BASE_PATH + "/importSingleVsSamePackage", false, false); + } + + public void testImportSingleVsInherited() throws Exception { + doTest(BASE_PATH + "/importSingleVsInherited/Test.java", BASE_PATH + "/importSingleVsInherited", false, false); + } + + public void testImportOnDemandVsInherited() throws Exception { + doTest(BASE_PATH + "/importOnDemandVsInherited/Test.java", BASE_PATH + "/importOnDemandVsInherited", false, false); + } + + public void testOverridePackageLocal() throws Exception { + doTest(BASE_PATH + "/overridePackageLocal/x/y/Derived.java", BASE_PATH + "/overridePackageLocal", false, false); + } + + public void testAlreadyImportedClass() throws Exception { + doTest(BASE_PATH + "/alreadyImportedClass/pack/AlreadyImportedClass.java", BASE_PATH + "/alreadyImportedClass", false, false); + } + + public void testImportDefaultPackage() throws Exception { + doTest(BASE_PATH + "/importDefaultPackage/x/Usage.java", BASE_PATH + "/importDefaultPackage", false, false); + } + + public void testImportDefaultPackage2() throws Exception { + doTest(BASE_PATH + "/importDefaultPackage/x/ImportOnDemandUsage.java", BASE_PATH + "/importDefaultPackage", false, false); + } + + public void testImportDefaultPackageInvalid() throws Exception { + doTest(BASE_PATH + "/importDefaultPackage/x/InvalidUse.java", BASE_PATH + "/importDefaultPackage", false, false); + } public void testScopeBased() throws Exception { NamedScope xScope = new NamedScope("xxx", new PatternPackageSet("x..*", PatternPackageSet.SCOPE_SOURCE, null)); @@ -107,6 +180,7 @@ public class AdvHighlightingTest extends DaemonAnalyzerTestCase { scopeManager.removeAllSets(); } } + public void testSharedScopeBased() throws Exception { NamedScope xScope = new NamedScope("xxx", new PatternPackageSet("x..*", PatternPackageSet.SCOPE_ANY, null)); NamedScope utilScope = new NamedScope("util", new PatternPackageSet("java.util.*", PatternPackageSet.SCOPE_LIBRARY, null)); @@ -132,7 +206,7 @@ public class AdvHighlightingTest extends DaemonAnalyzerTestCase { scheme.setAttributes(projectKey, projectAttributes); try { - testFile(BASE_PATH+"/scopeBased/x/Shared.java").projectRoot(BASE_PATH+"/scopeBased").checkSymbolNames().test(); + testFile(BASE_PATH + "/scopeBased/x/Shared.java").projectRoot(BASE_PATH + "/scopeBased").checkSymbolNames().test(); } finally { scopeManager.removeAllSets(); @@ -146,20 +220,9 @@ public class AdvHighlightingTest extends DaemonAnalyzerTestCase { ModuleManager moduleManager = ModuleManager.getInstance(getProject()); final Module java4 = moduleManager.findModuleByName("java4"); Module java5 = moduleManager.findModuleByName("java5"); - final ModuleRootManager rootManager4 = ModuleRootManager.getInstance(java4); - final ModuleRootManager rootManager5 = ModuleRootManager.getInstance(java5); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel4 = rootManager4.getModifiableModel(); - rootModel4.setSdk(JavaSdkImpl.getMockJdk17("java 1.4")); - rootModel4.commit(); - final ModifiableRootModel rootModel5 = rootManager5.getModifiableModel(); - rootModel5.setSdk(JavaSdkImpl.getMockJdk17("java 1.5")); - rootModel5.addModuleOrderEntry(java4); - rootModel5.commit(); - } - }); + ModuleRootModificationUtil.setModuleSdk(java4, JavaSdkImpl.getMockJdk17("java 1.4")); + ModuleRootModificationUtil.setModuleSdk(java5, JavaSdkImpl.getMockJdk17("java 1.5")); + ModuleRootModificationUtil.addDependency(java5, java4); assert root != null; configureByExistingFile(root.findFileByRelativePath("moduleJava5/com/Java5.java")); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/OrderEntryTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/OrderEntryTest.java index 3a6ca8cc358a..6bd671b9f162 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/OrderEntryTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/OrderEntryTest.java @@ -12,6 +12,7 @@ import com.intellij.openapi.module.impl.ModuleManagerImpl; import com.intellij.openapi.project.ex.ProjectManagerEx; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.OrderEntry; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; @@ -32,7 +33,8 @@ public class OrderEntryTest extends DaemonAnalyzerTestCase { protected void setUpProject() throws Exception { final String root = PathManagerEx.getTestDataPath() + BASE_PATH; - VirtualFile tempProjectRootDir = PsiTestUtil.createTestProjectStructure(getTestName(true), null, FileUtil.toSystemIndependentName(root), myFilesToDelete, false); + VirtualFile tempProjectRootDir = + PsiTestUtil.createTestProjectStructure(getTestName(true), null, FileUtil.toSystemIndependentName(root), myFilesToDelete, false); VirtualFile projectFile = tempProjectRootDir.findChild("orderEntry.ipr"); @@ -57,7 +59,7 @@ public class OrderEntryTest extends DaemonAnalyzerTestCase { VirtualFile root = ModuleRootManager.getInstance(myModule).getContentRoots()[0].getParent(); VirtualFile virtualFile = root.findFileByRelativePath(fileName); configureByExistingFile(virtualFile); - Pair pair = LightQuickFixTestCase.parseActionHint(getFile(), getFile().getText()); + Pair pair = LightQuickFixTestCase.parseActionHint(getFile(), getFile().getText()); final String text = pair.getFirst(); final boolean actionShouldBeAvailable = pair.getSecond().booleanValue(); Collection infosBefore = highlightErrors(); @@ -65,9 +67,9 @@ public class OrderEntryTest extends DaemonAnalyzerTestCase { if (action == null) { if (actionShouldBeAvailable) { - fail("Action with text '" + text + "' is not available in test " + testFullPath+"." + - "\nAvailable actions are: "+LightQuickFixTestCase.getAvailableActions(getEditor(), getFile()) - +"\nInfos are: "+infosBefore + fail("Action with text '" + text + "' is not available in test " + testFullPath + "." + + "\nAvailable actions are: " + LightQuickFixTestCase.getAvailableActions(getEditor(), getFile()) + + "\nInfos are: " + infosBefore ); } } @@ -87,7 +89,7 @@ public class OrderEntryTest extends DaemonAnalyzerTestCase { if (afterAction != null) { fail("Action '" + text + "' is still available after its invocation in test " + testFullPath); } - assertEquals(infosBefore.size()-1, infosAfter.size()); + assertEquals(infosBefore.size() - 1, infosAfter.size()); } } @@ -96,12 +98,18 @@ public class OrderEntryTest extends DaemonAnalyzerTestCase { return LightQuickFixTestCase.findActionWithText(actions, actionText); } - public void testAddDependency() throws Exception { doTest("B/src/y/AddDependency.java"); } - public void testAddLibrary() throws Exception { doTest("B/src/y/AddLibrary.java"); } + public void testAddDependency() throws Exception { + doTest("B/src/y/AddDependency.java"); + } + + public void testAddLibrary() throws Exception { + doTest("B/src/y/AddLibrary.java"); + } + public void testAddCircularDependency() throws Exception { final Module a = ModuleManager.getInstance(getProject()).findModuleByName("A"); final Module b = ModuleManager.getInstance(getProject()).findModuleByName("B"); - PsiTestUtil.addDependency(a, b); + ModuleRootModificationUtil.addDependency(a, b); try { doTest("B/src/y/AddDependency.java"); @@ -109,12 +117,13 @@ public class OrderEntryTest extends DaemonAnalyzerTestCase { } catch (RuntimeException e) { final String expected = "Adding dependency on module '" + a.getName() + "'" + - " will introduce circular dependency between modules '" + a.getName() + "' and '" + - b.getName() + "'.\n" + "Add dependency anyway?"; + " will introduce circular dependency between modules '" + a.getName() + "' and '" + + b.getName() + "'.\n" + "Add dependency anyway?"; String message = e.getMessage(); assertEquals(expected, message); } } + public void testAddJunit() throws Exception { doTest("A/src/x/DoTest.java"); } diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/JavaAPIUsagesInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/JavaAPIUsagesInspectionTest.java index 61fb39b75972..cebf9a0d346b 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/JavaAPIUsagesInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/JavaAPIUsagesInspectionTest.java @@ -7,11 +7,7 @@ package com.intellij.codeInspection; import com.intellij.JavaTestUtil; import com.intellij.codeInspection.ex.LocalInspectionToolWrapper; import com.intellij.codeInspection.java15api.Java15APIUsageInspection; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.roots.ContentIterator; -import com.intellij.openapi.roots.LanguageLevelModuleExtension; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.impl.FileIndexImplUtil; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.vfs.JarFileSystem; @@ -22,6 +18,7 @@ import com.intellij.psi.*; import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.javadoc.PsiDocTag; import com.intellij.psi.javadoc.PsiDocTagValue; +import com.intellij.testFramework.IdeaTestUtil; import com.intellij.testFramework.InspectionTestCase; public class JavaAPIUsagesInspectionTest extends InspectionTestCase { @@ -30,38 +27,18 @@ public class JavaAPIUsagesInspectionTest extends InspectionTestCase { return JavaTestUtil.getJavaTestDataPath() + "/inspection"; } - private void doTest() throws Exception { + private void doTest() { final Java15APIUsageInspection usageInspection = new Java15APIUsageInspection(); doTest("usage1.5/" + getTestName(true), new LocalInspectionToolWrapper(usageInspection), "java 1.5"); } public void testConstructor() throws Exception { - final LanguageLevel[] languageLevel = {null}; - try { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - ModifiableRootModel model = ModuleRootManager.getInstance(getModule()).getModifiableModel(); - LanguageLevelModuleExtension extension = model.getModuleExtension(LanguageLevelModuleExtension.class); - languageLevel[0] = extension.getLanguageLevel(); - extension.setLanguageLevel(LanguageLevel.JDK_1_4); - model.commit(); - } - }); - - doTest(); - } - finally { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - ModifiableRootModel model = ModuleRootManager.getInstance(getModule()).getModifiableModel(); - LanguageLevelModuleExtension extension = model.getModuleExtension(LanguageLevelModuleExtension.class); - extension.setLanguageLevel(languageLevel[0]); - model.commit(); - } - }); - } + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_1_4, new Runnable() { + @Override + public void run() { + doTest(); + } + }); } public void testIgnored() throws Exception { @@ -75,7 +52,7 @@ public class JavaAPIUsagesInspectionTest extends InspectionTestCase { public boolean processFile(VirtualFile fileOrDir) { final PsiFile file = PsiManager.getInstance(getProject()).findFile(fileOrDir); if (file instanceof PsiJavaFile) { - file.accept(new JavaRecursiveElementVisitor(){ + file.accept(new JavaRecursiveElementVisitor() { @Override public void visitElement(PsiElement element) { super.visitElement(element); diff --git a/java/java-tests/testSrc/com/intellij/execution/configurations/JavaParametersTest.java b/java/java-tests/testSrc/com/intellij/execution/configurations/JavaParametersTest.java index 610073ad3b2d..291cb45d7573 100644 --- a/java/java-tests/testSrc/com/intellij/execution/configurations/JavaParametersTest.java +++ b/java/java-tests/testSrc/com/intellij/execution/configurations/JavaParametersTest.java @@ -19,16 +19,16 @@ import com.intellij.execution.CantRunException; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.DependencyScope; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.roots.ModuleRootManagerTestCase; -import com.intellij.testFramework.PsiTestUtil; /** * @author nik */ public class JavaParametersTest extends ModuleRootManagerTestCase { public void testLibrary() throws Exception { - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); assertClasspath(myModule, JavaParameters.JDK_AND_CLASSES_AND_TESTS, getRtJar(), getJDomJar()); assertClasspath(myModule, JavaParameters.CLASSES_ONLY, @@ -54,8 +54,8 @@ public class JavaParametersTest extends ModuleRootManagerTestCase { } public void testLibraryScope() throws Exception { - addLibraryDependency(myModule, createJDomLibrary(), DependencyScope.RUNTIME, false); - addLibraryDependency(myModule, createAsmLibrary(), DependencyScope.TEST, false); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary(), DependencyScope.RUNTIME, false); + ModuleRootModificationUtil.addDependency(myModule, createAsmLibrary(), DependencyScope.TEST, false); assertClasspath(myModule, JavaParameters.CLASSES_AND_TESTS, getJDomJar(), getAsmJar()); @@ -64,7 +64,7 @@ public class JavaParametersTest extends ModuleRootManagerTestCase { } public void testProvidedScope() throws Exception { - addLibraryDependency(myModule, createJDomLibrary(), DependencyScope.PROVIDED, false); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary(), DependencyScope.PROVIDED, false); assertClasspath(myModule, JavaParameters.CLASSES_AND_TESTS, getJDomJar()); assertClasspath(myModule, JavaParameters.CLASSES_ONLY); @@ -74,19 +74,19 @@ public class JavaParametersTest extends ModuleRootManagerTestCase { final Module dep = createModule("dep"); final VirtualFile depOutput = setModuleOutput(dep, false); final VirtualFile depTestOutput = setModuleOutput(dep, true); - addLibraryDependency(dep, createJDomLibrary()); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); assertClasspath(myModule, JavaParameters.CLASSES_ONLY, depOutput, getJDomJar()); assertClasspath(myModule, JavaParameters.CLASSES_AND_TESTS, depTestOutput, depOutput, getJDomJar()); } - + public void testModuleDependencyScope() throws Exception { final Module dep = createModule("dep"); - addLibraryDependency(dep, createJDomLibrary()); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.TEST, true); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.TEST, true); assertClasspath(myModule, JavaParameters.CLASSES_ONLY); assertClasspath(myModule, JavaParameters.CLASSES_AND_TESTS, diff --git a/java/java-tests/testSrc/com/intellij/openapi/roots/impl/ProjectLibrariesTest.java b/java/java-tests/testSrc/com/intellij/openapi/roots/impl/ProjectLibrariesTest.java index 702d0c3a2206..469c5be62660 100644 --- a/java/java-tests/testSrc/com/intellij/openapi/roots/impl/ProjectLibrariesTest.java +++ b/java/java-tests/testSrc/com/intellij/openapi/roots/impl/ProjectLibrariesTest.java @@ -4,6 +4,7 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable; import com.intellij.openapi.roots.libraries.Library; @@ -31,14 +32,7 @@ public class ProjectLibrariesTest extends IdeaTestCase { return libraryTable.createLibrary("LIB"); } }); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.addLibraryEntry(lib); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); + ModuleRootModificationUtil.addDependency(myModule, lib); final JavaPsiFacade manager = getJavaFacade(); assertNull(manager.findClass("pack.MyClass", GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(myModule))); final File file = new File(PathManagerEx.getTestDataPath() + "/psi/repositoryUse/cls"); @@ -69,14 +63,7 @@ public class ProjectLibrariesTest extends IdeaTestCase { return libraryTable.createLibrary("LIB"); } }); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.addLibraryEntry(lib); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); + ModuleRootModificationUtil.addDependency(myModule, lib); final JavaPsiFacade manager = getJavaFacade(); assertNull(manager.findClass("pack.MyClass", GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(myModule))); diff --git a/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java b/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java index 88781d154921..cd5014899fc1 100644 --- a/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java @@ -21,6 +21,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.projectRoots.impl.JavaSdkImpl; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; @@ -36,7 +37,7 @@ import com.intellij.testFramework.PsiTestUtil; import java.io.File; @PlatformTestCase.WrapInCommand -public class ClsRepositoryUseTest extends PsiTestCase{ +public class ClsRepositoryUseTest extends PsiTestCase { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.ClsRepositoryUseTest"); private static final String TEST_ROOT = PathManagerEx.getTestDataPath() + "/psi/repositoryUse/cls"; @@ -90,12 +91,12 @@ public class ClsRepositoryUseTest extends PsiTestCase{ new Runnable() { @Override public void run() { - try{ + try { VirtualFile vDir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(classes); assertNotNull(vDir); addLibraryToRoots(vDir, OrderRootType.CLASSES); } - catch(Exception e){ + catch (Exception e) { LOG.error(e); } } @@ -131,10 +132,10 @@ public class ClsRepositoryUseTest extends PsiTestCase{ new Runnable() { @Override public void run() { - try{ + try { vFile.refresh(false, false); } - catch(Exception e){ + catch (Exception e) { LOG.error(e); } } @@ -167,7 +168,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ return vDir; } - public void testGetClasses(){ + public void testGetClasses() { final VirtualFile rootFile = getRootFile(); final VirtualFile pack = rootFile.findChild("pack"); assert pack != null; @@ -183,7 +184,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals(file, aClass.getParent()); } - public void testGetClassName(){ + public void testGetClassName() { final VirtualFile rootFile = getRootFile(); final VirtualFile pack = rootFile.findChild("pack"); assert pack != null; @@ -199,7 +200,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals("MyClass", aClass.getName()); } - public void testGetClassQName(){ + public void testGetClassQName() { final VirtualFile rootFile = getRootFile(); final VirtualFile pack = rootFile.findChild("pack"); assert pack != null; @@ -215,7 +216,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals("pack.MyClass", aClass.getQualifiedName()); } - public void testGetContainingFile(){ + public void testGetContainingFile() { final VirtualFile rootFile = getRootFile(); final VirtualFile pack = rootFile.findChild("pack"); assert pack != null; @@ -231,7 +232,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals(file, aClass.getContainingFile()); } - public void testFindClass(){ + public void testFindClass() { getJavaFacade().setAssertOnFileLoadingFilter(VirtualFileFilter.ALL); PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); @@ -241,7 +242,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ getJavaFacade().setAssertOnFileLoadingFilter(VirtualFileFilter.NONE); } - public void testIsInterface(){ + public void testIsInterface() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); @@ -252,7 +253,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertTrue(elt.isValid()); } - public void testPackageName(){ + public void testPackageName() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); @@ -260,7 +261,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals("pack", packageName); } - public void testGetFields(){ + public void testGetFields() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); @@ -269,7 +270,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals(aClass, fields[0].getParent()); } - public void testGetMethods(){ + public void testGetMethods() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); @@ -278,7 +279,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals(aClass, methods[0].getParent()); } - public void testGetInnerClasses(){ + public void testGetInnerClasses() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); @@ -310,21 +311,21 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals(modifierList.getParent(), method); } - public void testGetFieldName(){ + public void testGetFieldName() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); assertEquals("field1", aClass.getFields()[0].getName()); } - public void testGetMethodName(){ + public void testGetMethodName() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); assertEquals("method1", aClass.getMethods()[0].getName()); } - public void testFindFieldByName(){ + public void testFindFieldByName() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); @@ -332,7 +333,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertNotNull(field); } - public void testIsDeprecated(){ + public void testIsDeprecated() { PsiClass aClass = myJavaFacade.findClass("pack.MyClass", GlobalSearchScope.allScope(myProject)); assert aClass != null; checkValid(aClass); @@ -403,7 +404,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ PsiField field = aClass.getFields()[1]; PsiType type = field.getType(); LOG.assertTrue(type instanceof PsiArrayType); - PsiType componentType = ((PsiArrayType) type).getComponentType(); + PsiType componentType = ((PsiArrayType)type).getComponentType(); assertTrue(componentType.equalsToText(CommonClassNames.JAVA_LANG_OBJECT)); assertEquals("Object", componentType.getPresentableText()); @@ -421,7 +422,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertNull(PsiUtil.resolveClassInType(type1)); PsiField field2 = aClass.getFields()[1]; - PsiType type2 = ((PsiArrayType) field2.getType()).getComponentType(); + PsiType type2 = ((PsiArrayType)field2.getType()).getComponentType(); assertTrue(type2 instanceof PsiClassType); assertTrue(type2.equalsToText(CommonClassNames.JAVA_LANG_OBJECT)); @@ -535,7 +536,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ PsiClass map = myJavaFacade.findClass("java.util.HashMap", RESOLVE_SCOPE); assert map != null; PsiMethod entrySet = map.findMethodsByName("entrySet", false)[0]; - PsiClassType ret = (PsiClassType) entrySet.getReturnType(); + PsiClassType ret = (PsiClassType)entrySet.getReturnType(); assert ret != null : entrySet; final PsiClassType.ClassResolveResult setResolveResult = ret.resolveGenerics(); final PsiClass setResolveResultElement = setResolveResult.getElement(); @@ -560,20 +561,13 @@ public class ClsRepositoryUseTest extends PsiTestCase{ }; assertEquals(2, mapParams.length); assertEquals("K", mapParams[0].getCanonicalText()); - assertTrue(((PsiClassType) mapParams[0]).resolve() instanceof PsiTypeParameter); + assertTrue(((PsiClassType)mapParams[0]).resolve() instanceof PsiTypeParameter); assertEquals("V", mapParams[1].getCanonicalText()); - assertTrue(((PsiClassType) mapParams[1]).resolve() instanceof PsiTypeParameter); + assertTrue(((PsiClassType)mapParams[1]).resolve() instanceof PsiTypeParameter); } private void disableJdk() { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.setSdk(null); - rootModel.commit(); - } - }); + ModuleRootModificationUtil.setModuleSdk(myModule, null); } public void testGenericReturnType() throws Exception { @@ -583,7 +577,7 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assert map != null; final PsiElementFactory factory = myJavaFacade.getElementFactory(); final PsiClassType typeMapStringToInteger = - (PsiClassType) factory.createTypeFromText("java.util.Map ", null); + (PsiClassType)factory.createTypeFromText("java.util.Map ", null); final PsiClassType.ClassResolveResult mapResolveResult = typeMapStringToInteger.resolveGenerics(); final PsiClass mapResolveResultElement = mapResolveResult.getElement(); assert mapResolveResultElement != null : typeMapStringToInteger; @@ -595,7 +589,8 @@ public class ClsRepositoryUseTest extends PsiTestCase{ assertEquals("java.util.Set>", entrySetReturnType.getCanonicalText()); final PsiSubstitutor substitutor = ((PsiClassType)entrySetReturnType).resolveGenerics().getSubstitutor(); assertEquals("E of java.util.Set -> ? extends java.util.Map.Entry\n", substitutor.toString()); - final PsiType typeSetOfEntriesOfStringAndInteger = factory.createTypeFromText("java.util.Set>", null); + final PsiType typeSetOfEntriesOfStringAndInteger = + factory.createTypeFromText("java.util.Set>", null); final PsiType substitutedEntrySetReturnType = mapResolveResult.getSubstitutor().substitute(entrySetReturnType); assertTrue(typeSetOfEntriesOfStringAndInteger.equals(substitutedEntrySetReturnType)); assertTrue(typeSetOfEntriesOfStringAndInteger.isAssignableFrom(substitutedEntrySetReturnType)); @@ -608,8 +603,8 @@ public class ClsRepositoryUseTest extends PsiTestCase{ "}"; PsiJavaFile file = (PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("Dummy.java", text); - PsiDeclarationStatement decl = (PsiDeclarationStatement) file.getClasses()[0].getInitializers()[0].getBody().getStatements()[0]; - PsiVariable list = (PsiVariable) decl.getDeclaredElements()[0]; + PsiDeclarationStatement decl = (PsiDeclarationStatement)file.getClasses()[0].getInitializers()[0].getBody().getStatements()[0]; + PsiVariable list = (PsiVariable)decl.getDeclaredElements()[0]; final PsiExpression initializer = list.getInitializer(); assert initializer != null : list; final PsiType type = initializer.getType(); diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR14423Test.java b/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR14423Test.java index 63d301abecd7..6d6ebf92d4e3 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR14423Test.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR14423Test.java @@ -5,6 +5,7 @@ import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VfsUtil; @@ -36,7 +37,8 @@ public class SCR14423Test extends PsiTestCase { @Override public void run() { try { - VirtualFile rootVFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(root.getAbsolutePath().replace(File.separatorChar, '/')); + VirtualFile rootVFile = + LocalFileSystem.getInstance().refreshAndFindFileByPath(root.getAbsolutePath().replace(File.separatorChar, '/')); myPrjDir1 = rootVFile.createChildDirectory(null, "prj1"); mySrcDir1 = myPrjDir1.createChildDirectory(null, "src1"); @@ -121,9 +123,7 @@ public class SCR14423Test extends PsiTestCase { LocalFileSystem.getInstance().refresh(false); - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.setSdk(null); - rootModel.commit(); + ModuleRootModificationUtil.setModuleSdk(myModule, null); psiClass = myJavaFacade.findClass("p.A"); assertNotNull(psiClass); diff --git a/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java b/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java index b3c851d11fb1..1c30fed2065a 100644 --- a/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java @@ -20,6 +20,7 @@ import com.intellij.openapi.module.ModifiableModuleModel; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.StdModuleTypes; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -29,25 +30,25 @@ import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.ResolveTestCase; public class ResolveClassTest extends ResolveTestCase { - public void testFQName() throws Exception{ + public void testFQName() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); } - public void testVarInNew() throws Exception{ + public void testVarInNew() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); } - public void testVarInNew1() throws Exception{ + public void testVarInNew1() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); } - public void testPrivateInExtends() throws Exception{ + public void testPrivateInExtends() throws Exception { PsiReference ref = configure(); final JavaResolveResult result = ((PsiJavaReference)ref).advancedResolve(true); PsiElement target = result.getElement(); @@ -55,13 +56,13 @@ public class ResolveClassTest extends ResolveTestCase { assertFalse(result.isAccessible()); } - public void testQNew1() throws Exception{ + public void testQNew1() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); } - public void testInnerPrivateMember1() throws Exception{ + public void testInnerPrivateMember1() throws Exception { PsiReference ref = configure(); final JavaResolveResult result = ((PsiJavaReference)ref).advancedResolve(true); PsiElement target = result.getElement(); @@ -70,7 +71,7 @@ public class ResolveClassTest extends ResolveTestCase { } - public void testQNew2() throws Exception{ + public void testQNew2() throws Exception { PsiJavaCodeReferenceElement ref = (PsiJavaCodeReferenceElement)configure(); PsiElement target = ref.advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); @@ -82,7 +83,7 @@ public class ResolveClassTest extends ResolveTestCase { assertEquals(target, ((PsiAnonymousClass)parent).getBaseClassType().resolve()); } - public void testClassExtendsItsInner1() throws Exception{ + public void testClassExtendsItsInner1() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); @@ -96,7 +97,7 @@ public class ResolveClassTest extends ResolveTestCase { assertEquals("B.Foo", ((PsiClass)target1).getQualifiedName()); } - public void testClassExtendsItsInner2() throws Exception{ + public void testClassExtendsItsInner2() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertNull(target); //[ven] this should not be resolved @@ -104,26 +105,26 @@ public class ResolveClassTest extends ResolveTestCase { assertEquals("TTT.Bar", ((PsiClass)target).getQualifiedName());*/ } - public void testSCR40332() throws Exception{ + public void testSCR40332() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertNull(target); } - public void testImportConflict1() throws Exception{ + public void testImportConflict1() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target == null); } - public void testImportConflict2() throws Exception{ + public void testImportConflict2() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); assertEquals("java.util.Date", ((PsiClass)target).getQualifiedName()); } - public void testLocals1() throws Exception{ + public void testLocals1() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); @@ -131,7 +132,7 @@ public class ResolveClassTest extends ResolveTestCase { assertNull(((PsiClass)target).getQualifiedName()); } - public void testLocals2() throws Exception{ + public void testLocals2() throws Exception { PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); @@ -155,14 +156,14 @@ public class ResolveClassTest extends ResolveTestCase { assertTrue("Outer.Double".equals(((PsiClass)element).getQualifiedName())); } - public void testTwoModules() throws Exception{ + public void testTwoModules() throws Exception { configureDependency(); PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); assertTrue(target instanceof PsiClass); } - public void testTwoModules2() throws Exception{ + public void testTwoModules2() throws Exception { configureDependency(); PsiReference ref = configure(); PsiElement target = ((PsiJavaReference)ref).advancedResolve(true).getElement(); @@ -220,7 +221,7 @@ public class ResolveClassTest extends ResolveTestCase { PsiTestUtil.addSourceRoot(module, root.findChild("src")); PsiTestUtil.addSourceRoot(module, root.findChild("test"), true); - PsiTestUtil.addDependency(getModule(), module); + ModuleRootModificationUtil.addDependency(getModule(), module); } }); } diff --git a/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java b/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java index ddec4a1b9d57..ff7afbd486c2 100644 --- a/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java @@ -33,6 +33,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.*; import com.intellij.testFramework.IdeaTestCase; import com.intellij.testFramework.PlatformTestCase; +import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.containers.ContainerUtil; import java.io.File; @@ -120,15 +121,10 @@ public class DirectoryIndexImplTest extends IdeaTestCase { // fill roots of module1 { - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - - rootModel.setSdk(null); - - ContentEntry contentEntry1 = rootModel.addContentEntry(myModule1Dir); - contentEntry1.addSourceFolder(myTestSrc1, true); - contentEntry1.addSourceFolder(mySrcDir1, false); - - rootModel.commit(); + ModuleRootModificationUtil.setModuleSdk(myModule, null); + PsiTestUtil.addContentRoot(myModule, myModule1Dir); + PsiTestUtil.addSourceRoot(myModule, mySrcDir1); + PsiTestUtil.addSourceRoot(myModule, myTestSrc1, true); } ModuleManager moduleManager = ModuleManager.getInstance(myProject); @@ -156,11 +152,8 @@ public class DirectoryIndexImplTest extends IdeaTestCase { VirtualFile moduleFile = myModule3Dir.createChildData(null, "module3.iml"); myModule3 = moduleManager.newModule(moduleFile.getPath(), StdModuleTypes.JAVA.getId()); - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule3).getModifiableModel(); - rootModel.addContentEntry(myModule3Dir); - rootModel.addModuleOrderEntry(myModule2); // module3 depends on module2 - - rootModel.commit(); + PsiTestUtil.addContentRoot(myModule3, myModule3Dir); + ModuleRootModificationUtil.addDependency(myModule3, myModule2); } } catch (IOException e) { diff --git a/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java b/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java index 8a2673e97c48..f7c416fb037c 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java @@ -21,17 +21,13 @@ import com.intellij.openapi.module.ModifiableModuleModel; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.StdModuleTypes; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleOrderEntry; -import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.*; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.JavaPsiFacade; import com.intellij.psi.PsiClass; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.testFramework.IdeaTestCase; -import com.intellij.testFramework.PsiTestUtil; import java.io.File; @@ -57,12 +53,9 @@ public class ExportingModulesTest extends IdeaTestCase { configureModule(moduleB, testRoot, "B"); configureModule(moduleC, testRoot, "C"); - final ModifiableRootModel rootModelB = ModuleRootManager.getInstance(moduleB).getModifiableModel(); - final ModuleOrderEntry moduleBAentry = rootModelB.addModuleOrderEntry(moduleA); - moduleBAentry.setExported(true); - rootModelB.commit(); + ModuleRootModificationUtil.addDependency(moduleB, moduleA, DependencyScope.COMPILE, true); - PsiTestUtil.addDependency(moduleC, moduleB); + ModuleRootModificationUtil.addDependency(moduleC, moduleB); final PsiClass pCClass = JavaPsiFacade.getInstance(myProject).findClass("p.C", GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(moduleC)); diff --git a/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java b/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java index 06b4794a65ac..6e0c60c0b06f 100644 --- a/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java @@ -4,10 +4,7 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.impl.JavaSdkImpl; -import com.intellij.openapi.roots.InheritedJdkOrderEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.RootPolicy; +import com.intellij.openapi.roots.*; import com.intellij.openapi.roots.ex.ProjectRootManagerEx; import com.intellij.testFramework.ModuleTestCase; import junit.framework.Assert; @@ -35,23 +32,14 @@ public class InheritedJdkTest extends ModuleTestCase { public void run() { final ProjectRootManagerEx rootManagerEx = ProjectRootManagerEx.getInstanceEx(myProject); rootManagerEx.setProjectSdkName(jdk.getName()); - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.inheritSdk(); - rootModel.commit(); + ModuleRootModificationUtil.setSdkInherited(myModule); } }); assertTrue("JDK is inherited after explicit inheritSdk()", rootManager.isSdkInherited()); assertEquals("Correct jdk inherited", jdk, rootManager.getSdk()); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.setSdk(null); - rootModel.commit(); - } - }); + ModuleRootModificationUtil.setModuleSdk(myModule, null); assertFalse("JDK is not inherited after setJdk(null)", rootManager.isSdkInherited()); assertNull("No JDK assigned", rootManager.getSdk()); @@ -63,14 +51,7 @@ public class InheritedJdkTest extends ModuleTestCase { ProjectJdkTable.getInstance().addJdk(jdk1); } }); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.setSdk(jdk1); - rootModel.commit(); - } - }); + ModuleRootModificationUtil.setModuleSdk(myModule, jdk1); assertFalse("JDK is not inherited after setJdk(jdk1)", rootManager.isSdkInherited()); assertEquals("jdk1 is assigned", jdk1, rootManager.getSdk()); @@ -78,14 +59,7 @@ public class InheritedJdkTest extends ModuleTestCase { public void test2() throws Exception { final ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule); - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.inheritSdk(); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); + ModuleRootModificationUtil.setSdkInherited(myModule); assertTrue("JDK is inherited after inheritSdk()", rootManager.isSdkInherited()); assertNull("No JDK assigned", rootManager.getSdk()); @@ -118,12 +92,12 @@ public class InheritedJdkTest extends ModuleTestCase { assertTrue(rootManager.isSdkInherited()); Assert.assertEquals("Correct non-existing JDK inherited", "jdk1", - rootManager.orderEntries().process(new RootPolicy() { - @Override - public String visitInheritedJdkOrderEntry(InheritedJdkOrderEntry inheritedJdkOrderEntry, String s) { - return inheritedJdkOrderEntry.getJdkName(); - } - }, null)); + rootManager.orderEntries().process(new RootPolicy() { + @Override + public String visitInheritedJdkOrderEntry(InheritedJdkOrderEntry inheritedJdkOrderEntry, String s) { + return inheritedJdkOrderEntry.getJdkName(); + } + }, null)); assertNull("Non-existing JDK", rootManager.getSdk()); final Sdk jdk1 = JavaSdkImpl.getMockJdk17("jdk1"); diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java b/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java index 0cb757265abe..501f06739c0d 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java +++ b/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java @@ -91,23 +91,6 @@ public abstract class ModuleRootManagerTestCase extends ModuleTestCase { return output; } - protected void addLibraryDependency(Module module, Library dependency) { - addLibraryDependency(module, dependency, DependencyScope.COMPILE, false); - } - - protected void addLibraryDependency(final Module module, final Library dependency, final DependencyScope scope, final boolean exported) { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); - final LibraryOrderEntry entry = model.addLibraryEntry(dependency); - entry.setScope(scope); - entry.setExported(exported); - model.commit(); - } - }); - } - protected Library createLibrary(final String name, final VirtualFile classesRoot) { return createLibrary(name, classesRoot, null); } diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java index d64c6fb4dcca..4e8d2f743972 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java @@ -84,7 +84,7 @@ public class ModuleScopesTest extends ModuleTestCase { VirtualFile rootB = myFixture.findOrCreateDir("b"); VirtualFile outB = myFixture.findOrCreateDir("out"); - PsiTestUtil.addDependency(moduleA, moduleB, scope, false); + ModuleRootModificationUtil.addDependency(moduleA, moduleB, scope, false); final ModifiableRootModel modelB = ModuleRootManager.getInstance(moduleB).getModifiableModel(); final ContentEntry contentEntry = modelB.addContentEntry(rootB); @@ -176,7 +176,8 @@ public class ModuleScopesTest extends ModuleTestCase { } private static VirtualFile[] getProductionCompileClasspath(Module moduleA) { - return ModuleRootManager.getInstance(moduleA).orderEntries().productionOnly().compileOnly().recursively().exportedOnly().getClassesRoots(); + return ModuleRootManager.getInstance(moduleA).orderEntries().productionOnly().compileOnly().recursively().exportedOnly() + .getClassesRoots(); } private static VirtualFile[] getCompilationClasspath(Module m) { diff --git a/java/java-tests/testSrc/com/intellij/roots/OrderEntriesTest.java b/java/java-tests/testSrc/com/intellij/roots/OrderEntriesTest.java index 033ebcf4eb32..c2bffba57dda 100644 --- a/java/java-tests/testSrc/com/intellij/roots/OrderEntriesTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/OrderEntriesTest.java @@ -1,12 +1,8 @@ package com.intellij.roots; import com.intellij.openapi.module.Module; -import com.intellij.openapi.roots.DependencyScope; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderEnumerator; -import com.intellij.openapi.roots.OrderRootType; +import com.intellij.openapi.roots.*; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.PathsList; /** @@ -15,7 +11,7 @@ import com.intellij.util.PathsList; @SuppressWarnings({"deprecation"}) public class OrderEntriesTest extends ModuleRootManagerTestCase { public void testLibrary() throws Exception { - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); assertOrderFiles(OrderRootType.CLASSES, getRtJar(), getJDomJar()); assertOrderFiles(OrderRootType.SOURCES, getJDomSources()); assertOrderFiles(OrderRootType.CLASSES_AND_OUTPUT, getRtJar(), getJDomJar()); @@ -37,7 +33,7 @@ public class OrderEntriesTest extends ModuleRootManagerTestCase { } public void testLibraryScope() throws Exception { - addLibraryDependency(myModule, createJDomLibrary(), DependencyScope.TEST, false); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary(), DependencyScope.TEST, false); assertOrderFiles(OrderRootType.CLASSES, getRtJar(), getJDomJar()); assertOrderFiles(OrderRootType.SOURCES, getJDomSources()); @@ -52,8 +48,8 @@ public class OrderEntriesTest extends ModuleRootManagerTestCase { final VirtualFile testRoot = addSourceRoot(dep, true); final VirtualFile output = setModuleOutput(dep, false); final VirtualFile testOutput = setModuleOutput(dep, true); - addLibraryDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, true); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, true); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); assertOrderFiles(OrderRootType.CLASSES, getRtJar(), getJDomJar()); assertOrderFiles(OrderRootType.SOURCES, srcRoot, testRoot, getJDomSources()); @@ -64,8 +60,8 @@ public class OrderEntriesTest extends ModuleRootManagerTestCase { public void testModuleDependencyScope() throws Exception { final Module dep = createModule("dep"); - addLibraryDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, true); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.TEST, true); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, true); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.TEST, true); assertOrderFiles(OrderRootType.CLASSES, getRtJar(), getJDomJar()); assertOrderFiles(OrderRootType.SOURCES, getJDomSources()); @@ -76,8 +72,8 @@ public class OrderEntriesTest extends ModuleRootManagerTestCase { public void testNotExportedLibraryDependency() throws Exception { final Module dep = createModule("dep"); - addLibraryDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, false); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); assertOrderFiles(OrderRootType.CLASSES, getRtJar()); assertOrderFiles(OrderRootType.SOURCES); diff --git a/java/java-tests/testSrc/com/intellij/roots/OrderEnumeratorTest.java b/java/java-tests/testSrc/com/intellij/roots/OrderEnumeratorTest.java index af0816067612..c1abd7d6bccd 100644 --- a/java/java-tests/testSrc/com/intellij/roots/OrderEnumeratorTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/OrderEnumeratorTest.java @@ -1,12 +1,8 @@ package com.intellij.roots; import com.intellij.openapi.module.Module; -import com.intellij.openapi.roots.DependencyScope; -import com.intellij.openapi.roots.OrderEnumerator; -import com.intellij.openapi.roots.OrderRootsEnumerator; -import com.intellij.openapi.roots.ProjectRootManager; +import com.intellij.openapi.roots.*; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.ArrayUtil; import java.util.ArrayList; @@ -22,7 +18,7 @@ import static com.intellij.openapi.roots.OrderEnumerator.orderEntries; public class OrderEnumeratorTest extends ModuleRootManagerTestCase { public void testLibrary() throws Exception { - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); assertClassRoots(orderEntries(myModule), getRtJar(), getJDomJar()); assertClassRoots(orderEntries(myModule).withoutSdk(), getJDomJar()); @@ -47,7 +43,7 @@ public class OrderEnumeratorTest extends ModuleRootManagerTestCase { } public void testLibraryScope() throws Exception { - addLibraryDependency(myModule, createJDomLibrary(), DependencyScope.RUNTIME, false); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary(), DependencyScope.RUNTIME, false); assertClassRoots(orderEntries(myModule).withoutSdk(), getJDomJar()); assertClassRoots(orderEntries(myModule).withoutSdk().exportedOnly()); @@ -60,8 +56,8 @@ public class OrderEnumeratorTest extends ModuleRootManagerTestCase { final VirtualFile depTestRoot = addSourceRoot(dep, true); final VirtualFile depOutput = setModuleOutput(dep, false); final VirtualFile depTestOutput = setModuleOutput(dep, true); - addLibraryDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, true); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.COMPILE, true); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, true); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.COMPILE, true); final VirtualFile srcRoot = addSourceRoot(myModule, false); final VirtualFile testRoot = addSourceRoot(myModule, true); @@ -93,8 +89,8 @@ public class OrderEnumeratorTest extends ModuleRootManagerTestCase { public void testModuleDependencyScope() throws Exception { final Module dep = createModule("dep"); - addLibraryDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, true); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.TEST, true); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, true); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.TEST, true); assertClassRoots(orderEntries(myModule).withoutSdk()); assertClassRoots(orderEntries(myModule).withoutSdk().recursively(), getJDomJar()); @@ -107,9 +103,9 @@ public class OrderEnumeratorTest extends ModuleRootManagerTestCase { public void testNotExportedLibrary() throws Exception { final Module dep = createModule("dep"); - addLibraryDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, false); - addLibraryDependency(myModule, createAsmLibrary(), DependencyScope.COMPILE, false); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary(), DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(myModule, createAsmLibrary(), DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); assertClassRoots(orderEntries(myModule).withoutSdk(), getAsmJar()); assertClassRoots(orderEntries(myModule).withoutSdk().recursively(), getAsmJar(), getJDomJar()); @@ -130,7 +126,7 @@ public class OrderEnumeratorTest extends ModuleRootManagerTestCase { assertSame(roots, orderEntries(myModule).classes().usingCache().getRoots()); assertSame(rootsWithoutSdk, orderEntries(myModule).withoutSdk().classes().usingCache().getRoots()); - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); assertRoots(orderEntries(myModule).classes().usingCache().getPathsList(), getRtJar(), getJDomJar()); assertRoots(orderEntries(myModule).withoutSdk().classes().usingCache().getPathsList(), getJDomJar()); @@ -146,13 +142,13 @@ public class OrderEnumeratorTest extends ModuleRootManagerTestCase { assertSame(urls, orderEntries(myModule).classes().usingCache().getUrls()); assertSame(sourceUrls, orderEntries(myModule).sources().usingCache().getUrls()); - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); assertOrderedEquals(orderEntries(myModule).classes().usingCache().getUrls(), getRtJar().getUrl(), getJDomJar().getUrl()); assertOrderedEquals(orderEntries(myModule).sources().usingCache().getUrls(), getJDomSources().getUrl()); } public void testProject() throws Exception { - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); final VirtualFile srcRoot = addSourceRoot(myModule, false); final VirtualFile testRoot = addSourceRoot(myModule, true); @@ -164,7 +160,7 @@ public class OrderEnumeratorTest extends ModuleRootManagerTestCase { } public void testModules() throws Exception { - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); final VirtualFile srcRoot = addSourceRoot(myModule, false); final VirtualFile testRoot = addSourceRoot(myModule, true); diff --git a/java/java-tests/testSrc/com/intellij/roots/ProjectClasspathTraversingTest.java b/java/java-tests/testSrc/com/intellij/roots/ProjectClasspathTraversingTest.java index 96e648a5cbf5..f606a7f541ce 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ProjectClasspathTraversingTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ProjectClasspathTraversingTest.java @@ -16,12 +16,8 @@ package com.intellij.roots; import com.intellij.openapi.module.Module; -import com.intellij.openapi.roots.DependencyScope; -import com.intellij.openapi.roots.OrderEnumerator; -import com.intellij.openapi.roots.ProjectClasspathTraversing; -import com.intellij.openapi.roots.ProjectRootsTraversing; +import com.intellij.openapi.roots.*; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.PathsList; /** @@ -30,7 +26,7 @@ import com.intellij.util.PathsList; @SuppressWarnings({"deprecation"}) public class ProjectClasspathTraversingTest extends ModuleRootManagerTestCase { public void testLibrary() throws Exception { - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); doTest(ProjectClasspathTraversing.FULL_CLASSPATH, getRtJar(), getJDomJar()); doTest(ProjectClasspathTraversing.FULL_CLASS_RECURSIVE_WO_JDK, getJDomJar()); @@ -38,7 +34,7 @@ public class ProjectClasspathTraversingTest extends ModuleRootManagerTestCase { doTest(ProjectClasspathTraversing.FULL_CLASSPATH_WITHOUT_JDK_AND_TESTS, getJDomJar()); doTest(ProjectClasspathTraversing.FULL_CLASSPATH_WITHOUT_TESTS, getRtJar(), getJDomJar()); } - + public void testModuleOutput() throws Exception { addSourceRoot(myModule, false); final VirtualFile output = setModuleOutput(myModule, false); @@ -52,7 +48,7 @@ public class ProjectClasspathTraversingTest extends ModuleRootManagerTestCase { } public void testLibraryScope() throws Exception { - addLibraryDependency(myModule, createJDomLibrary(), DependencyScope.TEST, true); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary(), DependencyScope.TEST, true); doTest(ProjectClasspathTraversing.FULL_CLASSPATH, getRtJar(), getJDomJar()); doTest(ProjectClasspathTraversing.FULL_CLASS_RECURSIVE_WO_JDK, getJDomJar()); @@ -65,8 +61,8 @@ public class ProjectClasspathTraversingTest extends ModuleRootManagerTestCase { final Module dep = createModule("dep"); final VirtualFile output = setModuleOutput(dep, false); final VirtualFile testOutput = setModuleOutput(dep, true); - addLibraryDependency(dep, createJDomLibrary()); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); doTest(ProjectClasspathTraversing.FULL_CLASSPATH, getRtJar()); doTest(ProjectClasspathTraversing.FULL_CLASS_RECURSIVE_WO_JDK, testOutput, output, getJDomJar()); diff --git a/java/java-tests/testSrc/com/intellij/roots/ProjectRootsTraversingTest.java b/java/java-tests/testSrc/com/intellij/roots/ProjectRootsTraversingTest.java index d8d315bcac4e..c25e1b2cc031 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ProjectRootsTraversingTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ProjectRootsTraversingTest.java @@ -2,10 +2,10 @@ package com.intellij.roots; import com.intellij.openapi.module.Module; import com.intellij.openapi.roots.DependencyScope; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.OrderEnumerator; import com.intellij.openapi.roots.ProjectRootsTraversing; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.PathsList; /** @@ -15,7 +15,7 @@ import com.intellij.util.PathsList; public class ProjectRootsTraversingTest extends ModuleRootManagerTestCase { public void testLibrary() throws Exception { - addLibraryDependency(myModule, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, createJDomLibrary()); doTest(ProjectRootsTraversing.LIBRARIES_AND_JDK, getRtJar(), getJDomJar()); doTest(ProjectRootsTraversing.PROJECT_LIBRARIES, getJDomJar()); doTest(ProjectRootsTraversing.PROJECT_SOURCES); @@ -43,8 +43,8 @@ public class ProjectRootsTraversingTest extends ModuleRootManagerTestCase { setModuleOutput(dep, true); addSourceRoot(dep, false); addSourceRoot(dep, true); - addLibraryDependency(dep, createJDomLibrary()); - PsiTestUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); + ModuleRootModificationUtil.addDependency(dep, createJDomLibrary()); + ModuleRootModificationUtil.addDependency(myModule, dep, DependencyScope.COMPILE, false); doTest(ProjectRootsTraversing.PROJECT_LIBRARIES, getJDomJar()); doTest(ProjectRootsTraversing.PROJECT_SOURCES); diff --git a/java/testFramework/src/com/intellij/testFramework/InspectionTestCase.java b/java/testFramework/src/com/intellij/testFramework/InspectionTestCase.java index 185f69538dbb..998a8217f463 100644 --- a/java/testFramework/src/com/intellij/testFramework/InspectionTestCase.java +++ b/java/testFramework/src/com/intellij/testFramework/InspectionTestCase.java @@ -62,36 +62,38 @@ public abstract class InspectionTestCase extends PsiTestCase { private VirtualFile ext_src; public InspectionManagerEx getManager() { - return (InspectionManagerEx) InspectionManager.getInstance(myProject); + return (InspectionManagerEx)InspectionManager.getInstance(myProject); } - public void doTest(@NonNls String folderName, LocalInspectionTool tool) throws Exception { + public void doTest(@NonNls String folderName, LocalInspectionTool tool) { doTest(folderName, new LocalInspectionToolWrapper(tool)); } - public void doTest(@NonNls String folderName, GlobalInspectionTool tool) throws Exception { + + public void doTest(@NonNls String folderName, GlobalInspectionTool tool) { doTest(folderName, new GlobalInspectionToolWrapper(tool)); } - public void doTest(@NonNls String folderName, GlobalInspectionTool tool, boolean checkRange) throws Exception { + + public void doTest(@NonNls String folderName, GlobalInspectionTool tool, boolean checkRange) { doTest(folderName, new GlobalInspectionToolWrapper(tool), checkRange); } - public void doTest(@NonNls String folderName, GlobalInspectionTool tool, boolean checkRange, boolean runDeadCodeFirst) throws Exception { + public void doTest(@NonNls String folderName, GlobalInspectionTool tool, boolean checkRange, boolean runDeadCodeFirst) { doTest(folderName, new GlobalInspectionToolWrapper(tool), "java 1.4", checkRange, runDeadCodeFirst); } - public void doTest(@NonNls String folderName, InspectionTool tool) throws Exception { + public void doTest(@NonNls String folderName, InspectionTool tool) { doTest(folderName, tool, "java 1.4"); } - public void doTest(@NonNls String folderName, InspectionTool tool, final boolean checkRange) throws Exception { + public void doTest(@NonNls String folderName, InspectionTool tool, final boolean checkRange) { doTest(folderName, tool, "java 1.4", checkRange); } - public void doTest(@NonNls String folderName, InspectionTool tool, @NonNls final String jdkName) throws Exception { + public void doTest(@NonNls String folderName, InspectionTool tool, @NonNls final String jdkName) { doTest(folderName, tool, jdkName, false); } - public void doTest(@NonNls String folderName, InspectionTool tool, @NonNls final String jdkName, boolean checkRange) throws Exception { + public void doTest(@NonNls String folderName, InspectionTool tool, @NonNls final String jdkName, boolean checkRange) { doTest(folderName, tool, jdkName, checkRange, false); } @@ -100,7 +102,7 @@ public abstract class InspectionTestCase extends PsiTestCase { @NonNls final String jdkName, boolean checkRange, boolean runDeadCodeFirst, - InspectionTool... additional) throws Exception { + InspectionTool... additional) { final String testDir = getTestDataPath() + "/" + folderName; runTool(testDir, jdkName, runDeadCodeFirst, tool, additional); @@ -122,17 +124,19 @@ public abstract class InspectionTestCase extends PsiTestCase { public void run() { try { setupRootModel(testDir, sourceDir, jdkName); - } catch (Exception e) { + } + catch (Exception e) { LOG.error(e); } } }); AnalysisScope scope = createAnalysisScope(sourceDir[0].getParent()); - InspectionManagerEx inspectionManager = (InspectionManagerEx) InspectionManager.getInstance(getProject()); + InspectionManagerEx inspectionManager = (InspectionManagerEx)InspectionManager.getInstance(getProject()); InspectionTool[] tools = runDeadCodeFirst ? new InspectionTool[]{new UnusedDeclarationInspection(), tool} : new InspectionTool[]{tool}; tools = ArrayUtil.mergeArrays(tools, additional); - final GlobalInspectionContextImpl globalContext = CodeInsightTestFixtureImpl.createGlobalContextForTool(scope, getProject(), inspectionManager, tools); + final GlobalInspectionContextImpl globalContext = + CodeInsightTestFixtureImpl.createGlobalContextForTool(scope, getProject(), inspectionManager, tools); InspectionTestUtil.runTool(tool, scope, globalContext, inspectionManager); } @@ -236,7 +240,6 @@ public abstract class InspectionTestCase extends PsiTestCase { @Override @NonNls protected String getTestDataPath() { - return PathManagerEx.getTestDataPath()+"/inspection/"; + return PathManagerEx.getTestDataPath() + "/inspection/"; } - } diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java index 91bca1ccdaa4..d359db328e00 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java @@ -30,8 +30,7 @@ import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkAdditionalData; import com.intellij.openapi.projectRoots.SdkType; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.ui.popup.JBPopupFactory; @@ -71,10 +70,10 @@ public class SdkConfigurationUtil { if (SystemInfo.isMac) { descriptor.putUserData(PathChooserDialog.NATIVE_MAC_CHOOSER_SHOW_HIDDEN_FILES, Boolean.TRUE); } - String suggestedPath = sdkTypes [0].suggestHomePath(); + String suggestedPath = sdkTypes[0].suggestHomePath(); VirtualFile suggestedDir = suggestedPath == null ? null - : LocalFileSystem.getInstance().findFileByPath(FileUtil.toSystemIndependentName(suggestedPath)); + : LocalFileSystem.getInstance().findFileByPath(FileUtil.toSystemIndependentName(suggestedPath)); FileChooser.chooseFiles(descriptor, project, suggestedDir, new Consumer>() { @Override public void consume(List selectedFiles) { @@ -90,7 +89,7 @@ public class SdkConfigurationUtil { } private static FileChooserDescriptor createCompositeDescriptor(final SdkType... sdkTypes) { - FileChooserDescriptor descriptor0 = sdkTypes [0].getHomeChooserDescriptor(); + FileChooserDescriptor descriptor0 = sdkTypes[0].getHomeChooserDescriptor(); FileChooserDescriptor descriptor = new FileChooserDescriptor(descriptor0.isChooseFiles(), descriptor0.isChooseFolders(), descriptor0.isChooseJars(), descriptor0.isChooseJarsAsFiles(), descriptor0.isChooseJarContents(), descriptor0.isChooseMultiple()) { @@ -105,8 +104,8 @@ public class SdkConfigurationUtil { } } String message = files.length > 0 && files[0].isDirectory() - ? ProjectBundle.message("sdk.configure.home.invalid.error", sdkTypes [0].getPresentableName()) - : ProjectBundle.message("sdk.configure.home.file.invalid.error", sdkTypes [0].getPresentableName()); + ? ProjectBundle.message("sdk.configure.home.invalid.error", sdkTypes[0].getPresentableName()) + : ProjectBundle.message("sdk.configure.home.file.invalid.error", sdkTypes[0].getPresentableName()); throw new Exception(message); } }; @@ -174,15 +173,15 @@ public class SdkConfigurationUtil { ProjectRootManager.getInstance(project).setProjectSdk(sdk); final Module[] modules = ModuleManager.getInstance(project).getModules(); if (modules.length > 0) { - final ModifiableRootModel model = ModuleRootManager.getInstance(modules[0]).getModifiableModel(); - model.inheritSdk(); - model.commit(); + ModuleRootModificationUtil.setSdkInherited(modules[0]); } } }); } - public static void configureDirectoryProjectSdk(final Project project, @Nullable Comparator preferredSdkComparator, final SdkType... sdkTypes) { + public static void configureDirectoryProjectSdk(final Project project, + @Nullable Comparator preferredSdkComparator, + final SdkType... sdkTypes) { Sdk existingSdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (existingSdk != null && ArrayUtil.contains(existingSdk.getSdkType(), sdkTypes)) { return; @@ -226,7 +225,8 @@ public class SdkConfigurationUtil { /** * Tries to create an SDK identified by path; if successful, add the SDK to the global SDK table. - * @param path identifies the SDK + * + * @param path identifies the SDK * @param sdkType * @return newly created SDK, or null. */ @@ -264,7 +264,7 @@ public class SdkConfigurationUtil { return newSdkName; } - public static void selectSdkHome(final SdkType sdkType, @NotNull final Consumer consumer){ + public static void selectSdkHome(final SdkType sdkType, @NotNull final Consumer consumer) { final FileChooserDescriptor descriptor = sdkType.getHomeChooserDescriptor(); FileChooser.chooseFiles(descriptor, null, getSuggestedSdkRoot(sdkType), new Consumer>() { @Override @@ -291,10 +291,10 @@ public class SdkConfigurationUtil { } public static void suggestAndAddSdk(@Nullable final Project project, - final Sdk[] existingSdks, - JComponent popupOwner, - final Consumer callback, - final SdkType... sdkTypes) { + final Sdk[] existingSdks, + JComponent popupOwner, + final Consumer callback, + final SdkType... sdkTypes) { assert sdkTypes.length > 0; final Map suggestedSdkHomes = new LinkedHashMap(); for (SdkType sdkType : sdkTypes) { @@ -339,7 +339,7 @@ public class SdkConfigurationUtil { } else { Sdk sdk = setupSdk(existingSdks, LocalFileSystem.getInstance().findFileByPath(selectedValue), - sdkType, false, null, null); + sdkType, false, null, null); callback.consume(sdk); } return FINAL_CHOICE; diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java b/platform/lang-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java new file mode 100644 index 000000000000..12272d8a6f12 --- /dev/null +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java @@ -0,0 +1,73 @@ +/* + * Copyright 2000-2012 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.openapi.roots; + +import com.intellij.openapi.application.Result; +import com.intellij.openapi.application.WriteAction; +import com.intellij.openapi.module.Module; +import com.intellij.openapi.projectRoots.Sdk; +import com.intellij.openapi.roots.libraries.Library; +import org.jetbrains.annotations.Nullable; + +/** + * @author nik + */ +public class ModuleRootModificationUtil { + public static void addDependency(Module module, Library library) { + addDependency(module, library, DependencyScope.COMPILE, false); + } + + public static void addDependency(Module module, Library library, final DependencyScope scope, final boolean exported) { + final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); + final LibraryOrderEntry entry = model.addLibraryEntry(library); + entry.setExported(exported); + entry.setScope(scope); + doCommit(model); + } + + public static void setModuleSdk(Module module, @Nullable Sdk sdk) { + final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); + model.setSdk(sdk); + doCommit(model); + } + + public static void setSdkInherited(Module module) { + final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); + model.inheritSdk(); + doCommit(model); + } + + public static void addDependency(final Module from, final Module to) { + addDependency(from, to, DependencyScope.COMPILE, false); + } + + public static void addDependency(final Module from, final Module to, final DependencyScope scope, final boolean exported) { + final ModifiableRootModel model = ModuleRootManager.getInstance(from).getModifiableModel(); + final ModuleOrderEntry entry = model.addModuleOrderEntry(to); + entry.setScope(scope); + entry.setExported(exported); + doCommit(model); + } + + private static void doCommit(final ModifiableRootModel model) { + new WriteAction() { + @Override + protected void run(Result result) throws Throwable { + model.commit(); + } + }.execute(); + } +} diff --git a/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java b/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java index e1768278e035..188c848c7d8e 100644 --- a/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java +++ b/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java @@ -26,8 +26,8 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.project.ex.ProjectManagerEx; -import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.io.FileUtil; @@ -51,11 +51,12 @@ import java.util.List; */ public class ModuleAttachProcessor extends ProjectAttachProcessor { private static final Logger LOG = Logger.getInstance(ModuleAttachProcessor.class); - + @Override public boolean attachToProject(Project project, File projectDir, @Nullable ProjectOpenedCallback callback) { if (!projectDir.exists()) { - Project newProject = ((ProjectManagerEx) ProjectManager.getInstance()).newProject(projectDir.getParentFile().getName(), projectDir.getParent(), true, false); + Project newProject = ((ProjectManagerEx)ProjectManager.getInstance()) + .newProject(projectDir.getParentFile().getName(), projectDir.getParent(), true, false); if (newProject == null) { return false; } @@ -72,7 +73,7 @@ public class ModuleAttachProcessor extends ProjectAttachProcessor { } final String[] files = projectDir.list(); if (files != null) { - for(String file: files) { + for (String file : files) { if (FileUtil.getExtension(file).equals("iml")) { VirtualFile imlFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(projectDir, file)); if (imlFile != null) { @@ -82,7 +83,8 @@ public class ModuleAttachProcessor extends ProjectAttachProcessor { } } } - int rc = Messages.showYesNoDialog(project, "The project at " + FileUtil.toSystemDependentName(projectDir.getPath()) + + int rc = Messages.showYesNoDialog(project, "The project at " + + FileUtil.toSystemDependentName(projectDir.getPath()) + " uses a non-standard layout and cannot be attached to this project. Would you like to open it in a new window?", "Open Project", Messages.getQuestionIcon()); @@ -147,15 +149,7 @@ public class ModuleAttachProcessor extends ProjectAttachProcessor { private static Module addPrimaryModuleDependency(Project project, @NotNull Module newModule) { final Module module = getPrimaryModule(project); if (module != null && module != newModule) { - final ModifiableRootModel modifiableRootModel = ModuleRootManager.getInstance(module).getModifiableModel(); - modifiableRootModel.addModuleOrderEntry(newModule); - AccessToken token = WriteAction.start(); - try { - modifiableRootModel.commit(); - } - finally { - token.finish(); - } + ModuleRootModificationUtil.addDependency(module, newModule); return module; } return null; @@ -188,5 +182,4 @@ public class ModuleAttachProcessor extends ProjectAttachProcessor { } return result; } - } diff --git a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java index e298fd27cb8e..adc8d6777a56 100644 --- a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java @@ -47,8 +47,7 @@ import com.intellij.openapi.project.ex.ProjectManagerEx; import com.intellij.openapi.project.impl.ProjectManagerImpl; import com.intellij.openapi.project.impl.TooManyProjectLeakedException; import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.startup.StartupManager; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.EmptyRunnable; @@ -270,7 +269,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro } protected File getIprFile() throws IOException { - File tempFile = FileUtil.createTempFile(getName()+"_", ProjectFileType.DOT_DEFAULT_EXTENSION); + File tempFile = FileUtil.createTempFile(getName() + "_", ProjectFileType.DOT_DEFAULT_EXTENSION); myFilesToDelete.add(tempFile); return tempFile; } @@ -499,7 +498,9 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro if (myProject != null) { try { PsiDocumentManager documentManager = myProject.getComponent(PsiDocumentManager.class, null); - if (documentManager != null) EditorFactory.getInstance().getEventMulticaster().removeDocumentListener((DocumentListener)documentManager); + if (documentManager != null) { + EditorFactory.getInstance().getEventMulticaster().removeDocumentListener((DocumentListener)documentManager); + } } catch (Exception ignored) { @@ -560,15 +561,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro // ProjectJdkImpl jdk = ProjectJdkTable.getInstance().addJdk(defaultJdk); Module[] modules = ModuleManager.getInstance(myProject).getModules(); for (Module module : modules) { - final ModuleRootManager rootManager = ModuleRootManager.getInstance(module); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.setSdk(jdk); - rootModel.commit(); - } - }); + ModuleRootModificationUtil.setModuleSdk(module, jdk); } } @@ -665,6 +658,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro } */ } + private static int LEAK_WALKS; private static void waitForAllLaters() throws InterruptedException, InvocationTargetException { @@ -775,7 +769,8 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.TYPE}) - public @interface WrapInCommand {} + public @interface WrapInCommand { + } protected static VirtualFile createChildData(@NotNull final VirtualFile dir, @NotNull @NonNls final String name) { return new WriteAction() { @@ -785,6 +780,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro } }.execute().throwException().getResultObject(); } + protected static VirtualFile createChildDirectory(@NotNull final VirtualFile dir, @NotNull @NonNls final String name) { return new WriteAction() { @Override @@ -793,6 +789,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro } }.execute().throwException().getResultObject(); } + protected static void delete(@NotNull final VirtualFile file) { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override @@ -806,6 +803,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro } }); } + protected static void rename(@NotNull final VirtualFile vFile1, @NotNull final String newName) { new WriteCommandAction.Simple(null) { @Override diff --git a/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java b/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java index 82bf1b6c818b..d9b091c6a060 100644 --- a/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java +++ b/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java @@ -51,7 +51,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; -@NonNls public class PsiTestUtil { +@NonNls +public class PsiTestUtil { public static VirtualFile createTestProjectStructure(Project project, Module module, String rootPath, @@ -80,18 +81,20 @@ import java.util.List; final String rootPath, final Collection filesToDelete, final boolean addProjectRoots) throws Exception { - return createTestProjectStructure("unitTest",module, rootPath, filesToDelete, addProjectRoots); + return createTestProjectStructure("unitTest", module, rootPath, filesToDelete, addProjectRoots); } + public static VirtualFile createTestProjectStructure(String tempName, final Module module, final String rootPath, final Collection filesToDelete, final boolean addProjectRoots) throws Exception { - File dir = FileUtil.createTempDirectory(tempName, null,false); + File dir = FileUtil.createTempDirectory(tempName, null, false); filesToDelete.add(dir); - final VirtualFile vDir = LocalFileSystem.getInstance().refreshAndFindFileByPath(dir.getCanonicalPath().replace(File.separatorChar, '/')); - assert vDir.isDirectory(): vDir; + final VirtualFile vDir = + LocalFileSystem.getInstance().refreshAndFindFileByPath(dir.getCanonicalPath().replace(File.separatorChar, '/')); + assert vDir.isDirectory() : vDir; final Exception[] exception = {null}; ApplicationManager.getApplication().runWriteAction(new Runnable() { @@ -256,7 +259,10 @@ import java.util.List; commitModel(modifiableModel); } - private static void addProjectLibrary(final Module module, final ModifiableRootModel model, final String libName, final VirtualFile... classesRoots) { + private static void addProjectLibrary(final Module module, + final ModifiableRootModel model, + final String libName, + final VirtualFile... classesRoots) { new WriteCommandAction.Simple(module.getProject()) { @Override protected void run() throws Throwable { @@ -277,7 +283,11 @@ import java.util.List; }.execute().throwException(); } - public static void addLibrary(final Module module, final ModifiableRootModel model, final String libName, final String libPath, final String... jarArr) { + public static void addLibrary(final Module module, + final ModifiableRootModel model, + final String libName, + final String libPath, + final String... jarArr) { List classesRoots = new ArrayList(); for (String jar : jarArr) { if (!libPath.endsWith("/") && !jar.startsWith("/")) { @@ -287,7 +297,8 @@ import java.util.List; VirtualFile root; if (path.endsWith(".jar")) { root = JarFileSystem.getInstance().refreshAndFindFileByPath(path + "!/"); - } else { + } + else { root = LocalFileSystem.getInstance().refreshAndFindFileByPath(path); } assert root != null : "Library root folder not found: " + path + "!/"; @@ -303,7 +314,8 @@ import java.util.List; ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); - final String parentUrl = VirtualFileManager.constructUrl(classRoots[0].endsWith(".jar!/") ? JarFileSystem.PROTOCOL : LocalFileSystem.PROTOCOL, libDir); + final String parentUrl = + VirtualFileManager.constructUrl(classRoots[0].endsWith(".jar!/") ? JarFileSystem.PROTOCOL : LocalFileSystem.PROTOCOL, libDir); final Library library = model.getModuleLibraryTable().createLibrary(libName); final Library.ModifiableModel libModifiableModel = library.getModifiableModel(); for (String classRoot : classRoots) { @@ -336,21 +348,4 @@ import java.util.List; } }.execute().getResultObject(); } - - public static void addDependency(final Module from, final Module to) { - addDependency(from, to, DependencyScope.COMPILE, false); - } - - public static void addDependency(final Module from, final Module to, final DependencyScope scope, final boolean exported) { - new WriteCommandAction(from.getProject()) { - @Override - protected void run(Result result) throws Throwable { - final ModifiableRootModel model = ModuleRootManager.getInstance(from).getModifiableModel(); - final ModuleOrderEntry entry = model.addModuleOrderEntry(to); - entry.setScope(scope); - entry.setExported(exported); - model.commit(); - } - }.execute(); - } } \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/IGInspectionTestCase.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/IGInspectionTestCase.java index 4c4c1e17f2b0..82f315a392b2 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/IGInspectionTestCase.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/IGInspectionTestCase.java @@ -31,7 +31,7 @@ public abstract class IGInspectionTestCase extends InspectionTestCase { } @Override - public void doTest(@NonNls final String folderName, final LocalInspectionTool tool) throws Exception { + public void doTest(@NonNls final String folderName, final LocalInspectionTool tool) { super.doTest(folderName, new LocalInspectionToolWrapper(tool), "java 1.5"); } } diff --git a/plugins/android/src/org/jetbrains/android/importDependencies/AddModuleDependencyTask.java b/plugins/android/src/org/jetbrains/android/importDependencies/AddModuleDependencyTask.java index c48610c3d362..057c348c5642 100644 --- a/plugins/android/src/org/jetbrains/android/importDependencies/AddModuleDependencyTask.java +++ b/plugins/android/src/org/jetbrains/android/importDependencies/AddModuleDependencyTask.java @@ -1,16 +1,15 @@ package org.jetbrains.android.importDependencies; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; -import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import org.jetbrains.android.util.AndroidBundle; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** -* @author Eugene.Kudelevsky -*/ + * @author Eugene.Kudelevsky + */ class AddModuleDependencyTask extends ImportDependenciesTask { private final ModuleProvider myModuleProvider; private final ModuleProvider myDepModuleProvider; @@ -31,14 +30,7 @@ class AddModuleDependencyTask extends ImportDependenciesTask { final ModuleRootManager rootManager = ModuleRootManager.getInstance(module); if (!rootManager.isDependsOn(depModule)) { - final ModifiableRootModel model = rootManager.getModifiableModel(); - model.addModuleOrderEntry(depModule); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - model.commit(); - } - }); + ModuleRootModificationUtil.addDependency(module, depModule); } return null; } diff --git a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java index 061977ecd604..9d13b4fa546e 100644 --- a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java +++ b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java @@ -35,10 +35,7 @@ import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.*; import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil; -import com.intellij.openapi.roots.JavadocOrderRootType; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderRootType; +import com.intellij.openapi.roots.*; import com.intellij.openapi.roots.libraries.ui.OrderRoot; import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService; import com.intellij.openapi.ui.Messages; @@ -133,7 +130,8 @@ public class AndroidSdkUtils { if (sdkPath != null) { // todo: check if we should do it for new android platforms (api_level >= 15) final VirtualFile annotationsJar = JarFileSystem.getInstance() - .findFileByPath(FileUtil.toSystemIndependentName(sdkPath) + AndroidCommonUtils.ANNOTATIONS_JAR_RELATIVE_PATH + JarFileSystem.JAR_SEPARATOR); + .findFileByPath( + FileUtil.toSystemIndependentName(sdkPath) + AndroidCommonUtils.ANNOTATIONS_JAR_RELATIVE_PATH + JarFileSystem.JAR_SEPARATOR); if (annotationsJar != null) { result.add(new OrderRoot(annotationsJar, OrderRootType.CLASSES)); } @@ -289,23 +287,12 @@ public class AndroidSdkUtils { private static boolean tryToSetAndroidPlatform(Module module, Sdk sdk) { AndroidPlatform platform = AndroidPlatform.parse(sdk); if (platform != null) { - setSdk(module, sdk); + ModuleRootModificationUtil.setModuleSdk(module, sdk); return true; } return false; } - private static void setSdk(Module module, Sdk sdk) { - final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); - model.setSdk(sdk); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - model.commit(); - } - }); - } - private static void setupPlatform(@NotNull Module module) { if (tryToImportSdkFromPropertyFiles(module)) { return; @@ -359,7 +346,7 @@ public class AndroidSdkUtils { final Sdk sdk = findSuitableAndroidSdk(targetHashString, sdkDir); if (sdk != null) { - setSdk(module, sdk); + ModuleRootModificationUtil.setModuleSdk(module, sdk); return true; } @@ -388,7 +375,7 @@ public class AndroidSdkUtils { if (target != null) { final Sdk androidSdk = createNewAndroidPlatform(target, sdkData.getLocation(), true); if (androidSdk != null) { - setSdk(module, androidSdk); + ModuleRootModificationUtil.setModuleSdk(module, androidSdk); return true; } } diff --git a/plugins/android/testSrc/org/jetbrains/android/AndroidTestCase.java b/plugins/android/testSrc/org/jetbrains/android/AndroidTestCase.java index 644b260dd43d..656852c8036a 100644 --- a/plugins/android/testSrc/org/jetbrains/android/AndroidTestCase.java +++ b/plugins/android/testSrc/org/jetbrains/android/AndroidTestCase.java @@ -26,8 +26,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkModificator; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.vfs.JarFileSystem; import com.intellij.openapi.vfs.LocalFileSystem; @@ -80,7 +79,8 @@ public abstract class AndroidTestCase extends UsefulTestCase { public void setUp() throws Exception { super.setUp(); - final TestFixtureBuilder projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()); + final TestFixtureBuilder projectBuilder = + IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()); myFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(projectBuilder.getFixture()); final JavaModuleFixtureBuilder moduleFixtureBuilder = projectBuilder.addModule(JavaModuleFixtureBuilder.class); tuneModule(moduleFixtureBuilder, myFixture.getTempDirPath()); @@ -144,14 +144,7 @@ public abstract class AndroidTestCase extends UsefulTestCase { private static void addAndroidSdk(Module module, String sdkPath) { Sdk androidSdk = createAndroidSdk(sdkPath); - final ModifiableRootModel moduleModel = ModuleRootManager.getInstance(module).getModifiableModel(); - moduleModel.setSdk(androidSdk); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - moduleModel.commit(); - } - }); + ModuleRootModificationUtil.setModuleSdk(module, androidSdk); } private static Sdk createAndroidSdk(String sdkPath) { diff --git a/plugins/android/testSrc/org/jetbrains/android/dom/AndroidLibraryProjectTest.java b/plugins/android/testSrc/org/jetbrains/android/dom/AndroidLibraryProjectTest.java index ce72c2f2ead3..6207725f35da 100644 --- a/plugins/android/testSrc/org/jetbrains/android/dom/AndroidLibraryProjectTest.java +++ b/plugins/android/testSrc/org/jetbrains/android/dom/AndroidLibraryProjectTest.java @@ -5,11 +5,11 @@ import com.intellij.codeInsight.completion.CompletionType; import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.testFramework.IdeaTestCase; -import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.UsefulTestCase; import com.intellij.testFramework.builders.JavaModuleFixtureBuilder; import com.intellij.testFramework.fixtures.*; @@ -48,7 +48,8 @@ public class AndroidLibraryProjectTest extends UsefulTestCase { @Override public void setUp() throws Exception { super.setUp(); - final TestFixtureBuilder projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()); + final TestFixtureBuilder projectBuilder = + IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()); myFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(projectBuilder.getFixture()); myFixture.enableInspections(AndroidDomInspection.class); @@ -81,8 +82,8 @@ public class AndroidLibraryProjectTest extends UsefulTestCase { myLibFacet = AndroidTestCase.addAndroidFacet(myLibModule, getTestSdkPath()); myLibFacet.getConfiguration().LIBRARY_PROJECT = true; - PsiTestUtil.addDependency(myAppModule, myLibModule); - PsiTestUtil.addDependency(myLibModule, myLibGenModule); + ModuleRootModificationUtil.addDependency(myAppModule, myLibModule); + ModuleRootModificationUtil.addDependency(myLibModule, myLibGenModule); } private void createInitialStructure() { diff --git a/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/Eclipse2ModulesTest.java b/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/Eclipse2ModulesTest.java index 46333beab9ab..7d566178418c 100644 --- a/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/Eclipse2ModulesTest.java +++ b/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/Eclipse2ModulesTest.java @@ -23,13 +23,12 @@ package org.jetbrains.idea.eclipse; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.PluginPathManager; import com.intellij.openapi.module.Module; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.IdeaTestCase; +import com.intellij.testFramework.PsiTestUtil; import junit.framework.Assert; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.Nullable; @@ -69,7 +68,6 @@ public abstract class Eclipse2ModulesTest extends IdeaTestCase { } protected void doTest(final String workspaceRoot, final String projectRoot) throws Exception { - final ModifiableRootModel model = ModuleRootManager.getInstance(getModule()).getModifiableModel(); final VirtualFile file = ApplicationManager.getApplication().runWriteAction( new Computable() { @@ -78,22 +76,17 @@ public abstract class Eclipse2ModulesTest extends IdeaTestCase { public VirtualFile compute() { final VirtualFile baseDir = getProject().getBaseDir(); assert baseDir != null; - return LocalFileSystem.getInstance().refreshAndFindFileByPath(baseDir.getPath() + "/" + workspaceRoot + "/" + myDependantModulePath); + return LocalFileSystem.getInstance() + .refreshAndFindFileByPath(baseDir.getPath() + "/" + workspaceRoot + "/" + myDependantModulePath); } } ); if (file != null) { - model.addContentEntry(file); - } else { - model.dispose(); + PsiTestUtil.addContentRoot(getModule(), file); + } + else { Assert.assertTrue("File not found", false); } - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run(){ - model.commit(); - } - }); } public void setDependantModulePath(String dependantModulePath) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java index f8992644e1e5..61cbb2593255 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java @@ -89,7 +89,7 @@ public class MvcModuleStructureUtil { sourceRoots.put(folder.getFile(), folder.isTestSource()); } } - + root.refresh(false, true); final List> actions = CollectionFactory.arrayList(); @@ -139,7 +139,9 @@ public class MvcModuleStructureUtil { }; } - public static void removeSrcFolderFromRoots(final VirtualFile file, List> actions, Map sourceRoots) { + public static void removeSrcFolderFromRoots(final VirtualFile file, + List> actions, + Map sourceRoots) { if (sourceRoots.containsKey(file)) { actions.add(new Consumer() { public void consume(ContentEntry contentEntry) { @@ -198,7 +200,10 @@ public class MvcModuleStructureUtil { return library.getModifiableModel(); } - public static void addSourceFolder(@NotNull VirtualFile root, @NotNull String relativePath, final boolean isTest, List> actions, + public static void addSourceFolder(@NotNull VirtualFile root, + @NotNull String relativePath, + final boolean isTest, + List> actions, Map sourceRoots) { final VirtualFile src = root.findFileByRelativePath(relativePath); if (src == null) { @@ -412,7 +417,7 @@ public class MvcModuleStructureUtil { public static List getAllModulesWithSupport(Project project, MvcFramework framework) { List modules = new ArrayList(); - for (Module module : ModuleManager.getInstance(project).getModules()){ + for (Module module : ModuleManager.getInstance(project).getModules()) { if (framework.hasSupport(module)) { modules.add(module); } @@ -576,10 +581,7 @@ public class MvcModuleStructureUtil { public static void ensureDependency(@NotNull Module from, @NotNull Module to, boolean exported) { if (!from.equals(to) && !hasDependency(from, to)) { - final ModifiableRootModel fromModel = ModuleRootManager.getInstance(from).getModifiableModel(); - ModuleOrderEntry entry = fromModel.addModuleOrderEntry(to); - entry.setExported(exported); - fromModel.commit(); + ModuleRootModificationUtil.addDependency(from, to, DependencyScope.COMPILE, exported); } } @@ -613,7 +615,8 @@ public class MvcModuleStructureUtil { public static void copySdk(ModuleRootModel from, ModifiableRootModel to) { if (from.isSdkInherited()) { to.inheritSdk(); - } else { + } + else { to.setSdk(from.getSdk()); } } @@ -670,7 +673,7 @@ public class MvcModuleStructureUtil { if (userLibraryTo == null) { if (userLibraryFrom == null) return; - userLibraryTo = to.getModuleLibraryTable().createLibrary(framework.getUserLibraryName() + " (" +to.getModule().getName() + ')'); + userLibraryTo = to.getModuleLibraryTable().createLibrary(framework.getUserLibraryName() + " (" + to.getModule().getName() + ')'); } else { OrderEntry[] orderEntries = to.getOrderEntries().clone(); @@ -812,7 +815,8 @@ public class MvcModuleStructureUtil { for (VirtualFile virtualFile : map.keySet()) { if (!globalAuxModules.containsKey(virtualFile)) { Module appModule = map.get(virtualFile).iterator().next(); - Module module = createAuxiliaryModule(appModule, generateUniqueModuleName(project, framework.getGlobalPluginsModuleName()), framework); + Module module = + createAuxiliaryModule(appModule, generateUniqueModuleName(project, framework.getGlobalPluginsModuleName()), framework); globalAuxModules.put(virtualFile, module); } } @@ -853,7 +857,8 @@ public class MvcModuleStructureUtil { i++; if (manager.findModuleByName(res) == null) return res; - } while (true); + } + while (true); } @Nullable diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy index e32f2c8ebf4b..03d25ca15a1c 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy @@ -26,8 +26,9 @@ import com.intellij.openapi.module.Module import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiFile -import com.intellij.testFramework.PsiTestUtil + import junit.framework.AssertionFailedError +import com.intellij.openapi.roots.ModuleRootModificationUtil /** * @author peter @@ -134,9 +135,9 @@ public abstract class GroovyCompilerTest extends GroovyCompilerTestCase { public void testTransitiveJavaDependencyThroughGroovy() throws Throwable { myFixture.addClass("public class IFoo { void foo() {} }").getContainingFile().getVirtualFile(); myFixture.addFileToProject("Foo.groovy", "class Foo {\n" + - " static IFoo f\n" + - " public int foo() { return 239; }\n" + - "}"); + " static IFoo f\n" + + " public int foo() { return 239; }\n" + + "}"); final PsiFile bar = myFixture.addFileToProject("Bar.groovy", "class Bar extends Foo {" + "public static void main(String[] args) { " + " System.out.println(new Foo().foo());" + @@ -216,11 +217,11 @@ public abstract class GroovyCompilerTest extends GroovyCompilerTestCase { assertEmpty(make()); myFixture.addFileToProject("tests/Sub.groovy", "class Sub {\n" + - " Super xxx() {}\n" + - " static void main(String[] args) {" + - " println 'hello'" + - " }" + - "}"); + " Super xxx() {}\n" + + " static void main(String[] args) {" + + " println 'hello'" + + " }" + + "}"); myFixture.addFileToProject("tests/Java.java", "public class Java {}"); assertEmpty(make()); assertOutput("Sub", "hello"); @@ -231,9 +232,9 @@ public abstract class GroovyCompilerTest extends GroovyCompilerTestCase { myFixture.addFileToProject("src/com/Bar.groovy", "package com\n" + "class Bar {}"); myFixture.addFileToProject("src/com/ToGenerateStubs.java", "package com;\n" + - "public class ToGenerateStubs {}"); + "public class ToGenerateStubs {}"); myFixture.addFileToProject("tests/com/BarTest.groovy", "package com\n" + - "class BarTest extends Bar {}"); + "class BarTest extends Bar {}"); assertEmpty(make()); } @@ -307,8 +308,8 @@ public class Transf implements ASTTransformation { Module dep1 = addModule('dependent1') Module dep2 = addModule('dependent2') - PsiTestUtil.addDependency dep2, dep1 - PsiTestUtil.addDependency myModule, dep2 + ModuleRootModificationUtil.addDependency dep2, dep1 + ModuleRootModificationUtil.addDependency myModule, dep2 addGroovyLibrary(dep1); addGroovyLibrary(dep2); @@ -335,7 +336,7 @@ class Foo { }""" def javaFile = myFixture.addFileToProject("AJava.java", "public class AJava extends Foo.Bar {}") assertEmpty make() - + touch(javaFile.virtualFile) assertEmpty make() } @@ -516,7 +517,7 @@ class Indirect { assertEmpty compileModule(myModule) assertEmpty compileModule(myModule) - + setFileText(used, 'class Used2 {}') shouldFail { make() } assert findClassFile('Used') == null @@ -569,7 +570,7 @@ class Main { public void "test module cycle"() { def dep = addDependentModule() - PsiTestUtil.addDependency(myModule, dep) + ModuleRootModificationUtil.addDependency(myModule, dep) addGroovyLibrary(dep) myFixture.addFileToProject('Foo.groovy', 'class Foo extends Bar { static void main(String[] args) { println "Hello from Foo" } }') @@ -734,7 +735,5 @@ string } } } - } - } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java index d3109934d310..e17b4fc68070 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java @@ -99,9 +99,7 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC JavaAwareProjectJdkTableImpl jdkTable = JavaAwareProjectJdkTableImpl.getInstanceEx(); Sdk internalJdk = jdkTable.getInternalJdk(); jdkTable.addJdk(internalJdk); - final ModifiableRootModel modifiableModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - modifiableModel.setSdk(internalJdk); - modifiableModel.commit(); + ModuleRootModificationUtil.setModuleSdk(myModule, internalJdk); } } }.execute(); @@ -166,7 +164,7 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC protected Module addDependentModule() { Module module = addModule("dependent"); - PsiTestUtil.addDependency(module, myModule); + ModuleRootModificationUtil.addDependency(module, myModule); return module; } @@ -181,12 +179,8 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC moduleModel.commit(); final Module dep = ModuleManager.getInstance(getProject()).findModuleByName(moduleName); - final ModifiableRootModel model = ModuleRootManager.getInstance(dep).getModifiableModel(); - final ContentEntry entry = model.addContentEntry(depRoot); - entry.addSourceFolder(depRoot, false); - model.setSdk(ModuleRootManager.getInstance(myModule).getSdk()); - model.commit(); - + ModuleRootModificationUtil.setModuleSdk(dep, ModuleRootManager.getInstance(myModule).getSdk()); + PsiTestUtil.addSourceRoot(dep, depRoot); IdeaTestUtil.setModuleLanguageLevel(dep, LanguageLevelModuleExtension.getInstance(myModule).getLanguageLevel()); result.setResult(dep); @@ -200,7 +194,8 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC if (useJps()) { //noinspection ConstantConditions touch(JavaPsiFacade.getInstance(getProject()).findClass(className).getContainingFile().getVirtualFile()); - } else { + } + else { //noinspection ConstantConditions findClassFile(className).delete(this); } @@ -210,10 +205,13 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC } } - @Nullable protected VirtualFile findClassFile(String className) { + @Nullable + protected VirtualFile findClassFile(String className) { return findClassFile(className, myModule); } - @Nullable protected VirtualFile findClassFile(String className, Module module) { + + @Nullable + protected VirtualFile findClassFile(String className, Module module) { //noinspection ConstantConditions VirtualFile path = ModuleRootManager.getInstance(module).getModuleExtension(CompilerModuleExtension.class).getCompilerOutputPath(); path.getChildren(); @@ -344,7 +342,8 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC Module module, final Class executorClass, final ProcessListener listener, final ProgramRunner runner) throws ExecutionException { - final ApplicationConfiguration configuration = new ApplicationConfiguration("app", getProject(), ApplicationConfigurationType.getInstance()); + final ApplicationConfiguration configuration = + new ApplicationConfiguration("app", getProject(), ApplicationConfigurationType.getInstance()); configuration.setModule(module); configuration.setMainClassName(className); final Executor executor = Executor.EXECUTOR_EXTENSION_NAME.findExtension(executorClass); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java index 714e4e6e5be0..9d32c7109ef1 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java @@ -492,14 +492,7 @@ public abstract class MavenImportingTestCase extends MavenTestCase { protected Sdk setupJdkForModule(final String moduleName) { final Sdk sdk = createJdk("Java 1.5"); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - final ModifiableRootModel m = ModuleRootManager.getInstance(getModule(moduleName)).getModifiableModel(); - m.setSdk(sdk); - m.commit(); - } - }); - + ModuleRootModificationUtil.setModuleSdk(getModule(moduleName), sdk); return sdk; } @@ -524,7 +517,8 @@ public abstract class MavenImportingTestCase extends MavenTestCase { CompilerManagerImpl.testSetup(); List roots = Arrays.asList(ProjectRootManager.getInstance(myProject).getContentRoots()); - TranslatingCompilerFilesMonitor.getInstance().scanSourceContent(new TranslatingCompilerFilesMonitor.ProjectRef(myProject), roots, roots.size(), true); + TranslatingCompilerFilesMonitor.getInstance() + .scanSourceContent(new TranslatingCompilerFilesMonitor.ProjectRef(myProject), roots, roots.size(), true); final CompileScope scope = new ModuleCompileScope(myProject, modules.toArray(new Module[modules.size()]), false); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java index de2dce2defd0..007908d9c015 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java @@ -26,7 +26,6 @@ import com.intellij.openapi.roots.libraries.LibraryTable; import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.testFramework.PsiTestUtil; import org.jetbrains.idea.maven.MavenCustomRepositoryHelper; import org.jetbrains.idea.maven.MavenImportingTestCase; import org.jetbrains.idea.maven.model.MavenId; @@ -1507,7 +1506,7 @@ public class DependenciesImportingTest extends MavenImportingTestCase { final Module module = createModule("my-module"); - PsiTestUtil.addDependency(getModule("m1"), module); + ModuleRootModificationUtil.addDependency(getModule("m1"), module); assertModuleModuleDeps("m1", "m2", "my-module"); @@ -2055,9 +2054,7 @@ public class DependenciesImportingTest extends MavenImportingTestCase { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { Library lib = createProjectLibrary(libraryName); - ModifiableRootModel model = ModuleRootManager.getInstance(getModule(moduleName)).getModifiableModel(); - model.addLibraryEntry(lib); - model.commit(); + ModuleRootModificationUtil.addDependency(getModule(moduleName), lib); } }); } @@ -2121,9 +2118,7 @@ public class DependenciesImportingTest extends MavenImportingTestCase { public void run() { LibraryTable appTable = LibraryTablesRegistrar.getInstance().getLibraryTable(); Library lib = appTable.createLibrary("foo"); - ModifiableRootModel model = ModuleRootManager.getInstance(getModule("project")).getModifiableModel(); - model.addLibraryEntry(lib); - model.commit(); + ModuleRootModificationUtil.addDependency(getModule("project"), lib); appTable.removeLibrary(lib); } }); diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/InsertComponentProcessor.java b/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/InsertComponentProcessor.java index 1fc39ad60d47..be7f2468010f 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/InsertComponentProcessor.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/InsertComponentProcessor.java @@ -72,6 +72,7 @@ public final class InsertComponentProcessor extends EventProcessor { private ComponentDropLocation myLastLocation; private static final Map myComponentClassMap = new HashMap(); + static { myComponentClassMap.put(JScrollPane.class.getName(), new RadScrollPane.Factory()); myComponentClassMap.put(JPanel.class.getName(), new RadContainer.Factory()); @@ -158,11 +159,11 @@ public final class InsertComponentProcessor extends EventProcessor { // Here is euristic. Chop first 'J' letter for standard Swing classes. // Without 'J' bindings look better. - if( + if ( shortClassName.length() > 1 && Character.isUpperCase(shortClassName.charAt(1)) && componentClassName.startsWith("javax.swing.") && StringUtil.startsWithChar(shortClassName, 'J') - ){ + ) { shortClassName = shortClassName.substring(1); } shortClassName = StringUtil.decapitalize(shortClassName); @@ -172,7 +173,7 @@ public final class InsertComponentProcessor extends EventProcessor { public static String getUniqueBinding(RadRootContainer root, final String baseName) { // Generate member name based on current code style //noinspection ForLoopThatDoesntUseLoopVariable - for(int i = 0; true; i++){ + for (int i = 0; true; i++) { final String nameCandidate = baseName + (i + 1); final String binding = JavaCodeStyleManager.getInstance(root.getProject()).propertyNameToVariableName( nameCandidate, @@ -187,6 +188,7 @@ public final class InsertComponentProcessor extends EventProcessor { /** * Tries to create binding for {@link #myInsertedComponent} + * * @param editor * @param insertedComponent * @param forceBinding @@ -210,9 +212,9 @@ public final class InsertComponentProcessor extends EventProcessor { public static void createBindingField(final GuiEditor editor, final RadComponent insertedComponent) { // Try to create field in the corresponding bound class final String classToBind = editor.getRootContainer().getClassToBind(); - if(classToBind != null){ + if (classToBind != null) { final PsiClass aClass = FormEditingUtil.findClassToBind(editor.getModule(), classToBind); - if(aClass != null && aClass.findFieldByName(insertedComponent.getBinding(), true) == null) { + if (aClass != null && aClass.findFieldByName(insertedComponent.getBinding(), true) == null) { if (!CodeInsightUtilBase.preparePsiElementForWrite(aClass)) { return; } @@ -233,7 +235,7 @@ public final class InsertComponentProcessor extends EventProcessor { } } - protected void processMouseEvent(final MouseEvent e){ + protected void processMouseEvent(final MouseEvent e) { if (e.getID() == MouseEvent.MOUSE_PRESSED) { final ComponentItem componentItem = getComponentToInsert(); if (componentItem != null) { @@ -302,8 +304,8 @@ public final class InsertComponentProcessor extends EventProcessor { if (location.canDrop(dragObject)) { CommandProcessor.getInstance().executeCommand( myEditor.getProject(), - new Runnable(){ - public void run(){ + new Runnable() { + public void run() { createBindingWhenDrop(myEditor, myInsertedComponent, forceBinding); final RadComponent[] components = new RadComponent[]{myInsertedComponent}; @@ -331,7 +333,6 @@ public final class InsertComponentProcessor extends EventProcessor { myEditor.refreshAndSave(false); } - }, UIDesignerBundle.message("command.insert.component"), null); } myComponentToInsert = null; @@ -351,10 +352,10 @@ public final class InsertComponentProcessor extends EventProcessor { List entries = fileIndex.getOrderEntriesForFile(componentClass.getContainingFile().getVirtualFile()); if (entries.size() > 0) { if (entries.get(0) instanceof ModuleSourceOrderEntry) { - if (!checkAddModuleDependency(item, (ModuleSourceOrderEntry) entries.get(0))) return false; + if (!checkAddModuleDependency(item, (ModuleSourceOrderEntry)entries.get(0))) return false; } else if (entries.get(0) instanceof LibraryOrderEntry) { - if (!checkAddLibraryDependency(item, (LibraryOrderEntry) entries.get(0))) return false; + if (!checkAddLibraryDependency(item, (LibraryOrderEntry)entries.get(0))) return false; } } } @@ -370,13 +371,7 @@ public final class InsertComponentProcessor extends EventProcessor { Messages.getQuestionIcon()); if (rc == 2) return false; if (rc == 0) { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - final ModifiableRootModel model = ModuleRootManager.getInstance(myEditor.getModule()).getModifiableModel(); - model.addModuleOrderEntry(ownerModule); - model.commit(); - } - }); + ModuleRootModificationUtil.addDependency(myEditor.getModule(), ownerModule); } return true; } @@ -384,7 +379,8 @@ public final class InsertComponentProcessor extends EventProcessor { private boolean checkAddLibraryDependency(final ComponentItem item, final LibraryOrderEntry libraryOrderEntry) { int rc = Messages.showYesNoCancelDialog( myEditor, - UIDesignerBundle.message("add.library.dependency.prompt", item.getClassName(), libraryOrderEntry.getPresentableName(), myEditor.getModule().getName()), + UIDesignerBundle.message("add.library.dependency.prompt", item.getClassName(), libraryOrderEntry.getPresentableName(), + myEditor.getModule().getName()), UIDesignerBundle.message("add.library.dependency.title"), Messages.getQuestionIcon()); if (rc == 2) return false; @@ -409,8 +405,8 @@ public final class InsertComponentProcessor extends EventProcessor { final LibraryTable.ModifiableModel libraryTableModel = toModel.getModuleLibraryTable().getModifiableModel(); Library library = libraryTableModel.createLibrary(null); final Library.ModifiableModel libraryModel = library.getModifiableModel(); - for(OrderRootType rootType: OrderRootType.getAllTypes()) { - for(String url: fromLibrary.getUrls(rootType)) { + for (OrderRootType rootType : OrderRootType.getAllTypes()) { + for (String url : fromLibrary.getUrls(rootType)) { libraryModel.addRoot(url, rootType); } } @@ -426,7 +422,7 @@ public final class InsertComponentProcessor extends EventProcessor { final String targetForm = FormEditingUtil.buildResourceName(myEditor.getPsiFile()); Utils.validateNestedFormLoop(formName, new PsiNestedFormLoader(myEditor.getModule()), targetForm); } - catch(Exception ex) { + catch (Exception ex) { Messages.showErrorDialog(myEditor, ex.getMessage(), CommonBundle.getErrorTitle()); return false; } @@ -437,7 +433,7 @@ public final class InsertComponentProcessor extends EventProcessor { public static RadContainer createPanelComponent(GuiEditor editor) { RadComponent c = createInsertedComponent(editor, Palette.getInstance(editor.getProject()).getPanelItem()); LOG.assertTrue(c != null); - return (RadContainer) c; + return (RadContainer)c; } @Nullable @@ -447,7 +443,7 @@ public final class InsertComponentProcessor extends EventProcessor { ComponentItemDialog dlg = new ComponentItemDialog(editor.getProject(), editor, newItem, true); dlg.setTitle(title); dlg.show(); - if(!dlg.isOK()) { + if (!dlg.isOK()) { return null; } @@ -479,9 +475,9 @@ public final class InsertComponentProcessor extends EventProcessor { try { result = new RadNestedForm(editor, formFileName, id); } - catch(Exception ex) { + catch (Exception ex) { String errorMessage = UIDesignerBundle.message("error.instantiating.nested.form", formFileName, - (ex.getMessage() != null ? ex.getMessage() : ex.toString())); + (ex.getMessage() != null ? ex.getMessage() : ex.toString())); result = RadErrorComponent.create( editor, id, @@ -502,9 +498,9 @@ public final class InsertComponentProcessor extends EventProcessor { result = new RadAtomicComponent(editor, aClass, id); } } - catch(final UnsupportedClassVersionError ucve) { + catch (final UnsupportedClassVersionError ucve) { result = RadErrorComponent.create(editor, id, item.getClassName(), null, - UIDesignerBundle.message("unsupported.component.class.version") + UIDesignerBundle.message("unsupported.component.class.version") ); } catch (final Exception exc) { @@ -551,7 +547,7 @@ public final class InsertComponentProcessor extends EventProcessor { @Nullable public static RadComponentFactory getRadComponentFactory(Class componentClass) { - while(componentClass != null) { + while (componentClass != null) { RadComponentFactory c = myComponentClassMap.get(componentClass.getName()); if (c != null) return c; componentClass = componentClass.getSuperclass(); @@ -567,7 +563,7 @@ public final class InsertComponentProcessor extends EventProcessor { final RadComponent component = myEditor.getRootContainer().getComponent(0); if (component.getBinding() == null) { if (component == myInsertedComponent || - (component instanceof RadContainer && ((RadContainer) component).getComponentCount() == 1 && + (component instanceof RadContainer && ((RadContainer)component).getComponentCount() == 1 && component == myInsertedComponent.getParent())) { doCreateBindingWhenDrop(myEditor, component); } @@ -589,7 +585,8 @@ public final class InsertComponentProcessor extends EventProcessor { return FormEditingUtil.getMoveNoDropCursor(); } - @Override public boolean needMousePressed() { + @Override + public boolean needMousePressed() { return true; } }