Skip to content

Commit 547ec6c

Browse files
authored
[IJ plugin] Migrate to Apollo Kotlin 4: dependencies (#5097)
1 parent b265023 commit 547ec6c

18 files changed

+225
-24
lines changed

intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/action/ApolloV2ToV3MigrationAction.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class ApolloV2ToV3MigrationAction : AnAction() {
1818
e.project,
1919
ApolloBundle.message("action.ApolloV2ToV3MigrationAction.confirmDialog.message"),
2020
ApolloBundle.message("action.ApolloV2ToV3MigrationAction.confirmDialog.title"),
21-
ApolloBundle.message("action.ApolloV2ToV3MigrationAction.confirmDialog.ok"),
22-
ApolloBundle.message("action.ApolloV2ToV3MigrationAction.confirmDialog.cancel"),
21+
ApolloBundle.message("action.MigrationAction.confirmDialog.ok"),
22+
ApolloBundle.message("action.MigrationAction.confirmDialog.cancel"),
2323
Messages.getQuestionIcon()
2424
)
2525

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.apollographql.ijplugin.action
2+
3+
import com.apollographql.ijplugin.ApolloBundle
4+
import com.apollographql.ijplugin.project.ApolloProjectService.ApolloVersion
5+
import com.apollographql.ijplugin.project.apolloProjectService
6+
import com.apollographql.ijplugin.refactoring.migration.v3tov4.ApolloV3ToV4MigrationProcessor
7+
import com.apollographql.ijplugin.util.logd
8+
import com.intellij.openapi.actionSystem.ActionPlaces
9+
import com.intellij.openapi.actionSystem.ActionUpdateThread
10+
import com.intellij.openapi.actionSystem.AnAction
11+
import com.intellij.openapi.actionSystem.AnActionEvent
12+
import com.intellij.openapi.ui.Messages
13+
14+
class ApolloV3ToV4MigrationAction : AnAction() {
15+
override fun actionPerformed(e: AnActionEvent) {
16+
logd()
17+
val okCancelResult = Messages.showOkCancelDialog(
18+
e.project,
19+
ApolloBundle.message("action.ApolloV3ToV4MigrationAction.confirmDialog.message"),
20+
ApolloBundle.message("action.ApolloV3ToV4MigrationAction.confirmDialog.title"),
21+
ApolloBundle.message("action.MigrationAction.confirmDialog.ok"),
22+
ApolloBundle.message("action.MigrationAction.confirmDialog.cancel"),
23+
Messages.getQuestionIcon()
24+
)
25+
26+
if (okCancelResult == Messages.OK) {
27+
ApolloV3ToV4MigrationProcessor(e.project ?: return).run()
28+
}
29+
}
30+
31+
override fun update(e: AnActionEvent) {
32+
e.presentation.isEnabled = e.project?.apolloProjectService?.apolloVersion == ApolloVersion.V3
33+
e.presentation.isVisible = !ActionPlaces.isPopupPlace(e.place)
34+
}
35+
36+
override fun getActionUpdateThread() = ActionUpdateThread.BGT
37+
}

intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/action/CompatToOperationBasedCodegenMigrationAction.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ class CompatToOperationBasedCodegenMigrationAction : AnAction() {
1919
ApolloBundle.message("action.CompatToOperationBasedCodegenMigrationAction.confirmDialog.message"),
2020
@Suppress("DialogTitleCapitalization")
2121
ApolloBundle.message("action.CompatToOperationBasedCodegenMigrationAction.confirmDialog.title"),
22-
ApolloBundle.message("action.CompatToOperationBasedCodegenMigrationAction.confirmDialog.ok"),
23-
ApolloBundle.message("action.CompatToOperationBasedCodegenMigrationAction.confirmDialog.cancel"),
22+
ApolloBundle.message("action.MigrationAction.confirmDialog.ok"),
23+
ApolloBundle.message("action.MigrationAction.confirmDialog.cancel"),
2424
Messages.getQuestionIcon()
2525
)
2626

intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/refactoring/migration/ApolloMigrationRefactoringProcessor.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ import org.jetbrains.kotlin.psi.KtPsiFactory
3131
import org.jetbrains.kotlin.resolve.ImportPath
3232
import org.jetbrains.plugins.gradle.util.GradleConstants
3333

34+
const val apollo2 = "com.apollographql.apollo"
35+
const val apollo3 = "com.apollographql.apollo3"
36+
3437
/**
3538
* Generic processor for migrations.
3639
*
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
package com.apollographql.ijplugin.refactoring.migration.v2tov3.item
1+
package com.apollographql.ijplugin.refactoring.migration.item
22

3-
import com.apollographql.ijplugin.refactoring.migration.item.MigrationItem
4-
import com.apollographql.ijplugin.refactoring.migration.item.MigrationItemUsageInfo
5-
import com.apollographql.ijplugin.refactoring.migration.item.toMigrationItemUsageInfo
63
import com.apollographql.ijplugin.util.findPsiFilesByName
74
import com.apollographql.ijplugin.util.unquoted
85
import com.intellij.openapi.project.Project
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
package com.apollographql.ijplugin.refactoring.migration.v2tov3.item
1+
package com.apollographql.ijplugin.refactoring.migration.item
22

3-
import com.apollographql.ijplugin.refactoring.migration.item.MigrationItem
4-
import com.apollographql.ijplugin.refactoring.migration.item.MigrationItemUsageInfo
53
import com.apollographql.ijplugin.util.findPsiFilesByName
64
import com.apollographql.ijplugin.util.quoted
75
import com.apollographql.ijplugin.util.unquoted
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
package com.apollographql.ijplugin.refactoring.migration.v2tov3.item
1+
package com.apollographql.ijplugin.refactoring.migration.item
22

3-
import com.apollographql.ijplugin.refactoring.migration.item.MigrationItem
4-
import com.apollographql.ijplugin.refactoring.migration.item.MigrationItemUsageInfo
5-
import com.apollographql.ijplugin.refactoring.migration.item.toMigrationItemUsageInfo
63
import com.apollographql.ijplugin.util.findPsiFilesByName
74
import com.apollographql.ijplugin.util.quoted
85
import com.intellij.openapi.project.Project

intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/refactoring/migration/v2tov3/ApolloV2ToV3MigrationProcessor.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package com.apollographql.ijplugin.refactoring.migration.v2tov3
22

33
import com.apollographql.ijplugin.ApolloBundle
44
import com.apollographql.ijplugin.refactoring.migration.ApolloMigrationRefactoringProcessor
5+
import com.apollographql.ijplugin.refactoring.migration.apollo2
6+
import com.apollographql.ijplugin.refactoring.migration.apollo3
57
import com.apollographql.ijplugin.refactoring.migration.item.CommentDependenciesInToml
68
import com.apollographql.ijplugin.refactoring.migration.item.RemoveMethodCall
79
import com.apollographql.ijplugin.refactoring.migration.item.RemoveMethodImport
@@ -15,9 +17,9 @@ import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateAddCus
1517
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateCustomTypeMappingInBuildKts
1618
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateEnumValueUpperCase
1719
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateFileUpload
18-
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateGradleDependenciesBuildKts
19-
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateGradleDependenciesInToml
20-
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateGradlePluginInBuildKts
20+
import com.apollographql.ijplugin.refactoring.migration.item.UpdateGradleDependenciesBuildKts
21+
import com.apollographql.ijplugin.refactoring.migration.item.UpdateGradleDependenciesInToml
22+
import com.apollographql.ijplugin.refactoring.migration.item.UpdateGradlePluginInBuildKts
2123
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateGraphqlSourceDirectorySet
2224
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateHttpCache
2325
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateIdlingResource
@@ -27,8 +29,6 @@ import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateOkHttp
2729
import com.apollographql.ijplugin.refactoring.migration.v2tov3.item.UpdateSqlNormalizedCacheFactory
2830
import com.intellij.openapi.project.Project
2931

30-
private const val apollo2 = "com.apollographql.apollo"
31-
private const val apollo3 = "com.apollographql.apollo3"
3232
private const val apollo3LatestVersion = "3.8.2"
3333

3434
/**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.apollographql.ijplugin.refactoring.migration.v3tov4
2+
3+
import com.apollographql.ijplugin.ApolloBundle
4+
import com.apollographql.ijplugin.refactoring.migration.ApolloMigrationRefactoringProcessor
5+
import com.apollographql.ijplugin.refactoring.migration.apollo3
6+
import com.apollographql.ijplugin.refactoring.migration.item.UpdateGradleDependenciesBuildKts
7+
import com.apollographql.ijplugin.refactoring.migration.item.UpdateGradleDependenciesInToml
8+
import com.apollographql.ijplugin.refactoring.migration.item.UpdateGradlePluginInBuildKts
9+
import com.intellij.openapi.project.Project
10+
11+
private const val apollo4LatestVersion = "4.0.0-alpha.2"
12+
13+
/**
14+
* Migrations of Apollo Kotlin v3 to v4.
15+
*/
16+
class ApolloV3ToV4MigrationProcessor(project: Project) : ApolloMigrationRefactoringProcessor(project) {
17+
override val refactoringName = ApolloBundle.message("ApolloV3ToV4MigrationProcessor.title")
18+
19+
override val noUsageMessage = ApolloBundle.message("ApolloV3ToV4MigrationProcessor.noUsage")
20+
21+
override val migrationItems = listOf(
22+
// Gradle
23+
UpdateGradlePluginInBuildKts(apollo3, apollo3, apollo4LatestVersion),
24+
UpdateGradleDependenciesInToml(apollo3, apollo3, apollo4LatestVersion),
25+
UpdateGradleDependenciesBuildKts(apollo3, apollo3),
26+
)
27+
}

intellij-plugin/src/main/resources/META-INF/plugin.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@
165165
<add-to-group group-id="ApolloRefactorActionGroup" />
166166
</action>
167167

168+
<!-- Refactor / Apollo / Migrate to Apollo Kotlin 4 -->
169+
<action
170+
id="ApolloV3ToV4MigrationAction"
171+
class="com.apollographql.ijplugin.action.ApolloV3ToV4MigrationAction"
172+
>
173+
<add-to-group group-id="ApolloRefactorActionGroup" />
174+
</action>
175+
168176
<!-- Refactor / Apollo / Migrate to operationBased Codegen -->
169177
<!--suppress PluginXmlCapitalization -->
170178
<action

0 commit comments

Comments
 (0)