diff --git a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMicrometerAutoConfiguration.kt b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMicrometerAutoConfiguration.kt index eb40e5f13..9e408f8ef 100644 --- a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMicrometerAutoConfiguration.kt +++ b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMicrometerAutoConfiguration.kt @@ -14,6 +14,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegi import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration import org.springframework.boot.actuate.autoconfigure.metrics.PropertiesAutoTimer import org.springframework.boot.autoconfigure.AutoConfiguration +import org.springframework.boot.autoconfigure.AutoConfigureAfter import org.springframework.boot.autoconfigure.condition.ConditionalOnClass import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty @@ -21,8 +22,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.cache.CacheManager import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration -import org.springframework.core.PriorityOrdered -import org.springframework.core.annotation.Order import java.util.Optional /** diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQPreParsedDocumentProvider.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQPreParsedDocumentProviderWrapper.kt similarity index 97% rename from graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQPreParsedDocumentProvider.kt rename to graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQPreParsedDocumentProviderWrapper.kt index e9de97c71..63a6a3608 100644 --- a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQPreParsedDocumentProvider.kt +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQPreParsedDocumentProviderWrapper.kt @@ -25,7 +25,7 @@ import java.util.* import java.util.concurrent.CompletableFuture import java.util.function.Function -class DgsAPQPreParsedDocumentProvider( +class DgsAPQPreParsedDocumentProviderWrapper( persistedQueryCache: PersistedQueryCache, private val preparsedDocumentProvider: Optional, ) : ApolloPersistedQuerySupport(persistedQueryCache) { diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQSupportAutoConfiguration.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQSupportAutoConfiguration.kt index 13addbcf2..1a7da718a 100644 --- a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQSupportAutoConfiguration.kt +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/apq/DgsAPQSupportAutoConfiguration.kt @@ -58,7 +58,8 @@ open class DgsAPQSupportAutoConfiguration { builder.configureGraphQl { graphQlBuilder -> // For non-APQ queries, the user specified PreparsedDocumentProvider should be used, so we configure the DgsAPQPreparsedDocumentProvider to // wrap the user specified one and delegate appropriately since we can only have one PreParsedDocumentProvider bean - val apqPreParsedDocumentProvider = DgsAPQPreParsedDocumentProvider(persistedQueryCache.get(), preparsedDocumentProvider) + val apqPreParsedDocumentProvider = + DgsAPQPreParsedDocumentProviderWrapper(persistedQueryCache.get(), preparsedDocumentProvider) graphQlBuilder.preparsedDocumentProvider(apqPreParsedDocumentProvider) } } diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLAutoConfiguration.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLAutoConfiguration.kt index 0e212b14d..ea9342c5d 100644 --- a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLAutoConfiguration.kt +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLAutoConfiguration.kt @@ -496,7 +496,7 @@ open class DgsSpringGraphQLAutoConfiguration( GraphQlSourceBuilderCustomizer { builder -> builder.configureGraphQl { graphQlBuilder -> val apqEnabled = environment.getProperty("dgs.graphql.apq.enabled", Boolean::class.java, false) - // if apq is enabled use the APQPreparsedDocumentProvider instead + // If apq is enabled, we will not use this preparsedDocumentProvider and use DgsAPQPreparsedDocumentProviderWrapper instead if (preparsedDocumentProvider.isPresent && !apqEnabled) { graphQlBuilder.preparsedDocumentProvider(preparsedDocumentProvider.get()) } diff --git a/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/apq/DgsAPQPreParsedDocumentProviderTest.kt b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/apq/DgsAPQPreParsedDocumentProviderWrapperTest.kt similarity index 92% rename from graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/apq/DgsAPQPreParsedDocumentProviderTest.kt rename to graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/apq/DgsAPQPreParsedDocumentProviderWrapperTest.kt index bde2653dd..76aa9cd52 100644 --- a/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/apq/DgsAPQPreParsedDocumentProviderTest.kt +++ b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/apq/DgsAPQPreParsedDocumentProviderWrapperTest.kt @@ -16,7 +16,7 @@ package com.netflix.graphql.dgs.springgraphql.apq -import com.netflix.graphql.dgs.apq.DgsAPQPreParsedDocumentProvider +import com.netflix.graphql.dgs.apq.DgsAPQPreParsedDocumentProviderWrapper import graphql.ExecutionInput import graphql.execution.preparsed.PreparsedDocumentEntry import graphql.execution.preparsed.PreparsedDocumentProvider @@ -36,9 +36,9 @@ import java.util.* import java.util.concurrent.CompletableFuture @ExtendWith(MockKExtension::class) -class DgsAPQPreParsedDocumentProviderTest { +class DgsAPQPreParsedDocumentProviderWrapperTest { @Autowired - private lateinit var dgsAPQPreParsedDocumentProvider: DgsAPQPreParsedDocumentProvider + private lateinit var dgsAPQPreParsedDocumentProvider: DgsAPQPreParsedDocumentProviderWrapper @MockK lateinit var preparsedDocumentProvider: PreparsedDocumentProvider @@ -48,7 +48,8 @@ class DgsAPQPreParsedDocumentProviderTest { @BeforeEach fun setUp() { - dgsAPQPreParsedDocumentProvider = DgsAPQPreParsedDocumentProvider(persistedQueryCache, Optional.of(preparsedDocumentProvider)) + dgsAPQPreParsedDocumentProvider = + DgsAPQPreParsedDocumentProviderWrapper(persistedQueryCache, Optional.of(preparsedDocumentProvider)) } @Test @@ -74,7 +75,7 @@ class DgsAPQPreParsedDocumentProviderTest { }.returns(CompletableFuture.completedFuture(computeFunction(executionInput))) dgsAPQPreParsedDocumentProvider.getDocumentAsync(executionInput, computeFunction) - assertThat(count == 1) + assertThat(count).isEqualTo(1) } @Test @@ -100,7 +101,7 @@ class DgsAPQPreParsedDocumentProviderTest { }.returns(CompletableFuture.completedFuture(computeFunction(executionInput))) dgsAPQPreParsedDocumentProvider.getDocumentAsync(executionInput, computeFunction) - assertThat(count == 1) + assertThat(count).isEqualTo(1) } @Test @@ -121,6 +122,6 @@ class DgsAPQPreParsedDocumentProviderTest { }.returns(CompletableFuture.completedFuture(computeFunction(executionInput))) dgsAPQPreParsedDocumentProvider.getDocumentAsync(executionInput, computeFunction) - assertThat(count == 1) + assertThat(count).isEqualTo(1) } }