Skip to content

Commit 4fa61cb

Browse files
committed
Merge branch '2.5.x'
2 parents 3e21ae1 + 2ba5933 commit 4fa61cb

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfigurationTests.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
import io.rsocket.transport.ClientTransport;
2323
import io.rsocket.transport.netty.client.TcpClientTransport;
2424
import org.junit.jupiter.api.Test;
25-
import reactor.core.publisher.Mono;
2625

2726
import org.springframework.beans.DirectFieldAccessor;
2827
import org.springframework.boot.autoconfigure.AutoConfigurations;
28+
import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration;
2929
import org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration.IntegrationComponentScanConfiguration;
3030
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
3131
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
@@ -49,10 +49,8 @@
4949
import org.springframework.integration.annotation.MessagingGateway;
5050
import org.springframework.integration.config.IntegrationManagementConfigurer;
5151
import org.springframework.integration.context.IntegrationContextUtils;
52-
import org.springframework.integration.core.MessageSource;
5352
import org.springframework.integration.endpoint.MessageProcessorMessageSource;
5453
import org.springframework.integration.gateway.RequestReplyExchanger;
55-
import org.springframework.integration.handler.MessageProcessor;
5654
import org.springframework.integration.rsocket.ClientRSocketConnector;
5755
import org.springframework.integration.rsocket.IntegrationRSocketEndpoint;
5856
import org.springframework.integration.rsocket.ServerRSocketConnector;
@@ -170,6 +168,27 @@ void integrationJdbcDataSourceInitializerEnabled() {
170168
});
171169
}
172170

171+
@Test
172+
void whenIntegrationJdbcDataSourceInitializerIsEnabledThenFlywayCanBeUsed() {
173+
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
174+
.withConfiguration(AutoConfigurations.of(DataSourceTransactionManagerAutoConfiguration.class,
175+
JdbcTemplateAutoConfiguration.class, IntegrationAutoConfiguration.class,
176+
FlywayAutoConfiguration.class))
177+
.withPropertyValues("spring.datasource.generate-unique-name=true",
178+
"spring.integration.jdbc.initialize-schema=always")
179+
.run((context) -> {
180+
IntegrationProperties properties = context.getBean(IntegrationProperties.class);
181+
assertThat(properties.getJdbc().getInitializeSchema())
182+
.isEqualTo(DataSourceInitializationMode.ALWAYS);
183+
JdbcOperations jdbc = context.getBean(JdbcOperations.class);
184+
assertThat(jdbc.queryForList("select * from INT_MESSAGE")).isEmpty();
185+
assertThat(jdbc.queryForList("select * from INT_GROUP_TO_MESSAGE")).isEmpty();
186+
assertThat(jdbc.queryForList("select * from INT_MESSAGE_GROUP")).isEmpty();
187+
assertThat(jdbc.queryForList("select * from INT_LOCK")).isEmpty();
188+
assertThat(jdbc.queryForList("select * from INT_CHANNEL_MESSAGE")).isEmpty();
189+
});
190+
}
191+
173192
@Test
174193
void integrationJdbcDataSourceInitializerDisabled() {
175194
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
@@ -398,8 +417,9 @@ interface TestGateway extends RequestReplyExchanger {
398417
static class MessageSourceConfiguration {
399418

400419
@Bean
401-
MessageSource<?> myMessageSource() {
402-
return new MessageProcessorMessageSource(mock(MessageProcessor.class));
420+
org.springframework.integration.core.MessageSource<?> myMessageSource() {
421+
return new MessageProcessorMessageSource(
422+
mock(org.springframework.integration.handler.MessageProcessor.class));
403423
}
404424

405425
}
@@ -412,7 +432,7 @@ IntegrationRSocketEndpoint mockIntegrationRSocketEndpoint() {
412432
return new IntegrationRSocketEndpoint() {
413433

414434
@Override
415-
public Mono<Void> handleMessage(Message<?> message) {
435+
public reactor.core.publisher.Mono<Void> handleMessage(Message<?> message) {
416436
return null;
417437
}
418438

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/AbstractDataSourceInitializerDatabaseInitializerDetector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.springframework.boot.sql.init.dependency.AbstractBeansOfTypeDatabaseInitializerDetector;
2323
import org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector;
24+
import org.springframework.core.Ordered;
2425

2526
/**
2627
* A {@link DatabaseInitializerDetector} for {@link AbstractDataSourceInitializer}.
@@ -30,9 +31,16 @@
3031
@Deprecated
3132
class AbstractDataSourceInitializerDatabaseInitializerDetector extends AbstractBeansOfTypeDatabaseInitializerDetector {
3233

34+
private static final int PRECEDENCE = Ordered.LOWEST_PRECEDENCE - 100;
35+
3336
@Override
3437
protected Set<Class<?>> getDatabaseInitializerBeanTypes() {
3538
return Collections.singleton(AbstractDataSourceInitializer.class);
3639
}
3740

41+
@Override
42+
public int getOrder() {
43+
return PRECEDENCE;
44+
}
45+
3846
}

0 commit comments

Comments
 (0)