Create spring-boot-r2dbc module

This commit is contained in:
Andy Wilkinson
2025-03-21 09:14:25 +00:00
committed by Phillip Webb
parent c965f4e65f
commit 81d4528eee
104 changed files with 220 additions and 187 deletions

View File

@@ -30,9 +30,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionMessage;
import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
import org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration;
import org.springframework.boot.devtools.autoconfigure.DevToolsR2dbcAutoConfiguration.DevToolsConnectionFactoryCondition;
import org.springframework.boot.r2dbc.EmbeddedDatabaseConnection;
import org.springframework.boot.r2dbc.autoconfigure.R2dbcAutoConfiguration;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ConditionContext;
@@ -51,7 +51,7 @@ import org.springframework.core.type.MethodMetadata;
@ConditionalOnClass(ConnectionFactory.class)
@ConditionalOnEnabledDevTools
@Conditional(DevToolsConnectionFactoryCondition.class)
@AutoConfiguration(after = R2dbcAutoConfiguration.class)
@AutoConfiguration(afterName = "org.springframework.boot.r2dbc.autoconfigure.R2dbcAutoConfiguration")
public class DevToolsR2dbcAutoConfiguration {
@Bean

View File

@@ -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.
@@ -23,17 +23,15 @@ import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Supplier;
import io.r2dbc.spi.Connection;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryMetadata;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.reactivestreams.Publisher;
import org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition;
import org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration;
import org.springframework.boot.devtools.autoconfigure.DevToolsR2dbcAutoConfiguration.R2dbcDatabaseShutdownEvent;
import org.springframework.boot.r2dbc.SimpleConnectionFactoryProvider.SimpleTestConnectionFactory;
import org.springframework.boot.r2dbc.autoconfigure.R2dbcAutoConfiguration;
import org.springframework.boot.test.util.TestPropertyValues;
import org.springframework.boot.testsupport.classpath.ClassPathExclusions;
import org.springframework.context.ApplicationListener;
@@ -109,7 +107,7 @@ class DevToolsR2dbcAutoConfigurationTests {
private ConfigurableApplicationContext getEmptyFactoryMethodMetadataIgnoredContext() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
ConnectionFactory connectionFactory = new MockConnectionFactory();
ConnectionFactory connectionFactory = new SimpleTestConnectionFactory();
AnnotatedGenericBeanDefinition beanDefinition = new AnnotatedGenericBeanDefinition(
connectionFactory.getClass());
context.registerBeanDefinition("connectionFactory", beanDefinition);
@@ -170,7 +168,7 @@ class DevToolsR2dbcAutoConfigurationTests {
@Bean
ConnectionFactory connectionFactory() {
return new MockConnectionFactory();
return new SimpleTestConnectionFactory();
}
}
@@ -180,26 +178,12 @@ class DevToolsR2dbcAutoConfigurationTests {
@Bean
ConnectionFactory connectionFactoryOne() {
return new MockConnectionFactory();
return new SimpleTestConnectionFactory();
}
@Bean
ConnectionFactory connectionFactoryTwo() {
return new MockConnectionFactory();
}
}
private static final class MockConnectionFactory implements ConnectionFactory {
@Override
public Publisher<? extends Connection> create() {
return null;
}
@Override
public ConnectionFactoryMetadata getMetadata() {
return null;
return new SimpleTestConnectionFactory();
}
}