From a5b535685e3f1923d376f7fea5ff910b113e72eb Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Sun, 3 Sep 2023 10:02:21 +0300 Subject: [PATCH] IJPL-219 log error if deprecated method is used GitOrigin-RevId: 3f83bd8d8a135a2979184d3ee98e27527ce3c294 --- .../ide/ApplicationInitializedListener.kt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/platform/ide-core/src/com/intellij/ide/ApplicationInitializedListener.kt b/platform/ide-core/src/com/intellij/ide/ApplicationInitializedListener.kt index 096e411ef4fd..94911cfdd70e 100644 --- a/platform/ide-core/src/com/intellij/ide/ApplicationInitializedListener.kt +++ b/platform/ide-core/src/com/intellij/ide/ApplicationInitializedListener.kt @@ -1,6 +1,9 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide +import com.intellij.diagnostic.PluginException +import com.intellij.ide.plugins.cl.PluginAwareClassLoader +import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.progress.blockingContext import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus @@ -19,18 +22,27 @@ interface ApplicationInitializedListener { * Write actions and time-consuming activities are forbidden because it directly affects application start time. */ suspend fun execute(asyncScope: CoroutineScope) { + val aClass = this::class.java + val message = "Override `execute` (class=$aClass)" + val classLoader = aClass.classLoader + if (classLoader is PluginAwareClassLoader) { + logger().error(PluginException(message, classLoader.pluginId)) + } + else { + logger().error(message) + } blockingContext { @Suppress("DEPRECATION") componentsInitialized() } } - @Deprecated("Use {@link #execute()}", ReplaceWith("execute()")) + @Deprecated("Use [execute]", ReplaceWith("execute()")) fun componentsInitialized() { } } -@Deprecated("Consider avoiding using of ApplicationInitializedListener") +@Deprecated("Consider avoiding using of ApplicationInitializedListener", level = DeprecationLevel.ERROR) abstract class ApplicationInitializedListenerJavaShim : ApplicationInitializedListener { final override suspend fun execute(asyncScope: CoroutineScope) { blockingContext {