in graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLAutoConfiguration.kt [495:520]
open fun sourceBuilderCustomizer(
preparsedDocumentProvider: Optional<PreparsedDocumentProvider>,
@Qualifier("query") providedQueryExecutionStrategy: Optional<ExecutionStrategy>,
@Qualifier("mutation") providedMutationExecutionStrategy: Optional<ExecutionStrategy>,
dataFetcherExceptionHandler: DataFetcherExceptionHandler,
environment: Environment,
): GraphQlSourceBuilderCustomizer =
GraphQlSourceBuilderCustomizer { builder ->
builder.configureGraphQl { graphQlBuilder ->
val apqEnabled = environment.getProperty("dgs.graphql.apq.enabled", Boolean::class.java, false)
// If apq is enabled, we will not use this preparsedDocumentProvider and use DgsAPQPreparsedDocumentProviderWrapper instead
if (preparsedDocumentProvider.isPresent && !apqEnabled) {
graphQlBuilder.preparsedDocumentProvider(preparsedDocumentProvider.get())
}
if (providedQueryExecutionStrategy.isPresent) {
graphQlBuilder
.queryExecutionStrategy(providedQueryExecutionStrategy.get())
}
if (providedMutationExecutionStrategy.isPresent) {
graphQlBuilder
.mutationExecutionStrategy(providedMutationExecutionStrategy.get())
}
}
}