diff --git a/.editorconfig b/.editorconfig index 5dba7f678e..fe193f4b0f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -22,4 +22,10 @@ max_line_length = 200 # ktlint rules # https://github.com/pinterest/ktlint/issues/527 -disabled_rules=import-ordering +ktlint_standard_import-ordering = disabled +ktlint_standard_filename = disabled +ktlint_standard_no-unused-parameters = disabled +ktlint_standard_class-naming = disabled +ktlint_standard_enum-naming = disabled +ij_kotlin_allow_trailing_comma_on_call_site=false +ij_kotlin_allow_trailing_comma=false diff --git a/buildSrc/src/main/kotlin/com.expediagroup.graphql.conventions.gradle.kts b/buildSrc/src/main/kotlin/com.expediagroup.graphql.conventions.gradle.kts index 4e1870b255..b4ca762452 100644 --- a/buildSrc/src/main/kotlin/com.expediagroup.graphql.conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/com.expediagroup.graphql.conventions.gradle.kts @@ -35,7 +35,7 @@ tasks { } detekt { toolVersion = libs.versions.detekt.get() - config = files("${rootProject.projectDir}/detekt.yml") + config.setFrom("${rootProject.projectDir}/detekt.yml") } ktlint { version.set(libs.versions.ktlint.core.get()) diff --git a/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/EntitiesQuery.kt b/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/EntitiesQuery.kt index 29e0e5fc60..5979a4cc81 100644 --- a/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/EntitiesQuery.kt +++ b/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/EntitiesQuery.kt @@ -25,7 +25,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize import kotlin.reflect.KClass class EntitiesQuery( - override val variables: Variables, + override val variables: Variables ) : GraphQLClientRequest { override val query: String = "ENTITIES_QUERY" @@ -37,7 +37,7 @@ class EntitiesQuery( @JsonSerialize(contentConverter = AnyToAnyConverter::class) @JsonDeserialize(contentConverter = AnyToAnyConverter::class) @get:JsonProperty("representations") - public val representations: List, + public val representations: List ) data class Result( @@ -45,6 +45,6 @@ class EntitiesQuery( * Union of all types that use the @key directive, including both types native to the schema and * extended types */ - val _entities: List<_Entity?>, + val _entities: List<_Entity?> ) } diff --git a/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/entitiesquery/_Entity.kt b/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/entitiesquery/_Entity.kt index 16ea2ae041..4e53f76541 100644 --- a/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/entitiesquery/_Entity.kt +++ b/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/entitiesquery/_Entity.kt @@ -24,7 +24,7 @@ import kotlin.String use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "__typename", - defaultImpl = Default_EntityImplementation::class, + defaultImpl = Default_EntityImplementation::class ) @JsonSubTypes( value = [ diff --git a/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/enums/TestEnum.kt b/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/enums/TestEnum.kt index 5be09c4b4d..a1e92a9b51 100644 --- a/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/enums/TestEnum.kt +++ b/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/enums/TestEnum.kt @@ -22,8 +22,10 @@ import com.fasterxml.jackson.annotation.JsonProperty enum class TestEnum { ONE, TWO, + @JsonProperty("three") THREE, + @JsonEnumDefaultValue __UNKNOWN } diff --git a/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/inputs/InputObject.kt b/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/inputs/InputObject.kt index 5a42bf573b..522821d66d 100644 --- a/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/inputs/InputObject.kt +++ b/clients/graphql-kotlin-client-jackson/src/test/kotlin/com/expediagroup/graphql/client/jackson/data/inputs/InputObject.kt @@ -25,5 +25,5 @@ data class InputObject( @get:JsonProperty("NOT") val NOT: Boolean = false, @get:JsonProperty("pID") - val pID: ID = "1", + val pID: ID = "1" ) diff --git a/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/serializers/OptionalScalarListSerializer.kt b/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/serializers/OptionalScalarListSerializer.kt index 75b2eacb9a..c20bdb6131 100644 --- a/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/serializers/OptionalScalarListSerializer.kt +++ b/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/serializers/OptionalScalarListSerializer.kt @@ -17,6 +17,7 @@ package com.expediagroup.graphql.client.serialization.serializers import com.expediagroup.graphql.client.serialization.types.OptionalInput +import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.KSerializer import kotlinx.serialization.builtins.ListSerializer import kotlinx.serialization.builtins.nullable @@ -33,6 +34,7 @@ object OptionalScalarListSerializer : KSerializer>> { override val descriptor: SerialDescriptor = buildClassSerialDescriptor("OptionalScalarList") + @OptIn(ExperimentalSerializationApi::class) override fun serialize(encoder: Encoder, value: OptionalInput>) { when (value) { is OptionalInput.Undefined -> { return } @@ -43,6 +45,7 @@ object OptionalScalarListSerializer : KSerializer>> { } // undefined is only supported during client serialization + @OptIn(ExperimentalSerializationApi::class) override fun deserialize(decoder: Decoder): OptionalInput> = OptionalInput.Defined( decoder.decodeNullableSerializableValue(delegate.nullable) ) diff --git a/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/types/KotlinxGraphQLError.kt b/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/types/KotlinxGraphQLError.kt index ceac902255..532225a256 100644 --- a/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/types/KotlinxGraphQLError.kt +++ b/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/types/KotlinxGraphQLError.kt @@ -25,6 +25,13 @@ import kotlinx.serialization.Serializable data class KotlinxGraphQLError( override val message: String, override val locations: List? = null, - override val path: List<@Serializable(with = GraphQLErrorPathSerializer::class) Any>? = null, - override val extensions: Map? = null + override val path: List< + @Serializable(with = GraphQLErrorPathSerializer::class) + Any + >? = null, + override val extensions: Map< + String, + @Serializable(with = AnyKSerializer::class) + Any? + >? = null ) : GraphQLClientError diff --git a/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/types/KotlinxGraphQLResponse.kt b/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/types/KotlinxGraphQLResponse.kt index 02c1172a89..f639553fb1 100644 --- a/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/types/KotlinxGraphQLResponse.kt +++ b/clients/graphql-kotlin-client-serialization/src/main/kotlin/com/expediagroup/graphql/client/serialization/types/KotlinxGraphQLResponse.kt @@ -24,5 +24,9 @@ import kotlinx.serialization.Serializable data class KotlinxGraphQLResponse( override val data: T? = null, override val errors: List? = null, - override val extensions: Map? = null + override val extensions: Map< + String, + @Serializable(with = AnyKSerializer::class) + Any? + >? = null ) : GraphQLClientResponse diff --git a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/EntitiesQuery.kt b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/EntitiesQuery.kt index 2796858223..09c683e021 100644 --- a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/EntitiesQuery.kt +++ b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/EntitiesQuery.kt @@ -29,7 +29,7 @@ import kotlinx.serialization.json.JsonObject @Serializable class EntitiesQuery( - override val variables: Variables, + override val variables: Variables ) : GraphQLClientRequest { @Required override val query: String = "ENTITIES_QUERY" @@ -42,7 +42,10 @@ class EntitiesQuery( @Generated @Serializable public data class Variables( - public val representations: List<@Serializable(with = JsonObjectSerializer::class) JsonObject>, + public val representations: List< + @Serializable(with = JsonObjectSerializer::class) + JsonObject + > ) @Generated @@ -52,6 +55,6 @@ class EntitiesQuery( * Union of all types that use the @key directive, including both types native to the schema and * extended types */ - public val _entities: List<_Entity?>, + public val _entities: List<_Entity?> ) } diff --git a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/OptionalInputQuery.kt b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/OptionalInputQuery.kt index 482923593e..ff0ab7778d 100644 --- a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/OptionalInputQuery.kt +++ b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/OptionalInputQuery.kt @@ -49,9 +49,17 @@ class OptionalInputQuery( @Serializable(with = OptionalScalarSerializer::class) val optionalBooleanInput: OptionalInput = OptionalInput.Undefined, @Serializable(with = OptionalUUIDSerializer::class) - val optionalUUIDInput: OptionalInput<@Serializable(with = UUIDSerializer::class) UUID> = OptionalInput.Undefined, + val optionalUUIDInput: OptionalInput< + @Serializable(with = UUIDSerializer::class) + UUID + > = OptionalInput.Undefined, @Serializable(with = OptionalUUIDListSerializer::class) - val optionalUUIDListInput: OptionalInput> = OptionalInput.Undefined, + val optionalUUIDListInput: OptionalInput< + List< + @Serializable(with = UUIDSerializer::class) + UUID + > + > = OptionalInput.Undefined ) @Serializable diff --git a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/ScalarQuery.kt b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/ScalarQuery.kt index 10a283d174..2001deee8a 100644 --- a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/ScalarQuery.kt +++ b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/ScalarQuery.kt @@ -50,6 +50,9 @@ class ScalarQuery( val scalarAlias: ID, @Serializable(with = UUIDSerializer::class) val customScalar: UUID, - val customScalarList: List<@Serializable(with = UUIDSerializer::class) UUID> + val customScalarList: List< + @Serializable(with = UUIDSerializer::class) + UUID + > ) } diff --git a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/enums/TestEnum.kt b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/enums/TestEnum.kt index 098db0a75e..9dc51f25ce 100644 --- a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/enums/TestEnum.kt +++ b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/enums/TestEnum.kt @@ -23,6 +23,7 @@ import kotlinx.serialization.Serializable enum class TestEnum { ONE, TWO, + @SerialName("three") THREE, __UNKNOWN diff --git a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/scalars/OptionalUUIDListSerializer.kt b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/scalars/OptionalUUIDListSerializer.kt index eeac159c4b..0ec5bb64ce 100644 --- a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/scalars/OptionalUUIDListSerializer.kt +++ b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/data/scalars/OptionalUUIDListSerializer.kt @@ -17,6 +17,7 @@ package com.expediagroup.graphql.client.serialization.data.scalars import com.expediagroup.graphql.client.serialization.types.OptionalInput +import kotlinx.serialization.ExperimentalSerializationApi import java.util.UUID import kotlin.collections.List import kotlinx.serialization.KSerializer @@ -33,6 +34,7 @@ object OptionalUUIDListSerializer : KSerializer>> { override val descriptor: SerialDescriptor = buildClassSerialDescriptor("OptionalUUIDListSerializer") + @OptIn(ExperimentalSerializationApi::class) override fun serialize(encoder: Encoder, `value`: OptionalInput>) { when (value) { is OptionalInput.Undefined -> return @@ -44,6 +46,7 @@ object OptionalUUIDListSerializer : KSerializer>> { /** * undefined is only supported during client serialization, this code should never be invoked */ + @OptIn(ExperimentalSerializationApi::class) override fun deserialize(decoder: Decoder): OptionalInput> = OptionalInput.Defined(decoder.decodeNullableSerializableValue(delegate.nullable)) } diff --git a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/serializers/AnyKSerializerTest.kt b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/serializers/AnyKSerializerTest.kt index 27ecb0200c..83048a2a91 100644 --- a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/serializers/AnyKSerializerTest.kt +++ b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/serializers/AnyKSerializerTest.kt @@ -99,8 +99,13 @@ class AnyKSerializerTest { @Serializable data class AnyMap( - val data: Map + val data: Map< + String, + @Serializable(with = AnyKSerializer::class) + Any? + > ) + @Serializable data class Foo(val bar: String) } diff --git a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/serializers/GraphQLErrorPathSerializerTest.kt b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/serializers/GraphQLErrorPathSerializerTest.kt index 55bb3d872e..6e196b20a3 100644 --- a/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/serializers/GraphQLErrorPathSerializerTest.kt +++ b/clients/graphql-kotlin-client-serialization/src/test/kotlin/com/expediagroup/graphql/client/serialization/serializers/GraphQLErrorPathSerializerTest.kt @@ -61,6 +61,9 @@ class GraphQLErrorPathSerializerTest { @Serializable data class ErrorPathWrapper( - val path: List<@Serializable(with = GraphQLErrorPathSerializer::class) Any>? = null + val path: List< + @Serializable(with = GraphQLErrorPathSerializer::class) + Any + >? = null ) } diff --git a/executions/graphql-kotlin-automatic-persisted-queries/src/test/kotlin/com/expediagroup/graphql/apq/provider/AutomaticPersistedQueriesCacheProviderTest.kt b/executions/graphql-kotlin-automatic-persisted-queries/src/test/kotlin/com/expediagroup/graphql/apq/provider/AutomaticPersistedQueriesCacheProviderTest.kt index 04528d6c29..bcf550dd05 100644 --- a/executions/graphql-kotlin-automatic-persisted-queries/src/test/kotlin/com/expediagroup/graphql/apq/provider/AutomaticPersistedQueriesCacheProviderTest.kt +++ b/executions/graphql-kotlin-automatic-persisted-queries/src/test/kotlin/com/expediagroup/graphql/apq/provider/AutomaticPersistedQueriesCacheProviderTest.kt @@ -38,7 +38,6 @@ class AutomaticPersistedQueriesCacheProviderTest { @Test fun `AutomaticPersistedQueriesProvider should return error when no query with provided hash is in the cache`() { - // First execution fails to find persisted query string val extensions = mapOf( diff --git a/executions/graphql-kotlin-dataloader-instrumentation/src/main/kotlin/com/expediagroup/graphql/dataloader/instrumentation/level/execution/AbstractExecutionLevelDispatchedInstrumentation.kt b/executions/graphql-kotlin-dataloader-instrumentation/src/main/kotlin/com/expediagroup/graphql/dataloader/instrumentation/level/execution/AbstractExecutionLevelDispatchedInstrumentation.kt index 0f4423d733..b010685350 100644 --- a/executions/graphql-kotlin-dataloader-instrumentation/src/main/kotlin/com/expediagroup/graphql/dataloader/instrumentation/level/execution/AbstractExecutionLevelDispatchedInstrumentation.kt +++ b/executions/graphql-kotlin-dataloader-instrumentation/src/main/kotlin/com/expediagroup/graphql/dataloader/instrumentation/level/execution/AbstractExecutionLevelDispatchedInstrumentation.kt @@ -35,6 +35,7 @@ import graphql.schema.DataFetcher * Represents the signature of a callback that will be executed when a [Level] is dispatched */ internal typealias OnLevelDispatchedCallback = (Level, List) -> Unit + /** * Custom GraphQL [graphql.execution.instrumentation.Instrumentation] that calculate the state of executions * of all queries sharing the same GraphQLContext map diff --git a/executions/graphql-kotlin-dataloader-instrumentation/src/main/kotlin/com/expediagroup/graphql/dataloader/instrumentation/level/state/ExecutionLevelDispatchedState.kt b/executions/graphql-kotlin-dataloader-instrumentation/src/main/kotlin/com/expediagroup/graphql/dataloader/instrumentation/level/state/ExecutionLevelDispatchedState.kt index 8a6742fed4..0b04fd56b4 100644 --- a/executions/graphql-kotlin-dataloader-instrumentation/src/main/kotlin/com/expediagroup/graphql/dataloader/instrumentation/level/state/ExecutionLevelDispatchedState.kt +++ b/executions/graphql-kotlin-dataloader-instrumentation/src/main/kotlin/com/expediagroup/graphql/dataloader/instrumentation/level/state/ExecutionLevelDispatchedState.kt @@ -129,7 +129,6 @@ class ExecutionLevelDispatchedState( return object : InstrumentationContext { override fun onDispatched(result: CompletableFuture) { - executions.computeIfPresent(executionInput) { _, executionState -> executionState.also { it.increaseDispatchedFetches(level) } } diff --git a/executions/graphql-kotlin-dataloader-instrumentation/src/test/kotlin/com/expediagroup/graphql/dataloader/instrumentation/fixture/AstronautGraphQL.kt b/executions/graphql-kotlin-dataloader-instrumentation/src/test/kotlin/com/expediagroup/graphql/dataloader/instrumentation/fixture/AstronautGraphQL.kt index 4757c0dbf0..3aef3f867d 100644 --- a/executions/graphql-kotlin-dataloader-instrumentation/src/test/kotlin/com/expediagroup/graphql/dataloader/instrumentation/fixture/AstronautGraphQL.kt +++ b/executions/graphql-kotlin-dataloader-instrumentation/src/test/kotlin/com/expediagroup/graphql/dataloader/instrumentation/fixture/AstronautGraphQL.kt @@ -205,7 +205,8 @@ object AstronautGraphQL { val kotlinDataLoaderRegistry = spyk( KotlinDataLoaderRegistryFactory( AstronautDataLoader(), - MissionDataLoader(), MissionsByAstronautDataLoader(), + MissionDataLoader(), + MissionsByAstronautDataLoader(), PlanetsByMissionDataLoader() ).generate(mockk()) ) diff --git a/executions/graphql-kotlin-dataloader-instrumentation/src/test/kotlin/com/expediagroup/graphql/dataloader/instrumentation/syncexhaustion/DataLoaderSyncExecutionExhaustedInstrumentationTest.kt b/executions/graphql-kotlin-dataloader-instrumentation/src/test/kotlin/com/expediagroup/graphql/dataloader/instrumentation/syncexhaustion/DataLoaderSyncExecutionExhaustedInstrumentationTest.kt index 79f8b87836..22c5fb1db4 100644 --- a/executions/graphql-kotlin-dataloader-instrumentation/src/test/kotlin/com/expediagroup/graphql/dataloader/instrumentation/syncexhaustion/DataLoaderSyncExecutionExhaustedInstrumentationTest.kt +++ b/executions/graphql-kotlin-dataloader-instrumentation/src/test/kotlin/com/expediagroup/graphql/dataloader/instrumentation/syncexhaustion/DataLoaderSyncExecutionExhaustedInstrumentationTest.kt @@ -467,7 +467,7 @@ class DataLoaderSyncExecutionExhaustedInstrumentationTest { } } } - """.trimIndent(), + """.trimIndent() ) val (results, kotlinDataLoaderRegistry) = AstronautGraphQL.execute( diff --git a/executions/graphql-kotlin-dataloader/src/main/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistryFactory.kt b/executions/graphql-kotlin-dataloader/src/main/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistryFactory.kt index 8b35bfd343..57990d90d8 100644 --- a/executions/graphql-kotlin-dataloader/src/main/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistryFactory.kt +++ b/executions/graphql-kotlin-dataloader/src/main/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistryFactory.kt @@ -16,8 +16,8 @@ package com.expediagroup.graphql.dataloader -import org.dataloader.DataLoaderRegistry import graphql.GraphQLContext +import org.dataloader.DataLoaderRegistry /** * Generates a [KotlinDataLoaderRegistry] with the configuration provided by all [KotlinDataLoader]s. diff --git a/executions/graphql-kotlin-dataloader/src/test/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistryTest.kt b/executions/graphql-kotlin-dataloader/src/test/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistryTest.kt index 04e082d6d6..00f252f67b 100644 --- a/executions/graphql-kotlin-dataloader/src/test/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistryTest.kt +++ b/executions/graphql-kotlin-dataloader/src/test/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistryTest.kt @@ -48,7 +48,8 @@ class KotlinDataLoaderRegistryTest { } val registry = KotlinDataLoaderRegistryFactory( - stringToUpperCaseDataLoader, stringToLowerCaseDataLoader + stringToUpperCaseDataLoader, + stringToLowerCaseDataLoader ).generate(mockk()) registry.getDataLoader("ToUppercaseDataLoader").load("touppercase1").handle { _, _ -> } diff --git a/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/EntitiesDataFetcher.kt b/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/EntitiesDataFetcher.kt index fbd345d11d..a813fdf05b 100644 --- a/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/EntitiesDataFetcher.kt +++ b/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/EntitiesDataFetcher.kt @@ -38,6 +38,7 @@ open class EntitiesDataFetcher( ) : DataFetcher>>> { constructor(vararg resolvers: FederatedTypeResolver) : this(resolvers.toList()) + /** * Pre-compute resolvers by typename so, we don't have to search on every request */ diff --git a/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/resolverexecutor/FederatedTypePromiseResolverExecutor.kt b/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/resolverexecutor/FederatedTypePromiseResolverExecutor.kt index ea198545c5..2c466c7425 100644 --- a/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/resolverexecutor/FederatedTypePromiseResolverExecutor.kt +++ b/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/resolverexecutor/FederatedTypePromiseResolverExecutor.kt @@ -37,7 +37,7 @@ object FederatedTypePromiseResolverExecutor : TypeResolverExecutor>, - environment: DataFetchingEnvironment, + environment: DataFetchingEnvironment ): CompletableFuture> { val indexes = resolvableEntity.indexedRepresentations.map(IndexedValue>::index) val representations = resolvableEntity.indexedRepresentations.map(IndexedValue>::value) diff --git a/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/resolverexecutor/FederatedTypeSuspendResolverExecutor.kt b/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/resolverexecutor/FederatedTypeSuspendResolverExecutor.kt index 6f6894d84d..abf6cf98d8 100644 --- a/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/resolverexecutor/FederatedTypeSuspendResolverExecutor.kt +++ b/generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/execution/resolverexecutor/FederatedTypeSuspendResolverExecutor.kt @@ -50,7 +50,7 @@ internal object FederatedTypeSuspendResolverExecutor : TypeResolverExecutor>, - environment: DataFetchingEnvironment, + environment: DataFetchingEnvironment ): Map = supervisorScope { resolvableEntity.indexedRepresentations.associateBy( diff --git a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/data/TestResolvers.kt b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/data/TestResolvers.kt index df782a0043..e1f76e280c 100644 --- a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/data/TestResolvers.kt +++ b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/data/TestResolvers.kt @@ -60,7 +60,7 @@ internal class AuthorResolver : FederatedTypePromiseResolver { companion object { private val authors = mapOf( 1 to Author(1, "Author 1"), - 2 to Author(2, "Author 2"), + 2 to Author(2, "Author 2") ) } } diff --git a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/data/queries/federated/v1/Product.kt b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/data/queries/federated/v1/Product.kt index b67618c54a..1624bde789 100644 --- a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/data/queries/federated/v1/Product.kt +++ b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/data/queries/federated/v1/Product.kt @@ -39,6 +39,7 @@ interface Product @extends @key(fields : "id") @key(fields : "upc") { @ExtendsDirective interface Product { @ExternalDirective val id: String + @ExternalDirective val upc: String fun reviews(): List } diff --git a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/execution/EntitiesDataFetcherTest.kt b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/execution/EntitiesDataFetcherTest.kt index a08c45aa09..aa656569c4 100644 --- a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/execution/EntitiesDataFetcherTest.kt +++ b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/execution/EntitiesDataFetcherTest.kt @@ -205,7 +205,7 @@ class EntitiesDataFetcherTest { User(123, "testName"), User(456, "testName 2"), Author(1, "Author 1"), - Author(2, "Author 2"), + Author(2, "Author 2") ) verifyErrors(result.errors) } diff --git a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/types/FieldSetTest.kt b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/types/FieldSetTest.kt index 036e1e40d4..4cce406c51 100644 --- a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/types/FieldSetTest.kt +++ b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/types/FieldSetTest.kt @@ -43,7 +43,6 @@ class FieldSetTest { @Test fun `serialize should return the value when a FieldSet`() { - @FieldSet("1") class MyClass diff --git a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/validation/integration/FederatedKeyDirectiveIT.kt b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/validation/integration/FederatedKeyDirectiveIT.kt index 031b14661a..30ad855d49 100644 --- a/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/validation/integration/FederatedKeyDirectiveIT.kt +++ b/generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/validation/integration/FederatedKeyDirectiveIT.kt @@ -90,7 +90,7 @@ class FederatedKeyDirectiveIT { fun `verifies valid @key directive on entity type without query`() { assertDoesNotThrow { val schema = toFederatedSchema( - config = federatedTestConfig("com.expediagroup.graphql.generator.federation.data.integration.key.success._5"), + config = federatedTestConfig("com.expediagroup.graphql.generator.federation.data.integration.key.success._5") ) validateTypeWasCreatedWithKeyDirective(schema, "FederatedKey") } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 31c17c6f9c..3877e45dae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,54 +1,46 @@ [versions] -# TODO gradle 8 upgrade -> android-plugin v8 requires gradle 8 -android-plugin = "8.0.0-alpha11" +android-plugin = "8.0.0" classgraph = "4.8.160" dataloader = "3.2.0" federation = "3.0.1" graphql-java = "20.2" graalvm = "0.9.21" jackson = "2.15.0" -kotlin = "1.7.21" -# TODO kotlin 1.8 upgrade -> kotlinx-benchmark 0.4.7+ uses kotlin 1.8 -kotlinx-benchmark = "0.4.6" -# TODO kotlin 1.8 upgrade -> kotlinx-coroutines 1.7.0+ uses kotlin 1.8 -kotlinx-coroutines = "1.6.4" -# TODO kotlin 1.8 upgrade -> kotlinx-serialization 1.5.0+ uses kotlin 1.8 -kotlinx-serialization = "1.4.1" -# TODO kotlin 1.8 upgrade -> ktor 2.3.0+ uses kotlin 1.8 -ktor = "2.2.4" +kotlin = "1.8.22" +kotlinx-benchmark = "0.4.7" +kotlinx-coroutines = "1.7.1" +kotlinx-serialization = "1.5.1" +ktor = "2.3.1" maven-plugin-annotation = "3.9.0" maven-plugin-api = "3.9.2" maven-project = "2.2.1" -# TODO kotlin 1.8 upgrade -> kotlinpoet 1.13.0+ uses kotlin 1.8 -poet = "1.12.0" +poet = "1.14.2" ## reactor and spring versions should be the same as defined in spring-boot-dependencies -reactor-core = "3.5.6" +reactor-core = "3.5.7" reactor-extensions = "1.2.2" slf4j = "2.0.7" -spring = "6.0.9" -spring-boot = "3.1.0" +spring = "6.0.10" +spring-boot = "3.1.1" # test dependencies # kotlin-compile-testing has to be using the same kotlin version as the kotlinx-serialization compiler # https://github.com/tschuchortdev/kotlin-compile-testing the latest version targets kotlin 1.7.10 which blocks updates to newer # versions of kotlin, switching to a fork https://github.com/ZacSweers/kotlin-compile-testing -compile-testing = "0.1.0" -icu = "73.1" +compile-testing = "0.2.1" +icu = "73.2" junit = "5.9.3" -logback = "1.4.7" -# TODO kotlin 1.8 upgrade -> mock 1.13.4+ uses kotlin 1.8 -mockk = "1.13.3" +logback = "1.4.8" +mockk = "1.13.5" rxjava = "3.1.6" wiremock = "2.35.0" # plugins -# TODO kotlin 1.8 upgrade -> detekt 1.22.0+ uses kotlin 1.8 -detekt = "1.21.0" -dokka = "1.7.20" +detekt = "1.23.0" +dokka = "1.8.20" jacoco = "0.8.10" # klint gradle plugin breaks with 0.46.x+ -ktlint-core = "0.45.2" -ktlint-plugin = "10.3.0" +ktlint-core = "0.49.1" +ktlint-plugin = "11.4.2" maven-plugin-development = "0.4.1" nexus-publish-plugin = "1.3.0" plugin-publish = "1.2.0" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f398c33c4b..37aef8d3f0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateGraphQLEnumTypeSpec.kt b/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateGraphQLEnumTypeSpec.kt index e854b86fe0..e28c6a9124 100644 --- a/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateGraphQLEnumTypeSpec.kt +++ b/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateGraphQLEnumTypeSpec.kt @@ -22,6 +22,7 @@ import com.expediagroup.graphql.plugin.client.generator.GraphQLSerializer import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty import com.squareup.kotlinpoet.AnnotationSpec +import com.squareup.kotlinpoet.DelicateKotlinPoetApi import com.squareup.kotlinpoet.TypeSpec import graphql.Directives.DeprecatedDirective import graphql.language.EnumTypeDefinition @@ -34,6 +35,7 @@ internal const val UNKNOWN_VALUE = "__UNKNOWN_VALUE" /** * Generate enum [TypeSpec] from the specified GraphQL enum definition. Adds default `__UNKNOWN_VALUE` relying on Jackson annotation to handle new/unknown enum values. */ +@OptIn(DelicateKotlinPoetApi::class) internal fun generateGraphQLEnumTypeSpec(context: GraphQLClientGeneratorContext, enumDefinition: EnumTypeDefinition): TypeSpec { val enumTypeSpecBuilder = TypeSpec.enumBuilder(enumDefinition.name) .addAnnotation(Generated::class) diff --git a/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateInterfaceTypeSpec.kt b/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateInterfaceTypeSpec.kt index 8aaf5f47b0..fb3ad5ada7 100755 --- a/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateInterfaceTypeSpec.kt +++ b/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateInterfaceTypeSpec.kt @@ -23,16 +23,8 @@ import com.expediagroup.graphql.plugin.client.generator.exceptions.InvalidFragme import com.expediagroup.graphql.plugin.client.generator.exceptions.MissingTypeNameException import com.fasterxml.jackson.annotation.JsonSubTypes import com.fasterxml.jackson.annotation.JsonTypeInfo -import com.squareup.kotlinpoet.AnnotationSpec -import com.squareup.kotlinpoet.ClassName -import com.squareup.kotlinpoet.CodeBlock -import com.squareup.kotlinpoet.FunSpec -import com.squareup.kotlinpoet.KModifier -import com.squareup.kotlinpoet.MemberName +import com.squareup.kotlinpoet.* import com.squareup.kotlinpoet.MemberName.Companion.member -import com.squareup.kotlinpoet.ParameterSpec -import com.squareup.kotlinpoet.PropertySpec -import com.squareup.kotlinpoet.TypeSpec import graphql.language.Field import graphql.language.FieldDefinition import graphql.language.FragmentDefinition @@ -58,6 +50,7 @@ private val logger: Logger = LoggerFactory.getLogger("com.expediagroup.graphql.p * @see generateInterfaceTypeSpec * @see generateGraphQLUnionTypeSpec */ +@OptIn(DelicateKotlinPoetApi::class) internal fun generateInterfaceTypeSpec( context: GraphQLClientGeneratorContext, interfaceName: String, diff --git a/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateJacksonOptionalInputScalarSerializer.kt b/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateJacksonOptionalInputScalarSerializer.kt index 2f470102cf..9a210e80eb 100644 --- a/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateJacksonOptionalInputScalarSerializer.kt +++ b/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateJacksonOptionalInputScalarSerializer.kt @@ -105,7 +105,8 @@ internal fun generateJacksonOptionalInputScalarSerializer(customScalars: Collect | } |} """.trimMargin(), - jacksonUndefinedInput, jacksonDefinedInput + jacksonUndefinedInput, + jacksonDefinedInput ) ) .build() diff --git a/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateKotlinxOptionalInputSerializer.kt b/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateKotlinxOptionalInputSerializer.kt index 195997b7a3..dbc443231e 100644 --- a/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateKotlinxOptionalInputSerializer.kt +++ b/plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generateKotlinxOptionalInputSerializer.kt @@ -40,7 +40,7 @@ internal fun generateKotlinxOptionalInputSerializer( elementClassName: ClassName, typeName: String, customSerializerClassName: ClassName? = null, - isList: Boolean = false, + isList: Boolean = false ): TypeSpec { val optionalClassName = if (isList) { LIST.parameterizedBy(elementClassName) diff --git a/plugins/client/graphql-kotlin-client-generator/src/test/kotlin/com/expediagroup/graphql/plugin/client/generator/GraphQLTestUtils.kt b/plugins/client/graphql-kotlin-client-generator/src/test/kotlin/com/expediagroup/graphql/plugin/client/generator/GraphQLTestUtils.kt index e0debd056c..dc9be6a274 100644 --- a/plugins/client/graphql-kotlin-client-generator/src/test/kotlin/com/expediagroup/graphql/plugin/client/generator/GraphQLTestUtils.kt +++ b/plugins/client/graphql-kotlin-client-generator/src/test/kotlin/com/expediagroup/graphql/plugin/client/generator/GraphQLTestUtils.kt @@ -20,6 +20,7 @@ import com.expediagroup.graphql.client.converter.ScalarConverter import com.ibm.icu.util.ULocale import com.tschuchort.compiletesting.KotlinCompilation import com.tschuchort.compiletesting.SourceFile +import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationComponentRegistrar import org.junit.jupiter.params.provider.Arguments import java.io.File @@ -54,6 +55,7 @@ internal fun locateTestFiles(directory: File): Pair, Map = HashMap() private val additionalInputTypes: MutableSet = HashSet() + // we need to capture enums private val additionalTypes: MutableSet = HashSet()