@@ -35,12 +35,14 @@ import software.aws.toolkits.jetbrains.services.amazonq.CODE_TRANSFORM_TROUBLESH
3535import software.aws.toolkits.jetbrains.services.codemodernizer.client.GumbyClient
3636import software.aws.toolkits.jetbrains.services.codemodernizer.commands.CodeTransformMessageListener
3737import software.aws.toolkits.jetbrains.services.codemodernizer.constants.HIL_POM_FILE_NAME
38+ import software.aws.toolkits.jetbrains.services.codemodernizer.controller.CodeTransformChatController
3839import software.aws.toolkits.jetbrains.services.codemodernizer.file.PomFileAnnotator
3940import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerException
4041import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerJobCompletedResult
4142import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerSessionContext
4243import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerStartJobResult
4344import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeTransformHilDownloadArtifact
45+ import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeTransformType
4446import software.aws.toolkits.jetbrains.services.codemodernizer.model.CustomerSelection
4547import software.aws.toolkits.jetbrains.services.codemodernizer.model.Dependency
4648import software.aws.toolkits.jetbrains.services.codemodernizer.model.InvalidTelemetryReason
@@ -59,6 +61,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.toolwindow.CodeMo
5961import software.aws.toolkits.jetbrains.services.codemodernizer.utils.STATES_WHERE_PLAN_EXIST
6062import software.aws.toolkits.jetbrains.services.codemodernizer.utils.createFileCopy
6163import software.aws.toolkits.jetbrains.services.codemodernizer.utils.findLineNumberByString
64+ import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getJavaModules
6265import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getMavenVersion
6366import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getModuleOrProjectNameForFile
6467import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getPathToHilArtifactPomFile
@@ -124,53 +127,65 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
124127 JavaSdkVersion .JDK_1_8 to setOf (JavaSdkVersion .JDK_17 ),
125128 JavaSdkVersion .JDK_11 to setOf (JavaSdkVersion .JDK_17 ),
126129 )
130+
127131 init {
128132 CodeModernizerSessionState .getInstance(project).setDefaults()
129133 }
130134
131- fun validate (project : Project ): ValidationResult {
135+ fun validate (project : Project , transformationType : CodeTransformType ): ValidationResult {
132136 fun validateCore (project : Project ): ValidationResult {
133137 if (isRunningOnRemoteBackend()) {
134138 return ValidationResult (
135139 false ,
136- message(" codemodernizer.notification.warn.invalid_project.description.reason.remote_backend" ),
137140 InvalidTelemetryReason (
138- CodeTransformPreValidationError .RemoteRunProject
141+ CodeTransformPreValidationError .RemoteRunProject ,
139142 )
140143 )
141144 }
142145 if (! isCodeTransformAvailable(project)) {
143146 return ValidationResult (
144147 false ,
145- message(" codemodernizer.notification.warn.invalid_project.description.reason.not_logged_in" ),
146148 InvalidTelemetryReason (
147- CodeTransformPreValidationError .NonSsoLogin
149+ CodeTransformPreValidationError .NonSsoLogin ,
148150 )
149151 )
150152 }
151153
152154 if (ProjectRootManager .getInstance(project).contentRoots.isEmpty()) {
153155 return ValidationResult (
154156 false ,
155- message(" codemodernizer.notification.warn.invalid_project.description.reason.missing_content_roots" ),
156157 InvalidTelemetryReason (
157- CodeTransformPreValidationError .NoPom
158+ CodeTransformPreValidationError .EmptyProject ,
158159 )
159160 )
160161 }
162+
163+ if (transformationType == CodeTransformType .SQL_CONVERSION ) {
164+ val javaModules = project.getJavaModules()
165+ return if (javaModules.isNotEmpty()) {
166+ ValidationResult (
167+ true ,
168+ validatedJavaModules = javaModules,
169+ )
170+ } else {
171+ ValidationResult (
172+ false ,
173+ InvalidTelemetryReason (
174+ CodeTransformPreValidationError .NoJavaProject ,
175+ )
176+ )
177+ }
178+ }
179+
161180 val supportedModules = project.getSupportedModules(supportedJavaMappings).toSet()
162181 val validProjectJdk = project.getSupportedJavaMappings(supportedJavaMappings).isNotEmpty()
163182 val projectJdk = project.tryGetJdk()
164183 if (supportedModules.isEmpty() && ! validProjectJdk) {
165184 return ValidationResult (
166185 false ,
167- message(
168- " codemodernizer.notification.warn.invalid_project.description.reason.invalid_jdk_versions" ,
169- supportedJavaMappings.keys.joinToString()
170- ),
171186 InvalidTelemetryReason (
172187 CodeTransformPreValidationError .UnsupportedJavaVersion ,
173- projectJdk? .toString().orEmpty ()
188+ projectJdk.toString()
174189 )
175190 )
176191 }
@@ -179,17 +194,12 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
179194 ValidationResult (
180195 true ,
181196 validatedBuildFiles = validatedBuildFiles,
182- validatedProjectJdkName = projectJdk?.description.orEmpty(),
183197 buildSystem = CodeTransformBuildSystem .Maven ,
184198 buildSystemVersion = getMavenVersion(project)
185199 )
186200 } else {
187201 ValidationResult (
188202 false ,
189- invalidReason = message(
190- " codemodernizer.notification.warn.invalid_project.description.reason.no_valid_files" ,
191- supportedBuildFileNames.joinToString()
192- ),
193203 invalidTelemetryReason = InvalidTelemetryReason (
194204 CodeTransformPreValidationError .UnsupportedBuildSystem ,
195205 if (isGradleProject(project)) " Gradle build" else " other build"
@@ -247,7 +257,7 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
247257 }
248258 }
249259
250- fun runModernize (copyResult : MavenCopyCommandsResult ) {
260+ fun runModernize (copyResult : MavenCopyCommandsResult ? = null ) {
251261 initStopParameters()
252262 val session = codeTransformationSession as CodeModernizerSession
253263 initModernizationJobUI(true , project.getModuleOrProjectNameForFile(session.sessionContext.configurationFile))
@@ -311,7 +321,7 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
311321 )
312322 }
313323
314- fun launchModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ) = projectCoroutineScope(project).launch {
324+ fun launchModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ? ) = projectCoroutineScope(project).launch {
315325 val result = initModernizationJob(session, copyResult)
316326
317327 postModernizationJob(result)
@@ -394,7 +404,7 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
394404
395405 fun parseBuildFile (): String? = parseBuildFile(codeTransformationSession?.sessionContext?.configurationFile)
396406
397- internal suspend fun initModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ): CodeModernizerJobCompletedResult =
407+ private suspend fun initModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ? ): CodeModernizerJobCompletedResult =
398408 when (val result = session.createModernizationJob(copyResult)) {
399409 is CodeModernizerStartJobResult .ZipCreationFailed -> {
400410 CodeModernizerJobCompletedResult .UnableToCreateJob (
@@ -666,10 +676,13 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
666676 fun createCodeModernizerSession (customerSelection : CustomerSelection , project : Project ) {
667677 codeTransformationSession = CodeModernizerSession (
668678 CodeModernizerSessionContext (
669- project,
670- customerSelection.configurationFile,
671- customerSelection.sourceJavaVersion,
672- customerSelection.targetJavaVersion,
679+ project = project,
680+ configurationFile = customerSelection.configurationFile,
681+ sourceJavaVersion = customerSelection.sourceJavaVersion,
682+ targetJavaVersion = customerSelection.targetJavaVersion,
683+ sourceVendor = customerSelection.sourceVendor,
684+ targetVendor = customerSelection.targetVendor,
685+ sourceServerName = customerSelection.sourceServerName,
673686 ),
674687 )
675688 }
0 commit comments