@@ -41,6 +41,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModerni
4141import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerSessionContext
4242import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerStartJobResult
4343import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeTransformHilDownloadArtifact
44+ import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeTransformType
4445import software.aws.toolkits.jetbrains.services.codemodernizer.model.CustomerSelection
4546import software.aws.toolkits.jetbrains.services.codemodernizer.model.Dependency
4647import software.aws.toolkits.jetbrains.services.codemodernizer.model.InvalidTelemetryReason
@@ -59,6 +60,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.toolwindow.CodeMo
5960import software.aws.toolkits.jetbrains.services.codemodernizer.utils.STATES_WHERE_PLAN_EXIST
6061import software.aws.toolkits.jetbrains.services.codemodernizer.utils.createFileCopy
6162import software.aws.toolkits.jetbrains.services.codemodernizer.utils.findLineNumberByString
63+ import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getJavaModulesWithSQL
6264import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getMavenVersion
6365import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getModuleOrProjectNameForFile
6466import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getPathToHilArtifactPomFile
@@ -125,53 +127,64 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
125127 JavaSdkVersion .JDK_11 to setOf (JavaSdkVersion .JDK_17 ),
126128 JavaSdkVersion .JDK_17 to setOf (JavaSdkVersion .JDK_17 ),
127129 )
130+
128131 init {
129132 CodeModernizerSessionState .getInstance(project).setDefaults()
130133 }
131134
132- fun validate (project : Project ): ValidationResult {
135+ fun validate (project : Project , transformationType : CodeTransformType ): ValidationResult {
133136 fun validateCore (project : Project ): ValidationResult {
134137 if (isRunningOnRemoteBackend()) {
135138 return ValidationResult (
136139 false ,
137- message(" codemodernizer.notification.warn.invalid_project.description.reason.remote_backend" ),
138140 InvalidTelemetryReason (
139- CodeTransformPreValidationError .RemoteRunProject
141+ CodeTransformPreValidationError .RemoteRunProject ,
140142 )
141143 )
142144 }
143145 if (! isCodeTransformAvailable(project)) {
144146 return ValidationResult (
145147 false ,
146- message(" codemodernizer.notification.warn.invalid_project.description.reason.not_logged_in" ),
147148 InvalidTelemetryReason (
148- CodeTransformPreValidationError .NonSsoLogin
149+ CodeTransformPreValidationError .NonSsoLogin ,
149150 )
150151 )
151152 }
152153
153154 if (ProjectRootManager .getInstance(project).contentRoots.isEmpty()) {
154155 return ValidationResult (
155156 false ,
156- message(" codemodernizer.notification.warn.invalid_project.description.reason.missing_content_roots" ),
157157 InvalidTelemetryReason (
158- CodeTransformPreValidationError .NoPom
158+ CodeTransformPreValidationError .EmptyProject ,
159159 )
160160 )
161161 }
162+
163+ if (transformationType == CodeTransformType .SQL_CONVERSION ) {
164+ val javaModules = project.getJavaModulesWithSQL()
165+ return if (javaModules.isNotEmpty()) {
166+ ValidationResult (
167+ true ,
168+ )
169+ } else {
170+ ValidationResult (
171+ false ,
172+ InvalidTelemetryReason (
173+ CodeTransformPreValidationError .NoJavaProject ,
174+ )
175+ )
176+ }
177+ }
178+
162179 val supportedModules = project.getSupportedModules(supportedJavaMappings).toSet()
163180 val validProjectJdk = project.getSupportedJavaMappings(supportedJavaMappings).isNotEmpty()
164181 val projectJdk = project.tryGetJdk()
165182 if (supportedModules.isEmpty() && ! validProjectJdk) {
166183 return ValidationResult (
167184 false ,
168- message(
169- " codemodernizer.notification.warn.invalid_project.description.reason.invalid_jdk_versions" ,
170- supportedJavaMappings.keys.joinToString()
171- ),
172185 InvalidTelemetryReason (
173186 CodeTransformPreValidationError .UnsupportedJavaVersion ,
174- projectJdk? .toString().orEmpty ()
187+ projectJdk.toString()
175188 )
176189 )
177190 }
@@ -180,17 +193,12 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
180193 ValidationResult (
181194 true ,
182195 validatedBuildFiles = validatedBuildFiles,
183- validatedProjectJdkName = projectJdk?.description.orEmpty(),
184196 buildSystem = CodeTransformBuildSystem .Maven ,
185197 buildSystemVersion = getMavenVersion(project)
186198 )
187199 } else {
188200 ValidationResult (
189201 false ,
190- invalidReason = message(
191- " codemodernizer.notification.warn.invalid_project.description.reason.no_valid_files" ,
192- supportedBuildFileNames.joinToString()
193- ),
194202 invalidTelemetryReason = InvalidTelemetryReason (
195203 CodeTransformPreValidationError .UnsupportedBuildSystem ,
196204 if (isGradleProject(project)) " Gradle build" else " other build"
@@ -248,15 +256,17 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
248256 }
249257 }
250258
251- fun runModernize (copyResult : MavenCopyCommandsResult ) {
259+ fun runModernize (copyResult : MavenCopyCommandsResult ? = null ) {
252260 initStopParameters()
253261 val session = codeTransformationSession as CodeModernizerSession
254262 initModernizationJobUI(true , project.getModuleOrProjectNameForFile(session.sessionContext.configurationFile))
255263 launchModernizationJob(session, copyResult)
256264 }
257265
258266 suspend fun resumePollingFromHil () {
259- val result = handleJobResumedFromHil(managerState.getLatestJobId(), codeTransformationSession as CodeModernizerSession )
267+ val transformationType =
268+ if (codeTransformationSession?.sessionContext?.sqlMetadataZip != null ) CodeTransformType .SQL_CONVERSION else CodeTransformType .LANGUAGE_UPGRADE
269+ val result = handleJobResumedFromHil(managerState.getLatestJobId(), codeTransformationSession as CodeModernizerSession , transformationType)
260270 postModernizationJob(result)
261271 }
262272
@@ -312,7 +322,7 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
312322 )
313323 }
314324
315- fun launchModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ) = projectCoroutineScope(project).launch {
325+ fun launchModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ? ) = projectCoroutineScope(project).launch {
316326 val result = initModernizationJob(session, copyResult)
317327
318328 postModernizationJob(result)
@@ -339,7 +349,8 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
339349 CodeModernizerSessionState .getInstance(project).currentJobCreationTime = currentJobResult.creationTime()
340350 codeTransformationSession = session
341351 initModernizationJobUI(false , project.getModuleOrProjectNameForFile(session.sessionContext.configurationFile))
342- codeModernizerBottomWindowPanelManager.setResumeJobUI(currentJobResult, plan, session.sessionContext.sourceJavaVersion)
352+ val transformationType = if (session.sessionContext.sqlMetadataZip != null ) CodeTransformType .SQL_CONVERSION else CodeTransformType .LANGUAGE_UPGRADE
353+ codeModernizerBottomWindowPanelManager.setResumeJobUI(currentJobResult, plan, session.sessionContext.sourceJavaVersion, transformationType)
343354 session.resumeJob(currentJobResult.creationTime(), lastJobId)
344355 val result = handleJobStarted(lastJobId, session)
345356 postModernizationJob(result)
@@ -395,7 +406,7 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
395406
396407 fun parseBuildFile (): String? = parseBuildFile(codeTransformationSession?.sessionContext?.configurationFile)
397408
398- internal suspend fun initModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ): CodeModernizerJobCompletedResult =
409+ private suspend fun initModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ? ): CodeModernizerJobCompletedResult =
399410 when (val result = session.createModernizationJob(copyResult)) {
400411 is CodeModernizerStartJobResult .ZipCreationFailed -> {
401412 CodeModernizerJobCompletedResult .UnableToCreateJob (
@@ -441,10 +452,12 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
441452 private suspend fun handleJobResumedFromHil (
442453 jobId : JobId ,
443454 session : CodeModernizerSession ,
455+ transformType : CodeTransformType ,
444456 ): CodeModernizerJobCompletedResult = session.pollUntilJobCompletion(
457+ transformType,
445458 jobId
446459 ) { new, plan ->
447- codeModernizerBottomWindowPanelManager.handleJobTransition(new, plan, session.sessionContext.sourceJavaVersion)
460+ codeModernizerBottomWindowPanelManager.handleJobTransition(new, plan, session.sessionContext.sourceJavaVersion, transformType )
448461 }
449462
450463 private suspend fun handleJobStarted (jobId : JobId , session : CodeModernizerSession ): CodeModernizerJobCompletedResult {
@@ -455,8 +468,10 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
455468 codeModernizerBottomWindowPanelManager.setJobRunningUI()
456469 }
457470
458- return session.pollUntilJobCompletion(jobId) { new, plan ->
459- codeModernizerBottomWindowPanelManager.handleJobTransition(new, plan, session.sessionContext.sourceJavaVersion)
471+ val transformType = if (session.sessionContext.sqlMetadataZip != null ) CodeTransformType .SQL_CONVERSION else CodeTransformType .LANGUAGE_UPGRADE
472+
473+ return session.pollUntilJobCompletion(transformType, jobId) { new, plan ->
474+ codeModernizerBottomWindowPanelManager.handleJobTransition(new, plan, session.sessionContext.sourceJavaVersion, transformType)
460475 }
461476 }
462477
@@ -667,10 +682,14 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
667682 fun createCodeModernizerSession (customerSelection : CustomerSelection , project : Project ) {
668683 codeTransformationSession = CodeModernizerSession (
669684 CodeModernizerSessionContext (
670- project,
671- customerSelection.configurationFile,
672- customerSelection.sourceJavaVersion,
673- customerSelection.targetJavaVersion,
685+ project = project,
686+ configurationFile = customerSelection.configurationFile,
687+ sourceJavaVersion = customerSelection.sourceJavaVersion,
688+ targetJavaVersion = customerSelection.targetJavaVersion,
689+ sourceVendor = customerSelection.sourceVendor,
690+ targetVendor = customerSelection.targetVendor,
691+ sourceServerName = customerSelection.sourceServerName,
692+ sqlMetadataZip = customerSelection.sqlMetadataZip,
674693 ),
675694 )
676695 }
0 commit comments