Add support for AWS Advanced JDBC Wrapper

This commit adds an entry for the AWS Advanced JDBC Wrapper to the
DatabaseDriver enum. This allows the driver class name to be
auto-detected from jdbc:aws-wrapper:… URLs.

See gh-43812

Signed-off-by: Vedran Pavic <vedran@vedranpavic.com>
This commit is contained in:
Vedran Pavic 2025-01-09 14:51:02 +01:00 committed by Andy Wilkinson
parent 89cd525f14
commit 2bf413c9a9
5 changed files with 29 additions and 3 deletions

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.
@ -62,8 +62,8 @@ class BatchDataSourceScriptDatabaseInitializerTests {
}
@ParameterizedTest
@EnumSource(value = DatabaseDriver.class, mode = Mode.EXCLUDE, names = { "CLICKHOUSE", "FIREBIRD", "INFORMIX",
"JTDS", "PHOENIX", "REDSHIFT", "TERADATA", "TESTCONTAINERS", "UNKNOWN" })
@EnumSource(value = DatabaseDriver.class, mode = Mode.EXCLUDE, names = { "AWS_JDBC_WRAPPER", "CLICKHOUSE",
"FIREBIRD", "INFORMIX", "JTDS", "PHOENIX", "REDSHIFT", "TERADATA", "TESTCONTAINERS", "UNKNOWN" })
void batchSchemaCanBeLocated(DatabaseDriver driver) throws SQLException {
DefaultResourceLoader resourceLoader = new DefaultResourceLoader();
BatchProperties properties = new BatchProperties();

View File

@ -25,6 +25,13 @@ bom {
]
}
}
library("AWS Advanced JDBC Wrapper", "2.5.4") {
group("software.amazon.jdbc") {
modules = [
"aws-advanced-jdbc-wrapper"
]
}
}
library("C3P0", "0.9.5.5") {
group("com.mchange") {
modules = [

View File

@ -100,6 +100,9 @@ dependencies {
optional("org.yaml:snakeyaml")
optional("org.jetbrains.kotlin:kotlin-reflect")
optional("org.jetbrains.kotlin:kotlin-stdlib")
optional("software.amazon.jdbc:aws-advanced-jdbc-wrapper") {
exclude(group: "commons-logging", module: "commons-logging")
}
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
testImplementation("org.springframework:spring-core-test")

View File

@ -19,6 +19,7 @@ package org.springframework.boot.jdbc;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import org.springframework.util.Assert;
@ -218,6 +219,19 @@ public enum DatabaseDriver {
return Arrays.asList("ch", "clickhouse");
}
},
/**
* AWS Advanced JDBC Wrapper.
* @since 3.5.0
*/
AWS_JDBC_WRAPPER(null, "software.amazon.jdbc.Driver") {
@Override
protected Collection<String> getUrlPrefixes() {
return List.of("aws-wrapper");
}
};
private final String productName;

View File

@ -121,6 +121,8 @@ class DatabaseDriverTests {
assertThat(DatabaseDriver.fromJdbcUrl("jdbc:clickhouse://localhost:3306/sample"))
.isEqualTo(DatabaseDriver.CLICKHOUSE);
assertThat(DatabaseDriver.fromJdbcUrl("jdbc:ch://localhost:3306/sample")).isEqualTo(DatabaseDriver.CLICKHOUSE);
assertThat(DatabaseDriver.fromJdbcUrl("jdbc:aws-wrapper:postgresql://127.0.0.1:5432/sample"))
.isEqualTo(DatabaseDriver.AWS_JDBC_WRAPPER);
}
}