From d5460697b4125114245e73ff025cce1b39e2addb Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Tue, 8 Apr 2025 09:34:00 +0200 Subject: [PATCH] Upgrade to Spring for GraphQL 1.4.0-SNAPSHOT See gh-45029 --- .../GraphQlObservationAutoConfiguration.java | 8 +++++--- .../GraphQlObservationAutoConfigurationTests.java | 14 +++++++++++++- .../spring-boot-dependencies/build.gradle | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfiguration.java index 86b5ed0aee3..8f4fcc13a09 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2025 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. @@ -30,6 +30,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.context.annotation.Bean; import org.springframework.graphql.execution.GraphQlSource; import org.springframework.graphql.observation.DataFetcherObservationConvention; +import org.springframework.graphql.observation.DataLoaderObservationConvention; import org.springframework.graphql.observation.ExecutionRequestObservationConvention; import org.springframework.graphql.observation.GraphQlObservationInstrumentation; @@ -49,9 +50,10 @@ public class GraphQlObservationAutoConfiguration { @ConditionalOnMissingBean public GraphQlObservationInstrumentation graphQlObservationInstrumentation(ObservationRegistry observationRegistry, ObjectProvider executionConvention, - ObjectProvider dataFetcherConvention) { + ObjectProvider dataFetcherConvention, + ObjectProvider dataLoaderObservationConvention) { return new GraphQlObservationInstrumentation(observationRegistry, executionConvention.getIfAvailable(), - dataFetcherConvention.getIfAvailable()); + dataFetcherConvention.getIfAvailable(), dataLoaderObservationConvention.getIfAvailable()); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfigurationTests.java index dbf7429ee8a..68160531e07 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2025 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. @@ -25,6 +25,7 @@ import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.graphql.observation.DefaultDataFetcherObservationConvention; +import org.springframework.graphql.observation.DefaultDataLoaderObservationConvention; import org.springframework.graphql.observation.DefaultExecutionRequestObservationConvention; import org.springframework.graphql.observation.GraphQlObservationInstrumentation; import org.springframework.graphql.server.WebGraphQlHandler; @@ -71,6 +72,8 @@ class GraphQlObservationAutoConfigurationTests { .isInstanceOf(CustomExecutionRequestObservationConvention.class); assertThat(instrumentation).extracting("dataFetcherObservationConvention") .isInstanceOf(CustomDataFetcherObservationConvention.class); + assertThat(instrumentation).extracting("dataLoaderObservationConvention") + .isInstanceOf(CustomDataLoaderObservationConvention.class); }); } @@ -97,6 +100,11 @@ class GraphQlObservationAutoConfigurationTests { return new CustomDataFetcherObservationConvention(); } + @Bean + CustomDataLoaderObservationConvention customDataLoaderConvention() { + return new CustomDataLoaderObservationConvention(); + } + } static class CustomExecutionRequestObservationConvention extends DefaultExecutionRequestObservationConvention { @@ -107,6 +115,10 @@ class GraphQlObservationAutoConfigurationTests { } + static class CustomDataLoaderObservationConvention extends DefaultDataLoaderObservationConvention { + + } + @Configuration(proxyBeanMethods = false) static class WebGraphQlConfiguration { diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index a411c61d90e..d8e7452fd81 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2227,7 +2227,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-framework/releases/tag/v{version}") } } - library("Spring GraphQL", "1.4.0-M1") { + library("Spring GraphQL", "1.4.0-SNAPSHOT") { considerSnapshots() group("org.springframework.graphql") { modules = [