in graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLEnvironmentPostProcessor.kt [31:74]
override fun postProcessEnvironment(
environment: ConfigurableEnvironment,
application: SpringApplication,
) {
val properties = mutableMapOf<String, Any>()
if (environment.getProperty(SPRING_GRAPHQL_SCHEMA_INTROSPECTION_ENABLED) != null &&
environment.getProperty(DGS_GRAPHQL_INTROSPECTION_ENABLED) != null
) {
throw RuntimeException(
"Both properties `$SPRING_GRAPHQL_SCHEMA_INTROSPECTION_ENABLED` and `$DGS_GRAPHQL_INTROSPECTION_ENABLED` are explicitly set. Use `$DGS_GRAPHQL_INTROSPECTION_ENABLED` only",
)
} else if (environment.getProperty(DGS_GRAPHQL_INTROSPECTION_ENABLED) != null) {
properties[SPRING_GRAPHQL_SCHEMA_INTROSPECTION_ENABLED] = environment.getProperty(
DGS_GRAPHQL_INTROSPECTION_ENABLED,
) ?: true
} else {
properties[SPRING_GRAPHQL_SCHEMA_INTROSPECTION_ENABLED] =
environment[SPRING_GRAPHQL_SCHEMA_INTROSPECTION_ENABLED] ?: true
}
properties["spring.graphql.graphiql.enabled"] = environment.getProperty("dgs.graphql.graphiql.enabled") ?: true
properties["spring.graphql.graphiql.path"] = environment.getProperty("dgs.graphql.graphiql.path") ?: "/graphiql"
properties["spring.graphql.path"] = environment.getProperty("dgs.graphql.path") ?: "/graphql"
properties["spring.graphql.websocket.connection-init-timeout"] =
environment.getProperty("dgs.graphql.websocket.connection-init-timeout") ?: "10s"
environment.getProperty("dgs.graphql.websocket.path")?.let { websocketPath ->
properties["spring.graphql.websocket.path"] = websocketPath
}
if (environment.getProperty("dgs.graphql.virtualthreads.enabled") == null &&
environment.getProperty("spring.threads.virtual.enabled") == "true"
) {
properties["dgs.graphql.virtualthreads.enabled"] = true
}
environment.propertySources.addLast(
MapPropertySource(
"dgs-spring-graphql-defaults",
properties,
),
)
}