diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/service/connection/ConnectionDetailsFactories.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/service/connection/ConnectionDetailsFactories.java index d348238f511..5ec7c2deff3 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/service/connection/ConnectionDetailsFactories.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/service/connection/ConnectionDetailsFactories.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. @@ -39,6 +39,7 @@ import org.springframework.util.Assert; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Pedro Xavier Leite Cavadas * @since 3.1.0 */ public class ConnectionDetailsFactories { @@ -47,8 +48,23 @@ public class ConnectionDetailsFactories { private final List> registrations = new ArrayList<>(); + /** + * Create a new {@link ConnectionDetailsFactories} instance. + * @deprecated since 3.5.0 for removal in 4.0.0 in favor of + * {@link #ConnectionDetailsFactories(ClassLoader)} + */ + @Deprecated(since = "3.5.0", forRemoval = true) public ConnectionDetailsFactories() { - this(SpringFactoriesLoader.forDefaultResourceLocation(ConnectionDetailsFactory.class.getClassLoader())); + this((ClassLoader) null); + } + + /** + * Create a new {@link ConnectionDetailsFactories} instance. + * @param classLoader the class loader used to load factories + * @since 3.5.0 + */ + public ConnectionDetailsFactories(ClassLoader classLoader) { + this(SpringFactoriesLoader.forDefaultResourceLocation(classLoader)); } @SuppressWarnings({ "rawtypes", "unchecked" }) diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/lifecycle/DockerComposeProperties.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/lifecycle/DockerComposeProperties.java index d6e98ec0f0e..e0b816fb004 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/lifecycle/DockerComposeProperties.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/lifecycle/DockerComposeProperties.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. @@ -137,7 +137,7 @@ public class DockerComposeProperties { return this.readiness; } - static DockerComposeProperties get(Binder binder) { + public static DockerComposeProperties get(Binder binder) { return binder.bind(NAME, DockerComposeProperties.class).orElseGet(DockerComposeProperties::new); } diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/DockerComposeServiceConnectionsApplicationListener.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/DockerComposeServiceConnectionsApplicationListener.java index 61acfcf9905..cb5393aa5fd 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/DockerComposeServiceConnectionsApplicationListener.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/DockerComposeServiceConnectionsApplicationListener.java @@ -49,7 +49,7 @@ class DockerComposeServiceConnectionsApplicationListener private final ConnectionDetailsFactories factories; DockerComposeServiceConnectionsApplicationListener() { - this(new ConnectionDetailsFactories()); + this(new ConnectionDetailsFactories(null)); } DockerComposeServiceConnectionsApplicationListener(ConnectionDetailsFactories factories) { diff --git a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java index 5d8dc04158f..9ce215bb597 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java +++ b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.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. @@ -42,7 +42,7 @@ class CustomRedisContainerConnectionDetailsFactoryTests { @Test void getConnectionDetailsWhenRedisContainerWithCustomName() { - ConnectionDetailsFactories factories = new ConnectionDetailsFactories(); + ConnectionDetailsFactories factories = new ConnectionDetailsFactories(null); MergedAnnotation annotation = MergedAnnotation.of(ServiceConnection.class, Map.of("value", "")); ContainerConnectionSource source = TestContainerConnectionSource.create("test", null, @@ -53,7 +53,7 @@ class CustomRedisContainerConnectionDetailsFactoryTests { @Test void getConnectionDetailsWhenRedisStackContainerWithCustomName() { - ConnectionDetailsFactories factories = new ConnectionDetailsFactories(); + ConnectionDetailsFactories factories = new ConnectionDetailsFactories(null); MergedAnnotation annotation = MergedAnnotation.of(ServiceConnection.class, Map.of("value", "")); ContainerConnectionSource source = TestContainerConnectionSource.create("test", null, diff --git a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionAutoConfigurationRegistrar.java b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionAutoConfigurationRegistrar.java index 144d2fa6776..6eed85656a2 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionAutoConfigurationRegistrar.java +++ b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionAutoConfigurationRegistrar.java @@ -57,7 +57,7 @@ class ServiceConnectionAutoConfigurationRegistrar implements ImportBeanDefinitio private void registerBeanDefinitions(ConfigurableListableBeanFactory beanFactory, BeanDefinitionRegistry registry) { ConnectionDetailsRegistrar registrar = new ConnectionDetailsRegistrar(beanFactory, - new ConnectionDetailsFactories()); + new ConnectionDetailsFactories(null)); for (String beanName : beanFactory.getBeanNamesForType(Container.class)) { BeanDefinition beanDefinition = getBeanDefinition(beanFactory, beanName); MergedAnnotations annotations = (beanDefinition instanceof TestcontainerBeanDefinition testcontainerBeanDefinition) diff --git a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionContextCustomizer.java b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionContextCustomizer.java index e5ade0d084e..42bfccfb88c 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionContextCustomizer.java +++ b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionContextCustomizer.java @@ -47,7 +47,7 @@ class ServiceConnectionContextCustomizer implements ContextCustomizer { private final ConnectionDetailsFactories connectionDetailsFactories; ServiceConnectionContextCustomizer(List> sources) { - this(sources, new ConnectionDetailsFactories()); + this(sources, new ConnectionDetailsFactories(null)); } ServiceConnectionContextCustomizer(List> sources,