Skip to content

Commit f588bee

Browse files
sergiyvamzaaron-congoAdnaneKhankarenc-bqsophia-bq
authored
chore: move 3.x development back to main branch (#1630)
Co-authored-by: Aaron <69273634+aaron-congo@users.noreply.github.com> Co-authored-by: Adnan Khan <AdnaneKhan@users.noreply.github.com> Co-authored-by: Karen <64801825+karenc-bq@users.noreply.github.com> Co-authored-by: Sophia Chu <112967780+sophia-bq@users.noreply.github.com>
1 parent f58e008 commit f588bee

File tree

179 files changed

+5266
-3617
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

179 files changed

+5266
-3617
lines changed

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,28 @@ All notable changes to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/#semantic-versioning-200).
55

6+
## [3.0.0] - TBD
7+
8+
### :crab: Breaking Changes
9+
10+
> [!WARNING]\
11+
> 3.0 removes the suggested ClusterId functionality ([PR #1570](https://github.com/aws/aws-advanced-jdbc-wrapper/pull/1570)).
12+
> #### Suggested ClusterId Functionality
13+
> Prior to this change, the wrapper would generate a unique cluster ID based on the connection string and the cluster topology; however, in some cases (such as custom endpoints, IP addresses, and CNAME aliases, etc), the wrapper would generate an incorrect identifier. This change was needed to prevent applications with several clusters from accidentally relying on incorrect topology during failover which could result in the wrapper failing to complete failover successfully.
14+
> #### Migration
15+
> | Number of Database Clusters in Use | Requires Changes | Action Items |
16+
> |-----------------------------------|------------------|--------------|
17+
> | Single database cluster | No | No changes required |
18+
> | Multiple database clusters | Yes | Review all connection strings and add mandatory `clusterId` parameter ([PR #1476](https://github.com/aws/aws-advanced-jdbc-wrapper/pull/1476)). See [documentation](https://github.com/aws/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheFailover2Plugin.md#failover-plugin-v2-configuration-parameters) for `clusterId` parameter configuration |
19+
20+
> [!WARNING]\
21+
> 3.0 removes deprecated coded ([PR #1572](https://github.com/aws/aws-advanced-jdbc-wrapper/pull/1572)).
22+
> #### Deprecated Code Removal
23+
> Some methods marked as deprecated in version 2.x.x are now removed in 3.0.
24+
25+
26+
### :magic_wand: Added
27+
- Added support of Global Databases including and Global Database endpoint. ([PR #1573](https://github.com/aws/aws-advanced-jdbc-wrapper/pull/1573)).
628
## [2.6.7] - 2025-11-25
729

830
### :bug: Fixed

Maintenance.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,5 @@ from the updated source after the PRs are merged.
9393
| Major Version | Latest Minor Version | Status | Initial Release | Maintenance Window Start | Maintenance Window End |
9494
|---------------|----------------------|-------------|-----------------|--------------------------|------------------------|
9595
| 1 | 1.0.2 | Maintenance | Oct 5, 2022 | Apr 28, 2023 | Apr 28, 2024 |
96-
| 2 | 2.6.7 | Current | Apr 28, 2023 | N/A | N/A |
96+
| 2 | 2.6.7 | Maintenance | Jan 1, 2026 | Dec 31, 2026 | N/A |
97+
| 3 | 3.0.0 | Current | Dec 12, 2025 | N/A | N/A |

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ With the `failover` plugin, the downtime during certain DB cluster operations, s
5252

5353
Visit [this page](./docs/using-the-jdbc-driver/SupportForRDSMultiAzDBCluster.md) for more details.
5454

55+
### Using the AWS Advanced JDBC Wrapper with Amazon Aurora Global Databases
56+
57+
This driver supports in-region `failover` and cross-region `planned failover` and `switchover` of [Amazon Aurora Global Databases](https://aws.amazon.com/ru/rds/aurora/global-database/). A [Global Writer Endpoint](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-connecting.html) is also recognized and can be handled to minimize potential stale DNS issues. Please check [failover plugin](./docs/using-the-jdbc-driver/using-plugins/UsingTheFailoverPlugin.md), [failover2 plugin](./docs/using-the-jdbc-driver/using-plugins/UsingTheFailover2Plugin.md) and [Aurora Initial Connection Strategy plugin](./docs/using-the-jdbc-driver/using-plugins/UsingTheAuroraInitialConnectionStrategyPlugin.md) for more information.
58+
5559
### Plain Amazon RDS databases
5660

5761
The AWS Advanced JDBC Wrapper also works with RDS provided databases that are not Aurora.

benchmarks/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ The benchmarks do not measure the performance of target JDBC drivers nor the per
77
## Usage
88
1. Build the benchmarks with the following command `../gradlew jmhJar`.
99
1. the JAR file will be outputted to `build/libs`
10-
2. Run the benchmarks with the following command `java -jar build/libs/benchmarks-2.6.7-jmh.jar`.
10+
2. Run the benchmarks with the following command `java -jar build/libs/benchmarks-3.0.0-jmh.jar`.
1111
1. you may have to update the command based on the exact version of the produced JAR file

benchmarks/src/jmh/java/software/amazon/jdbc/benchmarks/ConnectionPluginManagerBenchmarks.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@
5050
import org.openjdk.jmh.runner.RunnerException;
5151
import org.openjdk.jmh.runner.options.Options;
5252
import org.openjdk.jmh.runner.options.OptionsBuilder;
53+
import software.amazon.jdbc.ConnectionInfo;
5354
import software.amazon.jdbc.ConnectionPluginFactory;
5455
import software.amazon.jdbc.ConnectionPluginManager;
5556
import software.amazon.jdbc.ConnectionProvider;
56-
import software.amazon.jdbc.HostListProviderService;
57+
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
5758
import software.amazon.jdbc.HostSpec;
5859
import software.amazon.jdbc.HostSpecBuilder;
5960
import software.amazon.jdbc.JdbcMethod;
@@ -126,7 +127,7 @@ public void setUpIteration() throws Exception {
126127
any(Dialect.class),
127128
any(TargetDriverDialect.class),
128129
any(HostSpec.class),
129-
any(Properties.class))).thenReturn(mockConnection);
130+
any(Properties.class))).thenReturn(new ConnectionInfo(mockConnection, false));
130131
when(mockTelemetryFactory.openTelemetryContext(anyString(), any())).thenReturn(mockTelemetryContext);
131132
when(mockTelemetryFactory.openTelemetryContext(eq(null), any())).thenReturn(mockTelemetryContext);
132133
when(mockTelemetryFactory.createCounter(anyString())).thenReturn(mockTelemetryCounter);

benchmarks/src/jmh/java/software/amazon/jdbc/benchmarks/PluginBenchmarks.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,13 @@
4848
import org.openjdk.jmh.runner.RunnerException;
4949
import org.openjdk.jmh.runner.options.Options;
5050
import org.openjdk.jmh.runner.options.OptionsBuilder;
51+
import software.amazon.jdbc.ConnectionInfo;
5152
import software.amazon.jdbc.ConnectionPluginManager;
5253
import software.amazon.jdbc.ConnectionProvider;
5354
import software.amazon.jdbc.ConnectionProviderManager;
5455
import software.amazon.jdbc.Driver;
5556
import software.amazon.jdbc.HikariPooledConnectionProvider;
56-
import software.amazon.jdbc.HostListProviderService;
57+
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
5758
import software.amazon.jdbc.HostSpec;
5859
import software.amazon.jdbc.HostSpecBuilder;
5960
import software.amazon.jdbc.JdbcMethod;
@@ -134,7 +135,7 @@ public void setUpIteration() throws Exception {
134135
any(Dialect.class),
135136
any(TargetDriverDialect.class),
136137
any(HostSpec.class),
137-
any(Properties.class))).thenReturn(mockConnection);
138+
any(Properties.class))).thenReturn(new ConnectionInfo(mockConnection, false));
138139
when(mockConnection.createStatement()).thenReturn(mockStatement);
139140
when(mockStatement.executeQuery(anyString())).thenReturn(mockResultSet);
140141
when(mockResultSet.next()).thenReturn(true, true, false);

benchmarks/src/jmh/java/software/amazon/jdbc/benchmarks/testplugin/BenchmarkPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.util.Set;
2929
import java.util.logging.Logger;
3030
import software.amazon.jdbc.ConnectionPlugin;
31-
import software.amazon.jdbc.HostListProviderService;
31+
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
3232
import software.amazon.jdbc.HostRole;
3333
import software.amazon.jdbc.HostSpec;
3434
import software.amazon.jdbc.HostSpecBuilder;

benchmarks/src/jmh/java/software/amazon/jdbc/benchmarks/testplugin/TestConnectionWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import java.util.Properties;
2121
import org.checkerframework.checker.nullness.qual.NonNull;
2222
import software.amazon.jdbc.ConnectionPluginManager;
23-
import software.amazon.jdbc.HostListProviderService;
23+
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
2424
import software.amazon.jdbc.PluginManagerService;
2525
import software.amazon.jdbc.PluginService;
2626
import software.amazon.jdbc.wrapper.ConnectionWrapper;

docs/GettingStarted.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ If you are using the AWS Advanced JDBC Wrapper as part of a Gradle project, incl
1616
1717
```gradle
1818
dependencies {
19-
implementation group: 'software.amazon.jdbc', name: 'aws-advanced-jdbc-wrapper', version: '2.6.7'
19+
implementation group: 'software.amazon.jdbc', name: 'aws-advanced-jdbc-wrapper', version: '3.0.0'
2020
implementation group: 'org.postgresql', name: 'postgresql', version: '42.5.0'
2121
}
2222
```
@@ -30,16 +30,16 @@ You can use pre-compiled packages that can be downloaded directly from [GitHub R
3030
For example, the following command uses wget to download the wrapper:
3131

3232
```bash
33-
wget https://github.com/aws/aws-advanced-jdbc-wrapper/releases/download/2.6.7/aws-advanced-jdbc-wrapper-2.6.7.jar
33+
wget https://github.com/aws/aws-advanced-jdbc-wrapper/releases/download/3.0.0/aws-advanced-jdbc-wrapper-3.0.0.jar
3434
```
3535

3636
Then, the following command adds the AWS Advanced JDBC Wrapper to the CLASSPATH:
3737

3838
```bash
39-
export CLASSPATH=$CLASSPATH:/home/userx/libs/aws-advanced-jdbc-wrapper-2.6.7.jar
39+
export CLASSPATH=$CLASSPATH:/home/userx/libs/aws-advanced-jdbc-wrapper-3.0.0.jar
4040
```
4141

42-
> **Note**: There is also a JAR suffixed with `-bundle-federated-auth`. It is an Uber JAR that contains the AWS Advanced JDBC Wrapper as well as all the dependencies needed to run the Federated Authentication Plugin. **Our general recommendation is to use the `aws-advanced-jdbc-wrapper-2.6.7.jar` for use cases unrelated to complex Federated Authentication environments**. To learn more, please check out the [Federated Authentication Plugin](./using-the-jdbc-driver/using-plugins/UsingTheFederatedAuthPlugin.md#bundled-uber-jar).
42+
> **Note**: There is also a JAR suffixed with `-bundle-federated-auth`. It is an Uber JAR that contains the AWS Advanced JDBC Wrapper as well as all the dependencies needed to run the Federated Authentication Plugin. **Our general recommendation is to use the `aws-advanced-jdbc-wrapper-3.0.0.jar` for use cases unrelated to complex Federated Authentication environments**. To learn more, please check out the [Federated Authentication Plugin](./using-the-jdbc-driver/using-plugins/UsingTheFederatedAuthPlugin.md#bundled-uber-jar).
4343
4444
### As a Maven Dependency
4545

@@ -50,7 +50,7 @@ You can use [Maven's dependency management](https://central.sonatype.com/artifac
5050
<dependency>
5151
<groupId>software.amazon.jdbc</groupId>
5252
<artifactId>aws-advanced-jdbc-wrapper</artifactId>
53-
<version>2.6.7</version>
53+
<version>3.0.0</version>
5454
</dependency>
5555
</dependencies>
5656
```
@@ -61,15 +61,15 @@ You can use [Gradle's dependency management](https://central.sonatype.com/artifa
6161

6262
```gradle
6363
dependencies {
64-
implementation group: 'software.amazon.jdbc', name: 'aws-advanced-jdbc-wrapper', version: '2.6.7'
64+
implementation group: 'software.amazon.jdbc', name: 'aws-advanced-jdbc-wrapper', version: '3.0.0'
6565
}
6666
```
6767

6868
To add a Gradle dependency in a Kotlin syntax, use the following configuration:
6969

7070
```kotlin
7171
dependencies {
72-
implementation("software.amazon.jdbc:aws-advanced-jdbc-wrapper:2.6.7")
72+
implementation("software.amazon.jdbc:aws-advanced-jdbc-wrapper:3.0.0")
7373
}
7474
```
7575

0 commit comments

Comments
 (0)