mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
hide StreamProvider
This commit is contained in:
@@ -18,7 +18,6 @@ package com.intellij.configurationStore
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.components.*
|
||||
import com.intellij.openapi.components.impl.stores.StateStorageManager
|
||||
import com.intellij.openapi.components.impl.stores.StreamProvider
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.project.impl.ProjectImpl
|
||||
import com.intellij.util.containers.ContainerUtil
|
||||
@@ -76,10 +75,6 @@ class DefaultProjectStoreImpl(override val project: ProjectImpl, private val pat
|
||||
override fun collapseMacros(path: String) = throw UnsupportedOperationException("Method collapseMacros not implemented in " + javaClass)
|
||||
|
||||
override fun getOldStorage(component: Any, componentName: String, operation: StateStorageOperation) = storage
|
||||
|
||||
override fun setStreamProvider(streamProvider: StreamProvider?) = throw UnsupportedOperationException("Method setStreamProvider not implemented in " + javaClass)
|
||||
|
||||
override fun getStreamProvider() = throw UnsupportedOperationException("Method getStreamProviders not implemented in " + javaClass)
|
||||
}
|
||||
|
||||
// don't want to optimize and use already loaded data - it will add unnecessary complexity and implementation-lock (currently we store loaded archived state in memory, but later implementation can be changed)
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.intellij.openapi.components.StoragePathMacros
|
||||
import com.intellij.openapi.components.TrackingPathMacroSubstitutor
|
||||
import com.intellij.openapi.components.impl.stores.FileStorage
|
||||
import com.intellij.openapi.components.impl.stores.StorageUtil
|
||||
import com.intellij.openapi.components.impl.stores.StreamProvider
|
||||
import com.intellij.openapi.util.JDOMUtil
|
||||
import com.intellij.openapi.util.io.systemIndependentPath
|
||||
import com.intellij.openapi.vfs.CharsetToolkit
|
||||
|
||||
@@ -37,10 +37,10 @@ public abstract class SchemeManagerFactoryBase : SchemesManagerFactory(), Settin
|
||||
abstract val componentManager: ComponentManager
|
||||
|
||||
override final fun <T : Scheme, E : ExternalizableScheme> createSchemesManager(directoryName: String, processor: SchemeProcessor<E>, roamingType: RoamingType): SchemesManager<T, E> {
|
||||
val storageManager = componentManager.stateStore.getStateStorageManager()
|
||||
val storageManager = (componentManager.stateStore).getStateStorageManager()
|
||||
|
||||
val path = checkPath(directoryName)
|
||||
val manager = SchemeManagerImpl<T, E>(path, processor, roamingType, storageManager.getStreamProvider(), pathToFile(path, storageManager), componentManager)
|
||||
val manager = SchemeManagerImpl<T, E>(path, processor, roamingType, (storageManager as? StateStorageManagerImpl)?.streamProvider, pathToFile(path, storageManager), componentManager)
|
||||
@suppress("CAST_NEVER_SUCCEEDS")
|
||||
managers.add(manager as SchemeManagerImpl<Scheme, ExternalizableScheme>)
|
||||
return manager
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.intellij.openapi.application.runWriteAction
|
||||
import com.intellij.openapi.components.RoamingType
|
||||
import com.intellij.openapi.components.impl.ServiceManagerImpl
|
||||
import com.intellij.openapi.components.impl.stores.StorageUtil
|
||||
import com.intellij.openapi.components.impl.stores.StreamProvider
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.extensions.AbstractExtensionPointBean
|
||||
import com.intellij.openapi.options.*
|
||||
|
||||
@@ -22,7 +22,6 @@ import com.intellij.openapi.components.*
|
||||
import com.intellij.openapi.components.StateStorage.SaveSession
|
||||
import com.intellij.openapi.components.StateStorageChooserEx.Resolution
|
||||
import com.intellij.openapi.components.impl.stores.StateStorageManager
|
||||
import com.intellij.openapi.components.impl.stores.StreamProvider
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.openapi.util.io.FileUtilRt
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
@@ -56,7 +55,7 @@ open class StateStorageManagerImpl(private val rootTagName: String,
|
||||
private val storageLock = ReentrantLock()
|
||||
private val storages = THashMap<String, StateStorage>()
|
||||
|
||||
private var streamProvider: StreamProvider? = null
|
||||
public var streamProvider: StreamProvider? = null
|
||||
|
||||
// access under storageLock
|
||||
private var isUseVfsListener = if (componentManager == null) ThreeState.NO else ThreeState.UNSURE // unsure because depends on stream provider state
|
||||
@@ -86,12 +85,6 @@ open class StateStorageManagerImpl(private val rootTagName: String,
|
||||
}
|
||||
}
|
||||
|
||||
override final fun getStreamProvider() = streamProvider
|
||||
|
||||
override final fun setStreamProvider(value: StreamProvider?) {
|
||||
streamProvider = value
|
||||
}
|
||||
|
||||
override final fun getMacroSubstitutor() = pathMacroSubstitutor
|
||||
|
||||
private data class Macro(val key: String, var value: String)
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.openapi.components.impl.stores
|
||||
package com.intellij.configurationStore
|
||||
|
||||
import com.intellij.openapi.components.RoamingType
|
||||
import java.io.InputStream
|
||||
@@ -17,7 +17,6 @@ package com.intellij.configurationStore
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.components.*
|
||||
import com.intellij.openapi.components.impl.stores.StreamProvider
|
||||
import com.intellij.openapi.vfs.CharsetToolkit
|
||||
import com.intellij.testFramework.*
|
||||
import com.intellij.util.SmartList
|
||||
@@ -58,7 +57,7 @@ class ApplicationStoreTest {
|
||||
val component = SeveralStoragesConfigured()
|
||||
|
||||
val streamProvider = MyStreamProvider()
|
||||
componentStore.storageManager.setStreamProvider(streamProvider)
|
||||
componentStore.storageManager.streamProvider = streamProvider
|
||||
|
||||
componentStore.initComponent(component, false)
|
||||
component.foo = "newValue"
|
||||
@@ -76,7 +75,7 @@ class ApplicationStoreTest {
|
||||
map.put(fileSpec, "<application>\n <component name=\"HttpConfigurable\">\n <option name=\"foo\" value=\"newValue\" />\n </component>\n</application>")
|
||||
streamProvider.data.put(RoamingType.PER_USER, map)
|
||||
|
||||
componentStore.storageManager.setStreamProvider(streamProvider)
|
||||
componentStore.storageManager.streamProvider = streamProvider
|
||||
componentStore.initComponent(component, false)
|
||||
assertThat(component.foo).isEqualTo("newValue")
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.intellij.configurationStore
|
||||
|
||||
import com.intellij.openapi.components.RoamingType
|
||||
import com.intellij.openapi.components.impl.stores.StreamProvider
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.util.SmartList
|
||||
import java.io.File
|
||||
|
||||
-5
@@ -57,11 +57,6 @@ public interface StateStorageManager {
|
||||
*/
|
||||
String collapseMacros(@NotNull String path);
|
||||
|
||||
void setStreamProvider(@Nullable StreamProvider streamProvider);
|
||||
|
||||
@Nullable
|
||||
StreamProvider getStreamProvider();
|
||||
|
||||
interface ExternalizationSession {
|
||||
void setState(@NotNull Storage[] storageSpecs, @NotNull Object component, @NotNull String componentName, @NotNull Object state);
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.jetbrains.settingsRepository
|
||||
|
||||
import com.intellij.configurationStore.StateStorageManagerImpl
|
||||
import com.intellij.configurationStore.StreamProvider
|
||||
import com.intellij.ide.ApplicationLoadListener
|
||||
import com.intellij.openapi.application.Application
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
@@ -22,7 +24,6 @@ import com.intellij.openapi.application.PathManager
|
||||
import com.intellij.openapi.components.RoamingType
|
||||
import com.intellij.openapi.components.StoragePathMacros
|
||||
import com.intellij.openapi.components.impl.stores.StorageUtil
|
||||
import com.intellij.openapi.components.impl.stores.StreamProvider
|
||||
import com.intellij.openapi.components.stateStore
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.progress.ProgressIndicator
|
||||
@@ -135,7 +136,7 @@ class IcsManager(dir: File) {
|
||||
return
|
||||
}
|
||||
|
||||
storageManager.setStreamProvider(ProjectLevelProvider(projectId.uid!!))
|
||||
// storageManager.setStreamProvider(ProjectLevelProvider(projectId.uid!!))
|
||||
// updateStoragesFromStreamProvider(storageManager, storageManager.getStorageFileNames())
|
||||
}
|
||||
|
||||
@@ -174,7 +175,7 @@ class IcsManager(dir: File) {
|
||||
fun beforeApplicationLoaded(application: Application) {
|
||||
repositoryActive = repositoryManager.isRepositoryExists()
|
||||
|
||||
application.stateStore.getStateStorageManager().setStreamProvider(ApplicationLevelProvider())
|
||||
(application.stateStore.getStateStorageManager() as StateStorageManagerImpl).streamProvider = ApplicationLevelProvider()
|
||||
|
||||
autoSyncManager.registerListeners(application)
|
||||
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
/*
|
||||
* 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 org.jetbrains.settingsRepository
|
||||
|
||||
import com.intellij.configurationStore.StateStorageManagerImpl
|
||||
import com.intellij.ide.actions.ExportSettingsAction
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.components.*
|
||||
@@ -8,18 +24,18 @@ import com.intellij.openapi.util.io.FileUtilRt
|
||||
import java.io.File
|
||||
|
||||
fun copyLocalConfig() {
|
||||
val stateStorageManager = ApplicationManager.getApplication()!!.stateStore.getStateStorageManager()
|
||||
val streamProvider = stateStorageManager.getStreamProvider()!! as IcsManager.IcsStreamProvider
|
||||
val storageManager = ApplicationManager.getApplication()!!.stateStore.getStateStorageManager() as StateStorageManagerImpl
|
||||
val streamProvider = storageManager.streamProvider!! as IcsManager.IcsStreamProvider
|
||||
|
||||
val fileToComponents = ExportSettingsAction.getExportableComponentsMap(true, false)
|
||||
for (file in fileToComponents.keySet()) {
|
||||
val absolutePath = FileUtilRt.toSystemIndependentName(file.getAbsolutePath())
|
||||
var fileSpec = stateStorageManager.collapseMacros(absolutePath)
|
||||
var fileSpec = storageManager.collapseMacros(absolutePath)
|
||||
if (fileSpec.equals(absolutePath)) {
|
||||
// we have not experienced such problem yet, but we are just aware
|
||||
val canonicalPath = FileUtilRt.toSystemIndependentName(file.getCanonicalPath())
|
||||
if (!canonicalPath.equals(absolutePath)) {
|
||||
fileSpec = stateStorageManager.collapseMacros(canonicalPath)
|
||||
fileSpec = storageManager.collapseMacros(canonicalPath)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
*/
|
||||
package org.jetbrains.settingsRepository.test
|
||||
|
||||
import com.intellij.configurationStore.StreamProvider
|
||||
import com.intellij.openapi.components.RoamingType
|
||||
import com.intellij.openapi.components.impl.stores.StreamProvider
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.testFramework.PlatformTestUtil
|
||||
import com.intellij.testFramework.TemporaryDirectory
|
||||
|
||||
Reference in New Issue
Block a user