Skip to content

Commit 9eb5e2b

Browse files
committed
Merge pull request #45014 from lengors
* pr/45014: Polish 'Allow ConnectionDetailsFactories to use context class loader' Allow ConnectionDetailsFactories to use context class loader Closes gh-45014
2 parents 2e8999e + d15078d commit 9eb5e2b

File tree

6 files changed

+26
-10
lines changed

6 files changed

+26
-10
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/service/connection/ConnectionDetailsFactories.java

+18-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -39,6 +39,7 @@
3939
* @author Moritz Halbritter
4040
* @author Andy Wilkinson
4141
* @author Phillip Webb
42+
* @author Pedro Xavier Leite Cavadas
4243
* @since 3.1.0
4344
*/
4445
public class ConnectionDetailsFactories {
@@ -47,8 +48,23 @@ public class ConnectionDetailsFactories {
4748

4849
private final List<Registration<?, ?>> registrations = new ArrayList<>();
4950

51+
/**
52+
* Create a new {@link ConnectionDetailsFactories} instance.
53+
* @deprecated since 3.5.0 for removal in 4.0.0 in favor of
54+
* {@link #ConnectionDetailsFactories(ClassLoader)}
55+
*/
56+
@Deprecated(since = "3.5.0", forRemoval = true)
5057
public ConnectionDetailsFactories() {
51-
this(SpringFactoriesLoader.forDefaultResourceLocation(ConnectionDetailsFactory.class.getClassLoader()));
58+
this((ClassLoader) null);
59+
}
60+
61+
/**
62+
* Create a new {@link ConnectionDetailsFactories} instance.
63+
* @param classLoader the class loader used to load factories
64+
* @since 3.5.0
65+
*/
66+
public ConnectionDetailsFactories(ClassLoader classLoader) {
67+
this(SpringFactoriesLoader.forDefaultResourceLocation(classLoader));
5268
}
5369

5470
@SuppressWarnings({ "rawtypes", "unchecked" })

spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/lifecycle/DockerComposeProperties.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -137,7 +137,7 @@ public Readiness getReadiness() {
137137
return this.readiness;
138138
}
139139

140-
static DockerComposeProperties get(Binder binder) {
140+
public static DockerComposeProperties get(Binder binder) {
141141
return binder.bind(NAME, DockerComposeProperties.class).orElseGet(DockerComposeProperties::new);
142142
}
143143

spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/DockerComposeServiceConnectionsApplicationListener.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class DockerComposeServiceConnectionsApplicationListener
4949
private final ConnectionDetailsFactories factories;
5050

5151
DockerComposeServiceConnectionsApplicationListener() {
52-
this(new ConnectionDetailsFactories());
52+
this(new ConnectionDetailsFactories(null));
5353
}
5454

5555
DockerComposeServiceConnectionsApplicationListener(ConnectionDetailsFactories factories) {

spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -42,7 +42,7 @@ class CustomRedisContainerConnectionDetailsFactoryTests {
4242

4343
@Test
4444
void getConnectionDetailsWhenRedisContainerWithCustomName() {
45-
ConnectionDetailsFactories factories = new ConnectionDetailsFactories();
45+
ConnectionDetailsFactories factories = new ConnectionDetailsFactories(null);
4646
MergedAnnotation<ServiceConnection> annotation = MergedAnnotation.of(ServiceConnection.class,
4747
Map.of("value", ""));
4848
ContainerConnectionSource<RedisContainer> source = TestContainerConnectionSource.create("test", null,
@@ -53,7 +53,7 @@ void getConnectionDetailsWhenRedisContainerWithCustomName() {
5353

5454
@Test
5555
void getConnectionDetailsWhenRedisStackContainerWithCustomName() {
56-
ConnectionDetailsFactories factories = new ConnectionDetailsFactories();
56+
ConnectionDetailsFactories factories = new ConnectionDetailsFactories(null);
5757
MergedAnnotation<ServiceConnection> annotation = MergedAnnotation.of(ServiceConnection.class,
5858
Map.of("value", ""));
5959
ContainerConnectionSource<RedisStackContainer> source = TestContainerConnectionSource.create("test", null,

spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionAutoConfigurationRegistrar.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, B
5757

5858
private void registerBeanDefinitions(ConfigurableListableBeanFactory beanFactory, BeanDefinitionRegistry registry) {
5959
ConnectionDetailsRegistrar registrar = new ConnectionDetailsRegistrar(beanFactory,
60-
new ConnectionDetailsFactories());
60+
new ConnectionDetailsFactories(null));
6161
for (String beanName : beanFactory.getBeanNamesForType(Container.class)) {
6262
BeanDefinition beanDefinition = getBeanDefinition(beanFactory, beanName);
6363
MergedAnnotations annotations = (beanDefinition instanceof TestcontainerBeanDefinition testcontainerBeanDefinition)

spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionContextCustomizer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class ServiceConnectionContextCustomizer implements ContextCustomizer {
4747
private final ConnectionDetailsFactories connectionDetailsFactories;
4848

4949
ServiceConnectionContextCustomizer(List<ContainerConnectionSource<?>> sources) {
50-
this(sources, new ConnectionDetailsFactories());
50+
this(sources, new ConnectionDetailsFactories(null));
5151
}
5252

5353
ServiceConnectionContextCustomizer(List<ContainerConnectionSource<?>> sources,

0 commit comments

Comments
 (0)