Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
b94b7f2
wip
aaron-congo Aug 15, 2025
29a58cb
Replace PluginService#forceConnect with ConnectionService#open in Clu…
aaron-congo Aug 15, 2025
f59930d
Add notes for how to fix the current issues
aaron-congo Aug 15, 2025
8fc6d1a
Integ test passing
aaron-congo Aug 18, 2025
b4e5b3a
Pass ConnectionService to ReaderFailoverHandler
aaron-congo Aug 19, 2025
a2342be
Adapted ReaderFailoverHandler, IT passing
aaron-congo Aug 19, 2025
cedbc1b
Merge branch 'main' into failover-handlers
aaron-congo Aug 20, 2025
8108551
Add hostAvailabilityMap to WriterFailoverResult
aaron-congo Aug 20, 2025
0a38ab3
Add hostAvailabilityMap to ReaderFailoverResult
aaron-congo Aug 20, 2025
1a7e2bc
Initialize HostListProvider in PartialPluginService constructor
aaron-congo Aug 20, 2025
a965c3f
Pass ConnectionService as constructor arg to failover handlers
aaron-congo Aug 21, 2025
a3d8a5e
PR suggestions
aaron-congo Aug 22, 2025
4df33da
Fix checkstyle
aaron-congo Aug 22, 2025
7a863c9
ReaderFailoverHandler tests passing
aaron-congo Aug 22, 2025
370d73f
WriterFailoverHandler tests passing
aaron-congo Aug 22, 2025
435f71a
FailoverConnectionPluginTests passing
aaron-congo Aug 22, 2025
7ba0f85
Merge branch 'main' into failover-handlers
aaron-congo Aug 22, 2025
6ebf706
Rename plugin to spyPlugin in FailoverConnectionPluginTest
aaron-congo Aug 22, 2025
7711a9e
Fix failing MonitorServiceImplTest tests
aaron-congo Aug 22, 2025
9928517
Fix failover1 integration test
aaron-congo Aug 26, 2025
6a338f2
testServerFailoverWithIdleConnections uses the correct failover plugin
aaron-congo Aug 26, 2025
367b6a5
Merge branch 'main' into failover-handlers
aaron-congo Aug 26, 2025
faa0915
Fix javadocs
aaron-congo Aug 26, 2025
23e177a
wip
aaron-congo Aug 26, 2025
e1af3eb
Add extra logging to debug IT failure
aaron-congo Aug 29, 2025
c077ee2
Fix bug where cached reader connection was incorrectly closed
aaron-congo Aug 29, 2025
a27cf9f
Merge branch 'main' into failover-handlers
aaron-congo Aug 29, 2025
73cf143
wip
aaron-congo Aug 29, 2025
99de6eb
Fix javadoc
aaron-congo Aug 29, 2025
f1eb529
Merge branch 'failover-handlers' into service-container-utility
aaron-congo Aug 29, 2025
9311447
wip
aaron-congo Aug 29, 2025
f987164
Add ConnectionProvider arg to FullServicesContainer constructor
aaron-congo Sep 2, 2025
47d2e20
Utils.getWriter, PluginService.getDefaultConnectionProvider, isolate …
aaron-congo Sep 2, 2025
fec3639
Merge branch 'main' into failover-handlers
aaron-congo Sep 2, 2025
f7b8db9
Fix failing integration tests
aaron-congo Sep 3, 2025
104d303
Fix dead markdown link
aaron-congo Sep 3, 2025
9fbc65f
Merge branch 'failover-handlers' into service-container-utility
aaron-congo Sep 3, 2025
04ac3c8
wip
aaron-congo Sep 3, 2025
bef4ea8
wip
aaron-congo Sep 3, 2025
cc9421a
Build successful
aaron-congo Sep 3, 2025
3f7fb28
Failover test passing
aaron-congo Sep 4, 2025
edeea73
PR suggestions
aaron-congo Sep 5, 2025
60dbc4e
Merge branch 'failover-handlers' into service-container-utility
aaron-congo Sep 5, 2025
cb6e6ec
Rename to ServiceUtility
aaron-congo Sep 8, 2025
77dccce
Fix unit tests
aaron-congo Sep 15, 2025
85252d0
Cleanup
aaron-congo Sep 15, 2025
85bb5c5
Merge branch 'main' into service-container-utility
aaron-congo Sep 15, 2025
c465a00
Cleanup
aaron-congo Sep 15, 2025
b2a107d
cleanup
aaron-congo Sep 15, 2025
e635745
Fix checkstyle
aaron-congo Sep 15, 2025
6311d63
Reuse service containers for reader failover ConnectionAttemptTasks
aaron-congo Sep 19, 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
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@
import software.amazon.jdbc.dialect.Dialect;
import software.amazon.jdbc.hostavailability.SimpleHostAvailabilityStrategy;
import software.amazon.jdbc.targetdriverdialect.TargetDriverDialect;
import software.amazon.jdbc.util.connection.ConnectionService;
import software.amazon.jdbc.util.monitoring.MonitorService;
import software.amazon.jdbc.util.storage.StorageService;
import software.amazon.jdbc.util.telemetry.GaugeCallable;
Expand Down Expand Up @@ -94,7 +93,6 @@ public class PluginBenchmarks {

@Mock private StorageService mockStorageService;
@Mock private MonitorService mockMonitorService;
@Mock private ConnectionService mockConnectionService;
@Mock private PluginService mockPluginService;
@Mock private TargetDriverDialect mockTargetDriverDialect;
@Mock private Dialect mockDialect;
Expand Down Expand Up @@ -183,8 +181,7 @@ private ConnectionWrapper getConnectionWrapper(Properties props, String connStri
mockHostListProviderService,
mockPluginManagerService,
mockStorageService,
mockMonitorService,
mockConnectionService);
mockMonitorService);
}

