From 1b0f0df83d2f8386011f3ca427d85edc00ad8cb4 Mon Sep 17 00:00:00 2001 From: Andreas Marek Date: Fri, 5 Mar 2021 17:46:55 +1100 Subject: [PATCH] only build GraphQL once --- .../boot/WebFluxGraphQLAutoConfiguration.java | 13 ++++++++----- .../boot/WebMvcGraphQLAutoConfiguration.java | 12 ++++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebFluxGraphQLAutoConfiguration.java b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebFluxGraphQLAutoConfiguration.java index f58248872..a0287fdc1 100644 --- a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebFluxGraphQLAutoConfiguration.java +++ b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebFluxGraphQLAutoConfiguration.java @@ -58,13 +58,16 @@ public class WebFluxGraphQLAutoConfiguration { private static final Log logger = LogFactory.getLog(WebFluxGraphQLAutoConfiguration.class); + @Bean + public GraphQL graphQL(GraphQL.Builder graphQLBuilder) { + return graphQLBuilder.build(); + } @Bean @ConditionalOnMissingBean - public GraphQLHttpHandler graphQLHandler(GraphQL.Builder graphQLBuilder, ObjectProvider interceptors) { - return new GraphQLHttpHandler(graphQLBuilder.build(), interceptors.orderedStream().collect(Collectors.toList())); + public GraphQLHttpHandler graphQLHandler(GraphQL graphQL, ObjectProvider interceptors) { + return new GraphQLHttpHandler(graphQL, interceptors.orderedStream().collect(Collectors.toList())); } - @Bean public RouterFunction graphQLEndpoint( GraphQLHttpHandler handler, GraphQLProperties properties, ResourceLoader resourceLoader) { @@ -88,11 +91,11 @@ static class WebSocketConfiguration { @Bean @ConditionalOnMissingBean public GraphQLWebSocketHandler graphQLWebSocketHandler( - GraphQL.Builder graphQLBuilder, GraphQLProperties properties, ServerCodecConfigurer configurer, + GraphQL graphql, GraphQLProperties properties, ServerCodecConfigurer configurer, ObjectProvider interceptors) { return new GraphQLWebSocketHandler( - graphQLBuilder.build(), interceptors.orderedStream().collect(Collectors.toList()), + graphql, interceptors.orderedStream().collect(Collectors.toList()), configurer, properties.getWebsocket().getConnectionInitTimeout() ); } diff --git a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebMvcGraphQLAutoConfiguration.java b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebMvcGraphQLAutoConfiguration.java index 26eea7107..58b5d5cbf 100644 --- a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebMvcGraphQLAutoConfiguration.java +++ b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebMvcGraphQLAutoConfiguration.java @@ -65,12 +65,16 @@ public class WebMvcGraphQLAutoConfiguration { private static final Log logger = LogFactory.getLog(WebMvcGraphQLAutoConfiguration.class); + @Bean + public GraphQL graphQL(GraphQL.Builder graphQLBuilder) { + return graphQLBuilder.build(); + } @Bean @ConditionalOnMissingBean - public GraphQLHttpHandler graphQLHandler(GraphQL.Builder graphQLBuilder, + public GraphQLHttpHandler graphQLHandler(GraphQL graphQL, ObjectProvider interceptors) { - return new GraphQLHttpHandler(graphQLBuilder.build(), interceptors.orderedStream().collect(Collectors.toList())); + return new GraphQLHttpHandler(graphQL, interceptors.orderedStream().collect(Collectors.toList())); } @Bean @@ -98,7 +102,7 @@ static class WebSocketConfiguration { @Bean @ConditionalOnMissingBean public GraphQLWebSocketHandler graphQLWebSocketHandler( - GraphQL.Builder graphQLBuilder, GraphQLProperties properties, HttpMessageConverters converters, + GraphQL graphQL, GraphQLProperties properties, HttpMessageConverters converters, ObjectProvider interceptors) { HttpMessageConverter converter = converters.getConverters().stream() @@ -107,7 +111,7 @@ public GraphQLWebSocketHandler graphQLWebSocketHandler( .orElseThrow(() -> new IllegalStateException("No JSON converter")); return new GraphQLWebSocketHandler( - graphQLBuilder.build(), interceptors.orderedStream().collect(Collectors.toList()), + graphQL, interceptors.orderedStream().collect(Collectors.toList()), converter, properties.getWebsocket().getConnectionInitTimeout() ); }