Skip to content
Merged
Show file tree
Hide file tree
Changes from 20 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" : "/transform: run all builds client-side"
}
3 changes: 3 additions & 0 deletions plugins/amazonq/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ val prepareBundledFlare by tasks.registering(Copy::class) {
}

tasks.withType<PrepareSandboxTask>().configureEach {
from("contrib/QCT-Maven-6-16.jar") {
into("/plugin-amazonq/lib")
}
intoChild(intellijPlatform.projectName.map { "$it/flare" })
.from(prepareBundledFlare)
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,6 @@ import java.util.concurrent.atomic.AtomicBoolean
import javax.net.ssl.SSLHandshakeException

const val MAX_ZIP_SIZE = 2000000000 // 2GB
const val EXPLAINABILITY_V1 = "EXPLAINABILITY_V1"
const val SELECTIVE_TRANSFORMATION_V2 = "SELECTIVE_TRANSFORMATION_V2"

// constants for handling SDKClientException
const val CONNECTION_REFUSED_ERROR: String = "Connection refused"
Expand Down Expand Up @@ -554,6 +552,8 @@ class CodeModernizerSession(

else -> {
LOG.error(e) { e.message.toString() }
LOG.info { "Stopping transformation job [$jobId] due to unexpected error." }
stopTransformation(jobId.id)
CodeModernizerJobCompletedResult.RetryableFailure(
jobId,
message("codemodernizer.notification.info.modernize_failed.connection_failed", e.message.orEmpty()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ fun buildUserInputSQLConversionMetadataChatContent() = CodeTransformChatMessageC
)

fun buildUserInputCustomDependencyVersionsChatContent() = CodeTransformChatMessageContent(
message = "Optionally, provide a .YAML file which specifies custom dependency versions you want Q to upgrade to.",
message = message("codemodernizer.chat.message.custom_dependency_upgrades_prompt"),
buttons = listOf(
confirmCustomDependencyVersionsButton,
continueTransformationButton,
Expand All @@ -368,7 +368,7 @@ fun buildInvalidTargetJdkNameChatContent(jdkName: String) = CodeTransformChatMes
)

fun buildCustomDependencyVersionsFileValidChatContent() = CodeTransformChatMessageContent(
message = "I received your .yaml file and will upload it to Q.",
message = message("codemodernizer.chat.message.custom_dependency_upgrades_valid"),
type = CodeTransformChatMessageType.FinalizedAnswer,
)

Expand Down Expand Up @@ -415,7 +415,7 @@ fun buildSQLMetadataValidationErrorChatContent(errorReason: String) = CodeTransf

fun buildCustomDependencyVersionsFileInvalidChatContent() = CodeTransformChatMessageContent(
type = CodeTransformChatMessageType.FinalizedAnswer,
message = "The file you uploaded does not follow the format of the sample YAML file provided.",
message = message("codemodernizer.chat.message.custom_dependency_upgrades_invalid"),
)

fun buildUserCancelledChatContent() = CodeTransformChatMessageContent(
Expand Down Expand Up @@ -455,7 +455,7 @@ fun buildUserLanguageUpgradeSelectionSummaryChatContent(moduleName: String, targ

fun buildContinueTransformationChatContent() = CodeTransformChatMessageContent(
type = CodeTransformChatMessageType.FinalizedAnswer,
message = "Ok, I will continue without this information.",
message = message("codemodernizer.chat.message.custom_dependency_upgrades_continue"),
)

fun buildCompileLocalInProgressChatContent() = CodeTransformChatMessageContent(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,21 @@
package software.aws.toolkits.jetbrains.services.codemodernizer.controller

import com.intellij.ide.BrowserUtil
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.runInEdt
import com.intellij.openapi.fileChooser.FileChooser
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.module.ModuleUtil
import com.intellij.openapi.projectRoots.JavaSdkVersion
import com.intellij.openapi.projectRoots.ProjectJdkTable
import com.intellij.openapi.util.io.FileUtil.createTempDirectory
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.testFramework.LightVirtualFile
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
import org.jetbrains.yaml.YAMLFileType
import software.amazon.awssdk.services.codewhispererstreaming.model.TransformationDownloadArtifactType
import software.aws.toolkits.core.utils.debug
import software.aws.toolkits.core.utils.error
Expand All @@ -28,10 +32,8 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.ArtifactHandler
import software.aws.toolkits.jetbrains.services.codemodernizer.CodeModernizerManager
import software.aws.toolkits.jetbrains.services.codemodernizer.CodeModernizerManager.Companion.LOG
import software.aws.toolkits.jetbrains.services.codemodernizer.CodeTransformTelemetryManager
import software.aws.toolkits.jetbrains.services.codemodernizer.EXPLAINABILITY_V1
import software.aws.toolkits.jetbrains.services.codemodernizer.HilTelemetryMetaData
import software.aws.toolkits.jetbrains.services.codemodernizer.InboundAppMessagesHandler
import software.aws.toolkits.jetbrains.services.codemodernizer.SELECTIVE_TRANSFORMATION_V2
import software.aws.toolkits.jetbrains.services.codemodernizer.client.GumbyClient
import software.aws.toolkits.jetbrains.services.codemodernizer.commands.CodeTransformActionMessage
import software.aws.toolkits.jetbrains.services.codemodernizer.commands.CodeTransformCommand
Expand Down Expand Up @@ -76,6 +78,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.constants.buildTr
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.buildTransformStoppingChatContent
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.buildUserCancelledChatContent
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.buildUserHilSelection
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.buildUserInputCustomDependencyVersionsChatContent
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.buildUserInputLanguageUpgradeChatContent
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.buildUserInputSQLConversionMetadataChatContent
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.buildUserInputSkipTestsFlagChatContent
Expand All @@ -89,6 +92,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.messages.Authenti
import software.aws.toolkits.jetbrains.services.codemodernizer.messages.CodeTransformChatMessage
import software.aws.toolkits.jetbrains.services.codemodernizer.messages.CodeTransformCommandMessage
import software.aws.toolkits.jetbrains.services.codemodernizer.messages.IncomingCodeTransformMessage
import software.aws.toolkits.jetbrains.services.codemodernizer.model.CLIENT_SIDE_BUILD
import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerArtifact
import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerJobCompletedResult
import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeTransformConversationState
Expand All @@ -97,12 +101,14 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeTransfo
import software.aws.toolkits.jetbrains.services.codemodernizer.model.CustomerSelection
import software.aws.toolkits.jetbrains.services.codemodernizer.model.DownloadArtifactResult
import software.aws.toolkits.jetbrains.services.codemodernizer.model.DownloadFailureReason
import software.aws.toolkits.jetbrains.services.codemodernizer.model.EXPLAINABILITY_V1
import software.aws.toolkits.jetbrains.services.codemodernizer.model.InvalidTelemetryReason
import software.aws.toolkits.jetbrains.services.codemodernizer.model.JobId
import software.aws.toolkits.jetbrains.services.codemodernizer.model.MAVEN_BUILD_RUN_UNIT_TESTS
import software.aws.toolkits.jetbrains.services.codemodernizer.model.MAVEN_BUILD_SKIP_UNIT_TESTS
import software.aws.toolkits.jetbrains.services.codemodernizer.model.MavenCopyCommandsResult
import software.aws.toolkits.jetbrains.services.codemodernizer.model.MavenDependencyReportCommandsResult
import software.aws.toolkits.jetbrains.services.codemodernizer.model.SELECTIVE_TRANSFORMATION_V2
import software.aws.toolkits.jetbrains.services.codemodernizer.model.UploadFailureReason
import software.aws.toolkits.jetbrains.services.codemodernizer.model.ValidationResult
import software.aws.toolkits.jetbrains.services.codemodernizer.panels.managers.CodeModernizerBottomWindowPanelManager
Expand Down Expand Up @@ -412,14 +418,11 @@ class CodeTransformChatController(
codeModernizerManager.codeTransformationSession?.let {
it.sessionContext.customBuildCommand = customBuildCommand
}
// TODO: add CLIENT_SIDE_BUILD below when releasing CSB
val transformCapabilities = listOf(EXPLAINABILITY_V1, SELECTIVE_TRANSFORMATION_V2)
val transformCapabilities = listOf(EXPLAINABILITY_V1, CLIENT_SIDE_BUILD, SELECTIVE_TRANSFORMATION_V2)
codeModernizerManager.codeTransformationSession?.let {
it.sessionContext.transformCapabilities = transformCapabilities
codeModernizerManager.runLocalMavenBuild(context.project, it)
}
// TODO: when releasing CSB, delete "runLocalMavenBuild" line above and uncomment line below
// promptForCustomYamlFile()
promptForCustomYamlFile()
}

override suspend fun processCodeTransformCustomDependencyVersions(message: IncomingCodeTransformMessage.CodeTransformConfirmCustomDependencyVersions) {
Expand Down Expand Up @@ -461,14 +464,11 @@ class CodeTransformChatController(
}
}

// TODO: uncomment when releasing CSB
/*
private suspend fun promptForCustomYamlFile() {
codeTransformChatHelper.addNewMessage(buildUserInputCustomDependencyVersionsChatContent())
val sampleYAML = """
name: "custom-dependency-management"
name: "dependency-upgrade"
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"

dependencyManagement:
dependencies:
- identifier: "com.example:library1"
Expand All @@ -479,18 +479,18 @@ dependencyManagement:
targetVersion: "3.0.0"
originType: "THIRD_PARTY"
plugins:
- identifier: "com.example.plugin"
- identifier: "com.example:plugin"
targetVersion: "1.2.0"
versionProperty: "plugin.version" # Optional
""".trimIndent()

val virtualFile = LightVirtualFile("sample-dependency-management.yaml", YAMLFileType.YML, sampleYAML)
val virtualFile = LightVirtualFile("dependency_upgrade.yml", YAMLFileType.YML, sampleYAML)
virtualFile.isWritable = true
ApplicationManager.getApplication().invokeLater {
FileEditorManager.getInstance(context.project).openFile(virtualFile, true)
}
}
*/

override suspend fun processCodeTransformContinueAction(message: IncomingCodeTransformMessage.CodeTransformContinue) {
codeTransformChatHelper.addNewMessage(buildContinueTransformationChatContent())
promptForTargetJdkName(message.tabId)
Expand Down
Loading
Loading