@@ -43,10 +43,12 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModerni
4343import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeTransformHilDownloadArtifact
4444import software.aws.toolkits.jetbrains.services.codemodernizer.model.CustomerSelection
4545import software.aws.toolkits.jetbrains.services.codemodernizer.model.Dependency
46+ import software.aws.toolkits.jetbrains.services.codemodernizer.model.GRADLE_CONFIGURATION_FILE_NAME
47+ import software.aws.toolkits.jetbrains.services.codemodernizer.model.GRADLE_KTS_CONFIGURATION_FILE_NAME
4648import software.aws.toolkits.jetbrains.services.codemodernizer.model.InvalidTelemetryReason
4749import software.aws.toolkits.jetbrains.services.codemodernizer.model.JobId
50+ import software.aws.toolkits.jetbrains.services.codemodernizer.model.LocalBuildResult
4851import software.aws.toolkits.jetbrains.services.codemodernizer.model.MAVEN_CONFIGURATION_FILE_NAME
49- import software.aws.toolkits.jetbrains.services.codemodernizer.model.MavenCopyCommandsResult
5052import software.aws.toolkits.jetbrains.services.codemodernizer.model.MavenDependencyReportCommandsResult
5153import software.aws.toolkits.jetbrains.services.codemodernizer.model.UploadFailureReason
5254import software.aws.toolkits.jetbrains.services.codemodernizer.model.ValidationResult
@@ -59,7 +61,6 @@ 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
62- import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getMavenVersion
6364import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getModuleOrProjectNameForFile
6465import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getPathToHilArtifactPomFile
6566import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getPathToHilDependencyReport
@@ -78,6 +79,7 @@ import software.aws.toolkits.jetbrains.ui.feedback.CodeTransformFeedbackDialog
7879import software.aws.toolkits.jetbrains.utils.isRunningOnRemoteBackend
7980import software.aws.toolkits.jetbrains.utils.notifyStickyError
8081import software.aws.toolkits.jetbrains.utils.notifyStickyInfo
82+ import software.aws.toolkits.jetbrains.utils.notifyStickyWarn
8183import software.aws.toolkits.resources.message
8284import software.aws.toolkits.telemetry.CodeTransformBuildSystem
8385import software.aws.toolkits.telemetry.CodeTransformCancelSrcComponents
@@ -105,10 +107,10 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
105107 Disposer .register(contentManager, it)
106108 }
107109 }
108- private val supportedBuildFileNames = listOf (MAVEN_CONFIGURATION_FILE_NAME )
110+ private val supportedBuildFileNames = listOf (MAVEN_CONFIGURATION_FILE_NAME , GRADLE_CONFIGURATION_FILE_NAME , GRADLE_KTS_CONFIGURATION_FILE_NAME )
109111 private val isModernizationInProgress = AtomicBoolean (false )
110112 private val isResumingJob = AtomicBoolean (false )
111- private val isMvnRunning = AtomicBoolean (false )
113+ private val isLocalBuildRunning = AtomicBoolean (false )
112114 private val isJobSuccessfullyResumed = AtomicBoolean (false )
113115
114116 private val transformationStoppedByUsr = AtomicBoolean (false )
@@ -180,8 +182,8 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
180182 true ,
181183 validatedBuildFiles = validatedBuildFiles,
182184 validatedProjectJdkName = projectJdk?.description.orEmpty(),
183- buildSystem = CodeTransformBuildSystem . Maven ,
184- buildSystemVersion = getMavenVersion( project)
185+ // TO-DO: maybe add back the other two fields of ValidationResult
186+ // probably not since user has not selected a project at this point
185187 )
186188 } else {
187189 ValidationResult (
@@ -191,10 +193,10 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
191193 supportedBuildFileNames.joinToString()
192194 ),
193195 invalidTelemetryReason = InvalidTelemetryReason (
196+ // TO-DO: make this NonMavenGradleProject?
194197 CodeTransformPreValidationError .NonMavenProject ,
195198 if (isGradleProject(project)) " Gradle build" else " other build"
196199 ),
197- buildSystem = if (isGradleProject(project)) CodeTransformBuildSystem .Gradle else CodeTransformBuildSystem .Unknown
198200 )
199201 }
200202 }
@@ -250,11 +252,11 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
250252 }
251253 }
252254
253- fun runModernize (copyResult : MavenCopyCommandsResult ) {
255+ fun runModernize (localBuildResult : LocalBuildResult ) {
254256 initStopParameters()
255257 val session = codeTransformationSession as CodeModernizerSession
256258 initModernizationJobUI(true , project.getModuleOrProjectNameForFile(session.sessionContext.configurationFile))
257- launchModernizationJob(session, copyResult )
259+ launchModernizationJob(session, localBuildResult )
258260 }
259261
260262 suspend fun resumePollingFromHil () {
@@ -314,9 +316,8 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
314316 )
315317 }
316318
317- fun launchModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ) = projectCoroutineScope(project).launch {
318- val result = initModernizationJob(session, copyResult)
319-
319+ fun launchModernizationJob (session : CodeModernizerSession , localBuildResult : LocalBuildResult ) = projectCoroutineScope(project).launch {
320+ val result = initModernizationJob(session, localBuildResult)
320321 postModernizationJob(result)
321322 }
322323
@@ -364,22 +365,23 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
364365
365366 fun isJobOngoingInState () = managerState.flags.getOrDefault(StateFlags .IS_ONGOING , false )
366367
367- fun handleLocalMavenBuildResult ( mavenCopyCommandsResult : MavenCopyCommandsResult ) {
368- codeTransformationSession?.setLastMvnBuildResult(mavenCopyCommandsResult )
368+ private fun handleLocalBuildResult ( localBuildResult : LocalBuildResult ) {
369+ codeTransformationSession?.setLastLocalBuildResult(localBuildResult )
369370 // Send IDE notifications first
370- if (mavenCopyCommandsResult == MavenCopyCommandsResult .Failure ) {
371+ if (localBuildResult is LocalBuildResult .Failure ) {
371372 notifyStickyInfo(
372- message(" codemodernizer.notification.warn.maven_failed .title" ),
373- message( " codemodernizer.notification.warn.maven_failed.content " ) ,
373+ message(" codemodernizer.notification.warn.local_build_failed .title" ),
374+ localBuildResult.failureReason ,
374375 project,
376+ // TO-DO: maybe update URL once troubleshooting docs are updated
375377 listOf (openTroubleshootingGuideNotificationAction(CODE_TRANSFORM_TROUBLESHOOT_DOC_MVN_FAILURE ), displayFeedbackNotificationAction()),
376378 )
377379 }
378380
379- CodeTransformMessageListener .instance.onMavenBuildResult(mavenCopyCommandsResult )
381+ CodeTransformMessageListener .instance.onLocalBuildResult(localBuildResult )
380382 }
381383
382- fun runLocalMavenBuild (project : Project , customerSelection : CustomerSelection ) {
384+ fun runLocalBuild (project : Project , customerSelection : CustomerSelection ) {
383385 // TODO: deprecated metric - remove after BI started using new metric
384386 telemetry.jobStartedCompleteFromPopupDialog(customerSelection)
385387
@@ -389,17 +391,17 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
389391 codeTransformationSession = session
390392
391393 projectCoroutineScope(project).launch {
392- isMvnRunning .set(true )
393- val result = session.getDependenciesUsingMaven ()
394- isMvnRunning .set(false )
395- handleLocalMavenBuildResult (result)
394+ isLocalBuildRunning .set(true )
395+ val result = session.getDependencies ()
396+ isLocalBuildRunning .set(false )
397+ handleLocalBuildResult (result)
396398 }
397399 }
398400
399401 fun parseBuildFile (): String? = parseBuildFile(codeTransformationSession?.sessionContext?.configurationFile)
400402
401- internal suspend fun initModernizationJob (session : CodeModernizerSession , copyResult : MavenCopyCommandsResult ): CodeModernizerJobCompletedResult =
402- when (val result = session.createModernizationJob(copyResult )) {
403+ internal suspend fun initModernizationJob (session : CodeModernizerSession , localBuildResult : LocalBuildResult ): CodeModernizerJobCompletedResult =
404+ when (val result = session.createModernizationJob(localBuildResult )) {
403405 is CodeModernizerStartJobResult .ZipCreationFailed -> {
404406 CodeModernizerJobCompletedResult .UnableToCreateJob (
405407 message(" codemodernizer.notification.warn.zip_creation_failed" , result.reason),
@@ -432,10 +434,6 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
432434 CodeModernizerJobCompletedResult .JobAbortedBeforeStarting
433435 }
434436
435- is CodeModernizerStartJobResult .CancelledMissingDependencies -> {
436- CodeModernizerJobCompletedResult .JobAbortedMissingDependencies
437- }
438-
439437 is CodeModernizerStartJobResult .CancelledZipTooLarge -> {
440438 CodeModernizerJobCompletedResult .JobAbortedZipTooLarge
441439 }
@@ -650,12 +648,6 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
650648
651649 is CodeModernizerJobCompletedResult .ManagerDisposed -> LOG .warn { " Manager disposed" }
652650 is CodeModernizerJobCompletedResult .JobAbortedBeforeStarting -> LOG .warn { " Job was aborted" }
653- is CodeModernizerJobCompletedResult .JobAbortedMissingDependencies -> notifyStickyInfo(
654- message(" codemodernizer.notification.warn.maven_failed.title" ),
655- message(" codemodernizer.notification.warn.maven_failed.content" ),
656- project,
657- listOf (openTroubleshootingGuideNotificationAction(CODE_TRANSFORM_TROUBLESHOOT_DOC_MVN_FAILURE ), displayFeedbackNotificationAction()),
658- )
659651 is CodeModernizerJobCompletedResult .JobAbortedZipTooLarge -> notifyStickyInfo(
660652 message(" codemodernizer.notification.warn.zip_too_large.title" ),
661653 message(" codemodernizer.notification.warn.zip_too_large.content" ),
@@ -716,11 +708,11 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
716708
717709 fun isModernizationJobActive (): Boolean = isModernizationInProgress.get()
718710
719- fun isRunningMvn (): Boolean = isMvnRunning .get()
711+ fun isLocalBuildRunning (): Boolean = isLocalBuildRunning .get()
720712
721713 fun isJobSuccessfullyResumed (): Boolean = isJobSuccessfullyResumed.get()
722714
723- fun getLastMvnBuildResult (): MavenCopyCommandsResult ? = codeTransformationSession?.getLastMvnBuildResult ()
715+ fun getLastLocalBuildResult (): LocalBuildResult ? = codeTransformationSession?.getLastLocalBuildResult ()
724716
725717 fun getLastTransformResult (): CodeModernizerJobCompletedResult ? = codeTransformationSession?.getLastTransformResult()
726718
@@ -729,8 +721,8 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
729721 fun getBottomToolWindow () = ToolWindowManager .getInstance(project).getToolWindow(CodeModernizerBottomToolWindowFactory .id)
730722 ? : error(message(" codemodernizer.toolwindow.problems_window_not_found" ))
731723
732- fun getMvnBuildWindow () = ToolWindowManager .getInstance(project).getToolWindow(" Run" )
733- ? : error(message(" codemodernizer.toolwindow.problems_mvn_window_not_found " ))
724+ fun getLocalBuildWindow () = ToolWindowManager .getInstance(project).getToolWindow(" Run" )
725+ ? : error(message(" codemodernizer.toolwindow.problems_local_build_window_not_found " ))
734726
735727 override fun getState (): CodeModernizerState = CodeModernizerState ().apply {
736728 lastJobContext.putAll(managerState.lastJobContext)
@@ -856,7 +848,7 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
856848 }
857849 }
858850
859- fun copyDependencyForHil (selectedVersion : String ): MavenCopyCommandsResult {
851+ fun copyDependencyForHil (selectedVersion : String ): LocalBuildResult {
860852 try {
861853 val session = codeTransformationSession ? : throw CodeModernizerException (" Cannot get the current session" )
862854
@@ -865,27 +857,27 @@ class CodeModernizerManager(private val project: Project) : PersistentStateCompo
865857
866858 val downloadedPomPath = getPathToHilArtifactPomFile(tmpDirPath)
867859 if (! downloadedPomPath.exists()) {
868- return MavenCopyCommandsResult .Failure
860+ return LocalBuildResult .Failure (message( " codemodernizer.chat.message.hil.error.cannot_upload " ))
869861 }
870862
871863 val downloadedPomFile = File (downloadedPomPath.pathString)
872864 setDependencyVersionInPom(downloadedPomFile, selectedVersion)
873865
874- val copyDependencyResult = session.copyHilDependencyUsingMaven()
875- return copyDependencyResult
866+ val localBuildResult = session.copyHilDependencyUsingMaven()
867+ return localBuildResult
876868 } catch (e: Exception ) {
877869 val errorMessage = " Unexpected error when getting HIL dependency for upload: ${e.localizedMessage} "
878870 telemetry.error(errorMessage)
879871 LOG .error { errorMessage }
880- return MavenCopyCommandsResult .Failure
872+ return LocalBuildResult .Failure (message( " codemodernizer.chat.message.hil.error.cannot_upload " ))
881873 }
882874 }
883875
884876 suspend fun tryResumeWithAlternativeVersion (selectedVersion : String ) {
885877 try {
886878 val zipCreationResult = codeTransformationSession?.createHilUploadZip(selectedVersion)
887879 if (zipCreationResult?.payload?.exists() == true ) {
888- codeTransformationSession?.uploadHilPayload(zipCreationResult.payload)
880+ codeTransformationSession?.uploadHilPayload(zipCreationResult.payload!! )
889881
890882 // Add delay between upload complete and trying to resume
891883 delay(500 )
0 commit comments