@Benchmark
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import software.amazon.jdbc.PluginManagerService;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.targetdriverdialect.TargetDriverDialect;
import software.amazon.jdbc.util.connection.ConnectionService;
import software.amazon.jdbc.util.monitoring.MonitorService;
import software.amazon.jdbc.util.storage.StorageService;
import software.amazon.jdbc.util.telemetry.TelemetryFactory;
Expand All @@ -45,8 +44,7 @@ public TestConnectionWrapper(
@NonNull final HostListProviderService hostListProviderService,
@NonNull final PluginManagerService pluginManagerService,
@NonNull final StorageService storageService,
@NonNull final MonitorService monitorService,
@NonNull final ConnectionService connectionService)
@NonNull final MonitorService monitorService)
throws SQLException {
super(
props,
Expand All @@ -58,6 +56,7 @@ public TestConnectionWrapper(
pluginService,
hostListProviderService,
pluginManagerService,
storageService, monitorService, connectionService);
storageService,
monitorService);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import software.amazon.jdbc.ConnectionProviderManager;
import software.amazon.jdbc.HikariPooledConnectionProvider;
import software.amazon.jdbc.HostSpec;
import software.amazon.jdbc.PropertyDefinition;
import software.amazon.jdbc.plugin.failover.FailoverFailedSQLException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package software.amazon;

import com.mysql.cj.jdbc.MysqlDataSource;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.SQLException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class HikariExample {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@

package example.spring;

import com.zaxxer.hikari.HikariConfig;
import java.util.Arrays;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import org.hibernate.exception.JDBCConnectionException;
Expand All @@ -40,10 +37,6 @@
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import software.amazon.jdbc.HikariPooledConnectionProvider;
import software.amazon.jdbc.HostSpec;
import software.amazon.jdbc.profile.ConfigurationProfileBuilder;
import software.amazon.jdbc.profile.ConfigurationProfilePresetCodes;

@Configuration
@EnableTransactionManagement
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,7 @@ public List<ConnectionPlugin> getPlugins(
final ConnectionProvider effectiveConnProvider,
final PluginManagerService pluginManagerService,
final Properties props,
@Nullable ConfigurationProfile configurationProfile)
throws SQLException {
@Nullable ConfigurationProfile configurationProfile) throws SQLException {

List<ConnectionPlugin> plugins;
List<ConnectionPluginFactory> pluginFactories;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import java.util.logging.Logger;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.NotNull;
import software.amazon.jdbc.cleanup.CanReleaseResources;
import software.amazon.jdbc.plugin.AuroraConnectionTrackerPlugin;
import software.amazon.jdbc.plugin.AuroraInitialConnectionStrategyPlugin;
Expand Down Expand Up @@ -180,8 +179,7 @@ public void init(
final FullServicesContainer servicesContainer,
final Properties props,
final PluginManagerService pluginManagerService,
@Nullable ConfigurationProfile configurationProfile)
throws SQLException {
@Nullable ConfigurationProfile configurationProfile) throws SQLException {

this.props = props;
this.servicesContainer = servicesContainer;
Expand Down
4 changes: 2 additions & 2 deletions wrapper/src/main/java/software/amazon/jdbc/Driver.java
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,8 @@ public Connection connect(final String url, final Properties info) throws SQLExc
effectiveConnectionProvider = configurationProfile.getConnectionProvider();
}

FullServicesContainer
servicesContainer = new FullServicesContainerImpl(storageService, monitorService, telemetryFactory);
FullServicesContainer servicesContainer =
new FullServicesContainerImpl(storageService, monitorService, defaultConnectionProvider, telemetryFactory);

return new ConnectionWrapper(
servicesContainer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package software.amazon.jdbc;

import java.sql.Timestamp;
import java.time.Instant;
import org.checkerframework.checker.nullness.qual.NonNull;
import software.amazon.jdbc.hostavailability.HostAvailability;
import software.amazon.jdbc.hostavailability.HostAvailabilityStrategy;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -510,8 +510,7 @@ public Connection forceConnect(
final HostSpec hostSpec,
final Properties props)
throws SQLException {
throw new UnsupportedOperationException(
Messages.get("PartialPluginService.unexpectedMethodCall", new Object[] {"forceConnect"}));
return this.forceConnect(hostSpec, props, null);
}

@Override
Expand All @@ -520,8 +519,8 @@ public Connection forceConnect(
final Properties props,
final @Nullable ConnectionPlugin pluginToSkip)
throws SQLException {
throw new UnsupportedOperationException(
Messages.get("PartialPluginService.unexpectedMethodCall", new Object[] {"forceConnect"}));
return this.pluginManager.forceConnect(
this.driverProtocol, hostSpec, props, true, pluginToSkip);
}

private void updateHostAvailability(final List<HostSpec> hosts) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import software.amazon.jdbc.HostSpec;
import software.amazon.jdbc.PropertyDefinition;
import software.amazon.jdbc.util.Messages;
import software.amazon.jdbc.util.StringUtils;

public class AwsCredentialsManager {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -281,8 +281,8 @@ ConnectionWrapper createConnectionWrapper(
final @NonNull TargetDriverDialect targetDriverDialect,
final @Nullable ConfigurationProfile configurationProfile,
final TelemetryFactory telemetryFactory) throws SQLException {
FullServicesContainer
servicesContainer = new FullServicesContainerImpl(storageService, monitorService, telemetryFactory);
FullServicesContainer servicesContainer =
new FullServicesContainerImpl(storageService, monitorService, defaultProvider, telemetryFactory);
return new ConnectionWrapper(
servicesContainer,
props,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

package software.amazon.jdbc.hostavailability;

import software.amazon.jdbc.AwsWrapperProperty;

public interface HostAvailabilityStrategy {

void setHostAvailability(HostAvailability hostAvailability);
Expand Down
Loading
Loading