Skip to content

Commit d7ddfe6

Browse files
committed
1 parent 92dc0da commit d7ddfe6

File tree

8 files changed

+105
-16
lines changed

8 files changed

+105
-16
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/r2dbc/R2dbcDataAutoConfiguration.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,14 @@
3434
import org.springframework.data.convert.CustomConversions;
3535
import org.springframework.data.r2dbc.convert.MappingR2dbcConverter;
3636
import org.springframework.data.r2dbc.convert.R2dbcCustomConversions;
37-
import org.springframework.data.r2dbc.core.DatabaseClient;
3837
import org.springframework.data.r2dbc.core.DefaultReactiveDataAccessStrategy;
38+
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
3939
import org.springframework.data.r2dbc.core.ReactiveDataAccessStrategy;
4040
import org.springframework.data.r2dbc.dialect.DialectResolver;
4141
import org.springframework.data.r2dbc.dialect.R2dbcDialect;
4242
import org.springframework.data.r2dbc.mapping.R2dbcMappingContext;
43-
import org.springframework.data.r2dbc.support.R2dbcExceptionSubclassTranslator;
44-
import org.springframework.data.r2dbc.support.R2dbcExceptionTranslator;
4543
import org.springframework.data.relational.core.mapping.NamingStrategy;
44+
import org.springframework.r2dbc.core.DatabaseClient;
4645

4746
/**
4847
* {@link EnableAutoConfiguration Auto-configuration} for {@link DatabaseClient}.
@@ -66,10 +65,9 @@ public R2dbcDataAutoConfiguration(ConnectionFactory connectionFactory) {
6665

6766
@Bean
6867
@ConditionalOnMissingBean
69-
public DatabaseClient r2dbcDatabaseClient(ReactiveDataAccessStrategy dataAccessStrategy,
70-
R2dbcExceptionTranslator exceptionTranslator) {
71-
return DatabaseClient.builder().connectionFactory(this.connectionFactory).dataAccessStrategy(dataAccessStrategy)
72-
.exceptionTranslator(exceptionTranslator).build();
68+
public R2dbcEntityTemplate r2dbcEntityTemplate(DatabaseClient databaseClient,
69+
ReactiveDataAccessStrategy reactiveDataAccessStrategy) {
70+
return new R2dbcEntityTemplate(databaseClient, reactiveDataAccessStrategy);
7371
}
7472

7573
@Bean
@@ -101,10 +99,4 @@ public R2dbcCustomConversions r2dbcCustomConversions() {
10199
Collections.emptyList());
102100
}
103101

104-
@Bean
105-
@ConditionalOnMissingBean
106-
public R2dbcExceptionTranslator r2dbcExceptionTranslator() {
107-
return new R2dbcExceptionSubclassTranslator();
108-
}
109-
110102
}

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/r2dbc/R2dbcRepositoriesAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2727
import org.springframework.context.annotation.Configuration;
2828
import org.springframework.context.annotation.Import;
29-
import org.springframework.data.r2dbc.core.DatabaseClient;
3029
import org.springframework.data.r2dbc.repository.R2dbcRepository;
3130
import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;
3231
import org.springframework.data.r2dbc.repository.support.R2dbcRepositoryFactoryBean;
32+
import org.springframework.r2dbc.core.DatabaseClient;
3333

3434
/**
3535
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data R2DBC Repositories.

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/r2dbc/R2dbcTransactionManagerAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import org.springframework.context.annotation.Bean;
2929
import org.springframework.context.annotation.Configuration;
3030
import org.springframework.core.Ordered;
31-
import org.springframework.data.r2dbc.connectionfactory.R2dbcTransactionManager;
31+
import org.springframework.r2dbc.connection.R2dbcTransactionManager;
3232
import org.springframework.transaction.ReactiveTransactionManager;
3333

3434
/**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright 2012-2020 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.boot.autoconfigure.r2dbc;
18+
19+
import io.r2dbc.spi.ConnectionFactory;
20+
21+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
22+
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
23+
import org.springframework.context.annotation.Bean;
24+
import org.springframework.context.annotation.Configuration;
25+
import org.springframework.r2dbc.core.DatabaseClient;
26+
27+
/**
28+
* Configuration of the R2DBC infrastructure based on a {@link ConnectionFactory}.
29+
*
30+
* @author Stephane Nicoll
31+
*/
32+
@Configuration(proxyBeanMethods = false)
33+
@ConditionalOnSingleCandidate(ConnectionFactory.class)
34+
class ConnectionFactoryDependentConfiguration {
35+
36+
@Bean
37+
@ConditionalOnMissingBean
38+
DatabaseClient r2dbcDatabaseClient(ConnectionFactory connectionFactory) {
39+
return DatabaseClient.builder().connectionFactory(connectionFactory).build();
40+
}
41+
42+
}

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/r2dbc/R2dbcAutoConfiguration.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
@ConditionalOnClass(ConnectionFactory.class)
3838
@AutoConfigureBefore(DataSourceAutoConfiguration.class)
3939
@EnableConfigurationProperties(R2dbcProperties.class)
40-
@Import({ ConnectionFactoryConfigurations.Pool.class, ConnectionFactoryConfigurations.Generic.class })
40+
@Import({ ConnectionFactoryConfigurations.Pool.class, ConnectionFactoryConfigurations.Generic.class,
41+
ConnectionFactoryDependentConfiguration.class })
4142
public class R2dbcAutoConfiguration {
4243

4344
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* Copyright 2012-2020 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.boot.autoconfigure.r2dbc;
18+
19+
import io.r2dbc.pool.ConnectionPool;
20+
import io.r2dbc.spi.ConnectionFactory;
21+
22+
import org.springframework.boot.autoconfigure.r2dbc.SimpleConnectionFactoryProvider.SimpleTestConnectionFactory;
23+
import org.springframework.r2dbc.core.binding.BindMarkersFactory;
24+
import org.springframework.r2dbc.core.binding.BindMarkersFactoryResolver.BindMarkerFactoryProvider;
25+
26+
/**
27+
* @author Stephane Nicoll
28+
*/
29+
public class SimpleBindMarkerFactoryProvider implements BindMarkerFactoryProvider {
30+
31+
@Override
32+
public BindMarkersFactory getBindMarkers(ConnectionFactory connectionFactory) {
33+
if (unwrapIfNecessary(connectionFactory) instanceof SimpleTestConnectionFactory) {
34+
return BindMarkersFactory.anonymous("?");
35+
}
36+
return null;
37+
}
38+
39+
private ConnectionFactory unwrapIfNecessary(ConnectionFactory connectionFactory) {
40+
if (connectionFactory instanceof ConnectionPool) {
41+
return ((ConnectionPool) connectionFactory).unwrap();
42+
}
43+
return connectionFactory;
44+
}
45+
46+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
org.springframework.r2dbc.core.binding.BindMarkersFactoryResolver$BindMarkerFactoryProvider=org.springframework.boot.autoconfigure.r2dbc.SimpleBindMarkerFactoryProvider

spring-boot-project/spring-boot-dependencies/build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,6 +1550,13 @@ bom {
15501550
]
15511551
}
15521552
}
1553+
library("Spring Data R2DBC", "1.2.0-gh-368-SNAPSHOT") {
1554+
group("org.springframework.data") {
1555+
modules = [
1556+
"spring-data-r2dbc"
1557+
]
1558+
}
1559+
}
15531560
library("Spring Data Bom", "2020.0.0-SNAPSHOT") {
15541561
group("org.springframework.data") {
15551562
imports = [

0 commit comments

Comments
 (0)