From 332b692e1f30b559fd3cbe74323fbc297df441b7 Mon Sep 17 00:00:00 2001 From: nik Date: Mon, 18 Jun 2012 17:08:59 +0400 Subject: [PATCH] more ModuleRootModel modifications rewritten using util methods --- .../daemon/impl/quickfix/OrderEntryFix.java | 20 +--- .../codeInsight/NullityInferrerTest.java | 31 ++----- .../com/intellij/find/FindManagerTest.java | 20 +--- .../ide/fileTemplates/FileTemplatesTest.java | 18 +--- .../com/intellij/psi/ConstantValuesTest.java | 14 +-- .../com/intellij/psi/GenericsTestCase.java | 11 +-- .../com/intellij/psi/LibraryOrderTest.java | 26 ++---- .../psi/OverlappingSourceRootsTest.java | 16 ++-- .../com/intellij/psi/SCR17094Test.java | 16 +--- .../testSrc/com/intellij/psi/TypesTest.java | 14 +-- .../psi/impl/cache/impl/SCR14423Test.java | 26 +++--- .../psi/impl/cache/impl/SCR17650Test.java | 17 +--- .../psi/impl/cache/impl/SCR19174Test.java | 25 +---- .../psi/impl/cache/impl/SCR20733Test.java | 14 +-- .../file/impl/InvalidateClassFileTest.java | 20 +--- .../psi/impl/file/impl/PsiEventsTest.java | 48 +++------- .../source/tree/java/BindToElementTest.java | 14 +-- .../tree/java/BindToGenericClassTest.java | 10 +- .../psi/resolve/ResolveClassTest.java | 5 +- .../intellij/psi/search/SearchInLibsTest.java | 28 +----- .../intellij/psi/search/UpdateCacheTest.java | 68 ++------------ ...roduceFieldWitSetUpInitializationTest.java | 24 +---- .../MovePackageAsDirectoryTest.java | 21 ++--- .../refactoring/MovePackageMultirootTest.java | 16 +--- .../roots/DirectoryIndexImplTest.java | 91 +++---------------- .../intellij/roots/ExportingModulesTest.java | 16 +--- .../roots/ModuleRootManagerTestCase.java | 25 +---- .../roots/ModuleRootsExternalizationTest.java | 25 ++--- .../com/intellij/roots/ModuleScopesTest.java | 27 +----- .../testSrc/com/intellij/roots/RootsTest.java | 27 ++---- .../intellij/roots/libraries/LibraryTest.java | 4 +- .../intellij/testFramework/PsiTestCase.java | 18 +--- .../roots/ModuleRootModificationUtil.java | 32 +++++++ .../intellij/testFramework/PsiTestUtil.java | 48 ++++++---- .../CreateNewModuleTask.java | 2 +- .../importDependencies/ImportModuleTask.java | 2 +- .../maven/AndroidFacetImporterBase.java | 2 +- .../newProject/AndroidModuleBuilder.java | 2 +- .../jetbrains/android/util/AndroidUtils.java | 13 ++- .../testSources/build/GenerateAntTest.java | 20 +--- .../maven/compiler/ResourceCopyingTest.java | 12 +-- .../MavenClasspathsAndSearchScopesTest.java | 10 +- .../testng/util/TestNGUtil.java | 12 +-- 43 files changed, 243 insertions(+), 667 deletions(-) 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 e38e2e3c37b9..c0e30c9b675c 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 @@ -51,10 +51,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Set; +import java.util.*; /** * @author cdr @@ -337,22 +334,15 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { VirtualFile libVirtFile = VirtualFileManager.getInstance().findFileByUrl(url); assert libVirtFile != null : libPath; - final ModuleRootManager manager = ModuleRootManager.getInstance(module); - final ModifiableRootModel rootModel = manager.getModifiableModel(); - final Library jarLibrary = rootModel.getModuleLibraryTable().createLibrary(); - final Library.ModifiableModel libraryModel = jarLibrary.getModifiableModel(); - libraryModel.addRoot(libVirtFile, OrderRootType.CLASSES); - libraryModel.commit(); - + boolean inTests = false; if (location != null) { final VirtualFile vFile = location.getContainingFile().getVirtualFile(); if (vFile != null && ModuleRootManager.getInstance(module).getFileIndex().isInTestSourceContent(vFile)) { - final LibraryOrderEntry orderEntry = rootModel.findLibraryOrderEntry(jarLibrary); - orderEntry.setScope(DependencyScope.TEST); + inTests = true; } } - - rootModel.commit(); + ModuleRootModificationUtil.addModuleLibrary(module, null, Collections.singletonList(libVirtFile.getUrl()), + Collections.emptyList(), inTests ? DependencyScope.TEST : DependencyScope.COMPILE); } private static void showCircularWarningAndContinue(final Project project, final Pair circularModules, diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/NullityInferrerTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/NullityInferrerTest.java index 8a8fab78ff53..68c63102a58f 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/NullityInferrerTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/NullityInferrerTest.java @@ -17,12 +17,7 @@ package com.intellij.codeInsight; import com.intellij.JavaTestUtil; import com.intellij.codeInspection.inferNullity.NullityInferrer; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; -import com.intellij.openapi.roots.libraries.LibraryTable; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.vfs.JarFileSystem; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -83,25 +78,13 @@ public class NullityInferrerTest extends CodeInsightTestCase { private void doTest(boolean annotateLocalVariables) throws Exception { final String nullityPath = "/codeInsight/nullityinferrer"; - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final VirtualFile aLib = LocalFileSystem.getInstance().findFileByPath(getTestDataPath() + nullityPath + "/lib/annotations.jar"); - if (aLib != null) { - final VirtualFile file = JarFileSystem.getInstance().getJarRootForLocalFile(aLib); - if (file != null) { - final ModifiableRootModel model = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final LibraryTable libraryTable = model.getModuleLibraryTable(); - final Library library = libraryTable.createLibrary("test"); - - final Library.ModifiableModel libraryModel = library.getModifiableModel(); - libraryModel.addRoot(file.getUrl(), OrderRootType.CLASSES); - libraryModel.commit(); - model.commit(); - } - } + final VirtualFile aLib = LocalFileSystem.getInstance().findFileByPath(getTestDataPath() + nullityPath + "/lib/annotations.jar"); + if (aLib != null) { + final VirtualFile file = JarFileSystem.getInstance().getJarRootForLocalFile(aLib); + if (file != null) { + ModuleRootModificationUtil.addModuleLibrary(myModule, file.getUrl()); } - }); + } configureByFile(nullityPath + "/before" + getTestName(false) + ".java"); final NullityInferrer nullityInferrer = new NullityInferrer(annotateLocalVariables, getProject()); diff --git a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java index a2dd05bde64c..ea61c7ab8bc8 100644 --- a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java +++ b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java @@ -11,9 +11,6 @@ import com.intellij.openapi.application.ex.PathManagerEx; import com.intellij.openapi.fileTypes.FileTypes; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.impl.JavaSdkImpl; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -315,19 +312,12 @@ public class FindManagerTest extends DaemonAnalyzerTestCase { } VirtualFile projectDir = LocalFileSystem.getInstance().refreshAndFindFileByPath(new File(testDir).getCanonicalPath().replace(File.separatorChar, '/')); - final ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule); - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.clear(); - // configure source and output path - final ContentEntry contentEntry = rootModel.addContentEntry(projectDir); - for (VirtualFile sourceDir : mySourceDirs) { - contentEntry.addSourceFolder(sourceDir, false); - } - Sdk jdk = JavaSdkImpl.getMockJdk17(); - rootModel.setSdk(jdk); - - rootModel.commit(); + PsiTestUtil.removeAllRoots(myModule, jdk); + PsiTestUtil.addContentRoot(myModule, projectDir); + for (VirtualFile sourceDir : mySourceDirs) { + PsiTestUtil.addSourceRoot(myModule, sourceDir); + } } catch (Exception e){ throw new RuntimeException(e); diff --git a/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.java b/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.java index fe317df5eb4d..172586140654 100644 --- a/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.java +++ b/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.java @@ -1,10 +1,7 @@ package com.intellij.ide.fileTemplates; import com.intellij.ide.fileTemplates.impl.CustomFileTemplate; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; @@ -15,6 +12,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiManager; import com.intellij.testFramework.IdeaTestCase; +import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.properties.EncodingAwareProperties; import java.io.File; @@ -105,19 +103,9 @@ public class FileTemplatesTest extends IdeaTestCase { myFilesToDelete.add(temp); final VirtualFile tempDir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(temp); - final ModuleRootManager rootManager = ModuleRootManager.getInstance(getModule()); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - ModifiableRootModel model = rootManager.getModifiableModel(); - ContentEntry contentEntry = model.addContentEntry(tempDir); - contentEntry.addSourceFolder(tempDir, false); - model.commit(); - } - }); + PsiTestUtil.addSourceRoot(getModule(), tempDir); - - VirtualFile sourceRoot = rootManager.getSourceRoots()[0]; + VirtualFile sourceRoot = ModuleRootManager.getInstance(getModule()).getSourceRoots()[0]; PsiDirectory psiDirectory = PsiManager.getInstance(getProject()).findDirectory(sourceRoot); PsiClass psiClass = JavaDirectoryService.getInstance().createClass(psiDirectory, "XXX", name); diff --git a/java/java-tests/testSrc/com/intellij/psi/ConstantValuesTest.java b/java/java-tests/testSrc/com/intellij/psi/ConstantValuesTest.java index 056e85d55921..9e8523d1a325 100644 --- a/java/java-tests/testSrc/com/intellij/psi/ConstantValuesTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/ConstantValuesTest.java @@ -3,10 +3,7 @@ package com.intellij.psi; import com.intellij.JavaTestUtil; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.fileTypes.StdFileTypes; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.impl.JavaConstantExpressionEvaluator; import com.intellij.psi.search.GlobalSearchScope; @@ -29,14 +26,7 @@ public class ConstantValuesTest extends PsiTestCase{ try{ String rootPath = JavaTestUtil.getJavaTestDataPath() + "/psi/constantValues"; VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, rootPath, myFilesToDelete, true); - - ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule); - ModifiableRootModel rootModel = rootManager.getModifiableModel(); - Library lib = rootModel.getModuleLibraryTable().createLibrary("test"); - Library.ModifiableModel libModel = lib.getModifiableModel(); - libModel.addRoot(root, OrderRootType.CLASSES); - libModel.commit(); - rootModel.commit(); + ModuleRootModificationUtil.addModuleLibrary(myModule, root.getUrl()); } catch(Exception e){ LOG.error(e); diff --git a/java/java-tests/testSrc/com/intellij/psi/GenericsTestCase.java b/java/java-tests/testSrc/com/intellij/psi/GenericsTestCase.java index 89147c37b861..11c14e49e443 100644 --- a/java/java-tests/testSrc/com/intellij/psi/GenericsTestCase.java +++ b/java/java-tests/testSrc/com/intellij/psi/GenericsTestCase.java @@ -2,14 +2,12 @@ package com.intellij.psi; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; -import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.LanguageLevelProjectExtension; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.pom.java.LanguageLevel; import com.intellij.testFramework.PsiTestCase; +import com.intellij.testFramework.PsiTestUtil; import java.io.File; @@ -23,8 +21,7 @@ public abstract class GenericsTestCase extends PsiTestCase { LanguageLevelProjectExtension.getInstance(myJavaFacade.getProject()).setLanguageLevel(LanguageLevel.JDK_1_5); } - protected ModifiableRootModel setupGenericSampleClasses() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); + protected void setupGenericSampleClasses() { final String commonPath = PathManagerEx.getTestDataPath().replace(File.separatorChar, '/') + "/psi/types/src"; final VirtualFile[] commonRoot = new VirtualFile[] { null }; ApplicationManager.getApplication().runWriteAction(new Runnable() { @@ -34,8 +31,6 @@ public abstract class GenericsTestCase extends PsiTestCase { } }); - final ContentEntry commonContentEntry = rootModel.addContentEntry(commonRoot[0]); - commonContentEntry.addSourceFolder(commonRoot[0], false); - return rootModel; + PsiTestUtil.addSourceRoot(myModule, commonRoot[0]); } } diff --git a/java/java-tests/testSrc/com/intellij/psi/LibraryOrderTest.java b/java/java-tests/testSrc/com/intellij/psi/LibraryOrderTest.java index 1e288c2acbc4..f1c7f06fd2c8 100644 --- a/java/java-tests/testSrc/com/intellij/psi/LibraryOrderTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/LibraryOrderTest.java @@ -3,14 +3,13 @@ package com.intellij.psi; import com.intellij.JavaTestUtil; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.roots.*; -import com.intellij.openapi.roots.libraries.Library; -import com.intellij.openapi.roots.libraries.LibraryTable; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.PsiTestCase; import java.io.File; import java.util.Arrays; +import java.util.Collections; import java.util.List; /** @@ -76,18 +75,9 @@ public class LibraryOrderTest extends PsiTestCase { assertTrue(lib1SrcFile != null); assertTrue(lib2SrcFile != null); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final LibraryTable libraryTable = rootModel.getModuleLibraryTable(); + addLibraryWithSourcePath("lib1", lib1classes, lib1SrcFile); + addLibraryWithSourcePath("lib2", lib2classes, lib2SrcFile); - addLibraryWithSourcePath("lib1", libraryTable, lib1SrcFile, lib1classes); - addLibraryWithSourcePath("lib2", libraryTable, lib2SrcFile, lib2classes); - - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); final List list = Arrays.asList(OrderEnumerator.orderEntries(myModule).getClassesRoots()); assertTrue(list.contains(lib1classes)); assertTrue(list.contains(lib2classes)); @@ -99,12 +89,8 @@ public class LibraryOrderTest extends PsiTestCase { return lib1SrcFile; } - private void addLibraryWithSourcePath(String name, final LibraryTable libraryTable, final VirtualFile libSource, - VirtualFile libClasses) { - final Library lib = libraryTable.createLibrary(name); - final Library.ModifiableModel libModel = lib.getModifiableModel(); - libModel.addRoot(libClasses, OrderRootType.CLASSES); - libModel.addRoot(libSource, OrderRootType.SOURCES); - libModel.commit(); + private void addLibraryWithSourcePath(String name, VirtualFile libClasses, final VirtualFile libSource) { + ModuleRootModificationUtil.addModuleLibrary(myModule, name, Collections.singletonList(libClasses.getUrl()), + Collections.singletonList(libSource.getUrl())); } } diff --git a/java/java-tests/testSrc/com/intellij/psi/OverlappingSourceRootsTest.java b/java/java-tests/testSrc/com/intellij/psi/OverlappingSourceRootsTest.java index a1383b9e5954..1a91661a2187 100644 --- a/java/java-tests/testSrc/com/intellij/psi/OverlappingSourceRootsTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/OverlappingSourceRootsTest.java @@ -2,14 +2,12 @@ package com.intellij.psi; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.util.PsiUtilBase; import com.intellij.testFramework.PsiTestCase; +import com.intellij.testFramework.PsiTestUtil; import java.io.File; import java.io.IOException; @@ -46,13 +44,11 @@ public class OverlappingSourceRootsTest extends PsiTestCase { mySourceRoot11 = mySourceRoot1.createChildDirectory(null, "root11"); mySourceRoot21 = mySourceRoot2.createChildDirectory(null, "root21"); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry = rootModel.addContentEntry(myProjectRoot); - contentEntry.addSourceFolder(mySourceRoot21, false); - contentEntry.addSourceFolder(mySourceRoot1, false); - contentEntry.addSourceFolder(mySourceRoot2, false); - contentEntry.addSourceFolder(mySourceRoot11, false); - rootModel.commit(); + PsiTestUtil.addContentRoot(myModule, myProjectRoot); + PsiTestUtil.addSourceRoot(myModule, mySourceRoot21); + PsiTestUtil.addSourceRoot(myModule, mySourceRoot1); + PsiTestUtil.addSourceRoot(myModule, mySourceRoot2); + PsiTestUtil.addSourceRoot(myModule, mySourceRoot11); myFile1 = mySourceRoot1.createChildData(null, "File1.java"); myFile2 = mySourceRoot2.createChildData(null, "File2.java"); diff --git a/java/java-tests/testSrc/com/intellij/psi/SCR17094Test.java b/java/java-tests/testSrc/com/intellij/psi/SCR17094Test.java index 19dd63517f0c..42cc146ea22a 100644 --- a/java/java-tests/testSrc/com/intellij/psi/SCR17094Test.java +++ b/java/java-tests/testSrc/com/intellij/psi/SCR17094Test.java @@ -2,10 +2,7 @@ package com.intellij.psi; 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.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -29,16 +26,7 @@ public class SCR17094Test extends PsiTestCase { } }); assertNotNull(classesRoot); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final Library.ModifiableModel libraryModel = rootModel.getModuleLibraryTable().createLibrary().getModifiableModel(); - libraryModel.addRoot(classesRoot, OrderRootType.CLASSES); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - libraryModel.commit(); - rootModel.commit(); - } - }); + ModuleRootModificationUtil.addModuleLibrary(myModule, classesRoot.getUrl()); } @Override diff --git a/java/java-tests/testSrc/com/intellij/psi/TypesTest.java b/java/java-tests/testSrc/com/intellij/psi/TypesTest.java index ecebd90a3313..54b9c8cb6ecb 100644 --- a/java/java-tests/testSrc/com/intellij/psi/TypesTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/TypesTest.java @@ -2,13 +2,12 @@ package com.intellij.psi; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.PsiUtil; +import com.intellij.testFramework.PsiTestUtil; import java.io.File; @@ -19,7 +18,7 @@ public class TypesTest extends GenericsTestCase { @Override protected void setUp() throws Exception { super.setUp(); - final ModifiableRootModel rootModel = setupGenericSampleClasses(); + setupGenericSampleClasses(); final String testPath = PathManagerEx.getTestDataPath().replace(File.separatorChar, '/') + "/psi/types/" + getTestName(true); final VirtualFile[] testRoot = { null }; @@ -30,15 +29,8 @@ public class TypesTest extends GenericsTestCase { } }); if (testRoot[0] != null) { - final ContentEntry testContentEntry = rootModel.addContentEntry(testRoot[0]); - testContentEntry.addSourceFolder(testRoot[0], false); + PsiTestUtil.addSourceRoot(myModule, testRoot[0]); } - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); } public void testSimpleStuff() throws Exception { 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 6d6ebf92d4e3..b1692bae6fdb 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 @@ -11,7 +11,9 @@ import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiClass; +import com.intellij.psi.search.GlobalSearchScope; import com.intellij.testFramework.PsiTestCase; +import com.intellij.testFramework.PsiTestUtil; import java.io.File; import java.io.IOException; @@ -47,10 +49,8 @@ public class SCR14423Test extends PsiTestCase { VirtualFile file1 = myPackDir.createChildData(null, "A.java"); VfsUtil.saveText(file1, "package p; public class A{ public void foo(); }"); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry1 = rootModel.addContentEntry(myPrjDir1); - contentEntry1.addSourceFolder(mySrcDir1, false); - rootModel.commit(); + PsiTestUtil.addContentRoot(myModule, myPrjDir1); + PsiTestUtil.addSourceRoot(myModule, mySrcDir1); } catch (IOException e) { LOG.error(e); @@ -69,19 +69,17 @@ public class SCR14423Test extends PsiTestCase { public void testBug1() { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.getContentEntries()[0].addExcludeFolder(myPackDir); - rootModel.commit(); + PsiTestUtil.addExcludedRoot(myModule, myPackDir); - PsiClass psiClass = myJavaFacade.findClass("p.A"); + PsiClass psiClass = myJavaFacade.findClass("p.A", GlobalSearchScope.allScope(myProject)); assertNull(psiClass); - rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); + ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); final ContentEntry content = rootModel.getContentEntries()[0]; content.removeExcludeFolder(content.getExcludeFolders()[0]); rootModel.commit(); - psiClass = myJavaFacade.findClass("p.A"); + psiClass = myJavaFacade.findClass("p.A", GlobalSearchScope.allScope(myProject)); assertEquals("p.A", psiClass.getQualifiedName()); } }); @@ -90,18 +88,16 @@ public class SCR14423Test extends PsiTestCase { public void testBug3() { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { - PsiClass psiClass = myJavaFacade.findClass("p.A"); + PsiClass psiClass = myJavaFacade.findClass("p.A", GlobalSearchScope.allScope(myProject)); assertEquals("p.A", psiClass.getQualifiedName()); assertTrue(psiClass.isValid()); - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.getContentEntries()[0].addExcludeFolder(myPackDir); - rootModel.commit(); + PsiTestUtil.addExcludedRoot(myModule, myPackDir); assertFalse(psiClass.isValid()); - rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); + ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); final ContentEntry content = rootModel.getContentEntries()[0]; content.removeExcludeFolder(content.getExcludeFolders()[0]); rootModel.commit(); diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR17650Test.java b/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR17650Test.java index afd47795fa09..187d0c2ad80e 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR17650Test.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR17650Test.java @@ -2,17 +2,14 @@ package com.intellij.psi.impl.cache.impl; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; +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; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.PsiTestCase; +import com.intellij.testFramework.PsiTestUtil; import java.io.File; import java.io.IOException; @@ -46,14 +43,8 @@ public class SCR17650Test extends PsiTestCase { VfsUtil.saveText(file1, "package p; public class A{ public void foo(); }"); VfsUtilCore.copyFile(null, getClassFile(), myDir); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry1 = rootModel.addContentEntry(myDir); - contentEntry1.addSourceFolder(myDir, false); - final Library jarLibrary = rootModel.getModuleLibraryTable().createLibrary(); - final Library.ModifiableModel libraryModel = jarLibrary.getModifiableModel(); - libraryModel.addRoot(myDir, OrderRootType.CLASSES); - libraryModel.commit(); - rootModel.commit(); + PsiTestUtil.addSourceRoot(myModule, myDir); + ModuleRootModificationUtil.addModuleLibrary(myModule, myDir.getUrl()); } catch (IOException e) { LOG.error(e); diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR19174Test.java b/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR19174Test.java index d7481bbf7e54..c47bbf7184e8 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR19174Test.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR19174Test.java @@ -1,17 +1,14 @@ package com.intellij.psi.impl.cache.impl; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; +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; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.testFramework.PsiTestCase; +import com.intellij.testFramework.PsiTestUtil; import java.io.File; import java.io.IOException; @@ -46,11 +43,7 @@ public class SCR19174Test extends PsiTestCase { writer1.write("package p; public class A{ public void foo(); }"); writer1.close(); */ - - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry1 = rootModel.addContentEntry(myDir); - contentEntry1.addSourceFolder(myDir, false); - rootModel.commit(); + PsiTestUtil.addSourceRoot(myModule, myDir); } catch (IOException e) { LOG.error(e); @@ -60,17 +53,7 @@ public class SCR19174Test extends PsiTestCase { } private void changeRoots() { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - - final Library jarLibrary = rootModel.getModuleLibraryTable().createLibrary(); - final Library.ModifiableModel libraryModel = jarLibrary.getModifiableModel(); - libraryModel.addRoot(myDir, OrderRootType.CLASSES); - libraryModel.commit(); - rootModel.commit(); - } - }); + ModuleRootModificationUtil.addModuleLibrary(myModule, myDir.getUrl()); } public void testBug() throws Exception { diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR20733Test.java b/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR20733Test.java index 8c7796126806..5fef7daea7d9 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR20733Test.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR20733Test.java @@ -3,9 +3,6 @@ package com.intellij.psi.impl.cache.impl; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VfsUtil; @@ -13,6 +10,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiFile; import com.intellij.testFramework.PsiTestCase; +import com.intellij.testFramework.PsiTestUtil; import java.io.File; import java.io.IOException; @@ -47,10 +45,8 @@ public class SCR20733Test extends PsiTestCase { VirtualFile file1 = myPackDir.createChildData(null, "A.java"); VfsUtil.saveText(file1, "package p; public class A{ public void foo(); }"); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry1 = rootModel.addContentEntry(myPrjDir1); - contentEntry1.addSourceFolder(mySrcDir1, false); - rootModel.commit(); + PsiTestUtil.addContentRoot(myModule, myPrjDir1); + PsiTestUtil.addSourceRoot(myModule, mySrcDir1); } catch (IOException e) { LOG.error(e); @@ -75,9 +71,7 @@ public class SCR20733Test extends PsiTestCase { Module anotherModule = createModule("another"); myFilesToDelete.add(new File(anotherModule.getModuleFilePath())); - ModifiableRootModel rootModel = ModuleRootManager.getInstance(anotherModule).getModifiableModel(); - rootModel.addContentEntry(mySrcDir1).addSourceFolder(mySrcDir1, false); - rootModel.commit(); + PsiTestUtil.addSourceRoot(anotherModule, mySrcDir1); assertEquals(anotherModule, ModuleUtil.findModuleForFile(file, myProject)); } diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/InvalidateClassFileTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/InvalidateClassFileTest.java index 7985135211d4..1d9d0173e4ed 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/InvalidateClassFileTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/InvalidateClassFileTest.java @@ -16,12 +16,7 @@ package com.intellij.psi.impl.file.impl; import com.intellij.JavaTestUtil; -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.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -61,18 +56,7 @@ public class InvalidateClassFileTest extends PsiTestCase { assertNotNull(rootVFile); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - Module module = myModule; - final ModuleRootManager rootManager = ModuleRootManager.getInstance(module); - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - final Library library = rootModel.getModuleLibraryTable().createLibrary(); - final Library.ModifiableModel libraryModel = library.getModifiableModel(); - libraryModel.addRoot(rootVFile.getUrl(), OrderRootType.CLASSES); - libraryModel.commit(); - rootModel.commit(); - } - }); + ModuleRootModificationUtil.addModuleLibrary(myModule, rootVFile.getUrl()); PsiClass clazz = getJavaFacade().findClass("Clazz", GlobalSearchScope.allScope(myProject)); assertNotNull(clazz); diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/PsiEventsTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/PsiEventsTest.java index c0ee2cde55e5..8ea8d3a77112 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/PsiEventsTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/file/impl/PsiEventsTest.java @@ -6,11 +6,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; +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; @@ -19,8 +15,9 @@ import com.intellij.psi.*; import com.intellij.psi.impl.PsiTreeChangeEventImpl; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.testFramework.PsiTestCase; -import com.intellij.util.io.ReadOnlyAttributeUtil; +import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.WaitFor; +import com.intellij.util.io.ReadOnlyAttributeUtil; import org.jetbrains.annotations.NotNull; import java.io.File; @@ -66,17 +63,13 @@ public class PsiEventsTest extends PsiTestCase { myExcludedDir1 = mySrcDir1.createChildDirectory(null, "excluded"); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry1 = rootModel.addContentEntry(myPrjDir1); - contentEntry1.addSourceFolder(mySrcDir1, false); - contentEntry1.addSourceFolder(mySrcDir2, false); - contentEntry1.addExcludeFolder(myExcludedDir1); - final Library.ModifiableModel libraryModel = rootModel.getModuleLibraryTable().createLibrary().getModifiableModel(); - libraryModel.addRoot(myClsDir1, OrderRootType.CLASSES); - libraryModel.commit(); - final ContentEntry contentEntry2 = rootModel.addContentEntry(myPrjDir2); - contentEntry2.addSourceFolder(mySrcDir3, false); - rootModel.commit(); + PsiTestUtil.addContentRoot(myModule, myPrjDir1); + PsiTestUtil.addSourceRoot(myModule, mySrcDir1); + PsiTestUtil.addSourceRoot(myModule, mySrcDir2); + PsiTestUtil.addContentRoot(myModule, myPrjDir2); + PsiTestUtil.addExcludedRoot(myModule, myExcludedDir1); + ModuleRootModificationUtil.addModuleLibrary(myModule, myClsDir1.getUrl()); + PsiTestUtil.addSourceRoot(myModule, mySrcDir3); } catch (IOException e) { LOG.error(e); } @@ -463,15 +456,7 @@ public class PsiEventsTest extends PsiTestCase { EventsTestListener listener = new EventsTestListener(); myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable()); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry1 = rootModel.getContentEntries()[0]; - contentEntry1.addExcludeFolder(dir); - rootModel.commit(); - } - }); + PsiTestUtil.addExcludedRoot(myModule, dir); String string = listener.getEventsString(); @@ -487,16 +472,7 @@ public class PsiEventsTest extends PsiTestCase { EventsTestListener listener = new EventsTestListener(); myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable()); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry1 = rootModel.getContentEntries()[0]; - contentEntry1.addSourceFolder(dir, false); - rootModel.commit(); - } - }); - + PsiTestUtil.addSourceRoot(myModule, dir); String string = listener.getEventsString(); String expected = diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/BindToElementTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/BindToElementTest.java index 98ba9172cb86..cf33765620cc 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/BindToElementTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/BindToElementTest.java @@ -3,15 +3,13 @@ package com.intellij.psi.impl.source.tree.java; import com.intellij.codeInsight.CodeInsightTestCase; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.IncorrectOperationException; import java.io.File; @@ -34,15 +32,7 @@ public class BindToElementTest extends CodeInsightTestCase { } }); assertNotNull(root); - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry = rootModel.addContentEntry(root); - contentEntry.addSourceFolder(root, false); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); + PsiTestUtil.addSourceRoot(myModule, root); } public void testSingleClassImport() throws Exception { diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/BindToGenericClassTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/BindToGenericClassTest.java index 12d5bf0a4c6f..8d0d653a505c 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/BindToGenericClassTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/BindToGenericClassTest.java @@ -1,7 +1,5 @@ package com.intellij.psi.impl.source.tree.java; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleSettings; import com.intellij.psi.codeStyle.CodeStyleSettingsManager; @@ -16,13 +14,7 @@ public class BindToGenericClassTest extends GenericsTestCase { @Override protected void setUp() throws Exception { super.setUp(); - final ModifiableRootModel rootModel = setupGenericSampleClasses(); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); + setupGenericSampleClasses(); final CodeStyleSettings currentSettings = CodeStyleSettingsManager.getInstance(myProject).getCurrentSettings(); myOldFQNamesSetting = currentSettings.USE_FQ_CLASS_NAMES; 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 1c30fed2065a..a71da6b32ee6 100644 --- a/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java @@ -21,7 +21,6 @@ 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; import com.intellij.psi.*; @@ -29,6 +28,8 @@ import com.intellij.testFramework.PlatformTestUtil; import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.ResolveTestCase; +import java.util.Collections; + public class ResolveClassTest extends ResolveTestCase { public void testFQName() throws Exception { PsiReference ref = configure(); @@ -175,7 +176,7 @@ public class ResolveClassTest extends ResolveTestCase { final VirtualFile file = ref.getElement().getContainingFile().getVirtualFile(); assertNotNull(file); createFile(myModule, file.getParent(), "ModuleSourceAsLibrarySourceDep.java", loadFile("class/ModuleSourceAsLibrarySourceDep.java")); - addLibraryToRoots(file.getParent(), OrderRootType.SOURCES); + ModuleRootModificationUtil.addModuleLibrary(myModule, "lib", Collections.emptyList(), Collections.singletonList(file.getParent().getUrl())); assertInstanceOf(ref.resolve(), PsiClass.class); } diff --git a/java/java-tests/testSrc/com/intellij/psi/search/SearchInLibsTest.java b/java/java-tests/testSrc/com/intellij/psi/search/SearchInLibsTest.java index 8755e4e29bcb..676e570e7aa5 100644 --- a/java/java-tests/testSrc/com/intellij/psi/search/SearchInLibsTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/search/SearchInLibsTest.java @@ -1,12 +1,7 @@ package com.intellij.psi.search; import com.intellij.JavaTestUtil; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.roots.ContentEntry; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiFile; @@ -52,24 +47,11 @@ public class SearchInLibsTest extends PsiTestCase { final VirtualFile libClassesRoot = libRoot.findChild("classes"); final VirtualFile libSrcRoot = libRoot.findChild("src"); assertNotNull(libRoot); - final ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule); - - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.clear(); - rootModel.setSdk(null); - final ContentEntry contentEntry = rootModel.addContentEntry(projectRoot); - contentEntry.addSourceFolder(projectRoot, false); - contentEntry.addSourceFolder(innerSourceRoot, false); - final Library.ModifiableModel libraryModel = rootModel.getModuleLibraryTable().createLibrary().getModifiableModel(); - libraryModel.addRoot(libSrcRoot, OrderRootType.SOURCES); - libraryModel.addRoot(libClassesRoot, OrderRootType.CLASSES); - libraryModel.commit(); - rootModel.commit(); - } - }); + PsiTestUtil.removeAllRoots(myModule, null); + PsiTestUtil.addSourceRoot(myModule, projectRoot); + PsiTestUtil.addSourceRoot(myModule, innerSourceRoot); + ModuleRootModificationUtil.addModuleLibrary(myModule, "lib", Collections.singletonList(libClassesRoot.getUrl()), Collections.singletonList(libSrcRoot.getUrl())); final PsiClass aClass = myJavaFacade.findClass(classNameToSearch); assertNotNull(aClass); diff --git a/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java b/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java index e39f43603064..7321e695beab 100644 --- a/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java @@ -250,20 +250,7 @@ public class UpdateCacheTest extends PsiTestCase{ PsiDocumentManager.getInstance(myProject).commitAllDocuments(); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry[] content = rootModel.getContentEntries(); - for (ContentEntry contentEntry : content) { - if (root.equals(contentEntry.getFile())) { - contentEntry.addExcludeFolder(dir); - break; - } - } - rootModel.commit(); - } - }); - + PsiTestUtil.addExcludedRoot(myModule, dir); PsiClass exceptionClass = myJavaFacade.findClass("java.lang.Exception",GlobalSearchScope.allScope(getProject())); assertNotNull(exceptionClass); @@ -277,20 +264,7 @@ public class UpdateCacheTest extends PsiTestCase{ final VirtualFile dir = root.findChild("aDir"); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry[] content = rootModel.getContentEntries(); - for (ContentEntry contentEntry : content) { - if (root.equals(contentEntry.getFile())) { - contentEntry.addExcludeFolder(dir); - break; - } - } - rootModel.commit(); - } - }); - + PsiTestUtil.addExcludedRoot(myModule, dir); PsiSearchHelper.SERVICE.getInstance(myProject).findFilesWithTodoItems(); // to initialize caches @@ -341,9 +315,7 @@ public class UpdateCacheTest extends PsiTestCase{ new WriteCommandAction.Simple(getProject()) { @Override protected void run() throws Throwable { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.addContentEntry(root); - rootModel.commit(); + PsiTestUtil.addContentRoot(myModule, root); VirtualFile newFile = root.createChildData(null, "New.java"); VfsUtil.saveText(newFile, "class A{ Exception e;} //todo"); @@ -354,20 +326,7 @@ public class UpdateCacheTest extends PsiTestCase{ PsiSearchHelper.SERVICE.getInstance(myProject).findFilesWithTodoItems(); // to initialize caches - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - final ModifiableRootModel rootModel1 = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry[] content = rootModel1.getContentEntries(); - for (ContentEntry contentEntry : content) { - if (root.equals(contentEntry.getFile())) { - contentEntry.addSourceFolder(root, false); - break; - } - } - rootModel1.commit(); - } - }); - + PsiTestUtil.addSourceRoot(myModule, root); PsiClass exceptionClass = myJavaFacade.findClass("java.lang.Exception", GlobalSearchScope.allScope(getProject())); assertNotNull(exceptionClass); @@ -432,9 +391,7 @@ public class UpdateCacheTest extends PsiTestCase{ new WriteCommandAction.Simple(getProject()) { @Override protected void run() throws Throwable { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.addContentEntry(root).addSourceFolder(root, false); - rootModel.commit(); + PsiTestUtil.addSourceRoot(myModule, root); VirtualFile newFile = root.createChildData(null, "New.java"); VfsUtil.saveText(newFile, "class A{ Exception e;} //todo"); @@ -480,20 +437,7 @@ public class UpdateCacheTest extends PsiTestCase{ PsiSearchHelper.SERVICE.getInstance(myProject).findFilesWithTodoItems(); // to update caches - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry[] content = rootModel.getContentEntries(); - for (ContentEntry contentEntry : content) { - if (root.equals(contentEntry.getFile())) { - contentEntry.addExcludeFolder(root); - break; - } - } - rootModel.commit(); - } - }); - + PsiTestUtil.addExcludedRoot(myModule, root); PsiClass exceptionClass = myJavaFacade.findClass("java.lang.Exception", GlobalSearchScope.allScope(getProject())); assertNotNull(exceptionClass); diff --git a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceFieldWitSetUpInitializationTest.java b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceFieldWitSetUpInitializationTest.java index c17db6f3eb62..f2b71328a349 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceFieldWitSetUpInitializationTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceFieldWitSetUpInitializationTest.java @@ -8,14 +8,10 @@ */ package com.intellij.refactoring; +import com.intellij.JavaTestUtil; import com.intellij.codeInsight.CodeInsightTestCase; -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.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; -import com.intellij.openapi.roots.libraries.LibraryTable; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiExpression; @@ -25,7 +21,6 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.introduceField.BaseExpressionToFieldHandler; import com.intellij.refactoring.introduceField.LocalToFieldHandler; import com.intellij.util.PathUtil; -import com.intellij.JavaTestUtil; import org.junit.Before; import java.io.File; @@ -39,19 +34,8 @@ public class IntroduceFieldWitSetUpInitializationTest extends CodeInsightTestCas @Override protected Module createModule(final String name) { final Module module = super.createModule(name); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); - final LibraryTable.ModifiableModel modifiableModel = model.getModuleLibraryTable().getModifiableModel(); - final Library library = modifiableModel.createLibrary("junit"); - final Library.ModifiableModel libModel = library.getModifiableModel(); - libModel.addRoot(VfsUtil.getUrlForLibraryRoot(new File(PathUtil.getJarPathForClass(Before.class))), OrderRootType.CLASSES); - libModel.commit(); - model.commit(); - } - }); - + final String url = VfsUtil.getUrlForLibraryRoot(new File(PathUtil.getJarPathForClass(Before.class))); + ModuleRootModificationUtil.addModuleLibrary(module, url); return module; } diff --git a/java/java-tests/testSrc/com/intellij/refactoring/MovePackageAsDirectoryTest.java b/java/java-tests/testSrc/com/intellij/refactoring/MovePackageAsDirectoryTest.java index fa82e4e3267b..589f935ec34d 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/MovePackageAsDirectoryTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/MovePackageAsDirectoryTest.java @@ -18,15 +18,16 @@ package com.intellij.refactoring; import com.intellij.JavaTestUtil; import com.intellij.openapi.application.ApplicationManager; 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.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileAdapter; import com.intellij.openapi.vfs.VirtualFileEvent; import com.intellij.openapi.vfs.VirtualFileManager; -import com.intellij.psi.*; +import com.intellij.psi.JavaPsiFacade; +import com.intellij.psi.PsiDirectory; +import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiPackage; import com.intellij.refactoring.move.moveClassesOrPackages.MoveDirectoryWithClassesProcessor; +import com.intellij.testFramework.PsiTestUtil; import junit.framework.Assert; import java.util.Arrays; @@ -113,21 +114,13 @@ public class MovePackageAsDirectoryTest extends MultiFileTestCase { @Override protected void prepareProject(VirtualFile rootDir) { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry = rootModel.addContentEntry(rootDir); + PsiTestUtil.addContentRoot(myModule, rootDir); final VirtualFile[] children = rootDir.getChildren(); for (VirtualFile child : children) { if (child.getName().startsWith("src")) { - contentEntry.addSourceFolder(child, false); + PsiTestUtil.addSourceRoot(myModule, child); } } - - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); } private class MyPerformAction implements PerformAction { diff --git a/java/java-tests/testSrc/com/intellij/refactoring/MovePackageMultirootTest.java b/java/java-tests/testSrc/com/intellij/refactoring/MovePackageMultirootTest.java index a45215ee36d2..4dd238104286 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/MovePackageMultirootTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/MovePackageMultirootTest.java @@ -27,6 +27,7 @@ import com.intellij.psi.PsiPackage; import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesProcessor; import com.intellij.refactoring.move.moveClassesOrPackages.MultipleRootsMoveDestination; import com.intellij.JavaTestUtil; +import com.intellij.testFramework.PsiTestUtil; /** * @author dsl @@ -70,21 +71,12 @@ public class MovePackageMultirootTest extends MultiFileTestCase { @Override protected void prepareProject(VirtualFile rootDir) { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final ContentEntry contentEntry = rootModel.addContentEntry(rootDir); + PsiTestUtil.addContentRoot(myModule, rootDir); final VirtualFile[] children = rootDir.getChildren(); - for (int i = 0; i < children.length; i++) { - VirtualFile child = children[i]; + for (VirtualFile child : children) { if (child.getName().startsWith("src")) { - contentEntry.addSourceFolder(child, false); + PsiTestUtil.addSourceRoot(myModule, child); } } - - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - rootModel.commit(); - } - }); } } diff --git a/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java b/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java index ff7afbd486c2..9fc7d56b5ad8 100644 --- a/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java @@ -27,7 +27,6 @@ import com.intellij.openapi.roots.*; import com.intellij.openapi.roots.ex.ProjectRootManagerEx; import com.intellij.openapi.roots.impl.DirectoryIndex; import com.intellij.openapi.roots.impl.DirectoryInfo; -import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.util.EmptyRunnable; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.*; @@ -38,10 +37,7 @@ import com.intellij.util.containers.ContainerUtil; import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; +import java.util.*; @PlatformTestCase.WrapInCommand public class DirectoryIndexImplTest extends IdeaTestCase { @@ -134,17 +130,11 @@ public class DirectoryIndexImplTest extends IdeaTestCase { VirtualFile moduleFile = myModule2Dir.createChildData(null, "module2.iml"); myModule2 = moduleManager.newModule(moduleFile.getPath(), StdModuleTypes.JAVA.getId()); - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule2).getModifiableModel(); - ContentEntry contentEntry = rootModel.addContentEntry(myModule2Dir); - contentEntry.addSourceFolder(mySrcDir2, false); - contentEntry.addExcludeFolder(myExcludeDir); - - Library.ModifiableModel libraryModel = rootModel.getModuleLibraryTable().createLibrary().getModifiableModel(); - libraryModel.addRoot(myLibClsDir, OrderRootType.CLASSES); - libraryModel.addRoot(myLibSrcDir, OrderRootType.SOURCES); - libraryModel.commit(); - - rootModel.commit(); + PsiTestUtil.addContentRoot(myModule2, myModule2Dir); + PsiTestUtil.addSourceRoot(myModule2, mySrcDir2); + PsiTestUtil.addExcludedRoot(myModule2, myExcludeDir); + ModuleRootModificationUtil.addModuleLibrary(myModule2, "lib", Collections.singletonList(myLibClsDir.getUrl()), + Collections.singletonList(myLibSrcDir.getUrl())); } // fill roots of module3 @@ -255,10 +245,7 @@ public class DirectoryIndexImplTest extends IdeaTestCase { newDir.createChildDirectory(null, "subdir"); myIndex.checkConsistency(); - - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - rootModel.addContentEntry(newDir); - rootModel.commit(); + PsiTestUtil.addContentRoot(myModule, newDir); } }.execute().throwException(); @@ -304,9 +291,7 @@ public class DirectoryIndexImplTest extends IdeaTestCase { newModuleContent.createChildDirectory(null, "subDir"); ModuleManager moduleManager = ModuleManager.getInstance(myProject); Module module = moduleManager.newModule(myRootVFile.getPath() + "/newModule.iml", StdModuleTypes.JAVA.getId()); - ModifiableRootModel rootModel = ModuleRootManager.getInstance(module).getModifiableModel(); - rootModel.addContentEntry(newModuleContent); - rootModel.commit(); + PsiTestUtil.addContentRoot(module, newModuleContent); } }.execute().throwException(); @@ -315,20 +300,7 @@ public class DirectoryIndexImplTest extends IdeaTestCase { } public void testExplicitExcludeOfInner() throws Exception { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - - ContentEntry[] contentEntries = rootModel.getContentEntries(); - assertEquals(1, contentEntries.length); - ContentEntry contentEntry = contentEntries[0]; - contentEntry.addExcludeFolder(myModule2Dir); - - rootModel.commit(); - } - }); - + PsiTestUtil.addExcludedRoot(myModule, myModule2Dir); myIndex.checkConsistency(); @@ -373,28 +345,12 @@ public class DirectoryIndexImplTest extends IdeaTestCase { CompilerProjectExtension.getInstance(myProject).setCompilerOutputUrl(projectOutput.getUrl()); - final VirtualFile finalExcluded = excluded; final VirtualFile finalModule2Output = module2Output; final VirtualFile finalModule2TestOutput = module2TestOutput; - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - ModifiableRootModel m = ModuleRootManager.getInstance(myModule).getModifiableModel(); - ContentEntry[] ee = m.getContentEntries(); - assertEquals(1, ee.length); - ee[0].addExcludeFolder(finalExcluded); - m.commit(); - - m = ModuleRootManager.getInstance(myModule2).getModifiableModel(); - final CompilerModuleExtension compilerModuleExtension = m.getModuleExtension(CompilerModuleExtension.class); - compilerModuleExtension.setCompilerOutputPath(finalModule2Output); - compilerModuleExtension.setCompilerOutputPathForTests(finalModule2TestOutput); - compilerModuleExtension.setExcludeOutput(true); - compilerModuleExtension.inheritCompilerOutputPath(false); - m.commit(); - } - }); - + PsiTestUtil.addExcludedRoot(myModule, excluded); + PsiTestUtil.setCompilerOutputPath(myModule2, module2Output.getUrl(), false); + PsiTestUtil.setCompilerOutputPath(myModule2, module2TestOutput.getUrl(), true); + PsiTestUtil.setExcludeCompileOutput(myModule2, true); assertNull(myIndex.getInfoForDirectory(excluded)); assertNull(myIndex.getInfoForDirectory(projectOutput)); @@ -439,16 +395,10 @@ public class DirectoryIndexImplTest extends IdeaTestCase { public void testExcludesShouldBeRecognizedRightOnRefresh() throws Exception { final VirtualFile dir = myModule1Dir.createChildDirectory(null, "dir"); final VirtualFile excluded = dir.createChildDirectory(null, "excluded"); - + PsiTestUtil.addExcludedRoot(myModule, excluded); new WriteCommandAction.Simple(getProject()) { @Override protected void run() throws Throwable { - ModifiableRootModel m = ModuleRootManager.getInstance(myModule).getModifiableModel(); - ContentEntry[] ee = m.getContentEntries(); - assertEquals(1, ee.length); - ee[0].addExcludeFolder(excluded); - m.commit(); - dir.delete(null); } }.execute().throwException(); @@ -483,7 +433,6 @@ public class DirectoryIndexImplTest extends IdeaTestCase { public void testProcessingNestedContentRootsOfExcludedDirsOnCreation() { String rootPath = myModule1Dir.getPath(); final File f = new File(rootPath, "excludedDir/dir/anotherContentRoot"); - ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { @@ -507,17 +456,7 @@ public class DirectoryIndexImplTest extends IdeaTestCase { } public void testLibraryDirInContent() throws Exception { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); - Library.ModifiableModel libraryModel = rootModel.getModuleLibraryTable().createLibrary().getModifiableModel(); - libraryModel.addRoot(myModule1Dir, OrderRootType.CLASSES); - libraryModel.commit(); - rootModel.commit(); - } - }); - + ModuleRootModificationUtil.addModuleLibrary(myModule, myModule1Dir.getUrl()); myIndex.checkConsistency(); diff --git a/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java b/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java index f7c416fb037c..985c998af073 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java @@ -28,6 +28,7 @@ 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; @@ -72,16 +73,9 @@ public class ExportingModulesTest extends IdeaTestCase { }); } - private void configureModule(final Module module, final VirtualFile testRoot, final String name) { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = ModuleRootManager.getInstance(module).getModifiableModel(); - final VirtualFile contentRoot = testRoot.findChild(name); - final ContentEntry contentEntry = rootModel.addContentEntry(contentRoot); - contentEntry.addSourceFolder(contentRoot.findChild("src"), false); - rootModel.commit(); - } - }); + private static void configureModule(final Module module, final VirtualFile testRoot, final String name) { + final VirtualFile contentRoot = testRoot.findChild(name); + PsiTestUtil.addContentRoot(module, contentRoot); + PsiTestUtil.addSourceRoot(module, contentRoot.findChild("src")); } } diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java b/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java index 501f06739c0d..98032450ed44 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java +++ b/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java @@ -1,11 +1,10 @@ package com.intellij.roots; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkModificator; -import com.intellij.openapi.roots.*; +import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; import com.intellij.openapi.vfs.JarFileSystem; @@ -71,30 +70,10 @@ public abstract class ModuleRootManagerTestCase extends ModuleTestCase { protected VirtualFile setModuleOutput(final Module module, final boolean test) throws IOException { final VirtualFile output = getVirtualFile(createTempDir(module.getName() + (test ? "Test" : "Prod") + "Output")); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); - final CompilerModuleExtension extension = model.getModuleExtension(CompilerModuleExtension.class); - assertNotNull(extension); - extension.inheritCompilerOutputPath(false); - if (test) { - extension.setCompilerOutputPathForTests(output); - } - else { - extension.setCompilerOutputPath(output); - } - model.commit(); - } - }); - + PsiTestUtil.setCompilerOutputPath(module, output != null ? output.getUrl() : null, test); return output; } - protected Library createLibrary(final String name, final VirtualFile classesRoot) { - return createLibrary(name, classesRoot, null); - } - protected Library createLibrary(final String name, final VirtualFile classesRoot, final VirtualFile sourceRoot) { final Library library = LibraryTablesRegistrar.getInstance().getLibraryTable(myProject).createLibrary(name); final Library.ModifiableModel model = library.getModifiableModel(); diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleRootsExternalizationTest.java b/java/java-tests/testSrc/com/intellij/roots/ModuleRootsExternalizationTest.java index 52b7973ad1f8..5dbcdb250afa 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ModuleRootsExternalizationTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ModuleRootsExternalizationTest.java @@ -17,6 +17,7 @@ import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.ModuleTestCase; import com.intellij.ide.highlighter.ModuleFileType; +import com.intellij.testFramework.PsiTestUtil; import org.jdom.Element; import org.jdom.output.XMLOutputter; @@ -79,23 +80,13 @@ public class ModuleRootsExternalizationTest extends ModuleTestCase { final ModuleRootManagerImpl moduleRootManager = (ModuleRootManagerImpl)ModuleRootManager.getInstance(module); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = moduleRootManager.getModifiableModel(); - final ContentEntry contentEntry = rootModel.addContentEntry(contentFile); - final CompilerModuleExtension compilerModuleExtension = rootModel.getModuleExtension(CompilerModuleExtension.class); - compilerModuleExtension.setCompilerOutputPath(classesFile); - compilerModuleExtension.setCompilerOutputPathForTests(testClassesFile); - compilerModuleExtension.inheritCompilerOutputPath(false); - rootModel.setSdk(JavaSdkImpl.getMockJdk17()); - contentEntry.addSourceFolder(sourceFile, false); - contentEntry.addSourceFolder(testSourceFile, true); - contentEntry.addExcludeFolder(excludeFile); - rootModel.commit(); - } - }); - + PsiTestUtil.addContentRoot(module, contentFile); + PsiTestUtil.addSourceRoot(module, sourceFile); + PsiTestUtil.addSourceRoot(module, testSourceFile, true); + ModuleRootModificationUtil.setModuleSdk(module, JavaSdkImpl.getMockJdk17()); + PsiTestUtil.addExcludedRoot(module, excludeFile); + PsiTestUtil.setCompilerOutputPath(module, classesFile.getUrl(), false); + PsiTestUtil.setCompilerOutputPath(module, testClassesFile.getUrl(), true); final Element element = new Element("root"); moduleRootManager.getState().writeExternal(element); diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java index 4e8d2f743972..5780f46f1fea 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java @@ -4,7 +4,6 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.StdModuleTypes; import com.intellij.openapi.roots.*; -import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.ModuleTestCase; import com.intellij.testFramework.PsiTestUtil; @@ -12,6 +11,7 @@ import com.intellij.testFramework.fixtures.impl.LightTempDirTestFixtureImpl; import com.intellij.util.PathsList; import java.io.IOException; +import java.util.Collections; /** * @author yole @@ -86,13 +86,8 @@ public class ModuleScopesTest extends ModuleTestCase { ModuleRootModificationUtil.addDependency(moduleA, moduleB, scope, false); - final ModifiableRootModel modelB = ModuleRootManager.getInstance(moduleB).getModifiableModel(); - final ContentEntry contentEntry = modelB.addContentEntry(rootB); - contentEntry.addSourceFolder(rootB, false); - final CompilerModuleExtension extension = modelB.getModuleExtension(CompilerModuleExtension.class); - extension.inheritCompilerOutputPath(false); - extension.setCompilerOutputPath(outB); - modelB.commit(); + PsiTestUtil.addSourceRoot(moduleB, rootB); + PsiTestUtil.setCompilerOutputPath(moduleB, outB.getUrl(), false); } }); @@ -187,20 +182,8 @@ public class ModuleScopesTest extends ModuleTestCase { private VirtualFile addLibrary(final Module m, final DependencyScope scope) { final VirtualFile libraryRoot = myFixture.findOrCreateDir("lib"); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel model = ModuleRootManager.getInstance(m).getModifiableModel(); - final Library library = model.getModuleLibraryTable().createLibrary("l"); - final Library.ModifiableModel libraryModel = library.getModifiableModel(); - libraryModel.addRoot(libraryRoot, OrderRootType.CLASSES); - libraryModel.commit(); - - model.findLibraryOrderEntry(library).setScope(scope); - model.commit(); - } - }); - + ModuleRootModificationUtil.addModuleLibrary(m, "l", Collections.singletonList(libraryRoot.getUrl()), + Collections.emptyList(), scope); return libraryRoot; } diff --git a/java/java-tests/testSrc/com/intellij/roots/RootsTest.java b/java/java-tests/testSrc/com/intellij/roots/RootsTest.java index 951fb718df56..87e05ca56940 100644 --- a/java/java-tests/testSrc/com/intellij/roots/RootsTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/RootsTest.java @@ -2,12 +2,11 @@ package com.intellij.roots; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; -import com.intellij.openapi.roots.CompilerModuleExtension; -import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.PsiTestCase; +import com.intellij.testFramework.PsiTestUtil; import java.io.File; @@ -36,27 +35,13 @@ public class RootsTest extends PsiTestCase { final ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.addContentEntry(rootFile); - rootModel.getModuleExtension(CompilerModuleExtension.class).inheritCompilerOutputPath(false); - rootModel.getModuleExtension(CompilerModuleExtension.class).setCompilerOutputPath(classesFile); - rootModel.getModuleExtension(CompilerModuleExtension.class).setExcludeOutput(false); - rootModel.commit(); - } - }); + PsiTestUtil.addContentRoot(myModule, rootFile); + PsiTestUtil.setCompilerOutputPath(myModule, classesFile.getUrl(), false); + PsiTestUtil.setExcludeCompileOutput(myModule, false); assertTrue(rootManager.getFileIndex().isInContent(childOfContent)); assertTrue(rootManager.getFileIndex().isInContent(childOfClasses)); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel rootModel = rootManager.getModifiableModel(); - rootModel.getModuleExtension(CompilerModuleExtension.class).setExcludeOutput(true); - rootModel.commit(); - } - }); + + PsiTestUtil.setExcludeCompileOutput(myModule, true); assertTrue(rootManager.getFileIndex().isInContent(childOfContent)); assertFalse(rootManager.getFileIndex().isInContent(childOfClasses)); } diff --git a/java/java-tests/testSrc/com/intellij/roots/libraries/LibraryTest.java b/java/java-tests/testSrc/com/intellij/roots/libraries/LibraryTest.java index fb8f1cee8e5f..82e91fee8e33 100644 --- a/java/java-tests/testSrc/com/intellij/roots/libraries/LibraryTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/libraries/LibraryTest.java @@ -56,9 +56,7 @@ public class LibraryTest extends IdeaTestCase { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { - final LibraryTable.ModifiableModel modifiableModel = libraryTable.getModifiableModel(); - modifiableModel.removeLibrary(library); - modifiableModel.commit(); + libraryTable.removeLibrary(library); } }); } diff --git a/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java b/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java index 3640b28a5582..381631c604ff 100644 --- a/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java +++ b/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java @@ -15,16 +15,14 @@ */ package com.intellij.testFramework; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.Result; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.application.ex.PathManagerEx; import com.intellij.openapi.module.Module; 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.roots.libraries.Library; import com.intellij.openapi.util.DefaultJDOMExternalizer; import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.io.FileUtil; @@ -217,18 +215,8 @@ public abstract class PsiTestCase extends ModuleTestCase { } protected static void addLibraryToRoots(final Module module, final VirtualFile root, final OrderRootType rootType) { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModuleRootManager manager = ModuleRootManager.getInstance(module); - final ModifiableRootModel rootModel = manager.getModifiableModel(); - final Library jarLibrary = rootModel.getModuleLibraryTable().createLibrary(); - final Library.ModifiableModel libraryModel = jarLibrary.getModifiableModel(); - libraryModel.addRoot(root, rootType); - libraryModel.commit(); - rootModel.commit(); - } - }); + assertEquals(OrderRootType.CLASSES, rootType); + ModuleRootModificationUtil.addModuleLibrary(module, root.getUrl()); } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java b/platform/lang-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java index 12272d8a6f12..950c80a803ba 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ModuleRootModificationUtil.java @@ -22,10 +22,42 @@ import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.roots.libraries.Library; import org.jetbrains.annotations.Nullable; +import java.util.Collections; +import java.util.List; + /** * @author nik */ public class ModuleRootModificationUtil { + public static void addModuleLibrary(Module module, String libName, List classesRoots, List sourceRoots) { + addModuleLibrary(module, libName, classesRoots, sourceRoots, DependencyScope.COMPILE); + } + + public static void addModuleLibrary(Module module, String libName, List classesRoots, List sourceRoots, + final DependencyScope scope) { + final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); + final Library library = model.getModuleLibraryTable().createLibrary(libName); + final Library.ModifiableModel libraryModel = library.getModifiableModel(); + for (String root : classesRoots) { + libraryModel.addRoot(root, OrderRootType.CLASSES); + } + for (String root : sourceRoots) { + libraryModel.addRoot(root, OrderRootType.SOURCES); + } + model.findLibraryOrderEntry(library).setScope(scope); + new WriteAction() { + @Override + protected void run(Result result) throws Throwable { + libraryModel.commit(); + model.commit(); + } + }.execute(); + } + + public static void addModuleLibrary(Module module, String classesRootUrl) { + addModuleLibrary(module, null, Collections.singletonList(classesRootUrl), Collections.emptyList()); + } + public static void addDependency(Module module, Library library) { addDependency(module, library, DependencyScope.COMPILE, false); } diff --git a/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java b/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java index d9b091c6a060..d29cbdda2a1b 100644 --- a/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java +++ b/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java @@ -311,23 +311,17 @@ public class PsiTestUtil { final String libName, final String libDir, final String[] classRoots, final String[] sourceRoots) { - 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 Library library = model.getModuleLibraryTable().createLibrary(libName); - final Library.ModifiableModel libModifiableModel = library.getModifiableModel(); - for (String classRoot : classRoots) { - libModifiableModel.addRoot(parentUrl + classRoot, OrderRootType.CLASSES); - } - for (String sourceRoot : sourceRoots) { - libModifiableModel.addRoot(parentUrl + sourceRoot, OrderRootType.SOURCES); - } - libModifiableModel.commit(); - model.commit(); - } - }); + final String parentUrl = + VirtualFileManager.constructUrl(classRoots[0].endsWith(".jar!/") ? JarFileSystem.PROTOCOL : LocalFileSystem.PROTOCOL, libDir); + List classesUrls = new ArrayList(); + List sourceUrls = new ArrayList(); + for (String classRoot : classRoots) { + classesUrls.add(parentUrl + classRoot); + } + for (String sourceRoot : sourceRoots) { + sourceUrls.add(parentUrl + sourceRoot); + } + ModuleRootModificationUtil.addModuleLibrary(module, libName, classesUrls, sourceUrls); } public static Module addModule(final Project project, final ModuleType type, final String name, final VirtualFile root) { @@ -348,4 +342,24 @@ public class PsiTestUtil { } }.execute().getResultObject(); } + + public static void setCompilerOutputPath(Module module, String url, boolean forTests) { + final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); + final CompilerModuleExtension extension = model.getModuleExtension(CompilerModuleExtension.class); + extension.inheritCompilerOutputPath(false); + if (forTests) { + extension.setCompilerOutputPathForTests(url); + } + else { + extension.setCompilerOutputPath(url); + } + commitModel(model); + } + + public static void setExcludeCompileOutput(Module module, boolean exclude) { + final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); + final CompilerModuleExtension extension = model.getModuleExtension(CompilerModuleExtension.class); + extension.setExcludeOutput(exclude); + commitModel(model); + } } \ No newline at end of file diff --git a/plugins/android/src/org/jetbrains/android/importDependencies/CreateNewModuleTask.java b/plugins/android/src/org/jetbrains/android/importDependencies/CreateNewModuleTask.java index a6feeaeac33b..3d20a43ba791 100644 --- a/plugins/android/src/org/jetbrains/android/importDependencies/CreateNewModuleTask.java +++ b/plugins/android/src/org/jetbrains/android/importDependencies/CreateNewModuleTask.java @@ -58,7 +58,7 @@ class CreateNewModuleTask extends ModuleProvidingTask { } }); if (AndroidFacet.getInstance(depModule) == null) { - AndroidUtils.addAndroidFacet(depModule, myContentRoot, true); + AndroidUtils.addAndroidFacetInWriteAction(depModule, myContentRoot, true); } AndroidSdkUtils.setupAndroidPlatformInNeccessary(depModule); setDepModule(depModule); diff --git a/plugins/android/src/org/jetbrains/android/importDependencies/ImportModuleTask.java b/plugins/android/src/org/jetbrains/android/importDependencies/ImportModuleTask.java index d50976ef04ff..639ac25adb8a 100644 --- a/plugins/android/src/org/jetbrains/android/importDependencies/ImportModuleTask.java +++ b/plugins/android/src/org/jetbrains/android/importDependencies/ImportModuleTask.java @@ -65,7 +65,7 @@ class ImportModuleTask extends ModuleProvidingTask { } assert moduleWrapper[0] != null; if (AndroidFacet.getInstance(moduleWrapper[0]) == null) { - AndroidUtils.addAndroidFacet(moduleWrapper[0], myContentRoot, true); + AndroidUtils.addAndroidFacetInWriteAction(moduleWrapper[0], myContentRoot, true); } AndroidSdkUtils.setupAndroidPlatformInNeccessary(moduleWrapper[0]); setDepModule(moduleWrapper[0]); diff --git a/plugins/android/src/org/jetbrains/android/maven/AndroidFacetImporterBase.java b/plugins/android/src/org/jetbrains/android/maven/AndroidFacetImporterBase.java index 7aa809d188e1..c21fe0b33e11 100644 --- a/plugins/android/src/org/jetbrains/android/maven/AndroidFacetImporterBase.java +++ b/plugins/android/src/org/jetbrains/android/maven/AndroidFacetImporterBase.java @@ -386,7 +386,7 @@ public abstract class AndroidFacetImporterBase extends FacetImporter 0) { final VirtualFile contentRoot = files[0]; - final AndroidFacet facet = AndroidUtils.addAndroidFacet(rootModel, contentRoot, myProjectType == ProjectType.LIBRARY); + final AndroidFacet facet = AndroidUtils.addAndroidFacet(rootModel.getModule(), contentRoot, myProjectType == ProjectType.LIBRARY); if (myProjectType == null) { ImportDependenciesUtil.importDependencies(rootModel.getModule(), true); diff --git a/plugins/android/src/org/jetbrains/android/util/AndroidUtils.java b/plugins/android/src/org/jetbrains/android/util/AndroidUtils.java index 9cf55702bbe1..f486bd8b733c 100644 --- a/plugins/android/src/org/jetbrains/android/util/AndroidUtils.java +++ b/plugins/android/src/org/jetbrains/android/util/AndroidUtils.java @@ -495,21 +495,20 @@ public class AndroidUtils { } @NotNull - public static AndroidFacet addAndroidFacet(@NotNull final Module module, @NotNull final VirtualFile contentRoot, final boolean library) { + public static AndroidFacet addAndroidFacetInWriteAction(@NotNull final Module module, + @NotNull final VirtualFile contentRoot, + final boolean library) { return ApplicationManager.getApplication().runWriteAction(new Computable() { @Override public AndroidFacet compute() { - final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); - final AndroidFacet facet = addAndroidFacet(model, contentRoot, library); - model.commit(); - return facet; + return addAndroidFacet(module, contentRoot, library); } }); } @NotNull - public static AndroidFacet addAndroidFacet(@NotNull ModifiableRootModel rootModel, @NotNull VirtualFile contentRoot, boolean library) { - Module module = rootModel.getModule(); + public static AndroidFacet addAndroidFacet(final Module module, @NotNull VirtualFile contentRoot, + boolean library) { final FacetManager facetManager = FacetManager.getInstance(module); ModifiableFacetModel model = facetManager.createModifiableModel(); AndroidFacet facet = model.getFacetByType(AndroidFacet.ID); diff --git a/plugins/devkit/testSources/build/GenerateAntTest.java b/plugins/devkit/testSources/build/GenerateAntTest.java index 54d51842224b..fa0f30e658a3 100644 --- a/plugins/devkit/testSources/build/GenerateAntTest.java +++ b/plugins/devkit/testSources/build/GenerateAntTest.java @@ -22,11 +22,7 @@ package org.jetbrains.idea.devkit.build; import com.intellij.compiler.ant.BuildTargetsFactory; import com.intellij.compiler.ant.ModuleChunk; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; -import com.intellij.openapi.roots.CompilerModuleExtension; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; @@ -35,6 +31,7 @@ import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlTag; import com.intellij.testFramework.IdeaTestCase; +import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.idea.devkit.build.ant.BuildJarTarget; @@ -44,18 +41,9 @@ import java.io.StringWriter; public class GenerateAntTest extends IdeaTestCase { public void testP1() throws Exception { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final ModifiableRootModel model = ModuleRootManager.getInstance(myModule).getModifiableModel(); - final VirtualFile parent = myModule.getModuleFile().getParent(); - assertNotNull(parent); - final CompilerModuleExtension extension = model.getModuleExtension(CompilerModuleExtension.class); - extension.inheritCompilerOutputPath(false); - extension.setCompilerOutputPath(parent.getUrl() + "/classes"); - model.commit(); - } - }); + final VirtualFile parent = myModule.getModuleFile().getParent(); + assertNotNull(parent); + PsiTestUtil.setCompilerOutputPath(myModule, parent.getUrl() + "/classes", false); checkJarTarget(new ModuleChunk(new Module[]{getModule()})); } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/compiler/ResourceCopyingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/compiler/ResourceCopyingTest.java index 2de6aedb253b..4e282fabea6c 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/compiler/ResourceCopyingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/compiler/ResourceCopyingTest.java @@ -19,13 +19,11 @@ import com.intellij.compiler.CompilerConfiguration; import com.intellij.compiler.CompilerConfigurationImpl; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.WriteCommandAction; -import com.intellij.openapi.roots.CompilerModuleExtension; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.testFramework.PsiTestUtil; import org.jetbrains.idea.maven.MavenImportingTestCase; -import org.jetbrains.idea.maven.importing.MavenRootModelAdapter; import org.jetbrains.idea.maven.importing.MavenDefaultModifiableModelsProvider; +import org.jetbrains.idea.maven.importing.MavenRootModelAdapter; public class ResourceCopyingTest extends MavenImportingTestCase { public void testBasic() throws Exception { @@ -499,10 +497,8 @@ public class ResourceCopyingTest extends MavenImportingTestCase { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { for (String each : moduleNames) { - ModifiableRootModel model = ModuleRootManager.getInstance(getModule(each)).getModifiableModel(); - model.getModuleExtension(CompilerModuleExtension.class).setCompilerOutputPath(output); - model.getModuleExtension(CompilerModuleExtension.class).setCompilerOutputPathForTests(output); - model.commit(); + PsiTestUtil.setCompilerOutputPath(getModule(each), output.getUrl(), false); + PsiTestUtil.setCompilerOutputPath(getModule(each), output.getUrl(), true); } } }); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenClasspathsAndSearchScopesTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenClasspathsAndSearchScopesTest.java index b01ee71a4c73..461a81b4aece 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenClasspathsAndSearchScopesTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/execution/MavenClasspathsAndSearchScopesTest.java @@ -25,6 +25,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.*; import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.testFramework.PsiTestUtil; import com.intellij.util.PathsList; import com.intellij.util.Processor; import org.jetbrains.annotations.Nullable; @@ -877,14 +878,11 @@ public class MavenClasspathsAndSearchScopesTest extends MavenImportingTestCase { new WriteCommandAction.Simple(myProject) { @Override protected void run() throws Throwable { - ModifiableRootModel model = ModuleRootManager.getInstance(user).getModifiableModel(); - model.addModuleOrderEntry(getModule("m1")); + ModuleRootModificationUtil.addDependency(user, getModule("m1")); VirtualFile out = user.getModuleFile().getParent().createChildDirectory(this, "output"); VirtualFile testOut = user.getModuleFile().getParent().createChildDirectory(this, "test-output"); - model.getModuleExtension(CompilerModuleExtension.class).setCompilerOutputPath(out); - model.getModuleExtension(CompilerModuleExtension.class).setCompilerOutputPathForTests(testOut); - model.getModuleExtension(CompilerModuleExtension.class).inheritCompilerOutputPath(false); - model.commit(); + PsiTestUtil.setCompilerOutputPath(user, out.getUrl(), false); + PsiTestUtil.setCompilerOutputPath(user, testOut.getUrl(), true); } }.execute().throwException(); diff --git a/plugins/testng/src/com/theoryinpractice/testng/util/TestNGUtil.java b/plugins/testng/src/com/theoryinpractice/testng/util/TestNGUtil.java index f43b32dc7bc0..a9c67d7bebd4 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/util/TestNGUtil.java +++ b/plugins/testng/src/com/theoryinpractice/testng/util/TestNGUtil.java @@ -23,11 +23,8 @@ import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.OrderRootType; +import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.libraries.JarVersionDetectionUtil; -import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.Comparing; @@ -477,13 +474,8 @@ public class TestNGUtil } final Module module = ModuleUtil.findModuleForPsiElement(psiElement); if (module == null) return false; - final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); - final Library.ModifiableModel libraryModel = model.getModuleLibraryTable().createLibrary().getModifiableModel(); String url = VfsUtil.getUrlForLibraryRoot(new File(PathUtil.getJarPathForClass(Assert.class))); - VirtualFile libVirtFile = VirtualFileManager.getInstance().findFileByUrl(url); - libraryModel.addRoot(libVirtFile, OrderRootType.CLASSES); - libraryModel.commit(); - model.commit(); + ModuleRootModificationUtil.addModuleLibrary(module, url); } return true; }