diff --git a/build/order.txt b/build/order.txt index 665016f16be8..d1730e8a0780 100644 --- a/build/order.txt +++ b/build/order.txt @@ -500,10 +500,6 @@ org/picocontainer/LifecycleManager.class:/lib/picocontainer.jar org/picocontainer/defaults/AbstractComponentAdapter.class:/lib/picocontainer.jar org/picocontainer/defaults/MonitoringComponentAdapter.class:/lib/picocontainer.jar org/picocontainer/defaults/AssignabilityRegistrationException.class:/lib/picocontainer.jar -com/intellij/openapi/components/impl/stores/StoresFactory.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ApplicationStoreImpl.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/IApplicationStore.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ComponentStoreImpl.class:/lib/idea.jar org/picocontainer/defaults/CachingComponentAdapter.class:/lib/picocontainer.jar org/picocontainer/defaults/DecoratingComponentAdapter.class:/lib/picocontainer.jar org/picocontainer/defaults/ObjectReference.class:/lib/picocontainer.jar @@ -706,9 +702,6 @@ com/intellij/idea/IdeaApplication$IdeStarter$1.class:/lib/idea.jar org/picocontainer/defaults/CyclicDependencyException.class:/lib/picocontainer.jar org/picocontainer/defaults/PicoInvocationTargetInitializationException.class:/lib/picocontainer.jar org/picocontainer/defaults/ConstructorInjectionComponentAdapter$3.class:/lib/picocontainer.jar -com/intellij/openapi/components/impl/stores/IComponentStore$SaveSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/InvalidComponentDataException.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/StateStorageManager.class:/lib/idea.jar com/intellij/openapi/components/StateStorage.class:/lib/openapi.jar org/picocontainer/defaults/ConstructorInjectionComponentAdapter$2.class:/lib/picocontainer.jar org/picocontainer/Parameter.class:/lib/picocontainer.jar @@ -728,28 +721,15 @@ com/intellij/util/ReflectionCache$5.class:/lib/util.jar com/intellij/util/ReflectionCache$6.class:/lib/util.jar com/intellij/util/ReflectionCache$7.class:/lib/util.jar com/intellij/openapi/components/TrackingPathMacroSubstitutor.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ApplicationStoreImpl$1.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.class:/lib/idea.jar com/intellij/openapi/options/StreamProvider.class:/lib/openapi.jar -com/intellij/openapi/components/impl/stores/ComponentVersionProvider.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/StateStorageManager$SaveSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/StateStorageManager$ExternalizationSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/XmlElementStorage$StorageData.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/FileBasedStorage$FileStorageData.class:/lib/idea.jar com/intellij/openapi/components/impl/BasePathMacroManager$MyTrackingPathMacroSubstitutor.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DefaultsStateStorage.class:/lib/idea.jar com/intellij/ide/ApplicationLoadListener.class:/lib/idea.jar com/intellij/openapi/extensions/LoadingOrder$1.class:/lib/extensions.jar -com/intellij/openapi/components/impl/stores/RoamingTypeExtensionPointBean.class:/lib/idea.jar com/intellij/openapi/extensions/ExtensionInitializer.class:/lib/extensions.jar com/intellij/openapi/components/RoamingType.class:/lib/openapi.jar -com/intellij/openapi/components/impl/stores/ComponentRoamingManager.class:/lib/idea.jar com/intellij/openapi/components/impl/ServiceManagerImpl.class:/lib/idea.jar -com/intellij/openapi/components/impl/ComponentManagerImpl$ComponentConfigComponentAdapter.class:/lib/idea.jar com/intellij/openapi/util/registry/RegistryState.class:/lib/openapi.jar com/intellij/openapi/components/PersistentStateComponent.class:/lib/openapi.jar -com/intellij/openapi/project/impl/ProjectStoreClassProvider.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/IdeaProjectStoreClassProvider.class:/lib/idea.jar com/intellij/openapi/project/ProjectManager.class:/lib/openapi.jar com/intellij/openapi/project/impl/IdeaProjectManagerImpl.class:/lib/idea.jar com/intellij/openapi/project/impl/ProjectManagerImpl.class:/lib/idea.jar @@ -1430,7 +1410,6 @@ com/intellij/openapi/progress/impl/ProgressManagerImpl$3.class:/lib/idea.jar com/intellij/openapi/progress/NonCancelableSection.class:/lib/openapi.jar com/intellij/openapi/progress/impl/ProgressManagerImpl$5.class:/lib/idea.jar com/intellij/openapi/progress/impl/ProgressManagerImpl$1.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ComponentStoreImpl$1.class:/lib/idea.jar com/intellij/openapi/components/State.class:/lib/openapi.jar com/intellij/openapi/components/Storage.class:/lib/openapi.jar com/intellij/openapi/components/StorageAnnotationsDefaultValues$NullStateStorageChooser.class:/lib/openapi.jar @@ -1439,23 +1418,11 @@ com/intellij/openapi/components/StorageScheme.class:/lib/openapi.jar com/intellij/openapi/components/StorageAnnotationsDefaultValues$NullStateStorage.class:/lib/openapi.jar com/intellij/openapi/components/StorageAnnotationsDefaultValues$NullStateSplitter.class:/lib/openapi.jar com/intellij/openapi/components/StateSplitter.class:/lib/openapi.jar -com/intellij/openapi/util/RoamingTypePerPlatform.class:/lib/util.jar com/intellij/util/ReflectionUtil.class:/lib/util.jar com/intellij/openapi/application/ex/DecodeDefaultsUtil.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DefaultStateSerializer.class:/lib/idea.jar com/intellij/openapi/components/StateStorageOperation.class:/lib/openapi.jar -com/intellij/openapi/components/impl/stores/StateStorageManagerImpl$1.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/FileBasedStorage.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/XmlElementStorage.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ComponentVersionListener.class:/lib/idea.jar -com/intellij/openapi/components/StateStorage$SaveSession.class:/lib/openapi.jar -com/intellij/openapi/components/StateStorage$ExternalizationSession.class:/lib/openapi.jar -com/intellij/openapi/components/impl/stores/XmlElementStorage$MySaveSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/FileBasedStorage$FileSaveSession.class:/lib/idea.jar com/intellij/util/containers/StringInterner.class:/lib/util.jar com/intellij/util/containers/StringInterner$MySet.class:/lib/util.jar -com/intellij/openapi/components/impl/stores/XmlElementStorage$1.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/XmlElementStorage$2.class:/lib/idea.jar com/intellij/util/io/fs/FileSystem.class:/lib/util.jar com/intellij/util/io/fs/IFileSystem.class:/lib/util.jar com/intellij/util/io/fs/IoFileSystem.class:/lib/util.jar @@ -1541,7 +1508,6 @@ com/intellij/openapi/vfs/impl/BulkVirtualFileListenerAdapter.class:/lib/idea.jar com/intellij/openapi/vfs/tracker/VirtualFileTrackerImpl$1.class:/lib/idea.jar com/intellij/openapi/components/StateStorage$Listener.class:/lib/openapi.jar com/intellij/util/messages/impl/MessageBusImpl$2.class:/lib/util.jar -com/intellij/openapi/components/impl/stores/FileBasedStorage$1.class:/lib/idea.jar com/intellij/openapi/vfs/tracker/VirtualFileTrackerImpl$2.class:/lib/idea.jar com/intellij/openapi/components/impl/stores/StorageUtil.class:/lib/idea.jar com/intellij/util/io/storage/Storage$StorageDataOutput.class:/lib/util.jar @@ -3267,7 +3233,6 @@ com/intellij/openapi/progress/util/ProgressWindow$1.class:/lib/idea.jar com/intellij/openapi/progress/impl/ProgressManagerImpl$TaskRunnable.class:/lib/idea.jar com/intellij/openapi/progress/util/ProgressIndicatorBase$12.class:/lib/idea.jar com/intellij/openapi/progress/util/ProgressIndicatorBase$15.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/IComponentStore$SaveCancelledException.class:/lib/idea.jar org/picocontainer/defaults/ImmutablePicoContainerProxyFactory.class:/lib/picocontainer.jar org/picocontainer/PicoVisitor.class:/lib/picocontainer.jar org/picocontainer/PicoVerificationException.class:/lib/picocontainer.jar @@ -3275,25 +3240,7 @@ com/intellij/openapi/components/impl/ProjectPathMacroManager.class:/lib/idea.jar com/intellij/openapi/project/impl/ProjectImpl$2.class:/lib/idea.jar com/intellij/openapi/project/impl/ProjectImpl$1.class:/lib/idea.jar com/intellij/util/containers/LockPoolSynchronizedMap.class:/lib/util.jar -com/intellij/openapi/components/impl/stores/IdeaProjectStoreImpl.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectWithModulesStoreImpl.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStoreImpl.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/IProjectStore.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/BaseFileConfigurableStoreImpl.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ComponentStoreImpl$SaveSessionImpl.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStoreImpl$ProjectSaveSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectWithModulesStoreImpl$ProjectWithModulesSaveSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStoreImpl$MyStorage.class:/lib/idea.jar com/intellij/application/options/ReplacePathToMacroMap.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStoreImpl$2.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/IdeaProjectStoreImpl$1.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStateStorageManager.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStoreImpl$ProjectStorageData.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/BaseFileConfigurableStoreImpl$BaseStorageData.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStoreImpl$WsStorageData.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStoreImpl$IprStorageData.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/IdeaProjectStoreImpl$IdeaWsStorageData.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/IdeaProjectStoreImpl$IdeaIprStorageData.class:/lib/idea.jar com/intellij/openapi/wm/impl/content/GraphicsConfig.class:/lib/openapi.jar com/intellij/openapi/progress/util/ProgressWindow$1$1.class:/lib/idea.jar com/intellij/openapi/project/impl/ProjectLifecycleListener.class:/lib/idea.jar @@ -4163,12 +4110,7 @@ com/intellij/psi/search/scope/packageSet/PatternPackageSetParserExtension.class: com/intellij/analysis/AnalysisScopeBundle.class:/lib/openapi.jar messages/AnalysisScopeBundle.properties:/lib/resources_en.jar com/intellij/profile/DefaultProjectProfileManager$ProfileStateSplitter.class:/lib/openapi.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage.class:/lib/idea.jar com/intellij/util/PairConsumer.class:/lib/util.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$1.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$MyStorageData.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$StorageDataProcessor.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$2.class:/lib/idea.jar com/intellij/codeInsight/daemon/impl/SeverityRegistrar$SeverityBasedTextAttributes.class:/lib/idea.jar com/intellij/util/indexing/UnindexedFilesUpdater.class:/lib/idea.jar com/intellij/util/indexing/FileBasedIndexProjectHandler$1.class:/lib/idea.jar @@ -4834,11 +4776,7 @@ com/intellij/openapi/module/impl/ModuleImpl.class:/lib/idea.jar com/intellij/openapi/module/impl/scopes/ModuleWithDependenciesScope.class:/lib/idea.jar com/intellij/openapi/module/impl/scopes/ModuleRuntimeClasspathScope.class:/lib/idea.jar com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ModuleStoreImpl.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/IModuleStore.class:/lib/idea.jar com/intellij/openapi/components/impl/ModulePathMacroManager.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ModuleStoreImpl$ModuleFileData.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ModuleStateStorageManager.class:/lib/idea.jar com/intellij/openapi/module/impl/ModuleImpl$MyVirtualFileListener.class:/lib/idea.jar com/intellij/openapi/module/ModuleTypeManager.class:/lib/openapi.jar com/intellij/openapi/module/impl/JavaAwareModuleTypeManagerImpl.class:/lib/idea.jar @@ -11681,14 +11619,9 @@ com/intellij/codeInsight/actions/ReformatCodeAction.class:/lib/idea.jar com/intellij/codeInsight/actions/OptimizeImportsAction.class:/lib/idea.jar com/intellij/debugger/actions/ToggleMethodBreakpointAction.class:/lib/idea.jar com/intellij/compiler/actions/MakeModuleAction.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/StateStorageManagerImpl$MyExternalizationSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/CompoundExternalizationSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/XmlElementStorage$MyExternalizationSession.class:/lib/idea.jar com/intellij/openapi/components/impl/stores/DefaultStateSerializer$1.class:/lib/idea.jar com/intellij/util/xmlb/SkipDefaultValuesSerializationFilters.class:/lib/util.jar com/intellij/facet/impl/FacetState.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/StateStorageManagerImpl$MySaveSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/CompoundSaveSession.class:/lib/idea.jar com/intellij/openapi/roots/OrderRootType$1.class:/lib/openapi.jar com/intellij/openapi/roots/impl/libraries/LibraryImpl$1.class:/lib/idea.jar com/intellij/openapi/util/DifferenceFilter.class:/lib/util.jar @@ -11698,7 +11631,6 @@ com/intellij/openapi/vcs/changes/committed/CommittedChangesCache$MyRefreshRunnab com/intellij/openapi/vcs/changes/committed/CommittedChangesCache$IncomingListsZipper.class:/lib/idea.jar com/intellij/openapi/vcs/changes/committed/VcsCommittedListsZipperAdapter.class:/lib/openapi.jar com/intellij/openapi/vcs/changes/committed/CommittedChangesCache$MyProjectChangesLoader.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$MyExternalizationSession.class:/lib/idea.jar com/intellij/util/text/UniqueNameGenerator.class:/lib/util.jar com/intellij/debugger/ui/breakpoints/BreakpointManager$8.class:/lib/idea.jar org/jetbrains/plugins/groovy/annotator/intentions/dynamic/elements/DClassElement.class:/plugins/Groovy/lib/Groovy.jar @@ -11717,10 +11649,6 @@ com/intellij/openapi/module/impl/ModuleManagerImpl$4.class:/lib/idea.jar com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl$2.class:/lib/idea.jar com/intellij/execution/impl/RunManagerImpl$4.class:/lib/idea.jar com/intellij/execution/impl/RunManagerImpl$3.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$MySaveSession.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/ProjectStoreImpl$ProjectSaveSession$1.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$MySaveSession$3.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$MyStorageData$2.class:/lib/idea.jar com/intellij/openapi/vfs/ReadonlyStatusHandler.class:/lib/openapi.jar com/intellij/openapi/vcs/readOnlyHandler/ReadonlyStatusHandlerImpl.class:/lib/idea.jar com/intellij/openapi/vfs/ReadonlyStatusHandler$OperationStatus.class:/lib/openapi.jar @@ -11729,8 +11657,6 @@ com/intellij/openapi/vcs/readOnlyHandler/ReadonlyStatusHandlerImpl$State.class:/ com/intellij/openapi/vcs/readOnlyHandler/WritingAccessProvider.class:/lib/idea.jar com/intellij/openapi/vcs/changes/conflicts/ChangelistConflictAccessProvider.class:/lib/idea.jar com/intellij/history/core/storage/Storage$4.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$MySaveSession$1.class:/lib/idea.jar -com/intellij/openapi/components/impl/stores/DirectoryBasedStorage$MySaveSession$2.class:/lib/idea.jar com/intellij/openapi/vfs/newvfs/events/VFileContentChangeEvent.class:/lib/openapi.jar com/intellij/util/indexing/FileBasedIndex$ChangedFilesUpdater$2.class:/lib/idea.jar com/intellij/util/indexing/FileBasedIndex$ChangedFilesUpdater$3.class:/lib/idea.jar diff --git a/platform/configuration-store-impl/src/DefaultProjectStoreImpl.kt b/platform/configuration-store-impl/src/DefaultProjectStoreImpl.kt index 1b515e4ccf81..35d8156911a7 100644 --- a/platform/configuration-store-impl/src/DefaultProjectStoreImpl.kt +++ b/platform/configuration-store-impl/src/DefaultProjectStoreImpl.kt @@ -24,7 +24,7 @@ import com.intellij.util.containers.ContainerUtil import org.jdom.Element import java.io.File -class DefaultProjectStoreImpl(override val project: ProjectImpl, private val pathMacroManager: PathMacroManager) : ComponentStoreImpl() { +internal class DefaultProjectStoreImpl(override val project: ProjectImpl, private val pathMacroManager: PathMacroManager) : ComponentStoreImpl() { companion object { val FILE_SPEC = "${StoragePathMacros.APP_CONFIG}/project.default.xml" } diff --git a/platform/configuration-store-impl/src/ModuleStoreImpl.kt b/platform/configuration-store-impl/src/ModuleStoreImpl.kt index 53cd9b20ec5a..941f7d69ea8f 100644 --- a/platform/configuration-store-impl/src/ModuleStoreImpl.kt +++ b/platform/configuration-store-impl/src/ModuleStoreImpl.kt @@ -46,6 +46,6 @@ private open class ModuleStoreImpl(module: Module, private val pathMacroManager: } override val loadPolicy: StateLoadPolicy - get() = moduleComponentLoadPolicy ?: (project.stateStore as ProjectStoreImpl).loadPolicy + get() = moduleComponentLoadPolicy ?: (project.stateStore as ComponentStoreImpl).loadPolicy } } \ No newline at end of file diff --git a/platform/configuration-store-impl/src/PlatformProjectStoreClassProvider.kt b/platform/configuration-store-impl/src/PlatformProjectStoreClassProvider.kt deleted file mode 100644 index 3b3662c3d735..000000000000 --- a/platform/configuration-store-impl/src/PlatformProjectStoreClassProvider.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2000-2009 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.configurationStore - -import com.intellij.openapi.components.impl.stores.IComponentStore -import com.intellij.openapi.project.impl.ProjectStoreClassProvider - -class PlatformProjectStoreClassProvider : ProjectStoreClassProvider { - override fun getProjectStoreClass(isDefaultProject: Boolean): Class { - return if (isDefaultProject) DefaultProjectStoreImpl::class.java else ProjectStoreImpl::class.java - } -} \ No newline at end of file diff --git a/platform/configuration-store-impl/src/ProjectStoreImpl.kt b/platform/configuration-store-impl/src/ProjectStoreImpl.kt index d7f82735220a..1ae99c7dba8c 100644 --- a/platform/configuration-store-impl/src/ProjectStoreImpl.kt +++ b/platform/configuration-store-impl/src/ProjectStoreImpl.kt @@ -32,6 +32,7 @@ import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.project.Project import com.intellij.openapi.project.impl.ProjectImpl import com.intellij.openapi.project.impl.ProjectManagerImpl.UnableToSaveProjectNotification +import com.intellij.openapi.project.impl.ProjectStoreClassProvider import com.intellij.openapi.util.Pair import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtilRt @@ -46,7 +47,7 @@ import java.io.IOException import java.io.InputStreamReader import java.util.* -open internal class ProjectStoreImpl(override val project: ProjectImpl, private val pathMacroManager: PathMacroManager) : ComponentStoreImpl(), IProjectStore { +private open class ProjectStoreImpl(override val project: ProjectImpl, private val pathMacroManager: PathMacroManager) : ComponentStoreImpl(), IProjectStore { // protected setter used in upsource // Zelix KlassMaster - ERROR: Could not find method 'getScheme()' var scheme = StorageScheme.DEFAULT @@ -59,16 +60,6 @@ open internal class ProjectStoreImpl(override val project: ProjectImpl, private assert(!project.isDefault) } - class ProjectWithModulesStoreImpl(project: ProjectImpl, pathMacroManager: PathMacroManager) : ProjectStoreImpl(project, pathMacroManager) { - override fun beforeSave(readonlyFiles: List>) { - super.beforeSave(readonlyFiles) - - for (module in (ModuleManager.getInstance(project)?.modules ?: Module.EMPTY_ARRAY)) { - module.stateStore.save(readonlyFiles) - } - } - } - override final fun isOptimiseTestLoadSpeed() = loadPolicy != StateLoadPolicy.LOAD override final fun setOptimiseTestLoadSpeed(value: Boolean) { @@ -142,7 +133,7 @@ open internal class ProjectStoreImpl(override val project: ProjectImpl, private override fun getProjectName(): String { if (scheme == StorageScheme.DIRECTORY_BASED) { val baseDir = projectBaseDir - assert(baseDir != null) { "scheme=$scheme project file=${projectFilePath}" } + assert(baseDir != null) { "scheme=$scheme project file=$projectFilePath" } val ideaDir = baseDir!!.findChild(Project.DIRECTORY_STORE_FOLDER) if (ideaDir != null && ideaDir.isValid) { @@ -213,7 +204,7 @@ open internal class ProjectStoreImpl(override val project: ProjectImpl, private var errors = prevErrors beforeSave(readonlyFiles) - super.doSave(saveSessions, readonlyFiles, errors) + super.doSave(saveSessions, readonlyFiles, errors) val notifications = NotificationsManager.getNotificationsManager().getNotificationsOfType(UnableToSaveProjectNotification::class.java, project) if (readonlyFiles.isEmpty()) { @@ -264,7 +255,7 @@ open internal class ProjectStoreImpl(override val project: ProjectImpl, private override fun getStorageSpecs(component: PersistentStateComponent, stateSpec: State, operation: StateStorageOperation): Array { // if we create project from default, component state written not to own storage file, but to project file, // we don't have time to fix it properly, so, ancient hack restored. - val result = super.getStorageSpecs(component, stateSpec, operation) + val result = super.getStorageSpecs(component, stateSpec, operation) // don't add fake storage if project file storage already listed, otherwise data will be deleted on write (because of "deprecated") for (storage in result) { if (storage.file == StoragePathMacros.PROJECT_FILE) { @@ -313,7 +304,7 @@ open internal class ProjectStoreImpl(override val project: ProjectImpl, private override fun selectDefaultStorages(storages: Array, operation: StateStorageOperation) = selectDefaultStorages(storages, operation, scheme) } -fun selectDefaultStorages(storages: Array, operation: StateStorageOperation, scheme: StorageScheme): Array { +internal fun selectDefaultStorages(storages: Array, operation: StateStorageOperation, scheme: StorageScheme): Array { if (operation === StateStorageOperation.READ) { val result = SmartList() for (i in storages.indices.reversed()) { @@ -352,4 +343,26 @@ fun selectDefaultStorages(storages: Array, operation: StateStorageOpera else { return emptyArray() } +} + +private class ProjectWithModulesStoreImpl(project: ProjectImpl, pathMacroManager: PathMacroManager) : ProjectStoreImpl(project, pathMacroManager) { + override fun beforeSave(readonlyFiles: List>) { + super.beforeSave(readonlyFiles) + + for (module in (ModuleManager.getInstance(project)?.modules ?: Module.EMPTY_ARRAY)) { + module.stateStore.save(readonlyFiles) + } + } +} + +private class PlatformLangProjectStoreClassProvider : ProjectStoreClassProvider { + override fun getProjectStoreClass(isDefaultProject: Boolean): Class { + return if (isDefaultProject) DefaultProjectStoreImpl::class.java else ProjectWithModulesStoreImpl::class.java + } +} + +private class PlatformProjectStoreClassProvider : ProjectStoreClassProvider { + override fun getProjectStoreClass(isDefaultProject: Boolean): Class { + return if (isDefaultProject) DefaultProjectStoreImpl::class.java else ProjectStoreImpl::class.java + } } \ No newline at end of file diff --git a/platform/configuration-store-impl/src/ProjectWithModulesStoreImpl.kt b/platform/configuration-store-impl/src/ProjectWithModulesStoreImpl.kt deleted file mode 100644 index 43c278502e54..000000000000 --- a/platform/configuration-store-impl/src/ProjectWithModulesStoreImpl.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2000-2015 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.configurationStore - -import com.intellij.openapi.components.impl.stores.IComponentStore -import com.intellij.openapi.project.impl.ProjectStoreClassProvider - -class PlatformLangProjectStoreClassProvider : ProjectStoreClassProvider { - override fun getProjectStoreClass(isDefaultProject: Boolean): Class { - return if (isDefaultProject) DefaultProjectStoreImpl::class.java else ProjectStoreImpl.ProjectWithModulesStoreImpl::class.java - } -} \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/openapi/components/service.kt b/platform/platform-impl/src/com/intellij/openapi/components/service.kt index a8e27387c272..d08305472981 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/service.kt +++ b/platform/platform-impl/src/com/intellij/openapi/components/service.kt @@ -24,7 +24,10 @@ inline fun service(): T = ServiceManager.getService(T::class.j inline fun Project.service(): T = ServiceManager.getService(this, T::class.java) val ComponentManager.stateStore: IComponentStore - get() = if (this is Project) getPicoContainer().getComponentInstance(IComponentStore::class.java) as IComponentStore else getPicoContainer().getComponentInstance(IComponentStore::class.java.getName()) as IComponentStore + get() { + val key: Any = if (this is Project) IComponentStore::class.java else IComponentStore::class.java.name + return picoContainer.getComponentInstance(key) as IComponentStore + } @Suppress("DEPRECATED_SYMBOL_WITH_MESSAGE") -fun ComponentManager.getComponents(baseClass: Class): List = (this as ComponentManagerEx).getComponentInstancesOfType(baseClass) \ No newline at end of file +fun ComponentManager.getComponents(baseClass: Class) = (this as ComponentManagerEx).getComponentInstancesOfType(baseClass) \ No newline at end of file