Skip to content

SpringApplication.from(…).with(…) adds its sources to every context that's created #35873

@jbeaken

Description

@jbeaken

Using Testcontainers at Development Time I have

@TestConfiguration(proxyBeanMethods = false)
public class ContainersConfiguration {

    @Bean
    public KeycloakContainer keycloakContainer(DynamicPropertyRegistry registry) {
        KeycloakContainer keycloakContainer = new KeycloakContainer()...
        keycloakContainer.start();

        registry.add("keycloak.server.external-url", () -> keycloakContainer.getAuthServerUrl());
        registry.add("keycloak.server.internal-url", () -> keycloakContainer.getAuthServerUrl());
        registry.add("keycloak.dev-portal-realm", () -> "master");

        return keycloakContainer;
    }
}

with

public class DMATestApplication {
        public static void main(String[] args) {
            SpringApplication.from(DeveloperManagerApplication::main).with(ContainersConfiguration.class).run(args);;
        }

Upon running
gradle bootTestRun it throws
No qualifying bean of type 'org.springframework.test.context.DynamicPropertyRegistry' available:

	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1824)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1383)

While reading the docs it suggests it is possible, when @Serviceconnection isn't supported

Using a @ServiceConnection is recommended whenever possible, however, dynamic properties can be a useful fallback for technologies that don’t yet have @ServiceConnection support. 

Does anyone know if dynamic properties are supported?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions