This commit is contained in:
Vladimir Krivosheev
2015-09-25 11:03:57 +02:00
parent 860c0ca554
commit 36f786ea6e
7 changed files with 35 additions and 143 deletions
-74
View File
@@ -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
@@ -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"
}
@@ -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
}
}
@@ -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<out IComponentStore> {
return if (isDefaultProject) DefaultProjectStoreImpl::class.java else ProjectStoreImpl::class.java
}
}
@@ -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<Pair<SaveSession, VirtualFile>>) {
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<ComponentStoreImpl>.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 <T> getStorageSpecs(component: PersistentStateComponent<T>, stateSpec: State, operation: StateStorageOperation): Array<Storage> {
// 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<ComponentStoreImpl>.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<Storage>, operation: StateStorageOperation) = selectDefaultStorages(storages, operation, scheme)
}
fun selectDefaultStorages(storages: Array<Storage>, operation: StateStorageOperation, scheme: StorageScheme): Array<Storage> {
internal fun selectDefaultStorages(storages: Array<Storage>, operation: StateStorageOperation, scheme: StorageScheme): Array<Storage> {
if (operation === StateStorageOperation.READ) {
val result = SmartList<Storage>()
for (i in storages.indices.reversed()) {
@@ -352,4 +343,26 @@ fun selectDefaultStorages(storages: Array<Storage>, operation: StateStorageOpera
else {
return emptyArray()
}
}
private class ProjectWithModulesStoreImpl(project: ProjectImpl, pathMacroManager: PathMacroManager) : ProjectStoreImpl(project, pathMacroManager) {
override fun beforeSave(readonlyFiles: List<Pair<SaveSession, VirtualFile>>) {
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<out IComponentStore> {
return if (isDefaultProject) DefaultProjectStoreImpl::class.java else ProjectWithModulesStoreImpl::class.java
}
}
private class PlatformProjectStoreClassProvider : ProjectStoreClassProvider {
override fun getProjectStoreClass(isDefaultProject: Boolean): Class<out IComponentStore> {
return if (isDefaultProject) DefaultProjectStoreImpl::class.java else ProjectStoreImpl::class.java
}
}
@@ -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<out IComponentStore> {
return if (isDefaultProject) DefaultProjectStoreImpl::class.java else ProjectStoreImpl.ProjectWithModulesStoreImpl::class.java
}
}
@@ -24,7 +24,10 @@ inline fun <reified T : Any> service(): T = ServiceManager.getService(T::class.j
inline fun <reified T : Any> 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 <T> ComponentManager.getComponents(baseClass: Class<T>): List<T> = (this as ComponentManagerEx).getComponentInstancesOfType(baseClass)
fun <T> ComponentManager.getComponents(baseClass: Class<T>) = (this as ComponentManagerEx).getComponentInstancesOfType(baseClass)