From a904951ed2eee092c359ebcb7086ef05f147e593 Mon Sep 17 00:00:00 2001 From: Alexey Pegov Date: Fri, 11 Sep 2009 20:01:46 +0400 Subject: [PATCH] IDEADEV-40127 CME: IdeaServerManagerImpl.processStorages + fix ComponentVersionsProcessingTest to not save configs to bin dir --- .../intellij/ide/actions/SaveAsDirectoryBasedFormatAction.java | 5 +---- .../platform-impl/src/com/intellij/idea/IdeaTestApplication.java | 5 +++-- .../openapi/components/impl/stores/StateStorageManagerImpl.java | 9 ++++++--- .../src/com/intellij/testFramework/LightPlatformTestCase.java | 5 +++-- .../src/com/intellij/testFramework/PlatformTestCase.java | 7 ++++++- .../testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java | 3 +-- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/actions/SaveAsDirectoryBasedFormatAction.java b/platform/platform-impl/src/com/intellij/ide/actions/SaveAsDirectoryBasedFormatAction.java index 75fa211e45..56131f4a74 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/SaveAsDirectoryBasedFormatAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/SaveAsDirectoryBasedFormatAction.java @@ -16,7 +16,6 @@ import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import java.io.File; -import java.util.ArrayList; import java.util.Collection; /** @@ -43,9 +42,7 @@ public class SaveAsDirectoryBasedFormatAction extends AnAction implements DumbAw final StateStorageManager storageManager = projectStore.getStateStorageManager(); - final Collection files = storageManager.getStorageFileNames(); - final ArrayList storageFiles = new ArrayList(files); - for (String file : storageFiles) { + for (String file : storageManager.getStorageFileNames()) { storageManager.clearStateStorage(file); } diff --git a/platform/platform-impl/src/com/intellij/idea/IdeaTestApplication.java b/platform/platform-impl/src/com/intellij/idea/IdeaTestApplication.java index b70c93d7b6..9ec8a7bd09 100644 --- a/platform/platform-impl/src/com/intellij/idea/IdeaTestApplication.java +++ b/platform/platform-impl/src/com/intellij/idea/IdeaTestApplication.java @@ -9,6 +9,7 @@ import com.intellij.openapi.application.ex.ApplicationEx; import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.application.impl.PluginsFacade; import com.intellij.openapi.extensions.PluginId; +import org.jetbrains.annotations.Nullable; public class IdeaTestApplication extends CommandLineApplication { private DataProvider myDataContext; @@ -35,14 +36,14 @@ public class IdeaTestApplication extends CommandLineApplication { return myDataContext == null ? null : myDataContext.getData(dataId); } - public static synchronized IdeaTestApplication getInstance() { + public static synchronized IdeaTestApplication getInstance(@Nullable final String configPath) { if (ourInstance == null) { new IdeaTestApplication(); PluginsFacade.INSTANCE.getPlugins(); //initialization final ApplicationEx app = ApplicationManagerEx.getApplicationEx(); new WriteAction() { protected void run(Result result) throws Throwable { - app.load(null); + app.load(configPath); } }.execute(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java index f63ba96263..dffc16309c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java @@ -1,6 +1,7 @@ package com.intellij.openapi.components.impl.stores; import com.intellij.openapi.Disposable; +import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.components.*; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.options.StreamProvider; @@ -19,7 +20,9 @@ import org.jetbrains.annotations.Nullable; import org.picocontainer.MutablePicoContainer; import org.picocontainer.PicoContainer; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.net.ConnectException; import java.util.*; import java.util.regex.Matcher; @@ -87,7 +90,7 @@ public abstract class StateStorageManagerImpl implements StateStorageManager, Di } public Collection getStorageFileNames() { - return myStorages.keySet(); + return Collections.unmodifiableCollection(myStorages.keySet()); } private void putStorageToMap(final String key, final StateStorage stateStorage) { @@ -350,7 +353,7 @@ public abstract class StateStorageManagerImpl implements StateStorageManager, Di final Matcher matcher = MACRO_PATTERN.matcher(file); while (matcher.find()) { String m = matcher.group(1); - if (!myMacros.containsKey(m)) { + if (!myMacros.containsKey(m) || (!ApplicationManagerEx.getApplication().isUnitTestMode() && myMacros.get(m) == null)) { throw new IllegalArgumentException("Unknown macro: " + m + " in storage spec: " + file); } } diff --git a/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java index 76f3adacbe..560a873e09 100644 --- a/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java @@ -23,8 +23,8 @@ import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.EditorFactory; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl; -import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.module.EmptyModuleType; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; @@ -64,6 +64,7 @@ import gnu.trove.THashMap; import junit.framework.TestCase; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.io.File; @@ -117,7 +118,7 @@ public abstract class LightPlatformTestCase extends UsefulTestCase implements Da } public static void initApplication(final DataProvider dataProvider) throws Exception { - ourApplication = IdeaTestApplication.getInstance(); + ourApplication = IdeaTestApplication.getInstance(null); ourApplication.setDataProvider(dataProvider); } diff --git a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java index 325fdf7c35..9032428c86 100644 --- a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java @@ -96,9 +96,14 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro return DEFAULT_TEST_TIME; } + @Nullable + protected String getApplicationConfigDirPath() throws Exception { + return null; + } + protected void initApplication() throws Exception { boolean firstTime = ourApplication == null; - ourApplication = IdeaTestApplication.getInstance(); + ourApplication = IdeaTestApplication.getInstance(getApplicationConfigDirPath()); ourApplication.setDataProvider(this); if (firstTime) { diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java index 55dd1f2edd..8fbf6595ed 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java @@ -5,7 +5,6 @@ package com.intellij.testFramework.fixtures.impl; import com.intellij.codeInsight.completion.CompletionProgressIndicator; -import com.intellij.codeInsight.completion.CompletionProgressIndicator; import com.intellij.ide.highlighter.ProjectFileType; import com.intellij.ide.startup.impl.StartupManagerImpl; import com.intellij.idea.IdeaTestApplication; @@ -156,7 +155,7 @@ class HeavyIdeaTestFixtureImpl extends BaseFixture implements HeavyIdeaTestFixtu } private void initApplication() throws Exception { - myApplication = IdeaTestApplication.getInstance(); + myApplication = IdeaTestApplication.getInstance(null); myApplication.setDataProvider(new MyDataProvider()); } -- 2.11.4.GIT