Skip to content

Commit 4819ae4

Browse files
authored
feat(toolkit): Add notification for AWS Core plugin no longer required (#6333)
* feat(toolkit): Add notification for AWS Core plugin no longer required Add a ProjectActivity that checks if the AWS Core plugin (aws.toolkit.core) is installed and notifies users that it is no longer needed starting with AWS Toolkit 4.0. The notification includes a button to open the Plugins settings page and a dismiss option. * docs: Add changelog entry for AWS Core dependency removal
1 parent d174dee commit 4819ae4

File tree

4 files changed

+65
-0
lines changed

4 files changed

+65
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "feature",
3+
"description" : "Removed dependency on the AWS Core plugin. AWS Toolkit no longer requires AWS Core to be installed."
4+
}

plugins/core/resources/resources/software/aws/toolkits/resources/MessagesBundle.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,9 @@ aws.toolkit.experimental.title=Experimental Features
346346
aws.toolkit_deprecation.message=Support for {0} {1} is being deprecated - an upcoming release will require a version based on {2} or newer.
347347
aws.toolkit_deprecation.message.gateway=Upgrade JetBrains Gateway to version {2} or newer to use the next release of the toolkit. Support for {0} {1} is being deprecated.
348348
aws.toolkit_deprecation.title=AWS Toolkit deprecation notice
349+
aws.toolkit_core_notice.title=AWS Core plugin is no longer required
350+
aws.toolkit_core_notice.message=Starting with AWS Toolkit 4.0, the AWS Core plugin is no longer needed and can be safely uninstalled.
351+
aws.toolkit_core_notice.manage_plugins=Manage Plugins
349352
aws_builder_id.service_name=AWS Builder ID
350353
aws_builder_id.sign_out=Sign out of AWS Builder ID
351354
aws_connection.credentials.label=Credentials:

plugins/toolkit/jetbrains-core/resources/META-INF/plugin.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,10 @@
370370
<!-- Min Version Notice -->
371371
<postStartupActivity implementation="software.aws.toolkits.jetbrains.core.notification.MinimumVersionChange"/>
372372
<notificationGroup id="aws.toolkit_deprecation" displayType="STICKY_BALLOON" key="aws.toolkit_deprecation.title"/>
373+
374+
<!-- AWS Core Plugin Notice -->
375+
<postStartupActivity implementation="software.aws.toolkits.jetbrains.core.notification.AwsCorePluginNotice"/>
376+
<notificationGroup id="aws.toolkit_core_notice" displayType="STICKY_BALLOON" key="aws.toolkit_core_notice.title"/>
373377
<notificationGroup id="aws.toolkit_telemetry" displayType="STICKY_BALLOON" key="aws.settings.telemetry.prompt.title"/>
374378

375379

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
// Copyright 2026 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package software.aws.toolkits.jetbrains.core.notification
5+
6+
import com.intellij.ide.plugins.PluginManagerConfigurable
7+
import com.intellij.ide.plugins.PluginManagerCore
8+
import com.intellij.ide.util.PropertiesComponent
9+
import com.intellij.notification.NotificationAction
10+
import com.intellij.notification.NotificationGroupManager
11+
import com.intellij.notification.NotificationType
12+
import com.intellij.openapi.application.ApplicationManager
13+
import com.intellij.openapi.extensions.PluginId
14+
import com.intellij.openapi.options.ShowSettingsUtil
15+
import com.intellij.openapi.project.Project
16+
import com.intellij.openapi.startup.ProjectActivity
17+
import software.aws.toolkits.resources.message
18+
19+
class AwsCorePluginNotice : ProjectActivity {
20+
override suspend fun execute(project: Project) {
21+
if (ApplicationManager.getApplication().isUnitTestMode) return
22+
if (PropertiesComponent.getInstance().getBoolean(IGNORE_PROMPT)) return
23+
if (!PluginManagerCore.isPluginInstalled(PluginId.getId(CORE_PLUGIN_ID))) return
24+
25+
val notificationGroup = NotificationGroupManager.getInstance().getNotificationGroup("aws.toolkit_core_notice")
26+
notificationGroup.createNotification(
27+
message("aws.toolkit_core_notice.title"),
28+
message("aws.toolkit_core_notice.message"),
29+
NotificationType.INFORMATION
30+
)
31+
.addAction(
32+
NotificationAction.createSimpleExpiring(message("aws.toolkit_core_notice.manage_plugins")) {
33+
ShowSettingsUtil.getInstance().showSettingsDialog(
34+
project,
35+
PluginManagerConfigurable::class.java
36+
) { configurable: PluginManagerConfigurable ->
37+
configurable.openInstalledTab(CORE_PLUGIN_NAME)
38+
}
39+
}
40+
)
41+
.addAction(
42+
NotificationAction.createSimpleExpiring(message("general.notification.action.hide_forever")) {
43+
PropertiesComponent.getInstance().setValue(IGNORE_PROMPT, true)
44+
}
45+
)
46+
.notify(project)
47+
}
48+
49+
companion object {
50+
const val CORE_PLUGIN_ID = "aws.toolkit.core"
51+
const val CORE_PLUGIN_NAME = "AWS Core"
52+
const val IGNORE_PROMPT = "aws.toolkit_core_notice.dismissed"
53+
}
54+
}

0 commit comments

Comments
 (0)