From 9e19f7b4a608269d731ababcd97ebedda738a698 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 13 Feb 2026 10:57:24 +0100 Subject: [PATCH] cleanup [*]: dropping deprecated `ApplicationInfoEx` methods and corresponding schema parts GitOrigin-RevId: 354f3454a897c53e42efbc3d321f82471478b2b3 --- .../src/idea/MPSApplicationInfo.xml | 2 +- platform/core-api/api-dump-unreviewed.txt | 2 - platform/core-api/api-dump.txt | 3 + .../openapi/application/ApplicationInfo.java | 33 +-- .../application/ex/ApplicationInfoEx.java | 155 ------------- .../application/impl/ApplicationInfoImpl.java | 207 +----------------- .../intellij/ide/actions/WhatsNewUtil.java | 5 +- .../ide/plugins/RepositoryHelper.java | 17 +- .../impl/ApplicationInfoServiceDelegate.kt | 17 +- .../LegacyExternalProductResourceUrls.kt | 103 +-------- .../src/idea/ApplicationInfo.xsd | 118 ---------- .../WhatsNewShowOnStartCheckService.kt | 12 +- 12 files changed, 46 insertions(+), 628 deletions(-) diff --git a/mps/build/intellij.mps.resources/src/idea/MPSApplicationInfo.xml b/mps/build/intellij.mps.resources/src/idea/MPSApplicationInfo.xml index b38a184c443c..e1e8be5b2b22 100644 --- a/mps/build/intellij.mps.resources/src/idea/MPSApplicationInfo.xml +++ b/mps/build/intellij.mps.resources/src/idea/MPSApplicationInfo.xml @@ -10,5 +10,5 @@ com.intellij.java com.intellij.java.ide - + diff --git a/platform/core-api/api-dump-unreviewed.txt b/platform/core-api/api-dump-unreviewed.txt index 6e0efc4b8286..11bfe05dd37b 100644 --- a/platform/core-api/api-dump-unreviewed.txt +++ b/platform/core-api/api-dump-unreviewed.txt @@ -584,8 +584,6 @@ a:com.intellij.openapi.application.ApplicationInfo - getSplashImageUrl():java.lang.String - a:getStrictVersion():java.lang.String - a:getVersionName():java.lang.String -- a:hasContextHelp():Z -- a:hasHelp():Z - s:helpAvailable():Z - isEAP():Z c:com.intellij.openapi.application.ApplicationManager diff --git a/platform/core-api/api-dump.txt b/platform/core-api/api-dump.txt index b68db44cf260..314514b98e83 100644 --- a/platform/core-api/api-dump.txt +++ b/platform/core-api/api-dump.txt @@ -433,6 +433,9 @@ com.intellij.openapi.application.Application - a:runWriteAction(com.intellij.openapi.util.ThrowableComputable):java.lang.Object - a:runWriteAction(java.lang.Runnable):V - a:saveSettings():V +a:com.intellij.openapi.application.ApplicationInfo +- hasContextHelp():Z +- hasHelp():Z com.intellij.openapi.application.ApplicationListener - java.util.EventListener - afterWriteActionFinished(java.lang.Object):V diff --git a/platform/core-api/src/com/intellij/openapi/application/ApplicationInfo.java b/platform/core-api/src/com/intellij/openapi/application/ApplicationInfo.java index 40043b688495..97b27f7b50a3 100644 --- a/platform/core-api/src/com/intellij/openapi/application/ApplicationInfo.java +++ b/platform/core-api/src/com/intellij/openapi/application/ApplicationInfo.java @@ -1,7 +1,6 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.openapi.application; -import com.intellij.diagnostic.LoadingState; import com.intellij.openapi.extensions.PluginId; import com.intellij.openapi.util.BuildNumber; import com.intellij.openapi.util.NlsSafe; @@ -87,9 +86,19 @@ public abstract class ApplicationInfo { public abstract String getCompanyURL(); - public abstract boolean hasHelp(); + /** @deprecated always {@code true} */ + @Deprecated + @ApiStatus.ScheduledForRemoval + public boolean hasHelp() { + return true; + } - public abstract boolean hasContextHelp(); + /** @deprecated always {@code true} */ + @Deprecated + @ApiStatus.ScheduledForRemoval + public boolean hasContextHelp() { + return true; + } public abstract @NlsSafe @NotNull String getFullVersion(); @@ -102,20 +111,18 @@ public abstract class ApplicationInfo { public abstract @NlsSafe @NotNull String getStrictVersion(); + /** @deprecated always {@code true} */ + @Deprecated + @ApiStatus.ScheduledForRemoval public static boolean helpAvailable() { - if (!LoadingState.COMPONENTS_LOADED.isOccurred()) { - return false; - } - ApplicationInfo info = getInstance(); - return info != null && info.hasHelp(); + return true; } + /** @deprecated always {@code true} */ + @Deprecated + @ApiStatus.ScheduledForRemoval public static boolean contextHelpAvailable() { - if (!LoadingState.COMPONENTS_LOADED.isOccurred()) { - return false; - } - ApplicationInfo info = getInstance(); - return info != null && info.hasContextHelp(); + return true; } public boolean isEAP() { diff --git a/platform/core-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java b/platform/core-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java index 935ba630e040..d3470028dd1a 100644 --- a/platform/core-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java +++ b/platform/core-impl/src/com/intellij/openapi/application/ex/ApplicationInfoEx.java @@ -48,82 +48,6 @@ public abstract class ApplicationInfoEx extends ApplicationInfo { @ApiStatus.Internal public abstract @Nullable String getFullIdeProductCode(); - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getDownloadPageUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public final @Nullable String getDownloadUrl() { - String productUrl = getProductUrl(); - return productUrl != null ? productUrl + "download/" : null; - } - - /** - * @deprecated use properties from {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getProductUrl() { - return null; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getYouTubeChannelUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getJetBrainsTvUrl() { - return null; - } - - @ApiStatus.Internal - public @Nullable UpdateUrls getUpdateUrls() { - return null; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getGettingStartedPageUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getDocumentationUrl() { - return null; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getTechnicalSupportUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getSupportUrl() { - return null; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getBugReportUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getYoutrackUrl() { - return null; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getFeedbackReporter()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getFeedbackUrl() { - return null; - } - /** * Returns URL to plugins repository without a trailing slash. */ @@ -135,85 +59,6 @@ public abstract class ApplicationInfoEx extends ApplicationInfo { public abstract @NotNull String getPluginDownloadUrl(); - /** - * @deprecated use {@link com.intellij.ide.plugins.RepositoryHelper#CUSTOM_BUILT_IN_PLUGIN_REPOSITORY_PROPERTY} system property to pass - * URL of the built-in custom plugin repository instead - */ - @SuppressWarnings("DeprecatedIsStillUsed") - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getBuiltinPluginsUrl() { - return null; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getHelpPageUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getWebHelpUrl() { - return null; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getWhatIsNewPageUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getWhatsNewUrl() { - return null; - } - - /** - * @deprecated use {@link com.intellij.ide.actions.WhatsNewUtil#isWhatsNewAvailable()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public boolean isShowWhatsNewOnUpdate() { - return false; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getKeyboardShortcutsPdfUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getWinKeymapUrl() { - return null; - } - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getKeyboardShortcutsPdfUrl()} instead - */ - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @Deprecated - public @Nullable String getMacKeymapUrl() { - return null; - } - - @ApiStatus.Internal - public interface UpdateUrls { - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#getUpdateMetadataUrl()} instead - */ - @ApiStatus.ScheduledForRemoval - @Deprecated - String getCheckingUrl(); - - /** - * @deprecated use {@link com.intellij.platform.ide.customization.ExternalProductResourceUrls#computePatchUrl} instead - */ - @ApiStatus.ScheduledForRemoval - @Deprecated - String getPatchesUrl(); - } - public abstract String getSubscriptionFormId(); public abstract boolean areSubscriptionTipsAvailable(); diff --git a/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java b/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java index 70b5efb9cad7..d67c6dc9e579 100644 --- a/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java @@ -32,7 +32,8 @@ import java.util.Calendar; import java.util.Collections; import java.util.GregorianCalendar; import java.util.List; -import java.util.Objects; + +import static java.util.Objects.requireNonNull; /** * Provides access to content of *ApplicationInfo.xml file. @@ -81,26 +82,11 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { private ZonedDateTime buildTime; private ZonedDateTime majorReleaseBuildDate; - private String myProductUrl; - private UpdateUrls myUpdateUrls; - private String myDocumentationUrl; - private String mySupportUrl; - private String myYoutrackUrl; - private String myFeedbackUrl; private String myPluginManagerUrl; private String myPluginsListUrl; private String pluginDownloadUrl; - private String myBuiltinPluginsUrl; - private String myWhatsNewUrl; - private boolean myShowWhatsNewOnUpdate; - private String myWinKeymapUrl; - private String myMacKeymapUrl; private boolean isEap; - private boolean myHasHelp = true; - private boolean myHasContextHelp = true; - private String myWebHelpUrl = "https://www.jetbrains.com/idea/webhelp/"; private final List essentialPluginIds = new ArrayList<>(); - private String myJetBrainsTvUrl; private String mySubscriptionFormId; private boolean mySubscriptionTipsAvailable; @@ -182,67 +168,11 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { } break; - case "productUrl": { - myProductUrl = child.getAttributeValue("url"); - } - break; - - case "help": { - String webHelpUrl = getAttributeValue(child, "webhelp-url"); - if (webHelpUrl != null) { - myWebHelpUrl = webHelpUrl; - } - - String attValue = child.getAttributeValue("has-help"); - myHasHelp = attValue == null || Boolean.parseBoolean(attValue); // Default is true - - attValue = child.getAttributeValue("has-context-help"); - myHasContextHelp = attValue == null || Boolean.parseBoolean(attValue); // Default is true - } - break; - - case "update-urls": { - myUpdateUrls = new UpdateUrlsImpl(child); - } - break; - - case "documentation": { - myDocumentationUrl = child.getAttributeValue("url"); - } - break; - - case "support": { - mySupportUrl = child.getAttributeValue("url"); - } - break; - - case "youtrack": { - myYoutrackUrl = child.getAttributeValue("url"); - } - break; - - case "feedback": { - myFeedbackUrl = child.getAttributeValue("url"); - } - break; - - case "whatsnew": { - myWhatsNewUrl = child.getAttributeValue("url"); - myShowWhatsNewOnUpdate = Boolean.parseBoolean(child.getAttributeValue("show-on-update")); - } - break; - case "plugins": { readPluginInfo(child); } break; - case "keymap": { - myWinKeymapUrl = child.getAttributeValue("win"); - myMacKeymapUrl = child.getAttributeValue("mac"); - } - break; - case "essential-plugin": { String id = child.content; if (id != null && !id.isEmpty()) { @@ -251,11 +181,6 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { } break; - case "jetbrains-tv": { - myJetBrainsTvUrl = child.getAttributeValue("url"); - } - break; - case "subscriptions": { //noinspection SpellCheckingInspection mySubscriptionFormId = child.getAttributeValue("formid"); @@ -293,21 +218,12 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { readPluginInfo(null); } - Objects.requireNonNull(svgIconUrl, "Missing attribute: //icon@svg"); - Objects.requireNonNull(mySmallSvgIconUrl, "Missing attribute: //icon@svg-small"); - - overrideFromProperties(); + requireNonNull(svgIconUrl, "Missing attribute: //icon@svg"); + requireNonNull(mySmallSvgIconUrl, "Missing attribute: //icon@svg-small"); essentialPluginIds.sort(null); } - private void overrideFromProperties() { - String youTrackUrlOverride = System.getProperty("application.info.youtrack.url"); - if (youTrackUrlOverride != null) { - myYoutrackUrl = youTrackUrlOverride; - } - } - public static @NotNull ApplicationInfoEx getShadowInstance() { return getShadowInstanceImpl(); } @@ -366,7 +282,7 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { @Override public @NotNull BuildNumber getBuild() { - return Objects.requireNonNull(BuildNumber.fromString(myBuildNumber)); + return requireNonNull(BuildNumber.fromString(myBuildNumber)); } @Override @@ -382,17 +298,9 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { @Override public @NotNull BuildNumber getApiVersionAsNumber() { BuildNumber build = getBuild(); - if (LOG.isDebugEnabled()) { - LOG.debug("getApiVersionAsNumber: build=" + build.asString()); - } if (myApiVersion != null) { - if (LOG.isDebugEnabled()) { - LOG.debug("getApiVersionAsNumber: myApiVersion=" + build.asString()); - } BuildNumber api = BuildNumber.fromStringWithProductCode(myApiVersion, build.getProductCode()); - if (api != null) { - return api; - } + if (api != null) return api; } return build; } @@ -527,36 +435,6 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { return System.getProperty("intellij.platform.full.ide.product.code"); } - @Override - public String getProductUrl() { - return myProductUrl; - } - - @Override - public @Nullable UpdateUrls getUpdateUrls() { - return myUpdateUrls; - } - - @Override - public String getDocumentationUrl() { - return myDocumentationUrl; - } - - @Override - public String getSupportUrl() { - return mySupportUrl; - } - - @Override - public String getYoutrackUrl() { - return myYoutrackUrl; - } - - @Override - public String getFeedbackUrl() { - return myFeedbackUrl; - } - @Override public @NotNull String getPluginManagerUrl() { return myPluginManagerUrl; @@ -577,46 +455,6 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { return pluginDownloadUrl; } - @Override - public String getBuiltinPluginsUrl() { - return myBuiltinPluginsUrl; - } - - @Override - public String getWebHelpUrl() { - return myWebHelpUrl; - } - - @Override - public boolean hasHelp() { - return myHasHelp; - } - - @Override - public boolean hasContextHelp() { - return myHasContextHelp; - } - - @Override - public String getWhatsNewUrl() { - return myWhatsNewUrl; - } - - @Override - public boolean isShowWhatsNewOnUpdate() { - return myShowWhatsNewOnUpdate; - } - - @Override - public String getWinKeymapUrl() { - return myWinKeymapUrl; - } - - @Override - public String getMacKeymapUrl() { - return myMacKeymapUrl; - } - @Override public String getFullApplicationName() { return getVersionName() + " " + getFullVersion(); @@ -627,11 +465,6 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { return myCopyrightStart; } - @Override - public String getJetBrainsTvUrl() { - return myJetBrainsTvUrl; - } - @Override public String getSubscriptionFormId() { return mySubscriptionFormId; @@ -656,7 +489,7 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { LOG.debug("getPluginsCompatibleBuildAsNumber: version=" + version.asString()); } BuildNumber buildNumber = BuildNumber.fromStringWithProductCode(version.asString(), getBuild().getProductCode()); - return Objects.requireNonNull(buildNumber); + return requireNonNull(buildNumber); } private static @Nullable String getAttributeValue(XmlElement element, String name) { @@ -700,11 +533,6 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { if (downloadUrl != null) { pluginDownloadUrl = downloadUrl; } - - String builtinPluginsUrl = element.getAttributeValue("builtin-url"); - if (builtinPluginsUrl != null && !builtinPluginsUrl.isEmpty()) { - myBuiltinPluginsUrl = builtinPluginsUrl; - } } String pluginHost = System.getProperty(IDEA_PLUGINS_HOST_PROPERTY); @@ -721,7 +549,6 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { } // copy of ApplicationInfoProperties.shortenCompanyName - @SuppressWarnings("SSBasedInspection") private static String shortenCompanyName(String name) { if (name.endsWith(" s.r.o.")) name = name.substring(0, name.length() - " s.r.o.".length()); if (name.endsWith(" Inc.")) name = name.substring(0, name.length() - " Inc.".length()); @@ -800,26 +627,6 @@ public final class ApplicationInfoImpl extends ApplicationInfoEx { return simplifiedSplashImageUrl != null; } - private static final class UpdateUrlsImpl implements UpdateUrls { - private final String myCheckingUrl; - private final String myPatchesUrl; - - private UpdateUrlsImpl(XmlElement element) { - myCheckingUrl = element.getAttributeValue("check"); - myPatchesUrl = element.getAttributeValue("patches"); - } - - @Override - public String getCheckingUrl() { - return myCheckingUrl; - } - - @Override - public String getPatchesUrl() { - return myPatchesUrl; - } - } - /** @deprecated Use {@link ApplicationManagerEx#isInStressTest} */ @Deprecated @ApiStatus.ScheduledForRemoval diff --git a/platform/platform-impl/src/com/intellij/ide/actions/WhatsNewUtil.java b/platform/platform-impl/src/com/intellij/ide/actions/WhatsNewUtil.java index e555541f9db0..a68d0aac7932 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/WhatsNewUtil.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/WhatsNewUtil.java @@ -2,7 +2,6 @@ package com.intellij.ide.actions; import com.intellij.idea.AppMode; -import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.updateSettings.UpdateStrategyCustomization; import com.intellij.platform.ide.customization.ExternalProductResourceUrls; import org.jetbrains.annotations.ApiStatus; @@ -11,8 +10,8 @@ import org.jetbrains.annotations.ApiStatus; public final class WhatsNewUtil { @ApiStatus.Internal public static boolean isWhatsNewAvailable() { - return (UpdateStrategyCustomization.getInstance().getShowWhatIsNewPageAfterUpdate() || ApplicationInfoEx.getInstanceEx().isShowWhatsNewOnUpdate()) + return UpdateStrategyCustomization.getInstance().getShowWhatIsNewPageAfterUpdate() && ExternalProductResourceUrls.getInstance().getWhatIsNewPageUrl() != null && !AppMode.isRemoteDevHost(); } -} \ No newline at end of file +} diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryHelper.java b/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryHelper.java index c922ea67498d..d8a04a1a29d8 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryHelper.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryHelper.java @@ -10,7 +10,6 @@ import com.intellij.ide.plugins.newui.PluginUiModel; import com.intellij.ide.plugins.newui.PluginUiModelAdapter; import com.intellij.ide.plugins.newui.PluginUiModelBuilderFactory; import com.intellij.openapi.application.PathManager; -import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.components.impl.stores.ComponentStorageUtil; import com.intellij.openapi.diagnostic.Logger; @@ -55,7 +54,7 @@ public final class RepositoryHelper { /** Duplicates VmOptionsGenerator.CUSTOM_BUILT_IN_PLUGIN_REPOSITORY_PROPERTY */ private static final String CUSTOM_BUILT_IN_PLUGIN_REPOSITORY_PROPERTY = "intellij.plugins.custom.built.in.repository.url"; - @SuppressWarnings("SpellCheckingInspection") private static final String PLUGIN_LIST_FILE = "availables.xml"; + private static final String PLUGIN_LIST_FILE = "availables.xml"; /** * Returns a list of configured custom plugin repository hosts. @@ -70,12 +69,7 @@ public final class RepositoryHelper { hosts.addAll(UpdateSettingsProvider.getRepositoriesFromProviders()); - @SuppressWarnings("deprecation") var pluginsUrl = ApplicationInfoEx.getInstanceEx().getBuiltinPluginsUrl(); - if (pluginsUrl != null && !"__BUILTIN_PLUGINS_URL__".equals(pluginsUrl)) { - hosts.add(pluginsUrl); - } - - pluginsUrl = System.getProperty(CUSTOM_BUILT_IN_PLUGIN_REPOSITORY_PROPERTY); + var pluginsUrl = System.getProperty(CUSTOM_BUILT_IN_PLUGIN_REPOSITORY_PROPERTY); if (pluginsUrl != null) { hosts.addAll(Arrays.asList(pluginsUrl.split(","))); } @@ -197,7 +191,9 @@ public final class RepositoryHelper { if (model.getName() == null) { var url = model.getDownloadUrl(); - model.setName(FileUtilRt.getNameWithoutExtension(url.substring(url.lastIndexOf('/') + 1))); + if (url != null) { + model.setName(FileUtilRt.getNameWithoutExtension(url.substring(url.lastIndexOf('/') + 1))); + } } var previous = result.get(pluginId); @@ -235,6 +231,7 @@ public final class RepositoryHelper { @ApiStatus.Internal @Deprecated(forRemoval = true) + @SuppressWarnings("DeprecatedIsStillUsed") public static @NotNull Collection mergePluginsFromRepositories( @NotNull List marketplacePlugins, @NotNull List customPlugins, @@ -305,7 +302,7 @@ public final class RepositoryHelper { * Looks for the given plugins in the Marketplace and custom repositories. Only compatible plugins are returned. */ public static @NotNull Collection loadPlugins(@NotNull Set pluginIds) { - var mpPlugins = MarketplaceRequests.loadLastCompatiblePluginDescriptors(pluginIds); + @SuppressWarnings("deprecation") var mpPlugins = MarketplaceRequests.loadLastCompatiblePluginDescriptors(pluginIds); var customPlugins = loadPluginsFromCustomRepositories(null).stream().filter(p -> pluginIds.contains(p.getPluginId())).toList(); return mergePluginsFromRepositories(mpPlugins, customPlugins, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoServiceDelegate.kt b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoServiceDelegate.kt index 8a0d7ec0fd2c..4eabe49f6398 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoServiceDelegate.kt +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationInfoServiceDelegate.kt @@ -24,10 +24,6 @@ internal class ApplicationInfoServiceDelegate : ApplicationInfoEx() { override fun getCompanyName(): String? = delegate.companyName override fun getShortCompanyName(): String? = delegate.shortCompanyName override fun getCompanyURL(): String? = delegate.companyURL - override fun getProductUrl(): String? = delegate.productUrl - override fun getJetBrainsTvUrl(): String? = delegate.jetBrainsTvUrl - override fun hasHelp(): Boolean = delegate.hasHelp() - override fun hasContextHelp(): Boolean = delegate.hasContextHelp() override fun getFullVersion(): String = delegate.fullVersion override fun getStrictVersion(): String = delegate.strictVersion override fun getFullApplicationName(): String? = delegate.fullApplicationName @@ -38,21 +34,10 @@ internal class ApplicationInfoServiceDelegate : ApplicationInfoEx() { override fun isMajorEAP(): Boolean = delegate.isMajorEAP() override fun isPreview(): Boolean = delegate.isPreview() override fun getFullIdeProductCode(): String? = delegate.fullIdeProductCode - override fun getUpdateUrls(): UpdateUrls? = delegate.updateUrls - override fun getDocumentationUrl(): String? = delegate.documentationUrl - override fun getSupportUrl(): String? = delegate.supportUrl - override fun getYoutrackUrl(): String? = delegate.youtrackUrl - override fun getFeedbackUrl(): String? = delegate.feedbackUrl override fun getPluginManagerUrl(): String = delegate.pluginManagerUrl override fun usesJetBrainsPluginRepository(): Boolean = delegate.usesJetBrainsPluginRepository() override fun getPluginsListUrl(): String = delegate.pluginsListUrl override fun getPluginDownloadUrl(): String = delegate.pluginDownloadUrl - override fun getBuiltinPluginsUrl(): String? = delegate.builtinPluginsUrl - override fun getWebHelpUrl(): String? = delegate.webHelpUrl - override fun getWhatsNewUrl(): String? = delegate.whatsNewUrl - override fun isShowWhatsNewOnUpdate(): Boolean = delegate.isShowWhatsNewOnUpdate() - override fun getWinKeymapUrl(): String? = delegate.winKeymapUrl - override fun getMacKeymapUrl(): String? = delegate.macKeymapUrl override fun isEssentialPlugin(pluginId: String): Boolean = delegate.isEssentialPlugin(pluginId) override fun isEssentialPlugin(pluginId: PluginId): Boolean = delegate.isEssentialPlugin(pluginId) override fun getSubscriptionFormId(): String? = delegate.subscriptionFormId @@ -66,4 +51,4 @@ internal class ApplicationInfoServiceDelegate : ApplicationInfoEx() { override fun isEAP(): Boolean = delegate.isEAP override fun getSplashImageUrl(): String? = delegate.splashImageUrl override fun isSimplifiedSplashSupported(): Boolean = delegate.isSimplifiedSplashSupported -} \ No newline at end of file +} diff --git a/platform/platform-impl/src/com/intellij/platform/ide/impl/customization/LegacyExternalProductResourceUrls.kt b/platform/platform-impl/src/com/intellij/platform/ide/impl/customization/LegacyExternalProductResourceUrls.kt index d5532bb09e08..b94854d450eb 100644 --- a/platform/platform-impl/src/com/intellij/platform/ide/impl/customization/LegacyExternalProductResourceUrls.kt +++ b/platform/platform-impl/src/com/intellij/platform/ide/impl/customization/LegacyExternalProductResourceUrls.kt @@ -1,20 +1,11 @@ // 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.platform.ide.impl.customization -import com.intellij.openapi.application.ApplicationInfo -import com.intellij.openapi.application.ex.ApplicationInfoEx import com.intellij.openapi.diagnostic.thisLogger -import com.intellij.openapi.updateSettings.impl.UpdateRequestParametersProvider import com.intellij.openapi.util.BuildNumber -import com.intellij.openapi.util.SystemInfo import com.intellij.platform.ide.customization.ExternalProductResourceUrls -import com.intellij.platform.ide.customization.FeedbackReporter -import com.intellij.ui.LicensingFacade import com.intellij.util.Url -import com.intellij.util.Urls -import com.intellij.util.io.URLUtil import org.jetbrains.annotations.ApiStatus -import java.util.regex.Pattern @ApiStatus.Internal @Suppress("DEPRECATION") @@ -28,94 +19,6 @@ class LegacyExternalProductResourceUrls : ExternalProductResourceUrls { |""".trimMargin()) } - override val updateMetadataUrl: Url? - get() { - val customUrl = System.getProperty("idea.updates.url") - if (customUrl != null) { - return Urls.newFromEncoded(customUrl) - } - val baseUrl = ApplicationInfoEx.getInstanceEx().updateUrls?.checkingUrl ?: return null - return UpdateRequestParametersProvider.passUpdateParameters(Urls.newFromEncoded(baseUrl)) - } - - override fun computePatchUrl(from: BuildNumber, to: BuildNumber): Url? { - val customUrl = computeCustomPatchDownloadUrl(from, to) - if (customUrl != null) { - return customUrl - } - val baseUrl = ApplicationInfoEx.getInstanceEx().updateUrls?.patchesUrl ?: return null - return Urls.newFromEncoded(baseUrl).resolve(computePatchFileName(from, to)) - } - - override val bugReportUrl: ((String) -> Url)? - get() { - val youtrackUrl = ApplicationInfoEx.getInstanceEx().youtrackUrl ?: return null - return { description -> Urls.newFromEncoded(youtrackUrl.replace("\$DESCR", URLUtil.encodeURIComponent(description))) } - } - - override val technicalSupportUrl: ((description: String) -> Url)? - get() { - val urlTemplate = ApplicationInfoEx.getInstanceEx().supportUrl ?: return null - return { _ -> - val url = urlTemplate - .replace("\$BUILD", ApplicationInfo.getInstance().getBuild().asStringWithoutProductCode()) - .replace("\$OS", currentOsNameForIntelliJSupport()) - .replace("\$TIMEZONE", System.getProperty("user.timezone")) - Urls.newFromEncoded(url) - } - } - - override val feedbackReporter: FeedbackReporter? - get() { - val urlTemplate = ApplicationInfoEx.getInstanceEx().feedbackUrl ?: return null - return object : FeedbackReporter { - override val destinationDescription: String - get() { - val uriPattern = Pattern.compile("[^:/?#]+://(?:www\\.)?([^/?#]*).*", Pattern.DOTALL) - val matcher = uriPattern.matcher(urlTemplate) - return if (matcher.matches()) matcher.group(1) else ApplicationInfo.getInstance().companyName - } - - override fun feedbackFormUrl(description: String): Url { - val appInfo = ApplicationInfoEx.getInstanceEx() - val build = appInfo.getBuild() - val url = urlTemplate - .replace("\$BUILD", URLUtil.encodeURIComponent(if (appInfo.isEAP) build.asStringWithoutProductCode() else build.asString())) - .replace("\$TIMEZONE", URLUtil.encodeURIComponent(System.getProperty("user.timezone", ""))) - .replace("\$VERSION", URLUtil.encodeURIComponent(appInfo.getFullVersion())) - .replace("\$EVAL", URLUtil.encodeURIComponent((LicensingFacade.getInstance()?.isEvaluationLicense == true).toString())) - .replace("\$DESCR", URLUtil.encodeURIComponent(description)) - return Urls.newFromEncoded(url) - } - } - } - - override val downloadPageUrl: Url? - get() = ApplicationInfoEx.getInstanceEx().downloadUrl?.let { Urls.newFromEncoded(it) } - - override val youTubeChannelUrl: Url? - get() = ApplicationInfoEx.getInstanceEx().jetBrainsTvUrl?.let { Urls.newFromEncoded(it) } - - override val keyboardShortcutsPdfUrl: Url? - get() { - val appInfo = ApplicationInfoEx.getInstanceEx() - val url = if (SystemInfo.isMac) appInfo.getMacKeymapUrl() else appInfo.getWinKeymapUrl() - return url?.let { Urls.newFromEncoded(url) } - } - - override val whatIsNewPageUrl: Url? - get() = ApplicationInfoEx.getInstanceEx().whatsNewUrl?.let { Urls.newFromEncoded(it) } - - override val gettingStartedPageUrl: Url? - get() = ApplicationInfoEx.getInstanceEx().documentationUrl?.let { Urls.newFromEncoded(it) } - - override val helpPageUrl: ((topicId: String) -> Url)? - get() { - val baseHelpUrl = ApplicationInfoEx.getInstanceEx().webHelpUrl ?: return null - return { topicId -> - Urls.newFromEncoded(baseHelpUrl).resolve("${ApplicationInfo.getInstance().shortVersion}/").addParameters(mapOf( - topicId to "" - )) - } - } -} \ No newline at end of file + override val updateMetadataUrl: Url? = null + override fun computePatchUrl(from: BuildNumber, to: BuildNumber): Url? = null +} diff --git a/platform/platform-resources/src/idea/ApplicationInfo.xsd b/platform/platform-resources/src/idea/ApplicationInfo.xsd index 96802b62ddbe..f6922c3a18de 100644 --- a/platform/platform-resources/src/idea/ApplicationInfo.xsd +++ b/platform/platform-resources/src/idea/ApplicationInfo.xsd @@ -14,13 +14,6 @@ - - - - Deprecated: override ExternalProductResourceUrls.downloadPageUrl instead. - - - @@ -30,45 +23,6 @@ - - - - - - Deprecated: override ExternalProductResourceUrls.gettingStartedPageUrl instead. - - - - - - - Deprecated: override ExternalProductResourceUrls.technicalSupportUrl instead. - - - - - - - Deprecated: override ExternalProductResourceUrls.bugReportUrl instead. - - - - - - - - - Deprecated: override ExternalProductResourceUrls.keyboardShortcutsPdfUrl instead. - - - - - - - Deprecated: override ExternalProductResourceUrls.youTubeChannelUrl instead. - - - @@ -134,9 +88,6 @@ - - - @@ -267,52 +218,9 @@ - - - - - Deprecated: override ExternalProductResourceUrls.helpPageUrl instead. - - - - - - - - - - - Deprecated: override ExternalProductResourceUrls.updateMetadataUrl instead. - - - - - - - Deprecated: override ExternalProductResourceUrls.computePatchUrl instead. - - - - - - - - - Deprecated: override ExternalProductResourceUrls.whatIsNewPageUrl instead. - - - - - - - Deprecated: override UpdateStrategyCustomization.showWhatIsNewPageAfterUpdate instead. - - - - @@ -323,18 +231,6 @@ - - - - Deprecated since 2023.3. - Use 'intellij.plugins.custom.built.in.repository.url' system property to pass URL of built-in custom plugin repository instead. - - - - - - - @@ -346,18 +242,4 @@ - - - - - Deprecated: override FeedbackReporter.feedbackFormUrl instead. - - - - - - - - - diff --git a/platform/whatsNew/src/com/intellij/platform/whatsNew/WhatsNewShowOnStartCheckService.kt b/platform/whatsNew/src/com/intellij/platform/whatsNew/WhatsNewShowOnStartCheckService.kt index 329ded33a87e..1020b8406b16 100644 --- a/platform/whatsNew/src/com/intellij/platform/whatsNew/WhatsNewShowOnStartCheckService.kt +++ b/platform/whatsNew/src/com/intellij/platform/whatsNew/WhatsNewShowOnStartCheckService.kt @@ -7,7 +7,6 @@ import com.intellij.ide.actions.WhatsNewUtil import com.intellij.idea.AppMode import com.intellij.internal.performanceTests.ProjectInitializationDiagnosticService import com.intellij.openapi.actionSystem.ActionManager -import com.intellij.openapi.application.ex.ApplicationInfoEx import com.intellij.openapi.client.ClientKind import com.intellij.openapi.client.ClientSessionsManager import com.intellij.openapi.components.Service @@ -51,17 +50,10 @@ private class WhatsNewEnvironmentAccessorImpl : WhatsNewEnvironmentAccessor { override fun isDefaultWhatsNewEnabledAndReadyToShow(): Boolean { val updateStrategyCustomization = UpdateStrategyCustomization.getInstance() val enabledModernWay = updateStrategyCustomization.showWhatIsNewPageAfterUpdate - @Suppress("DEPRECATION") val enabledLegacyWay = ApplicationInfoEx.getInstanceEx().isShowWhatsNewOnUpdate - if (enabledModernWay || enabledLegacyWay) { + if (enabledModernWay) { val problem = "This could lead to issues with the Vision-based What's New. Mixing of web-based and Vision-based What's New is not supported." - if (enabledModernWay) { - logger.error("${updateStrategyCustomization.javaClass}'s showWhatIsNewPageAfterUpdate is overridden to true. $problem") - } - - if (enabledLegacyWay) { - logger.error("show-on-update attribute on the element in the application info XML is set. $problem") - } + logger.error("${updateStrategyCustomization.javaClass}'s showWhatIsNewPageAfterUpdate is overridden to true. $problem") if (WhatsNewUtil.isWhatsNewAvailable()) { // if we are really able to show old What's New here, then terminate. return true