Browse Source

Merge branch '3.4.x'

Closes gh-44996
pull/45009/head
Andy Wilkinson 10 months ago
parent
commit
740fe4b28b
  1. 5
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java
  2. 9
      spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderTests.java

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

@ -191,7 +191,10 @@ public final class DataSourceBuilder<T extends DataSource> { @@ -191,7 +191,10 @@ public final class DataSourceBuilder<T extends DataSource> {
&& applied.contains(DataSourceProperty.URL)) {
String url = properties.get(dataSource, DataSourceProperty.URL);
DatabaseDriver driver = DatabaseDriver.fromJdbcUrl(url);
properties.set(dataSource, DataSourceProperty.DRIVER_CLASS_NAME, driver.getDriverClassName());
String driverClassName = driver.getDriverClassName();
if (driverClassName != null) {
properties.set(dataSource, DataSourceProperty.DRIVER_CLASS_NAME, driver.getDriverClassName());
}
}
return dataSource;
}

9
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderTests.java

@ -522,6 +522,15 @@ class DataSourceBuilderTests { @@ -522,6 +522,15 @@ class DataSourceBuilderTests {
assertThat(viburDataSource.getDriverClassName()).isEqualTo("com.example.Driver");
}
@Test
void buildWhenJdbcUrlIsFromUnknownDriverLeavesDriverClassNameUnset() {
this.dataSource = DataSourceBuilder.create()
.url("jdbc:example://localhost:1234/example")
.type(HikariDataSource.class)
.build();
assertThat(((HikariDataSource) this.dataSource).getDriverClassName()).isNull();
}
private DataSource wrap(DataSource target) {
return new DataSourceWrapper(target);
}

Loading…
Cancel
Save