From 06f16f267af3a1c7e249ecdf970d36a9dafdfe40 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Fri, 26 Mar 2021 22:28:25 +0100 Subject: [PATCH] deprecate ServiceManager.getService() GitOrigin-RevId: bf6188a9ff422222ab5ae2bbca749ceb7691394b --- .../psi/codeStyle/JavaFileCodeStyleFacade.java | 6 +++--- .../openapi/components/ServiceManager.java | 14 ++++++++------ .../intellij/psi/stubs/SerializationManagerEx.java | 6 +++--- .../com/intellij/psi/stubs/StubStringInterner.java | 3 +-- .../SearchEverywhereMLStatisticsCollector.kt | 8 +++----- .../gotoByName/SearchEverywhereConfiguration.java | 10 +++++++--- .../file/exclude/OverrideFileTypeManager.java | 3 +-- .../openapi/wm/impl/ToolWindowToolbarProvider.kt | 4 ++-- .../terminal/TerminalUiSettingsManager.java | 5 ++--- .../com/intellij/ui/win/WinShellIntegration.java | 6 +++--- .../EditorConfigEncodingCache.java | 8 ++++++-- .../plugins/emojipicker/service/EmojiService.java | 8 ++++++-- .../arrangement/TerminalCommandHistoryManager.java | 8 ++++++-- 13 files changed, 51 insertions(+), 38 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/psi/codeStyle/JavaFileCodeStyleFacade.java b/java/java-psi-api/src/com/intellij/psi/codeStyle/JavaFileCodeStyleFacade.java index 1446606cebd5..e4e1ea0de3b5 100644 --- a/java/java-psi-api/src/com/intellij/psi/codeStyle/JavaFileCodeStyleFacade.java +++ b/java/java-psi-api/src/com/intellij/psi/codeStyle/JavaFileCodeStyleFacade.java @@ -1,7 +1,7 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.psi.codeStyle; -import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; @@ -19,7 +19,7 @@ public interface JavaFileCodeStyleFacade extends CodeStyleSettingsFacade { boolean isGenerateFinalLocals(); static JavaFileCodeStyleFacade forContext(@NotNull PsiFile psiFile) { - JavaFileCodeStyleFacadeFactory factory = ServiceManager.getService(JavaFileCodeStyleFacadeFactory.class); + JavaFileCodeStyleFacadeFactory factory = ApplicationManager.getApplication().getService(JavaFileCodeStyleFacadeFactory.class); return factory.createFacade(psiFile); } } diff --git a/platform/core-api/src/com/intellij/openapi/components/ServiceManager.java b/platform/core-api/src/com/intellij/openapi/components/ServiceManager.java index 904a4a55246e..1db4f8c7943b 100644 --- a/platform/core-api/src/com/intellij/openapi/components/ServiceManager.java +++ b/platform/core-api/src/com/intellij/openapi/components/ServiceManager.java @@ -7,19 +7,21 @@ import com.intellij.openapi.util.NotNullLazyKey; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -/** - * For old-style components, the contract specifies a lifecycle: the component gets created and notified during the project opening process. - * For services, there's no such contract, so we don't even load the class implementing the service until someone requests it. - * - * In a new code please use {@link ComponentManager#getService(Class)} or {@link ComponentManager#getServiceIfCreated(Class)}. - */ public final class ServiceManager { private ServiceManager() { } + /** + * @deprecated Use {@link ComponentManager#getService(Class)}. + */ + @Deprecated public static T getService(@NotNull Class serviceClass) { return ApplicationManager.getApplication().getService(serviceClass); } + /** + * @deprecated Use {@link ComponentManager#getService(Class)}. + */ + @Deprecated public static T getService(@NotNull Project project, @NotNull Class serviceClass) { return project.getService(serviceClass); } diff --git a/platform/indexing-impl/src/com/intellij/psi/stubs/SerializationManagerEx.java b/platform/indexing-impl/src/com/intellij/psi/stubs/SerializationManagerEx.java index f42e5cdd0e1d..1a763adf6d7a 100644 --- a/platform/indexing-impl/src/com/intellij/psi/stubs/SerializationManagerEx.java +++ b/platform/indexing-impl/src/com/intellij/psi/stubs/SerializationManagerEx.java @@ -1,7 +1,7 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.psi.stubs; -import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.application.ApplicationManager; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; @@ -15,7 +15,7 @@ import java.io.OutputStream; @ApiStatus.Internal public abstract class SerializationManagerEx implements StubTreeSerializer { public static SerializationManagerEx getInstanceEx() { - return ServiceManager.getService(SerializationManagerEx.class); + return ApplicationManager.getApplication().getService(SerializationManagerEx.class); } /** diff --git a/platform/indexing-impl/src/com/intellij/psi/stubs/StubStringInterner.java b/platform/indexing-impl/src/com/intellij/psi/stubs/StubStringInterner.java index eeac67f5e766..44ed476a0b83 100644 --- a/platform/indexing-impl/src/com/intellij/psi/stubs/StubStringInterner.java +++ b/platform/indexing-impl/src/com/intellij/psi/stubs/StubStringInterner.java @@ -3,7 +3,6 @@ package com.intellij.psi.stubs; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.Service; -import com.intellij.openapi.components.ServiceManager; import com.intellij.util.containers.RecentStringInterner; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -15,7 +14,7 @@ final class StubStringInterner { private final RecentStringInterner myStringInterner; static StubStringInterner getInstance() { - return ServiceManager.getService(StubStringInterner.class); + return ApplicationManager.getApplication().getService(StubStringInterner.class); } StubStringInterner() { diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/statistics/SearchEverywhereMLStatisticsCollector.kt b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/statistics/SearchEverywhereMLStatisticsCollector.kt index a8debde1350b..3a9a27e4715c 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/statistics/SearchEverywhereMLStatisticsCollector.kt +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/statistics/SearchEverywhereMLStatisticsCollector.kt @@ -6,7 +6,6 @@ import com.intellij.ide.actions.searcheverywhere.SearchEverywhereFoundElementInf import com.intellij.ide.actions.searcheverywhere.SearchEverywhereManagerImpl import com.intellij.ide.util.gotoByName.GotoActionModel import com.intellij.ide.util.gotoByName.GotoActionModel.MatchedValue -import com.intellij.internal.statistic.eventLog.FeatureUsageData import com.intellij.internal.statistic.eventLog.fus.SearchEverywhereLogger import com.intellij.internal.statistic.eventLog.fus.SearchEverywhereLogger.log import com.intellij.internal.statistic.eventLog.fus.SearchEverywhereSessionService @@ -17,7 +16,6 @@ import com.intellij.internal.statistic.utils.StatisticsUploadAssistant import com.intellij.openapi.actionSystem.ActionManager import com.intellij.openapi.actionSystem.ToggleAction import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.project.Project import com.intellij.openapi.util.registry.Registry @@ -27,7 +25,7 @@ import kotlin.math.round internal class SearchEverywhereMLStatisticsCollector(val myProject: Project?) { - private val mySessionId = ServiceManager.getService(SearchEverywhereSessionService::class.java).incAndGet() + private val mySessionId = ApplicationManager.getApplication().getService(SearchEverywhereSessionService::class.java).incAndGet() private val myIsReporting: Boolean init { @@ -77,9 +75,9 @@ internal class SearchEverywhereMLStatisticsCollector(val myProject: Project?) { logData.addData(TOTAL_SYMBOLS_AMOUNT_DATA_KEY, symbolsInQuery) logData.addData(SE_TAB_ID_KEY, tabId) - val globalSummary = ServiceManager.getService(ActionsGlobalSummaryManager::class.java) + val globalSummary = ApplicationManager.getApplication().getService(ActionsGlobalSummaryManager::class.java) val globalTotalStats = globalSummary.totalSummary - val localSummary = ServiceManager.getService(ActionsLocalSummary::class.java) + val localSummary = ApplicationManager.getApplication().getService(ActionsLocalSummary::class.java) val localActionsStats = localSummary.getActionsStats() val localTotalStats = localSummary.getTotalStats() logData.addData(LOCAL_MAX_USAGE_COUNT_KEY, localTotalStats.maxUsageCount) diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/SearchEverywhereConfiguration.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/SearchEverywhereConfiguration.java index 576caffeaf1f..6979776e0c23 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/SearchEverywhereConfiguration.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/SearchEverywhereConfiguration.java @@ -1,7 +1,11 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.ide.util.gotoByName; -import com.intellij.openapi.components.*; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.components.Service; +import com.intellij.openapi.components.State; +import com.intellij.openapi.components.Storage; +import com.intellij.openapi.components.StoragePathMacros; /** * Configuration for contributors filter in "Search Everywhere" popup. @@ -11,7 +15,7 @@ import com.intellij.openapi.components.*; public final class SearchEverywhereConfiguration extends ChooseByNameFilterConfiguration { public static SearchEverywhereConfiguration getInstance() { - return ServiceManager.getService(SearchEverywhereConfiguration.class); + return ApplicationManager.getApplication().getService(SearchEverywhereConfiguration.class); } @Override diff --git a/platform/lang-impl/src/com/intellij/openapi/file/exclude/OverrideFileTypeManager.java b/platform/lang-impl/src/com/intellij/openapi/file/exclude/OverrideFileTypeManager.java index ff6f3478db1e..91771d535b68 100644 --- a/platform/lang-impl/src/com/intellij/openapi/file/exclude/OverrideFileTypeManager.java +++ b/platform/lang-impl/src/com/intellij/openapi/file/exclude/OverrideFileTypeManager.java @@ -3,7 +3,6 @@ package com.intellij.openapi.file.exclude; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.Service; -import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import com.intellij.openapi.fileTypes.PlainTextFileType; @@ -24,7 +23,7 @@ public final class OverrideFileTypeManager extends PersistentFileSetManager { } public static OverrideFileTypeManager getInstance() { - return ServiceManager.getService(OverrideFileTypeManager.class); + return ApplicationManager.getApplication().getService(OverrideFileTypeManager.class); } @TestOnly diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowToolbarProvider.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowToolbarProvider.kt index fbeeb202b864..d49d97a76c5b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowToolbarProvider.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowToolbarProvider.kt @@ -1,7 +1,7 @@ // Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.openapi.wm.impl -import com.intellij.openapi.components.ServiceManager +import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.project.Project import com.intellij.openapi.wm.ToolWindowAnchor import com.intellij.openapi.wm.ToolWindowAnchor.* @@ -22,6 +22,6 @@ open class ToolWindowToolbarProvider { companion object { @JvmStatic - fun getInstance(): ToolWindowToolbarProvider = ServiceManager.getService(ToolWindowToolbarProvider::class.java) + fun getInstance(): ToolWindowToolbarProvider = ApplicationManager.getApplication().getService(ToolWindowToolbarProvider::class.java) } } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/terminal/TerminalUiSettingsManager.java b/platform/platform-impl/src/com/intellij/terminal/TerminalUiSettingsManager.java index 6d521a88edc0..41df1a20c409 100644 --- a/platform/platform-impl/src/com/intellij/terminal/TerminalUiSettingsManager.java +++ b/platform/platform-impl/src/com/intellij/terminal/TerminalUiSettingsManager.java @@ -6,7 +6,6 @@ import com.intellij.ide.ui.UISettings; import com.intellij.ide.ui.UISettingsListener; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.editor.colors.*; import com.intellij.openapi.editor.colors.impl.FontPreferencesImpl; import com.intellij.openapi.editor.markup.TextAttributes; @@ -18,8 +17,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.*; -import java.util.*; import java.util.List; +import java.util.*; import java.util.concurrent.CopyOnWriteArrayList; final class TerminalUiSettingsManager implements Disposable { @@ -55,7 +54,7 @@ final class TerminalUiSettingsManager implements Disposable { } static @NotNull TerminalUiSettingsManager getInstance() { - return ServiceManager.getService(TerminalUiSettingsManager.class); + return ApplicationManager.getApplication().getService(TerminalUiSettingsManager.class); } void addListener(@NotNull JBTerminalPanel terminalPanel) { diff --git a/platform/platform-impl/src/com/intellij/ui/win/WinShellIntegration.java b/platform/platform-impl/src/com/intellij/ui/win/WinShellIntegration.java index 494d0f3d448d..3f88cf9d7b42 100644 --- a/platform/platform-impl/src/com/intellij/ui/win/WinShellIntegration.java +++ b/platform/platform-impl/src/com/intellij/ui/win/WinShellIntegration.java @@ -1,9 +1,9 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.ui.win; import com.intellij.openapi.Disposable; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.Service; -import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.util.SystemInfo; import com.intellij.util.ConcurrencyUtil; import com.intellij.util.loader.NativeLibraryLoader; @@ -71,7 +71,7 @@ final class WinShellIntegration implements Disposable { */ @Nullable public static WinShellIntegration getInstance() { - return isAvailable ? ServiceManager.getService(WinShellIntegration.class) : null; + return isAvailable ? ApplicationManager.getApplication().getService(WinShellIntegration.class) : null; } diff --git a/plugins/editorconfig/src/org/editorconfig/configmanagement/EditorConfigEncodingCache.java b/plugins/editorconfig/src/org/editorconfig/configmanagement/EditorConfigEncodingCache.java index 0ab5d396da01..1717c92c9430 100644 --- a/plugins/editorconfig/src/org/editorconfig/configmanagement/EditorConfigEncodingCache.java +++ b/plugins/editorconfig/src/org/editorconfig/configmanagement/EditorConfigEncodingCache.java @@ -1,7 +1,11 @@ // Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.editorconfig.configmanagement; -import com.intellij.openapi.components.*; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.components.PersistentStateComponent; +import com.intellij.openapi.components.State; +import com.intellij.openapi.components.Storage; +import com.intellij.openapi.components.StoragePathMacros; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.fileEditor.FileEditorManagerListener; import com.intellij.openapi.project.Project; @@ -30,7 +34,7 @@ public class EditorConfigEncodingCache implements PersistentStateComponent myCharsetMap = new ConcurrentHashMap<>(); public static EditorConfigEncodingCache getInstance() { - return ServiceManager.getService(EditorConfigEncodingCache.class); + return ApplicationManager.getApplication().getService(EditorConfigEncodingCache.class); } @Override diff --git a/plugins/emojipicker/src/org/jetbrains/plugins/emojipicker/service/EmojiService.java b/plugins/emojipicker/src/org/jetbrains/plugins/emojipicker/service/EmojiService.java index 0077fdd467e4..1167009377d1 100644 --- a/plugins/emojipicker/src/org/jetbrains/plugins/emojipicker/service/EmojiService.java +++ b/plugins/emojipicker/src/org/jetbrains/plugins/emojipicker/service/EmojiService.java @@ -1,8 +1,12 @@ // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.plugins.emojipicker.service; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.PathManager; -import com.intellij.openapi.components.*; +import com.intellij.openapi.components.PersistentStateComponent; +import com.intellij.openapi.components.Service; +import com.intellij.openapi.components.State; +import com.intellij.openapi.components.Storage; import com.intellij.openapi.progress.PerformInBackgroundOption; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; @@ -180,7 +184,7 @@ public final class EmojiService implements PersistentStateComponent pruneOutdated(), 4, TimeUnit.MINUTES); } - return ServiceManager.getService(TerminalCommandHistoryManager.class); + return ApplicationManager.getApplication().getService(TerminalCommandHistoryManager.class); } private static void pruneOutdated() {