Browse Source

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
pull/45049/head
Phillip Webb 10 months ago
parent
commit
9eb5e2b970
  1. 20
      spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/service/connection/ConnectionDetailsFactories.java
  2. 4
      spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/lifecycle/DockerComposeProperties.java
  3. 2
      spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/DockerComposeServiceConnectionsApplicationListener.java
  4. 6
      spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java
  5. 2
      spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionAutoConfigurationRegistrar.java
  6. 2
      spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ServiceConnectionContextCustomizer.java

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

@ -1,5 +1,5 @@ @@ -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; @@ -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 { @@ -47,8 +48,23 @@ public class ConnectionDetailsFactories {
private final List<Registration<?, ?>> 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" })

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

@ -1,5 +1,5 @@ @@ -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 { @@ -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);
}

2
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 @@ -49,7 +49,7 @@ class DockerComposeServiceConnectionsApplicationListener
private final ConnectionDetailsFactories factories;
DockerComposeServiceConnectionsApplicationListener() {
this(new ConnectionDetailsFactories());
this(new ConnectionDetailsFactories(null));
}
DockerComposeServiceConnectionsApplicationListener(ConnectionDetailsFactories factories) {

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

@ -1,5 +1,5 @@ @@ -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 { @@ -42,7 +42,7 @@ class CustomRedisContainerConnectionDetailsFactoryTests {
@Test
void getConnectionDetailsWhenRedisContainerWithCustomName() {
ConnectionDetailsFactories factories = new ConnectionDetailsFactories();
ConnectionDetailsFactories factories = new ConnectionDetailsFactories(null);
MergedAnnotation<ServiceConnection> annotation = MergedAnnotation.of(ServiceConnection.class,
Map.of("value", ""));
ContainerConnectionSource<RedisContainer> source = TestContainerConnectionSource.create("test", null,
@ -53,7 +53,7 @@ class CustomRedisContainerConnectionDetailsFactoryTests { @@ -53,7 +53,7 @@ class CustomRedisContainerConnectionDetailsFactoryTests {
@Test
void getConnectionDetailsWhenRedisStackContainerWithCustomName() {
ConnectionDetailsFactories factories = new ConnectionDetailsFactories();
ConnectionDetailsFactories factories = new ConnectionDetailsFactories(null);
MergedAnnotation<ServiceConnection> annotation = MergedAnnotation.of(ServiceConnection.class,
Map.of("value", ""));
ContainerConnectionSource<RedisStackContainer> source = TestContainerConnectionSource.create("test", null,

2
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 @@ -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)

2
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 { @@ -47,7 +47,7 @@ class ServiceConnectionContextCustomizer implements ContextCustomizer {
private final ConnectionDetailsFactories connectionDetailsFactories;
ServiceConnectionContextCustomizer(List<ContainerConnectionSource<?>> sources) {
this(sources, new ConnectionDetailsFactories());
this(sources, new ConnectionDetailsFactories(null));
}
ServiceConnectionContextCustomizer(List<ContainerConnectionSource<?>> sources,

Loading…
Cancel
Save