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

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,7 @@
const val DOWNLOAD_SSL_HANDSHAKE_ERROR: String = "Unable to execute HTTP request: javax.net.ssl.SSLHandshakeException"
const val INVALID_ARTIFACT_ERROR: String = "Invalid artifact"
val patchDescriptions = mapOf(
"Prepare minimal upgrade to Java 17" to "This diff patch covers the set of upgrades for Springboot, JUnit, and PowerMockito frameworks in Java 17.",
"Prepare minimal upgrade to Java 21" to "This diff patch covers the set of upgrades for Springboot, JUnit, and PowerMockito frameworks in Java 21.",
"Prepare minimal upgrade to Java 17" to "This diff patch covers the set of upgrades for Springboot, JUnit, and PowerMockito frameworks.",

Check warning on line 68 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/ArtifactHandler.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/ArtifactHandler.kt#L68

Added line #L68 was not covered by tests
"Popular Enterprise Specifications and Application Frameworks upgrade" to "This diff patch covers the set of upgrades for Jakarta EE 10, Hibernate 6.2, " +
"and Micronaut 3.",
"HTTP Client Utilities, Apache Commons Utilities, and Web Frameworks" to "This diff patch covers the set of upgrades for Apache HTTP Client 5, Apache " +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,9 @@
}
private val artifactHandler = ArtifactHandler(project, GumbyClient.getInstance(project))
private val supportedJavaMappings = mapOf(
JavaSdkVersion.JDK_1_8 to setOf(JavaSdkVersion.JDK_17, JavaSdkVersion.JDK_21),
JavaSdkVersion.JDK_11 to setOf(JavaSdkVersion.JDK_17, JavaSdkVersion.JDK_21),
JavaSdkVersion.JDK_17 to setOf(JavaSdkVersion.JDK_17, JavaSdkVersion.JDK_21),
JavaSdkVersion.JDK_21 to setOf(JavaSdkVersion.JDK_21),
JavaSdkVersion.JDK_1_8 to setOf(JavaSdkVersion.JDK_17),
JavaSdkVersion.JDK_11 to setOf(JavaSdkVersion.JDK_17),
JavaSdkVersion.JDK_17 to setOf(JavaSdkVersion.JDK_17),

Check warning on line 127 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerManager.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerManager.kt#L125-L127

Added lines #L125 - L127 were not covered by tests
)

init {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
package software.aws.toolkits.jetbrains.services.codemodernizer.constants

import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.JavaSdkVersion
import com.intellij.openapi.vfs.VirtualFile
import software.amazon.awssdk.services.codewhispererstreaming.model.TransformationDownloadArtifactType
import software.aws.toolkits.jetbrains.services.amazonq.CODE_TRANSFORM_PREREQUISITES
Expand Down Expand Up @@ -177,12 +176,8 @@
mandatory = true,
options = listOf(
FormItemOption(
label = JavaSdkVersion.JDK_17.toString(),
value = JavaSdkVersion.JDK_17.toString(),
),
FormItemOption(
label = JavaSdkVersion.JDK_21.toString(),
value = JavaSdkVersion.JDK_21.toString(),
label = "JDK17",
value = "17",

Check warning on line 180 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/constants/CodeTransformChatItems.kt

View check run for this annotation

Codecov / codecov/patch

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

Added lines #L179 - L180 were not covered by tests
)
)
)
Expand Down Expand Up @@ -231,14 +226,14 @@
)
)

private fun getUserLanguageUpgradeSelectionFormattedMarkdown(moduleName: String, targetJdkVersion: String): String = """
private fun getUserLanguageUpgradeSelectionFormattedMarkdown(moduleName: String): String = """
### ${message("codemodernizer.chat.prompt.title.details")}
-------------

| | |
| :------------------- | -------: |
| **${message("codemodernizer.chat.prompt.label.module")}** | $moduleName |
| **${message("codemodernizer.chat.prompt.label.target_version")}** | $targetJdkVersion |
| **${message("codemodernizer.chat.prompt.label.target_version")}** | JDK17 |

