Skip to content

Commit c1f55c0

Browse files
authored
Disable service-loading ApolloCompilerPlugin (#6059)
* remove deprecated typealias and fail with error * fix Gradle test * use ApolloCompilerPluginProvider
1 parent f4c829b commit c1f55c0

File tree

23 files changed

+66
-15
lines changed

23 files changed

+66
-15
lines changed

libraries/apollo-compiler/src/main/kotlin/com/apollographql/apollo/compiler/ApolloCompilerPlugin.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,6 @@ import com.apollographql.apollo.compiler.ir.IrOperations
1111
import com.apollographql.apollo.compiler.operationoutput.OperationDescriptor
1212
import com.apollographql.apollo.compiler.operationoutput.OperationId
1313

14-
@Deprecated(
15-
"Use ApolloCompilerPlugin instead (don't forget to replace the META-INF.service file to `com.apollographql.apollo.compiler.ApolloCompilerPlugin`",
16-
ReplaceWith("ApolloCompilerPlugin"),
17-
DeprecationLevel.ERROR
18-
)
19-
typealias Plugin = ApolloCompilerPlugin
20-
2114
/**
2215
* [ApolloCompilerPlugin] allows to customize the behaviour of the Apollo Compiler.
2316
*

libraries/apollo-gradle-plugin-external/src/main/kotlin/com/apollographql/apollo/gradle/internal/serviceloader.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal fun apolloCompilerPlugin(
1919

2020
val plugin = plugins.singleOrNull()
2121
if (plugin != null) {
22-
return plugin
22+
error("Apollo: use ApolloCompilerPluginProvider instead of ApolloCompilerPlugin directly. ApolloCompilerPluginProvider allows arguments and logging")
2323
}
2424

2525
val pluginProviders = ServiceLoader.load(ApolloCompilerPluginProvider::class.java).toList()
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
11
package apollo.plugin
22

3+
import com.apollographql.apollo.annotations.ApolloExperimental
34
import com.apollographql.apollo.compiler.OperationOutputGenerator
45
import com.apollographql.apollo.compiler.ApolloCompilerPlugin
6+
import com.apollographql.apollo.compiler.ApolloCompilerPluginEnvironment
7+
import com.apollographql.apollo.compiler.ApolloCompilerPluginProvider
58
import com.apollographql.apollo.compiler.operationoutput.OperationDescriptor
69
import com.apollographql.apollo.compiler.operationoutput.OperationId
710

811
class MyPlugin: ApolloCompilerPlugin {
912
override fun operationIds(descriptors: List<OperationDescriptor>): List<OperationId>? {
1013
return descriptors.map { OperationId("${it.name}CustomId", it.name) }
1114
}
15+
}
16+
17+
@OptIn(ApolloExperimental::class)
18+
class MyPluginProvider: ApolloCompilerPluginProvider {
19+
override fun create(environment: ApolloCompilerPluginEnvironment): ApolloCompilerPlugin {
20+
return MyPlugin()
21+
}
22+
1223
}

libraries/apollo-gradle-plugin/testProjects/operationIdsWithIsolation/apollo-compiler-plugin/src/main/resources/META-INF/services/com.apollographql.apollo.compiler.ApolloCompilerPlugin

Lines changed: 0 additions & 1 deletion
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
apollo.plugin.MyPluginProvider

tests/compiler-plugins/add-field/src/main/kotlin/hooks/TestPlugin.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ import com.apollographql.apollo.ast.responseName
1313
import com.apollographql.apollo.ast.rootTypeDefinition
1414
import com.apollographql.apollo.compiler.DocumentTransform
1515
import com.apollographql.apollo.compiler.ApolloCompilerPlugin
16+
import com.apollographql.apollo.compiler.ApolloCompilerPluginEnvironment
17+
import com.apollographql.apollo.compiler.ApolloCompilerPluginProvider
18+
19+
class TestPluginProvider: ApolloCompilerPluginProvider {
20+
override fun create(environment: ApolloCompilerPluginEnvironment): ApolloCompilerPlugin {
21+
return TestPlugin()
22+
}
23+
}
1624

1725
class TestPlugin : ApolloCompilerPlugin {
1826
override fun documentTransform(): DocumentTransform {

tests/compiler-plugins/add-field/src/main/resources/META-INF/services/com.apollographql.apollo.compiler.ApolloCompilerPlugin

Lines changed: 0 additions & 1 deletion
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hooks.TestPluginProvider

tests/compiler-plugins/capitalize-enum-values/src/main/kotlin/hooks/TestPlugin.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
package hooks
22

33
import com.apollographql.apollo.compiler.ApolloCompilerPlugin
4+
import com.apollographql.apollo.compiler.ApolloCompilerPluginEnvironment
5+
import com.apollographql.apollo.compiler.ApolloCompilerPluginProvider
46
import com.apollographql.apollo.compiler.Transform
57
import com.apollographql.apollo.compiler.codegen.kotlin.KotlinOutput
68
import com.squareup.kotlinpoet.FunSpec
79
import com.squareup.kotlinpoet.TypeSpec
810

11+
class TestPluginProvider: ApolloCompilerPluginProvider {
12+
override fun create(environment: ApolloCompilerPluginEnvironment): ApolloCompilerPlugin {
13+
return TestPlugin()
14+
}
15+
}
16+
917
class TestPlugin : ApolloCompilerPlugin {
1018
override fun kotlinOutputTransform(): Transform<KotlinOutput> {
1119
return object : Transform<KotlinOutput> {

tests/compiler-plugins/capitalize-enum-values/src/main/resources/META-INF/services/com.apollographql.apollo.compiler.ApolloCompilerPlugin

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)