Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
0b50583
Remove flaky and unstable suggested clusterId functionality (#1570)
sergiyvamz Oct 21, 2025
095881d
remove deprecated code (#1572)
sergiyvamz Oct 21, 2025
bb7ae52
adopt GDB (#1573)
sergiyvamz Oct 22, 2025
f2f7a11
respect AWS region connecting with cluster reader endpoint for GDB (#…
sergiyvamz Oct 22, 2025
7005002
fix javadocs (#1576)
sergiyvamz Oct 22, 2025
2e86a82
chore: remove mutable keys from HostSpec#hashCode and document immuta…
aaron-congo Oct 24, 2025
68360cf
deprecate enableGreenNodeReplacement parameter (#1578)
sergiyvamz Oct 24, 2025
aae443b
Remove deprecated configuration parameters (#1577)
sergiyvamz Oct 24, 2025
5b50975
fix wrong nodeId in HostSpec (#1579)
sergiyvamz Oct 30, 2025
dc69306
feat: add support of RDS Proxy custom endpoints (#1583)
sergiyvamz Oct 30, 2025
4538b12
feat: pooled flag for connect (#1581)
sergiyvamz Oct 30, 2025
050a952
docs: deprecate auroraStaleDns plugin (#1590)
sergiyvamz Nov 5, 2025
9b8aa0b
feat: add initialConnection plugin to default plugin list (#1592)
sergiyvamz Nov 5, 2025
7013042
chore: remove unused StorageService method (#1597)
aaron-congo Nov 13, 2025
b83c3d6
chore: remove deprecated ConnectionService classes (#1598)
aaron-congo Nov 14, 2025
d159d41
chore: logging improvement for RW Splitting plugin (#1604)
sergiyvamz Nov 20, 2025
e59950e
feat: allow to override IAM token property name (#1603)
sergiyvamz Nov 20, 2025
923b61b
Refactor: dialects and host list providers to reduce code duplication…
aaron-congo Nov 20, 2025
97a302c
docs: permissions for non-admin users accessing MultiAZ clusters (#1602)
sergiyvamz Nov 20, 2025
5c3f6db
feat: srw (#1586)
sophia-bq Nov 25, 2025
9f0b932
feat: failover read only connections (#1609)
sergiyvamz Dec 1, 2025
f1e6b18
avoid duplicates in manifest file (#1607)
sergiyvamz Dec 4, 2025
3998329
fix: add expiration time for cached reader connections and refactor B…
karenc-bq Dec 5, 2025
2053bb0
code style
sergiyvamz Dec 5, 2025
a114d61
chore: bump version to v3.0.0
sergiyvamz Dec 5, 2025
513cd8d
update maintenance window for 2.x
sergiyvamz Dec 6, 2025
e3e2e33
docs: add link to simplifying mysql permission configuration process …
karenc-bq Dec 8, 2025
721a75b
Update CHANGELOG.md
sergiyvamz Dec 8, 2025
750597c
Update README.md
sergiyvamz Dec 8, 2025
7ad1bb6
Update README.md
sergiyvamz Dec 8, 2025
23a8e60
Update docs/using-the-jdbc-driver/using-plugins/UsingTheReadWriteSpli…
sergiyvamz Dec 8, 2025
6ed4958
Update wrapper/src/main/java/software/amazon/jdbc/PluginServiceImpl.java
sergiyvamz Dec 8, 2025
7317bab
Update CHANGELOG.md
sergiyvamz Dec 8, 2025
a29a83f
Update docs/using-the-jdbc-driver/UsingTheJdbcDriver.md
sergiyvamz Dec 8, 2025
b2edca3
Update docs/using-the-jdbc-driver/UsingTheJdbcDriver.md
sergiyvamz Dec 8, 2025
87f2222
Update docs/using-the-jdbc-driver/using-plugins/UsingTheFailoverPlugi…
sergiyvamz Dec 8, 2025
bee74f3
code review
sergiyvamz Dec 8, 2025
1febcfe
code review
sergiyvamz Dec 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,28 @@ All notable changes to this project will be documented in this file.

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).

## [3.0.0] - TBD

### :crab: Breaking Changes

> [!WARNING]\
> 3.0 removes the suggested ClusterId functionality ([PR #1570](https://github.com/aws/aws-advanced-jdbc-wrapper/pull/1570)).
> #### Suggested ClusterId Functionality
> 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.
> #### Migration
> | Number of Database Clusters in Use | Requires Changes | Action Items |
> |-----------------------------------|------------------|--------------|
> | Single database cluster | No | No changes required |
> | 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 |

> [!WARNING]\
> 3.0 removes deprecated coded ([PR #1572](https://github.com/aws/aws-advanced-jdbc-wrapper/pull/1572)).
> #### Deprecated Code Removal
> Some methods marked as deprecated in version 2.x.x are now removed in 3.0.


### :magic_wand: Added
- Added support of Global Databases including and Global Database endpoint. ([PR #1573](https://github.com/aws/aws-advanced-jdbc-wrapper/pull/1573)).
## [2.6.7] - 2025-11-25

### :bug: Fixed
Expand Down
3 changes: 2 additions & 1 deletion Maintenance.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,5 @@ from the updated source after the PRs are merged.
| Major Version | Latest Minor Version | Status | Initial Release | Maintenance Window Start | Maintenance Window End |
|---------------|----------------------|-------------|-----------------|--------------------------|------------------------|
| 1 | 1.0.2 | Maintenance | Oct 5, 2022 | Apr 28, 2023 | Apr 28, 2024 |
| 2 | 2.6.7 | Current | Apr 28, 2023 | N/A | N/A |
| 2 | 2.6.7 | Maintenance | Jan 1, 2026 | Dec 31, 2026 | N/A |
| 3 | 3.0.0 | Current | Dec 12, 2025 | N/A | N/A |
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ With the `failover` plugin, the downtime during certain DB cluster operations, s

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

### Using the AWS Advanced JDBC Wrapper with Amazon Aurora Global Databases

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.

### Plain Amazon RDS databases

The AWS Advanced JDBC Wrapper also works with RDS provided databases that are not Aurora.
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ The benchmarks do not measure the performance of target JDBC drivers nor the per
## Usage
1. Build the benchmarks with the following command `../gradlew jmhJar`.
1. the JAR file will be outputted to `build/libs`
2. Run the benchmarks with the following command `java -jar build/libs/benchmarks-2.6.7-jmh.jar`.
2. Run the benchmarks with the following command `java -jar build/libs/benchmarks-3.0.0-jmh.jar`.
1. you may have to update the command based on the exact version of the produced JAR file
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,11 @@
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import software.amazon.jdbc.ConnectionInfo;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.ConnectionPluginManager;
import software.amazon.jdbc.ConnectionProvider;
import software.amazon.jdbc.HostListProviderService;
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
import software.amazon.jdbc.HostSpec;
import software.amazon.jdbc.HostSpecBuilder;
import software.amazon.jdbc.JdbcMethod;
Expand Down Expand Up @@ -126,7 +127,7 @@ public void setUpIteration() throws Exception {
any(Dialect.class),
any(TargetDriverDialect.class),
any(HostSpec.class),
any(Properties.class))).thenReturn(mockConnection);
any(Properties.class))).thenReturn(new ConnectionInfo(mockConnection, false));
when(mockTelemetryFactory.openTelemetryContext(anyString(), any())).thenReturn(mockTelemetryContext);
when(mockTelemetryFactory.openTelemetryContext(eq(null), any())).thenReturn(mockTelemetryContext);
when(mockTelemetryFactory.createCounter(anyString())).thenReturn(mockTelemetryCounter);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,13 @@
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import software.amazon.jdbc.ConnectionInfo;
import software.amazon.jdbc.ConnectionPluginManager;
import software.amazon.jdbc.ConnectionProvider;
import software.amazon.jdbc.ConnectionProviderManager;
import software.amazon.jdbc.Driver;
import software.amazon.jdbc.HikariPooledConnectionProvider;
import software.amazon.jdbc.HostListProviderService;
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
import software.amazon.jdbc.HostSpec;
import software.amazon.jdbc.HostSpecBuilder;
import software.amazon.jdbc.JdbcMethod;
Expand Down Expand Up @@ -134,7 +135,7 @@ public void setUpIteration() throws Exception {
any(Dialect.class),
any(TargetDriverDialect.class),
any(HostSpec.class),
any(Properties.class))).thenReturn(mockConnection);
any(Properties.class))).thenReturn(new ConnectionInfo(mockConnection, false));
when(mockConnection.createStatement()).thenReturn(mockStatement);
when(mockStatement.executeQuery(anyString())).thenReturn(mockResultSet);
when(mockResultSet.next()).thenReturn(true, true, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import java.util.Set;
import java.util.logging.Logger;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.HostListProviderService;
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
import software.amazon.jdbc.HostRole;
import software.amazon.jdbc.HostSpec;
import software.amazon.jdbc.HostSpecBuilder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import java.util.Properties;
import org.checkerframework.checker.nullness.qual.NonNull;
import software.amazon.jdbc.ConnectionPluginManager;
import software.amazon.jdbc.HostListProviderService;
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
import software.amazon.jdbc.PluginManagerService;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.wrapper.ConnectionWrapper;
Expand Down
14 changes: 7 additions & 7 deletions docs/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ If you are using the AWS Advanced JDBC Wrapper as part of a Gradle project, incl

```gradle
dependencies {
implementation group: 'software.amazon.jdbc', name: 'aws-advanced-jdbc-wrapper', version: '2.6.7'
implementation group: 'software.amazon.jdbc', name: 'aws-advanced-jdbc-wrapper', version: '3.0.0'
implementation group: 'org.postgresql', name: 'postgresql', version: '42.5.0'
}
```
Expand All @@ -30,16 +30,16 @@ You can use pre-compiled packages that can be downloaded directly from [GitHub R
For example, the following command uses wget to download the wrapper:

```bash
wget https://github.com/aws/aws-advanced-jdbc-wrapper/releases/download/2.6.7/aws-advanced-jdbc-wrapper-2.6.7.jar
wget https://github.com/aws/aws-advanced-jdbc-wrapper/releases/download/3.0.0/aws-advanced-jdbc-wrapper-3.0.0.jar
```

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

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

> **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).
> **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).

### As a Maven Dependency

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

```gradle
dependencies {
implementation group: 'software.amazon.jdbc', name: 'aws-advanced-jdbc-wrapper', version: '2.6.7'
implementation group: 'software.amazon.jdbc', name: 'aws-advanced-jdbc-wrapper', version: '3.0.0'
}
```

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

```kotlin
dependencies {
implementation("software.amazon.jdbc:aws-advanced-jdbc-wrapper:2.6.7")
implementation("software.amazon.jdbc:aws-advanced-jdbc-wrapper:3.0.0")
}
```

Expand Down
Loading
Loading