Check warning on line 236 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/constants/CodeTransformChatItems.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L236 was not covered by tests
""".trimIndent()

private fun getUserSQLConversionSelectionFormattedMarkdown(moduleName: String, schema: String) = """
Expand Down Expand Up @@ -291,7 +286,6 @@
CodeTransformPreValidationError.EmptyProject -> message("codemodernizer.notification.warn.invalid_project.description.reason.missing_content_roots")
CodeTransformPreValidationError.UnsupportedBuildSystem -> message("codemodernizer.chat.message.validation.error.no_pom")
CodeTransformPreValidationError.NoJavaProject -> message("codemodernizer.chat.message.validation.error.no_java_project")
CodeTransformPreValidationError.JavaDowngradeAttempt -> message("codemodernizer.chat.message.validation.error.downgrade_attempt")
else -> message("codemodernizer.chat.message.validation.error.other")
}

Expand Down Expand Up @@ -324,9 +318,9 @@
formItems = listOf(selectSkipTestsFlagFormItem),
type = CodeTransformChatMessageType.FinalizedAnswer,
)
fun buildUserInputOneOrMultipleDiffsChatIntroContent(version: String): CodeTransformChatMessageContent =
fun buildUserInputOneOrMultipleDiffsChatIntroContent(): CodeTransformChatMessageContent =
CodeTransformChatMessageContent(
message = message("codemodernizer.chat.message.one_or_multiple_diffs", version.substring(4)), // extract "17" / "21" from "JDK_17" / "JDK_21"
message = message("codemodernizer.chat.message.one_or_multiple_diffs"),

Check warning on line 323 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/constants/CodeTransformChatItems.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L323 was not covered by tests
type = CodeTransformChatMessageType.FinalizedAnswer,
)
fun buildUserInputOneOrMultipleDiffsFlagChatContent(): CodeTransformChatMessageContent =
Expand Down Expand Up @@ -447,9 +441,9 @@
message = getUserSQLConversionSelectionFormattedMarkdown(moduleName, schema)
)

