diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java index 8f60ad874018..45ead827bcc7 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,6 +37,7 @@ import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootModel; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.roots.impl.ProjectRootManagerImpl; import com.intellij.openapi.roots.ui.configuration.actions.ModuleDeleteProvider; import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable; @@ -310,7 +311,7 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change public void run() { try { final ModifiableRootModel[] rootModels = models.toArray(new ModifiableRootModel[models.size()]); - projectRootManager.multiCommit(myModuleModel, rootModels); + ModuleRootManagerImpl.multiCommit(rootModels, myModuleModel); myModuleModelCommitted = true; myFacetsConfigurator.commitFacets(); diff --git a/java/java-impl/src/com/intellij/psi/impl/file/PsiPackageImplementationHelperImpl.java b/java/java-impl/src/com/intellij/psi/impl/file/PsiPackageImplementationHelperImpl.java index 46812a81f005..73eb2566108b 100644 --- a/java/java-impl/src/com/intellij/psi/impl/file/PsiPackageImplementationHelperImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/file/PsiPackageImplementationHelperImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.*; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.wm.ToolWindow; @@ -118,9 +119,10 @@ public class PsiPackageImplementationHelperImpl extends PsiPackageImplementation } if (!modelsToCommit.isEmpty()) { - ProjectRootManager.getInstance(psiPackage.getProject()).multiCommit( - modelsToCommit.toArray(new ModifiableRootModel[modelsToCommit.size()]) - ); + ModifiableRootModel[] rootModels = modelsToCommit.toArray(new ModifiableRootModel[modelsToCommit.size()]); + if (rootModels.length > 0) { + ModuleRootManagerImpl.multiCommit(rootModels, ModuleManager.getInstance(rootModels[0].getProject()).getModifiableModel()); + } return true; } else { return false; diff --git a/java/java-tests/testSrc/com/intellij/roots/MultiModuleEditingTest.java b/java/java-tests/testSrc/com/intellij/roots/MultiModuleEditingTest.java index 89d43de532ec..52e3d774acc6 100644 --- a/java/java-tests/testSrc/com/intellij/roots/MultiModuleEditingTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/MultiModuleEditingTest.java @@ -1,3 +1,18 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.roots; import com.intellij.ProjectTopics; @@ -12,8 +27,7 @@ import com.intellij.openapi.project.Project; 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.roots.ex.ProjectRootManagerEx; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -115,7 +129,7 @@ public class MultiModuleEditingTest extends ModuleTestCase { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { - ProjectRootManagerEx.getInstanceEx(myProject).multiCommit(moduleModel, new ModifiableRootModel[]{rootModelB, rootModelA}); + ModuleRootManagerImpl.multiCommit(new ModifiableRootModel[]{rootModelB, rootModelA}, moduleModel); } }); } @@ -152,7 +166,7 @@ public class MultiModuleEditingTest extends ModuleTestCase { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { - ProjectRootManager.getInstance(myProject).multiCommit(moduleModel, new ModifiableRootModel[]{rootModelB}); + ModuleRootManagerImpl.multiCommit(new ModifiableRootModel[]{rootModelB}, moduleModel); } }); } diff --git a/java/java-tests/testSrc/com/intellij/roots/RootsChangedTest.java b/java/java-tests/testSrc/com/intellij/roots/RootsChangedTest.java index 51b728df3e6c..7a2856b828a3 100644 --- a/java/java-tests/testSrc/com/intellij/roots/RootsChangedTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/RootsChangedTest.java @@ -1,12 +1,29 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.roots; import com.intellij.ProjectTopics; import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkModificator; import com.intellij.openapi.projectRoots.impl.JavaSdkImpl; import com.intellij.openapi.roots.*; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; @@ -74,7 +91,10 @@ public class RootsChangedTest extends ModuleTestCase { final ModifiableRootModel rootModelB = ModuleRootManager.getInstance(moduleB).getModifiableModel(); rootModelA.setSdk(jdk); rootModelB.setSdk(jdk); - ProjectRootManager.getInstance(myProject).multiCommit(new ModifiableRootModel[]{rootModelA, rootModelB}); + ModifiableRootModel[] rootModels = new ModifiableRootModel[]{rootModelA, rootModelB}; + if (rootModels.length > 0) { + ModuleRootManagerImpl.multiCommit(rootModels, ModuleManager.getInstance(rootModels[0].getProject()).getModifiableModel()); + } assertEventsCount(1); final SdkModificator sdkModificator = jdk.getSdkModificator(); @@ -106,7 +126,10 @@ public class RootsChangedTest extends ModuleTestCase { final ModifiableRootModel rootModelB = ModuleRootManager.getInstance(moduleB).getModifiableModel(); rootModelA.inheritSdk(); rootModelB.inheritSdk(); - ProjectRootManager.getInstance(myProject).multiCommit(new ModifiableRootModel[]{rootModelA, rootModelB}); + ModifiableRootModel[] rootModels = new ModifiableRootModel[]{rootModelA, rootModelB}; + if (rootModels.length > 0) { + ModuleRootManagerImpl.multiCommit(rootModels, ModuleManager.getInstance(rootModels[0].getProject()).getModifiableModel()); + } assertEventsCount(1); ProjectRootManager.getInstance(myProject).setProjectSdk(jdk); @@ -138,7 +161,10 @@ public class RootsChangedTest extends ModuleTestCase { rootModelB.addLibraryEntry(libraryA); rootModelA.addInvalidLibrary("Q", libraryTable.getTableLevel()); rootModelB.addInvalidLibrary("Q", libraryTable.getTableLevel()); - ProjectRootManager.getInstance(myProject).multiCommit(new ModifiableRootModel[]{rootModelA, rootModelB}); + ModifiableRootModel[] rootModels = new ModifiableRootModel[]{rootModelA, rootModelB}; + if (rootModels.length > 0) { + ModuleRootManagerImpl.multiCommit(rootModels, ModuleManager.getInstance(rootModels[0].getProject()).getModifiableModel()); + } assertEventsCount(1); final Library.ModifiableModel libraryModifiableModel2 = libraryA.getModifiableModel(); @@ -195,7 +221,10 @@ public class RootsChangedTest extends ModuleTestCase { final Library libraryQ = libraryTable.createLibrary("Q"); assertEventsCount(0); - ProjectRootManager.getInstance(myProject).multiCommit(new ModifiableRootModel[]{rootModelA, rootModelB}); + ModifiableRootModel[] rootModels = new ModifiableRootModel[]{rootModelA, rootModelB}; + if (rootModels.length > 0) { + ModuleRootManagerImpl.multiCommit(rootModels, ModuleManager.getInstance(rootModels[0].getProject()).getModifiableModel()); + } assertEventsCount(1); libraryTable.removeLibrary(libraryQ); diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ProjectRootManager.java b/platform/lang-api/src/com/intellij/openapi/roots/ProjectRootManager.java index 46e0c8477036..6fa1de0f1c02 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ProjectRootManager.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ProjectRootManager.java @@ -16,7 +16,6 @@ package com.intellij.openapi.roots; import com.intellij.openapi.Disposable; -import com.intellij.openapi.module.ModifiableModuleModel; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; @@ -177,19 +176,4 @@ public abstract class ProjectRootManager implements ModificationTracker { public void setProjectJdkName(String name) { setProjectSdkName(name); } - - /** - * Commits the change to the lists of roots for the specified modules. - * - * @param rootModels the root models ro commit. - */ - public abstract void multiCommit(ModifiableRootModel[] rootModels); - - /** - * Commits the change to the list of modules and the lists of roots for the specified modules. - * - * @param moduleModel the module model to commit. - * @param rootModels the root models to commit. - */ - public abstract void multiCommit(ModifiableModuleModel moduleModel, ModifiableRootModel[] rootModels); } diff --git a/platform/lang-impl/src/com/intellij/ide/impl/PatchProjectUtil.java b/platform/lang-impl/src/com/intellij/ide/impl/PatchProjectUtil.java index ce1af63e43ae..3f48822874d1 100644 --- a/platform/lang-impl/src/com/intellij/ide/impl/PatchProjectUtil.java +++ b/platform/lang-impl/src/com/intellij/ide/impl/PatchProjectUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.*; -import com.intellij.openapi.roots.ex.ProjectRootManagerEx; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtil; @@ -95,7 +95,7 @@ public class PatchProjectUtil { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { - ProjectRootManagerEx.getInstanceEx(project).multiCommit(modulesModel, models); + ModuleRootManagerImpl.multiCommit(models, modulesModel); } }); } diff --git a/platform/lang-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java b/platform/lang-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java index 89bcc1266966..77b932b78ed2 100644 --- a/platform/lang-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java @@ -36,6 +36,7 @@ import com.intellij.openapi.project.impl.ProjectLifecycleListener; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ex.ProjectRootManagerEx; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.util.*; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; @@ -839,7 +840,8 @@ public class ModuleManagerImpl extends ModuleManager implements ProjectComponent } public void commit() { - ProjectRootManagerEx.getInstanceEx(myProject).multiCommit(this, new ModifiableRootModel[0]); + ModifiableRootModel[] rootModels = new ModifiableRootModel[0]; + ModuleRootManagerImpl.multiCommit(rootModels, this); } public void commitWithRunnable(Runnable runnable) { diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java index 18f6aa3d2a02..f83bb1a051f9 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -218,7 +218,7 @@ public class ModuleRootManagerImpl extends ModuleRootManager implements ModuleCo } - static void multiCommit(ModifiableRootModel[] rootModels, + public static void multiCommit(ModifiableRootModel[] rootModels, ModifiableModuleModel moduleModel) { ApplicationManager.getApplication().assertWriteAccessAllowed(); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java index 517d2ca07783..a4ee1e197416 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java @@ -28,7 +28,6 @@ import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileTypes.FileTypeEvent; import com.intellij.openapi.fileTypes.FileTypeListener; import com.intellij.openapi.fileTypes.FileTypeManager; -import com.intellij.openapi.module.ModifiableModuleModel; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.impl.ModuleImpl; @@ -226,14 +225,6 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Proj LOG.assertTrue(removed); } - public void multiCommit(ModifiableRootModel[] rootModels) { - ModuleRootManagerImpl.multiCommit(rootModels, ModuleManager.getInstance(myProject).getModifiableModel()); - } - - public void multiCommit(ModifiableModuleModel moduleModel, ModifiableRootModel[] rootModels) { - ModuleRootManagerImpl.multiCommit(rootModels, moduleModel); - } - @NotNull public ProjectFileIndex getFileIndex() { return ProjectFileIndex.SERVICE.getInstance(myProject); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java index aadf4e5bb7a3..674c22999570 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,7 +28,11 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectBundle; -import com.intellij.openapi.roots.*; +import com.intellij.openapi.roots.ModifiableRootModel; +import com.intellij.openapi.roots.ModuleOrderEntry; +import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.OrderEntry; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.text.StringUtil; import com.intellij.projectImport.ProjectAttachProcessor; @@ -94,7 +98,7 @@ public class ModuleDeleteProvider implements DeleteProvider, TitledHandler { removeModule(module, modifiableModel, otherModuleRootModels.values(), modifiableModuleModel); } final ModifiableRootModel[] modifiableRootModels = otherModuleRootModels.values().toArray(new ModifiableRootModel[otherModuleRootModels.size()]); - ProjectRootManager.getInstance(project).multiCommit(modifiableModuleModel, modifiableRootModels); + ModuleRootManagerImpl.multiCommit(modifiableRootModels, modifiableModuleModel); } }; ApplicationManager.getApplication().runWriteAction(action); diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java b/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java index 8bf96f379a02..a069aaae24d0 100644 --- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java +++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java @@ -31,7 +31,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.project.impl.ProjectMacrosUtil; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; -import com.intellij.openapi.roots.ex.ProjectRootManagerEx; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.roots.impl.storage.ClasspathStorage; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; @@ -291,8 +291,7 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement if (model == null) { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run(){ - ProjectRootManagerEx.getInstanceEx(project).multiCommit(moduleModel, rootModels); - + ModuleRootManagerImpl.multiCommit(rootModels, moduleModel); } }); } diff --git a/plugins/git4idea/tests/git4idea/test/GitMockProjectRootManager.groovy b/plugins/git4idea/tests/git4idea/test/GitMockProjectRootManager.groovy index ad8ef4b22be0..25bb62b23d6d 100644 --- a/plugins/git4idea/tests/git4idea/test/GitMockProjectRootManager.groovy +++ b/plugins/git4idea/tests/git4idea/test/GitMockProjectRootManager.groovy @@ -16,7 +16,6 @@ package git4idea.test import com.intellij.openapi.Disposable -import com.intellij.openapi.module.ModifiableModuleModel import com.intellij.openapi.module.Module import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.vfs.VirtualFile @@ -109,16 +108,6 @@ class GitMockProjectRootManager extends ProjectRootManager { throw new UnsupportedOperationException() } - @Override - void multiCommit(ModifiableRootModel[] rootModels) { - throw new UnsupportedOperationException() - } - - @Override - void multiCommit(ModifiableModuleModel moduleModel, ModifiableRootModel[] rootModels) { - throw new UnsupportedOperationException() - } - @Override long getModificationCount() { throw new UnsupportedOperationException() diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/GradleModulesImporter.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/GradleModulesImporter.java index 76fea4d60821..ea30bc3ea600 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/GradleModulesImporter.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/GradleModulesImporter.java @@ -10,6 +10,7 @@ import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.progress.Task; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.*; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; @@ -130,9 +131,8 @@ public class GradleModulesImporter { ); } finally { - ProjectRootManager projectRootManager = ProjectRootManager.getInstance(intellijProject); ModifiableRootModel[] modelsAsArray = rootModels.toArray(new ModifiableRootModel[rootModels.size()]); - projectRootManager.multiCommit(model, modelsAsArray); + ModuleRootManagerImpl.multiCommit(modelsAsArray, model); for (GradleModule module : modules) { publisher.onImportEnd(module); } @@ -402,7 +402,9 @@ public class GradleModulesImporter { model.commit(); ProjectRootManager projectRootManager = ProjectRootManager.getInstance(intellijProject); ModifiableRootModel[] modelsAsArray = modelsToCommit.toArray(new ModifiableRootModel[modelsToCommit.size()]); - projectRootManager.multiCommit(modelsAsArray); + if (modelsAsArray.length > 0) { + ModuleRootManagerImpl.multiCommit(modelsAsArray, ModuleManager.getInstance(modelsAsArray[0].getProject()).getModifiableModel()); + } if (libraryMappings != null) { for (GradleLibrary library : libraryMappings.keySet()) { publisher.onImportEnd(library); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java index 08e3fef61e91..a2f84cab39ef 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java @@ -1,17 +1,17 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.jetbrains.plugins.groovy.mvc; @@ -27,16 +27,23 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.StdModuleTypes; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.*; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; import com.intellij.openapi.roots.libraries.LibraryUtil; import com.intellij.openapi.roots.ui.configuration.actions.ModuleDeleteProvider; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Key; -import com.intellij.openapi.vfs.*; +import com.intellij.openapi.vfs.LocalFileSystem; +import com.intellij.openapi.vfs.VfsUtil; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; -import com.intellij.util.*; +import com.intellij.util.ArrayUtil; +import com.intellij.util.CommonProcessors; +import com.intellij.util.Consumer; +import com.intellij.util.SmartList; import com.intellij.util.containers.CollectionFactory; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; @@ -531,7 +538,8 @@ public class MvcModuleStructureUtil { ModuleDeleteProvider.removeModule(toRemove, null, usingModels, moduleModel); - ProjectRootManager.getInstance(project).multiCommit(moduleModel, usingModels.toArray(new ModifiableRootModel[usingModels.size()])); + ModifiableRootModel[] rootModels = usingModels.toArray(new ModifiableRootModel[usingModels.size()]); + ModuleRootManagerImpl.multiCommit(rootModels, moduleModel); } @NotNull diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenDefaultModifiableModelsProvider.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenDefaultModifiableModelsProvider.java index b98d5e4db9c0..c3cf47d69432 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenDefaultModifiableModelsProvider.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenDefaultModifiableModelsProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.roots.ex.ProjectRootManagerEx; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; @@ -115,8 +116,8 @@ public class MavenDefaultModifiableModelsProvider extends MavenBaseModifiableMod myLibrariesModel.commit(); Collection rootModels = myRootModels.values(); - ProjectRootManager.getInstance(myProject).multiCommit(myModuleModel, - rootModels.toArray(new ModifiableRootModel[rootModels.size()])); + ModifiableRootModel[] rootModels1 = rootModels.toArray(new ModifiableRootModel[rootModels.size()]); + ModuleRootManagerImpl.multiCommit(rootModels1, myModuleModel); for (ModifiableFacetModel each : myFacetModels.values()) { each.commit(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenFoldersImporter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenFoldersImporter.java index 59c94ab487ed..61d03c11270e 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenFoldersImporter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenFoldersImporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,7 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ProjectRootManager; +import com.intellij.openapi.roots.impl.ModuleRootManagerImpl; import com.intellij.openapi.util.Pair; import com.intellij.util.ArrayUtil; import gnu.trove.THashMap; @@ -70,7 +70,9 @@ public class MavenFoldersImporter { if (!rootModels.isEmpty()) { ModifiableRootModel[] modelsArray = rootModels.toArray(new ModifiableRootModel[rootModels.size()]); - ProjectRootManager.getInstance(project).multiCommit(modelsArray); + if (modelsArray.length > 0) { + ModuleRootManagerImpl.multiCommit(modelsArray, ModuleManager.getInstance(modelsArray[0].getProject()).getModifiableModel()); + } } } finally {