Skip to content

Commit fed62c7

Browse files
dhasani23David Hasani
andauthored
fix(amazonq): save previously-used JDK path (#5875)
Co-authored-by: David Hasani <[email protected]>
1 parent d2ecf2e commit fed62c7

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/constants/CodeTransformChatItems.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -356,10 +356,16 @@ fun buildUserInputCustomDependencyVersionsChatContent(message: String) = CodeTra
356356
type = CodeTransformChatMessageType.PendingAnswer,
357357
)
358358

359-
fun buildPromptTargetJDKNameChatContent(version: String) = CodeTransformChatMessageContent(
360-
message = message("codemodernizer.chat.message.enter_jdk_name", version),
361-
type = CodeTransformChatMessageType.FinalizedAnswer,
362-
)
359+
fun buildPromptTargetJDKNameChatContent(version: String, currentJdkName: String?): CodeTransformChatMessageContent {
360+
var message = message("codemodernizer.chat.message.enter_jdk_name", version)
361+
if (currentJdkName != null) {
362+
message += "\n\ncurrent: `$currentJdkName`"
363+
}
364+
return CodeTransformChatMessageContent(
365+
message = message,
366+
type = CodeTransformChatMessageType.FinalizedAnswer,
367+
)
368+
}
363369

364370
fun buildInvalidTargetJdkNameChatContent(jdkName: String) = CodeTransformChatMessageContent(
365371
message = message("codemodernizer.chat.message.enter_jdk_name_error", jdkName),

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/controller/CodeTransformChatController.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ class CodeTransformChatController(
138138
private val codeModernizerManager = CodeModernizerManager.getInstance(context.project)
139139
private val artifactHandler = ArtifactHandler(context.project, GumbyClient.getInstance(context.project), codeTransformChatHelper)
140140
private val telemetry = CodeTransformTelemetryManager.getInstance(context.project)
141+
private val jdkVersionToName = mutableMapOf<String, String>()
141142

142143
override suspend fun processChatPromptMessage(message: IncomingCodeTransformMessage.ChatPrompt) {
143144
if (chatSessionStorage.getSession(message.tabId).conversationState == CodeTransformConversationState.PROMPT_TARGET_JDK_NAME) {
@@ -456,6 +457,10 @@ class CodeTransformChatController(
456457
codeTransformChatHelper.addNewMessage(buildInvalidTargetJdkNameChatContent(providedJdkName))
457458
return
458459
}
460+
val jdkVersion = codeModernizerManager.codeTransformationSession?.sessionContext?.targetJavaVersion?.name
461+
if (jdkVersion != null) {
462+
jdkVersionToName[jdkVersion] = targetJdkName
463+
}
459464
codeModernizerManager.codeTransformationSession?.sessionContext?.targetJdkName = targetJdkName
460465
codeTransformChatHelper.addNewMessage(buildUserReplyChatContent(message.message.trim()))
461466
// start local build once we get target JDK path
@@ -506,7 +511,8 @@ dependencyManagement:
506511
private suspend fun promptForTargetJdkName(tabId: String) {
507512
chatSessionStorage.getSession(tabId).conversationState = CodeTransformConversationState.PROMPT_TARGET_JDK_NAME
508513
val targetJdkVersion = codeModernizerManager.codeTransformationSession?.sessionContext?.targetJavaVersion?.name.orEmpty()
509-
codeTransformChatHelper.addNewMessage(buildPromptTargetJDKNameChatContent(targetJdkVersion))
514+
val currentJdkName = jdkVersionToName[targetJdkVersion]
515+
codeTransformChatHelper.addNewMessage(buildPromptTargetJDKNameChatContent(targetJdkVersion, currentJdkName))
510516
codeTransformChatHelper.sendChatInputEnabledMessage(tabId, true)
511517
codeTransformChatHelper.sendUpdatePlaceholderMessage(tabId, "Enter the name of your $targetJdkVersion")
512518
}

0 commit comments

Comments
 (0)