From ee0c4af6d37afffe172bdc79fba270baa9fd9750 Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Tue, 25 Mar 2025 13:55:33 +0100 Subject: [PATCH] Create spring-boot-gson module --- settings.gradle | 1 + .../build.gradle | 2 +- ...ttpMessageConvertersAutoConfiguration.java | 7 +++---- ...ot.autoconfigure.AutoConfiguration.imports | 1 - ...ssageConvertersAutoConfigurationTests.java | 2 +- .../spring-boot-dependencies/build.gradle | 1 + .../spring-boot-docs/build.gradle | 2 ++ .../spring-boot-gson/build.gradle | 21 +++++++++++++++++++ .../autoconfigure}/GsonAutoConfiguration.java | 4 ++-- .../autoconfigure}/GsonBuilderCustomizer.java | 6 +++--- .../gson/autoconfigure}/GsonProperties.java | 6 ++---- .../gson/autoconfigure}/package-info.java | 4 ++-- ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../Gson210AutoConfigurationTests.java | 2 +- .../GsonAutoConfigurationTests.java | 4 ++-- .../autoconfigure}/GsonPropertiesTests.java | 2 +- .../build.gradle | 1 + .../json/JsonTestersAutoConfiguration.java | 7 +++---- ...toconfigure.json.AutoConfigureJson.imports | 2 +- .../JsonTestersAutoConfigurationTests.java | 4 ++-- 20 files changed, 51 insertions(+), 29 deletions(-) create mode 100644 spring-boot-project/spring-boot-gson/build.gradle rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson => spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure}/GsonAutoConfiguration.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson => spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure}/GsonBuilderCustomizer.java (89%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson => spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure}/GsonProperties.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson => spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure}/package-info.java (84%) create mode 100644 spring-boot-project/spring-boot-gson/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson => spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure}/Gson210AutoConfigurationTests.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson => spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure}/GsonAutoConfigurationTests.java (99%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson => spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure}/GsonPropertiesTests.java (95%) diff --git a/settings.gradle b/settings.gradle index 1b59ce62bb..b55c420124 100644 --- a/settings.gradle +++ b/settings.gradle @@ -62,6 +62,7 @@ include "spring-boot-project:spring-boot-elasticsearch" include "spring-boot-project:spring-boot-flyway" include "spring-boot-project:spring-boot-freemarker" include "spring-boot-project:spring-boot-groovy-templates" +include "spring-boot-project:spring-boot-gson" include "spring-boot-project:spring-boot-hazelcast" include "spring-boot-project:spring-boot-integration" include "spring-boot-project:spring-boot-jackson" diff --git a/spring-boot-project/spring-boot-autoconfigure-all/build.gradle b/spring-boot-project/spring-boot-autoconfigure-all/build.gradle index bacb082e2f..8df63ce946 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/build.gradle +++ b/spring-boot-project/spring-boot-autoconfigure-all/build.gradle @@ -67,7 +67,6 @@ dependencies { optional("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") optional("com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations") optional("com.fasterxml.jackson.module:jackson-module-parameter-names") - optional("com.google.code.gson:gson") optional("com.hazelcast:hazelcast-spring") optional("com.h2database:h2") optional("com.nimbusds:oauth2-oidc-sdk") @@ -204,6 +203,7 @@ dependencies { optional("redis.clients:jedis") testImplementation(project(":spring-boot-project:spring-boot-freemarker")) + testImplementation(project(":spring-boot-project:spring-boot-gson")) testImplementation(project(":spring-boot-project:spring-boot-jetty")) testImplementation(project(":spring-boot-project:spring-boot-test")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration.java index b58e1fbc98..6aef752786 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration.java @@ -24,7 +24,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type; import org.springframework.boot.autoconfigure.condition.NoneNestedConditions; -import org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration; import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration.NotReactiveWebApplicationCondition; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -48,9 +47,9 @@ import org.springframework.http.converter.StringHttpMessageConverter; * @author EddĂș MelĂ©ndez * @since 2.0.0 */ -@AutoConfiguration(after = { GsonAutoConfiguration.class }, - afterName = { "org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration", - "org.springframework.boot.jsonb.autoconfigure.JsonbAutoConfiguration" }) +@AutoConfiguration(afterName = { "org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration", + "org.springframework.boot.jsonb.autoconfigure.JsonbAutoConfiguration", + "org.springframework.boot.gson.autoconfigure.GsonAutoConfiguration" }) @ConditionalOnClass(HttpMessageConverter.class) @Conditional(NotReactiveWebApplicationCondition.class) @Import({ JacksonHttpMessageConvertersConfiguration.class, GsonHttpMessageConvertersConfiguration.class, diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 14b591ce7d..59d64ffd74 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -39,7 +39,6 @@ org.springframework.boot.autoconfigure.graphql.rsocket.RSocketGraphQlClientAutoC org.springframework.boot.autoconfigure.graphql.security.GraphQlWebFluxSecurityAutoConfiguration org.springframework.boot.autoconfigure.graphql.security.GraphQlWebMvcSecurityAutoConfiguration org.springframework.boot.autoconfigure.graphql.servlet.GraphQlWebMvcAutoConfiguration -org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfigurationTests.java index 0ad9e5198a..d76fbbb27f 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfigurationTests.java @@ -25,9 +25,9 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration; import org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration; import org.springframework.boot.autoconfigure.web.ServerProperties; +import org.springframework.boot.gson.autoconfigure.GsonAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.jsonb.autoconfigure.JsonbAutoConfiguration; import org.springframework.boot.test.context.FilteredClassLoader; diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index a88d5ef8b1..63c320088b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1995,6 +1995,7 @@ bom { "spring-boot-flyway", "spring-boot-freemarker", "spring-boot-groovy-templates", + "spring-boot-gson", "spring-boot-hazelcast", "spring-boot-integration", "spring-boot-jackson", diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index 29b6cd4102..5677f57dee 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -74,6 +74,7 @@ dependencies { autoConfiguration(project(path: ":spring-boot-project:spring-boot-elasticsearch", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-flyway", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-freemarker", configuration: "autoConfigurationMetadata")) + autoConfiguration(project(path: ":spring-boot-project:spring-boot-gson", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-integration", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-jackson", configuration: "autoConfigurationMetadata")) @@ -120,6 +121,7 @@ dependencies { configurationProperties(project(path: ":spring-boot-project:spring-boot-elasticsearch", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-flyway", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-freemarker", configuration: "configurationPropertiesMetadata")) + configurationProperties(project(path: ":spring-boot-project:spring-boot-gson", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-integration", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-jackson", configuration: "configurationPropertiesMetadata")) diff --git a/spring-boot-project/spring-boot-gson/build.gradle b/spring-boot-project/spring-boot-gson/build.gradle new file mode 100644 index 0000000000..ad4b8435b9 --- /dev/null +++ b/spring-boot-project/spring-boot-gson/build.gradle @@ -0,0 +1,21 @@ +plugins { + id "java-library" + id "org.springframework.boot.auto-configuration" + id "org.springframework.boot.configuration-properties" + id "org.springframework.boot.deployed" + id "org.springframework.boot.optional-dependencies" +} + +description = "Spring Boot GSON" + +dependencies { + api(project(":spring-boot-project:spring-boot")) + api("com.google.code.gson:gson") + + optional(project(":spring-boot-project:spring-boot-autoconfigure")) + + testImplementation(project(":spring-boot-project:spring-boot-test")) + testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) + + testRuntimeOnly("ch.qos.logback:logback-classic") +} diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration.java b/spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonAutoConfiguration.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration.java rename to spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonAutoConfiguration.java index 906f95a545..af1f460662 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration.java +++ b/spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.gson; +package org.springframework.boot.gson.autoconfigure; import java.util.List; import java.util.function.Consumer; @@ -38,7 +38,7 @@ import org.springframework.util.ClassUtils; * * @author David Liu * @author Ivan Golovko - * @since 1.2.0 + * @since 4.0.0 */ @AutoConfiguration @ConditionalOnClass(Gson.class) diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonBuilderCustomizer.java b/spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonBuilderCustomizer.java similarity index 89% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonBuilderCustomizer.java rename to spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonBuilderCustomizer.java index 7b01e0b76b..22e04b8f54 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonBuilderCustomizer.java +++ b/spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonBuilderCustomizer.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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.gson; +package org.springframework.boot.gson.autoconfigure; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -24,7 +24,7 @@ import com.google.gson.GsonBuilder; * {@link Gson} through {@link GsonBuilder} retaining its default auto-configuration. * * @author Ivan Golovko - * @since 2.0.0 + * @since 4.0.0 */ @FunctionalInterface public interface GsonBuilderCustomizer { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonProperties.java b/spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonProperties.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonProperties.java rename to spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonProperties.java index a75cd862d1..d0f149c6d8 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/GsonProperties.java +++ b/spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/GsonProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.gson; +package org.springframework.boot.gson.autoconfigure; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; @@ -27,7 +27,7 @@ import org.springframework.boot.context.properties.DeprecatedConfigurationProper * Configuration properties to configure {@link Gson}. * * @author Ivan Golovko - * @since 2.0.0 + * @since 4.0.0 */ @ConfigurationProperties("spring.gson") public class GsonProperties { @@ -193,8 +193,6 @@ public class GsonProperties { * Enumeration of levels of strictness. Values are the same as those on * {@link com.google.gson.Strictness} that was introduced in Gson 2.11. To maximize * backwards compatibility, the Gson enum is not used directly. - * - * @since 3.4.2 */ public enum Strictness { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/package-info.java b/spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/package-info.java similarity index 84% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/package-info.java rename to spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/package-info.java index 719b38c2fe..a0e7eeb91c 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/gson/package-info.java +++ b/spring-boot-project/spring-boot-gson/src/main/java/org/springframework/boot/gson/autoconfigure/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 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. @@ -17,4 +17,4 @@ /** * Auto-configuration for GSON. */ -package org.springframework.boot.autoconfigure.gson; +package org.springframework.boot.gson.autoconfigure; diff --git a/spring-boot-project/spring-boot-gson/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-gson/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000000..4a29fa1687 --- /dev/null +++ b/spring-boot-project/spring-boot-gson/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +org.springframework.boot.gson.autoconfigure.GsonAutoConfiguration diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/Gson210AutoConfigurationTests.java b/spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/Gson210AutoConfigurationTests.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/Gson210AutoConfigurationTests.java rename to spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/Gson210AutoConfigurationTests.java index fd2770e2ca..433e15560f 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/Gson210AutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/Gson210AutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.gson; +package org.springframework.boot.gson.autoconfigure; import com.google.gson.Gson; import org.junit.jupiter.api.Test; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfigurationTests.java b/spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/GsonAutoConfigurationTests.java similarity index 99% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfigurationTests.java rename to spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/GsonAutoConfigurationTests.java index 17d2fa3b9a..89f6b74788 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/GsonAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.gson; +package org.springframework.boot.gson.autoconfigure; import java.time.ZoneId; import java.time.ZonedDateTime; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/GsonPropertiesTests.java b/spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/GsonPropertiesTests.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/GsonPropertiesTests.java rename to spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/GsonPropertiesTests.java index 87ab6531b0..a24eaa4317 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/gson/GsonPropertiesTests.java +++ b/spring-boot-project/spring-boot-gson/src/test/java/org/springframework/boot/gson/autoconfigure/GsonPropertiesTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.gson; +package org.springframework.boot.gson.autoconfigure; import java.util.List; import java.util.stream.Stream; diff --git a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle index d4a90bb0c5..aaf527215a 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle @@ -103,6 +103,7 @@ dependencies { testImplementation(project(":spring-boot-project:spring-boot-actuator")) testImplementation(project(":spring-boot-project:spring-boot-actuator-autoconfigure")) testImplementation(project(":spring-boot-project:spring-boot-freemarker")) + testImplementation(project(":spring-boot-project:spring-boot-gson")) testImplementation(project(":spring-boot-project:spring-boot-mustache")) testImplementation(project(":spring-boot-project:spring-boot-testcontainers")) testImplementation(project(":spring-boot-project:spring-boot-thymeleaf")) diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/json/JsonTestersAutoConfiguration.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/json/JsonTestersAutoConfiguration.java index 38cda376a7..bacbdeb2f4 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/json/JsonTestersAutoConfiguration.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/json/JsonTestersAutoConfiguration.java @@ -38,7 +38,6 @@ import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBooleanProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration; import org.springframework.boot.test.json.AbstractJsonMarshalTester; import org.springframework.boot.test.json.BasicJsonTester; import org.springframework.boot.test.json.GsonTester; @@ -60,9 +59,9 @@ import org.springframework.util.ReflectionUtils; * @since 1.4.0 * @see AutoConfigureJsonTesters */ -@AutoConfiguration(after = { GsonAutoConfiguration.class }, - afterName = { "org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration", - "org.springframework.boot.jsonb.autoconfigure.JsonbAutoConfiguration" }) +@AutoConfiguration(afterName = { "org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration", + "org.springframework.boot.jsonb.autoconfigure.JsonbAutoConfiguration", + "org.springframework.boot.gson.autoconfigure.GsonAutoConfiguration" }) @ConditionalOnClass(name = "org.assertj.core.api.Assert") @ConditionalOnBooleanProperty("spring.test.jsontesters.enabled") public class JsonTestersAutoConfiguration { diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.json.AutoConfigureJson.imports b/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.json.AutoConfigureJson.imports index 3c37800720..266fa78b1a 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.json.AutoConfigureJson.imports +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.json.AutoConfigureJson.imports @@ -1,4 +1,4 @@ # AutoConfigureJson auto-configuration imports -org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration +optional:org.springframework.boot.gson.autoconfigure.GsonAutoConfiguration org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration optional:org.springframework.boot.jsonb.autoconfigure.JsonbAutoConfiguration diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/json/JsonTestersAutoConfigurationTests.java b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/json/JsonTestersAutoConfigurationTests.java index 7f688904ca..56983b0ef5 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/json/JsonTestersAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/json/JsonTestersAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 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. @@ -24,7 +24,7 @@ import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.predicate.ReflectionHintsPredicates; import org.springframework.aot.hint.predicate.RuntimeHintsPredicates; import org.springframework.aot.test.generate.TestGenerationContext; -import org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration; +import org.springframework.boot.gson.autoconfigure.GsonAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.jsonb.autoconfigure.JsonbAutoConfiguration; import org.springframework.boot.test.json.BasicJsonTester;