fun buildUserLanguageUpgradeSelectionSummaryChatContent(moduleName: String, targetJdkVersion: String) = CodeTransformChatMessageContent(
fun buildUserLanguageUpgradeSelectionSummaryChatContent(moduleName: String) = CodeTransformChatMessageContent(

Check warning on line 444 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/constants/CodeTransformChatItems.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L444 was not covered by tests
type = CodeTransformChatMessageType.Prompt,
message = getUserLanguageUpgradeSelectionFormattedMarkdown(moduleName, targetJdkVersion)
message = getUserLanguageUpgradeSelectionFormattedMarkdown(moduleName)

Check warning on line 446 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/constants/CodeTransformChatItems.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L446 was not covered by tests
)

fun buildCompileLocalInProgressChatContent() = CodeTransformChatMessageContent(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@
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.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
Expand All @@ -116,7 +115,6 @@
import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.broadcastQEvent
import software.aws.toolkits.jetbrains.services.cwc.messages.ChatMessageType
import software.aws.toolkits.resources.message
import software.aws.toolkits.telemetry.CodeTransformPreValidationError

class CodeTransformChatController(
private val context: AmazonQAppInitContext,
Expand Down Expand Up @@ -300,28 +298,14 @@
val moduleVirtualFile: VirtualFile = modulePath.toVirtualFile() as VirtualFile
val moduleName = context.project.getModuleOrProjectNameForFile(moduleVirtualFile)

codeTransformChatHelper.addNewMessage(buildUserLanguageUpgradeSelectionSummaryChatContent(moduleName, targetVersion))
codeTransformChatHelper.addNewMessage(buildUserLanguageUpgradeSelectionSummaryChatContent(moduleName))

Check warning on line 301 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/controller/CodeTransformChatController.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L301 was not covered by tests

val sourceJdk = getSourceJdk(moduleVirtualFile)

val sourceVersion = sourceJdk.toString()

if (sourceVersion == JavaSdkVersion.JDK_21.toString() && targetVersion == JavaSdkVersion.JDK_17.toString()) {
codeTransformChatHelper.addNewMessage(
buildProjectInvalidChatContent(
ValidationResult(
false,
InvalidTelemetryReason(CodeTransformPreValidationError.JavaDowngradeAttempt)
)
)
)
return
}

val selection = CustomerSelection(
configurationFile = moduleVirtualFile,
sourceJavaVersion = sourceJdk,
targetJavaVersion = if (targetVersion == JavaSdkVersion.JDK_17.toString()) JavaSdkVersion.JDK_17 else JavaSdkVersion.JDK_21,
targetJavaVersion = JavaSdkVersion.JDK_17,

Check warning on line 308 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/controller/CodeTransformChatController.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L308 was not covered by tests
)

// Create and set a session
Expand Down Expand Up @@ -403,9 +387,8 @@
codeModernizerManager.codeTransformationSession?.let {
it.sessionContext.customBuildCommand = customBuildCommand
}
val targetJdkVersion = codeModernizerManager.codeTransformationSession?.sessionContext?.targetJavaVersion?.name.orEmpty()
codeTransformChatHelper.run {
addNewMessage(buildUserInputOneOrMultipleDiffsChatIntroContent(targetJdkVersion))
addNewMessage(buildUserInputOneOrMultipleDiffsChatIntroContent())

Check warning on line 391 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/controller/CodeTransformChatController.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L391 was not covered by tests
addNewMessage(buildUserInputOneOrMultipleDiffsFlagChatContent())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
val project: Project,
var configurationFile: VirtualFile? = null, // used to ZIP module
val sourceJavaVersion: JavaSdkVersion, // always needed for startJob API
val targetJavaVersion: JavaSdkVersion, // 17 or 21
val targetJavaVersion: JavaSdkVersion = JavaSdkVersion.JDK_17, // only one supported

Check warning on line 66 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/model/CodeModernizerSessionContext.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/model/CodeModernizerSessionContext.kt#L66

Added line #L66 was not covered by tests
var transformCapabilities: List<String> = listOf(EXPLAINABILITY_V1),
var customBuildCommand: String = MAVEN_BUILD_RUN_UNIT_TESTS, // run unit tests by default
val sourceVendor: String = ORACLE_DB, // only one supported
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
data class CustomerSelection(
val configurationFile: VirtualFile? = null, // used to ZIP module
val sourceJavaVersion: JavaSdkVersion, // always needed, use default of JDK_8 for SQL conversions for startJob API call
val targetJavaVersion: JavaSdkVersion, // 17 or 21
val targetJavaVersion: JavaSdkVersion = JavaSdkVersion.JDK_17,

Check warning on line 13 in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/model/CustomerSelection.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/model/CustomerSelection.kt#L13

Added line #L13 was not covered by tests
val sourceVendor: String = ORACLE_DB, // only one supported
val targetVendor: String? = null,
val sourceServerName: String? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,5 @@ fun String.toTransformationLanguage() = when (this) {
"JDK_1_8" -> TransformationLanguage.JAVA_8
"JDK_11" -> TransformationLanguage.JAVA_11
"JDK_17" -> TransformationLanguage.JAVA_17
"JDK_21" -> TransformationLanguage.JAVA_21
else -> TransformationLanguage.UNKNOWN_TO_SDK_VERSION
}
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ class CodeWhispererCodeModernizerGumbyClientTest : CodeWhispererCodeModernizerTe
}

@Test
fun `check startCodeModernization on JAVA_17 target`() {
fun `check startCodeModernization`() {
val actual = gumbyClient.startCodeModernization("jobId", TransformationLanguage.JAVA_8, TransformationLanguage.JAVA_17)
argumentCaptor<StartTransformationRequest>().apply {
verify(bearerClient).startTransformation(capture())
Expand All @@ -146,17 +146,6 @@ class CodeWhispererCodeModernizerGumbyClientTest : CodeWhispererCodeModernizerTe
}
}

@Test
fun `check startCodeModernization on JAVA_21 target`() {
val actual = gumbyClient.startCodeModernization("jobId", TransformationLanguage.JAVA_8, TransformationLanguage.JAVA_21)
argumentCaptor<StartTransformationRequest>().apply {
verify(bearerClient).startTransformation(capture())
verifyNoInteractions(streamingBearerClient)
assertThat(actual).isInstanceOf(StartTransformationResponse::class.java)
assertThat(actual).usingRecursiveComparison().comparingOnlyFields("transformationJobId").isEqualTo(exampleStartCodeMigrationResponse)
}
}

@Test
fun `check getCodeModernizationPlan`() {
val actual = gumbyClient.getCodeModernizationPlan(JobId("JobId"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ export class CodeTransformChatConnector {
tabID,
tabType: 'codetransform',
modulePath: action.formItemValues?.module,
targetVersion: action.formItemValues?.targetVersion,
targetVersion: 'Java 17',
})
} else if (action.id === FormButtonIds.CodeTransformInputSQLMetadata) {
this.sendMessageToExtension({
Expand Down
Loading
Loading