From 58d65d7a4cbbd6a69d84a7b1aa3ab1d5254f3204 Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Tue, 6 Jul 2021 13:25:38 +0200 Subject: [PATCH] Refine auto-configurations conditions Prior to this commit, auto-configurations were only checking for the presence of GraphQL Java classes as guards, assuming that Spring GraphQL classes were always on the classpath. Auto-configurations are meant to be moved to the Spring Boot project in the future, so this commit adds the relevant condition class checks to reflect that spring-graphql might not be on the classpath. --- .../springframework/graphql/boot/GraphQlAutoConfiguration.java | 2 +- .../graphql/boot/GraphQlServiceAutoConfiguration.java | 2 +- .../graphql/boot/GraphQlWebFluxAutoConfiguration.java | 2 +- .../graphql/boot/GraphQlWebMvcAutoConfiguration.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlAutoConfiguration.java b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlAutoConfiguration.java index 1d61f141..2fbc2615 100644 --- a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlAutoConfiguration.java +++ b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlAutoConfiguration.java @@ -46,7 +46,7 @@ import org.springframework.graphql.execution.GraphQlSource; * @since 1.0.0 */ @Configuration(proxyBeanMethods = false) -@ConditionalOnClass(GraphQL.class) +@ConditionalOnClass({GraphQL.class, GraphQlSource.class}) @ConditionalOnMissingBean(GraphQlSource.class) @EnableConfigurationProperties(GraphQlProperties.class) public class GraphQlAutoConfiguration { diff --git a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlServiceAutoConfiguration.java b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlServiceAutoConfiguration.java index 16e34ef8..6729dda5 100644 --- a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlServiceAutoConfiguration.java +++ b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlServiceAutoConfiguration.java @@ -36,7 +36,7 @@ import org.springframework.graphql.execution.GraphQlSource; * @since 1.0.0 */ @Configuration(proxyBeanMethods = false) -@ConditionalOnClass(GraphQL.class) +@ConditionalOnClass({GraphQL.class, GraphQlService.class}) @ConditionalOnMissingBean(GraphQlService.class) @AutoConfigureAfter(GraphQlAutoConfiguration.class) public class GraphQlServiceAutoConfiguration { diff --git a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlWebFluxAutoConfiguration.java b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlWebFluxAutoConfiguration.java index 6b25323c..349d6a20 100644 --- a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlWebFluxAutoConfiguration.java +++ b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlWebFluxAutoConfiguration.java @@ -66,7 +66,7 @@ import static org.springframework.web.reactive.function.server.RequestPredicates */ @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) -@ConditionalOnClass(GraphQL.class) +@ConditionalOnClass({GraphQL.class, GraphQlHttpHandler.class}) @ConditionalOnBean(GraphQlSource.class) @AutoConfigureAfter(GraphQlServiceAutoConfiguration.class) public class GraphQlWebFluxAutoConfiguration { diff --git a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlWebMvcAutoConfiguration.java b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlWebMvcAutoConfiguration.java index 6442fa7f..5b7e976c 100644 --- a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlWebMvcAutoConfiguration.java +++ b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlWebMvcAutoConfiguration.java @@ -73,7 +73,7 @@ import static org.springframework.web.servlet.function.RequestPredicates.content */ @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) -@ConditionalOnClass(GraphQL.class) +@ConditionalOnClass({GraphQL.class, GraphQlHttpHandler.class}) @ConditionalOnBean(GraphQlSource.class) @AutoConfigureAfter(GraphQlServiceAutoConfiguration.class) public class GraphQlWebMvcAutoConfiguration {