diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQueryByExampleAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQueryByExampleAutoConfiguration.java index 52df8e11cb..42d79c0f31 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQueryByExampleAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQueryByExampleAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package org.springframework.boot.autoconfigure.graphql.data; +import java.util.Collections; import java.util.List; import graphql.GraphQL; @@ -29,9 +30,9 @@ import org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration; import org.springframework.boot.autoconfigure.graphql.GraphQlSourceBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.data.repository.query.QueryByExampleExecutor; -import org.springframework.data.repository.query.ReactiveQueryByExampleExecutor; import org.springframework.graphql.data.query.QueryByExampleDataFetcher; import org.springframework.graphql.execution.GraphQlSource; +import org.springframework.graphql.execution.RuntimeWiringConfigurer; /** * {@link EnableAutoConfiguration Auto-configuration} that creates a @@ -49,10 +50,10 @@ import org.springframework.graphql.execution.GraphQlSource; public class GraphQlQueryByExampleAutoConfiguration { @Bean - public GraphQlSourceBuilderCustomizer queryByExampleRegistrar(ObjectProvider> executors, - ObjectProvider> reactiveExecutors) { - return new GraphQlQuerydslSourceBuilderCustomizer<>(QueryByExampleDataFetcher::autoRegistrationConfigurer, - executors, reactiveExecutors); + public GraphQlSourceBuilderCustomizer queryByExampleRegistrar(ObjectProvider> executors) { + RuntimeWiringConfigurer configurer = QueryByExampleDataFetcher + .autoRegistrationConfigurer(executors.orderedStream().toList(), Collections.emptyList()); + return (builder) -> builder.configureRuntimeWiring(configurer); } } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslAutoConfiguration.java index c32b21b781..ca168f833e 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package org.springframework.boot.autoconfigure.graphql.data; +import java.util.Collections; import java.util.List; import graphql.GraphQL; @@ -29,9 +30,9 @@ import org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration; import org.springframework.boot.autoconfigure.graphql.GraphQlSourceBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.data.querydsl.QuerydslPredicateExecutor; -import org.springframework.data.querydsl.ReactiveQuerydslPredicateExecutor; import org.springframework.graphql.data.query.QuerydslDataFetcher; import org.springframework.graphql.execution.GraphQlSource; +import org.springframework.graphql.execution.RuntimeWiringConfigurer; /** * {@link EnableAutoConfiguration Auto-configuration} that creates a @@ -50,10 +51,10 @@ import org.springframework.graphql.execution.GraphQlSource; public class GraphQlQuerydslAutoConfiguration { @Bean - public GraphQlSourceBuilderCustomizer querydslRegistrar(ObjectProvider> executors, - ObjectProvider> reactiveExecutors) { - return new GraphQlQuerydslSourceBuilderCustomizer<>(QuerydslDataFetcher::autoRegistrationConfigurer, executors, - reactiveExecutors); + public GraphQlSourceBuilderCustomizer querydslRegistrar(ObjectProvider> executors) { + RuntimeWiringConfigurer configurer = QuerydslDataFetcher + .autoRegistrationConfigurer(executors.orderedStream().toList(), Collections.emptyList()); + return (builder) -> builder.configureRuntimeWiring(configurer); } } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslSourceBuilderCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslSourceBuilderCustomizer.java deleted file mode 100644 index ae0db51b20..0000000000 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslSourceBuilderCustomizer.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2012-2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.graphql.data; - -import java.util.Collections; -import java.util.List; -import java.util.function.BiFunction; - -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.graphql.GraphQlSourceBuilderCustomizer; -import org.springframework.graphql.execution.GraphQlSource; -import org.springframework.graphql.execution.RuntimeWiringConfigurer; - -/** - * {@link GraphQlSourceBuilderCustomizer} to apply auto-configured QueryDSL - * {@link RuntimeWiringConfigurer RuntimeWiringConfigurers}. - * - * @param the executor type - * @param the reactive executor type - * @author Phillip Webb - * @author Rossen Stoyanchev - * @author Brian Clozel - */ -class GraphQlQuerydslSourceBuilderCustomizer implements GraphQlSourceBuilderCustomizer { - - private final BiFunction, List, RuntimeWiringConfigurer> wiringConfigurerFactory; - - private final List executors; - - private final List reactiveExecutors; - - GraphQlQuerydslSourceBuilderCustomizer( - BiFunction, List, RuntimeWiringConfigurer> wiringConfigurerFactory, ObjectProvider executors, - ObjectProvider reactiveExecutors) { - this.wiringConfigurerFactory = wiringConfigurerFactory; - this.executors = asList(executors); - this.reactiveExecutors = asList(reactiveExecutors); - } - - private static List asList(ObjectProvider provider) { - return (provider != null) ? provider.orderedStream().toList() : Collections.emptyList(); - } - - @Override - public void customize(GraphQlSource.SchemaResourceBuilder builder) { - if (!this.executors.isEmpty() || !this.reactiveExecutors.isEmpty()) { - builder.configureRuntimeWiring(this.wiringConfigurerFactory.apply(this.executors, this.reactiveExecutors)); - } - } - -} diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlReactiveQueryByExampleAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlReactiveQueryByExampleAutoConfiguration.java index f28b17801e..6e784108e9 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlReactiveQueryByExampleAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlReactiveQueryByExampleAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package org.springframework.boot.autoconfigure.graphql.data; +import java.util.Collections; import java.util.List; import graphql.GraphQL; @@ -28,10 +29,10 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration; import org.springframework.boot.autoconfigure.graphql.GraphQlSourceBuilderCustomizer; import org.springframework.context.annotation.Bean; -import org.springframework.data.repository.query.QueryByExampleExecutor; import org.springframework.data.repository.query.ReactiveQueryByExampleExecutor; import org.springframework.graphql.data.query.QueryByExampleDataFetcher; import org.springframework.graphql.execution.GraphQlSource; +import org.springframework.graphql.execution.RuntimeWiringConfigurer; /** * {@link EnableAutoConfiguration Auto-configuration} that creates a @@ -51,8 +52,9 @@ public class GraphQlReactiveQueryByExampleAutoConfiguration { @Bean public GraphQlSourceBuilderCustomizer reactiveQueryByExampleRegistrar( ObjectProvider> reactiveExecutors) { - return new GraphQlQuerydslSourceBuilderCustomizer<>(QueryByExampleDataFetcher::autoRegistrationConfigurer, - (ObjectProvider>) null, reactiveExecutors); + RuntimeWiringConfigurer configurer = QueryByExampleDataFetcher + .autoRegistrationConfigurer(Collections.emptyList(), reactiveExecutors.orderedStream().toList()); + return (builder) -> builder.configureRuntimeWiring(configurer); } } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlReactiveQuerydslAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlReactiveQuerydslAutoConfiguration.java index f12be0563a..9d9cc4c610 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlReactiveQuerydslAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlReactiveQuerydslAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package org.springframework.boot.autoconfigure.graphql.data; +import java.util.Collections; import java.util.List; import graphql.GraphQL; @@ -28,10 +29,10 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration; import org.springframework.boot.autoconfigure.graphql.GraphQlSourceBuilderCustomizer; import org.springframework.context.annotation.Bean; -import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.data.querydsl.ReactiveQuerydslPredicateExecutor; import org.springframework.graphql.data.query.QuerydslDataFetcher; import org.springframework.graphql.execution.GraphQlSource; +import org.springframework.graphql.execution.RuntimeWiringConfigurer; /** * {@link EnableAutoConfiguration Auto-configuration} that creates a @@ -52,8 +53,9 @@ public class GraphQlReactiveQuerydslAutoConfiguration { @Bean public GraphQlSourceBuilderCustomizer reactiveQuerydslRegistrar( ObjectProvider> reactiveExecutors) { - return new GraphQlQuerydslSourceBuilderCustomizer<>(QuerydslDataFetcher::autoRegistrationConfigurer, - (ObjectProvider>) null, reactiveExecutors); + RuntimeWiringConfigurer configurer = QuerydslDataFetcher.autoRegistrationConfigurer(Collections.emptyList(), + reactiveExecutors.orderedStream().toList()); + return (builder) -> builder.configureRuntimeWiring(configurer); } } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQueryByExampleAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQueryByExampleAutoConfigurationTests.java index 0998bfe10a..964bf0ebaf 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQueryByExampleAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQueryByExampleAutoConfigurationTests.java @@ -49,7 +49,7 @@ class GraphQlQueryByExampleAutoConfigurationTests { .withConfiguration( AutoConfigurations.of(GraphQlAutoConfiguration.class, GraphQlQueryByExampleAutoConfiguration.class)) .withUserConfiguration(MockRepositoryConfig.class) - .withPropertyValues("spring.main.web-application-type=reactive"); + .withPropertyValues("spring.main.web-application-type=servlet"); @Test void shouldRegisterDataFetcherForQueryByExampleRepositories() { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslAutoConfigurationTests.java index 3bbb3df8a0..6087331469 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/data/GraphQlQuerydslAutoConfigurationTests.java @@ -50,7 +50,7 @@ class GraphQlQuerydslAutoConfigurationTests { .withConfiguration( AutoConfigurations.of(GraphQlAutoConfiguration.class, GraphQlQuerydslAutoConfiguration.class)) .withUserConfiguration(MockRepositoryConfig.class) - .withPropertyValues("spring.main.web-application-type=reactive"); + .withPropertyValues("spring.main.web-application-type=servlet"); @Test void shouldRegisterDataFetcherForQueryDslRepositories() {