Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type" : "feature",
"description" : "Removed dependency on the AWS Core plugin. AWS Toolkit no longer requires AWS Core to be installed."
}
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,9 @@ aws.toolkit.experimental.title=Experimental Features
aws.toolkit_deprecation.message=Support for {0} {1} is being deprecated - an upcoming release will require a version based on {2} or newer.
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.
aws.toolkit_deprecation.title=AWS Toolkit deprecation notice
aws.toolkit_core_notice.title=AWS Core plugin is no longer required
aws.toolkit_core_notice.message=Starting with AWS Toolkit 4.0, the AWS Core plugin is no longer needed and can be safely uninstalled.
aws.toolkit_core_notice.manage_plugins=Manage Plugins
aws_builder_id.service_name=AWS Builder ID
aws_builder_id.sign_out=Sign out of AWS Builder ID
aws_connection.credentials.label=Credentials:
Expand Down
4 changes: 4 additions & 0 deletions plugins/toolkit/jetbrains-core/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,10 @@
<!-- Min Version Notice -->
<postStartupActivity implementation="software.aws.toolkits.jetbrains.core.notification.MinimumVersionChange"/>
<notificationGroup id="aws.toolkit_deprecation" displayType="STICKY_BALLOON" key="aws.toolkit_deprecation.title"/>

<!-- AWS Core Plugin Notice -->
<postStartupActivity implementation="software.aws.toolkits.jetbrains.core.notification.AwsCorePluginNotice"/>
<notificationGroup id="aws.toolkit_core_notice" displayType="STICKY_BALLOON" key="aws.toolkit_core_notice.title"/>
<notificationGroup id="aws.toolkit_telemetry" displayType="STICKY_BALLOON" key="aws.settings.telemetry.prompt.title"/>


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// Copyright 2026 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.aws.toolkits.jetbrains.core.notification

import com.intellij.ide.plugins.PluginManagerConfigurable
import com.intellij.ide.plugins.PluginManagerCore
import com.intellij.ide.util.PropertiesComponent
import com.intellij.notification.NotificationAction
import com.intellij.notification.NotificationGroupManager
import com.intellij.notification.NotificationType
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.extensions.PluginId
import com.intellij.openapi.options.ShowSettingsUtil
import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.ProjectActivity
import software.aws.toolkits.resources.message

class AwsCorePluginNotice : ProjectActivity {

Check warning on line 19 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Extension class should be final and non-public

Extension class should not be public

Check warning on line 19 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Extension class should be final and non-public

Extension class should not be public
override suspend fun execute(project: Project) {
if (ApplicationManager.getApplication().isUnitTestMode) return
if (PropertiesComponent.getInstance().getBoolean(IGNORE_PROMPT)) return
if (!PluginManagerCore.isPluginInstalled(PluginId.getId(CORE_PLUGIN_ID))) return

val notificationGroup = NotificationGroupManager.getInstance().getNotificationGroup("aws.toolkit_core_notice")
notificationGroup.createNotification(
message("aws.toolkit_core_notice.title"),
message("aws.toolkit_core_notice.message"),
NotificationType.INFORMATION
)
.addAction(
NotificationAction.createSimpleExpiring(message("aws.toolkit_core_notice.manage_plugins")) {

Check warning on line 32 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Incorrect string capitalization

String 'Manage Plugins' is not properly capitalized. It should have sentence capitalization

Check warning on line 32 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Incorrect string capitalization

String 'Manage Plugins' is not properly capitalized. It should have sentence capitalization
ShowSettingsUtil.getInstance().showSettingsDialog(
project,
PluginManagerConfigurable::class.java

Check warning on line 35 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Unstable API Usage

'com.intellij.ide.plugins.PluginManagerConfigurable' is marked unstable with @ApiStatus.Internal

Check warning on line 35 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Unstable API Usage

'com.intellij.ide.plugins.PluginManagerConfigurable' is marked unstable with @ApiStatus.Internal
) { configurable: PluginManagerConfigurable ->

Check warning on line 36 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Unstable API Usage

'com.intellij.ide.plugins.PluginManagerConfigurable' is marked unstable with @ApiStatus.Internal

Check warning on line 36 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Unstable API Usage

'com.intellij.ide.plugins.PluginManagerConfigurable' is marked unstable with @ApiStatus.Internal
configurable.openInstalledTab(CORE_PLUGIN_NAME)

Check warning on line 37 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Unstable API Usage

'openInstalledTab(java.lang.@org.jetbrains.annotations.NotNull String)' is declared in unstable class 'com.intellij.ide.plugins.PluginManagerConfigurable' marked with @ApiStatus.Internal

Check warning on line 37 in plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/notification/AwsCorePluginNotice.kt

View workflow job for this annotation

GitHub Actions / qodana

Unstable API Usage

'openInstalledTab(java.lang.@org.jetbrains.annotations.NotNull String)' is declared in unstable class 'com.intellij.ide.plugins.PluginManagerConfigurable' marked with @ApiStatus.Internal
}
}
)
.addAction(
NotificationAction.createSimpleExpiring(message("general.notification.action.hide_forever")) {
PropertiesComponent.getInstance().setValue(IGNORE_PROMPT, true)
}
)
.notify(project)
}

companion object {
const val CORE_PLUGIN_ID = "aws.toolkit.core"
const val CORE_PLUGIN_NAME = "AWS Core"
const val IGNORE_PROMPT = "aws.toolkit_core_notice.dismissed"
}
}
Loading