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.
This commit is contained in:
Brian Clozel
2021-07-06 13:25:38 +02:00
parent 69c2d08c71
commit 58d65d7a4c
4 changed files with 4 additions and 4 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {