Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
739c421
Remove flaky and unstable suggested clusterId functionality (#1570)
sergiyvamz Oct 21, 2025
ce45f9a
remove deprecated code (#1572)
sergiyvamz Oct 21, 2025
3e87ebb
adopt GDB (#1573)
sergiyvamz Oct 22, 2025
db03a0a
respect AWS region connecting with cluster reader endpoint for GDB (#…
sergiyvamz Oct 22, 2025
73e94e5
fix javadocs (#1576)
sergiyvamz Oct 22, 2025
3ba3efa
chore: remove mutable keys from HostSpec#hashCode and document immuta…
aaron-congo Oct 24, 2025
2829aff
deprecate enableGreenNodeReplacement parameter (#1578)
sergiyvamz Oct 24, 2025
2fe376a
Remove deprecated configuration parameters (#1577)
sergiyvamz Oct 24, 2025
b103715
fix wrong nodeId in HostSpec (#1579)
sergiyvamz Oct 30, 2025
39a589b
feat: add support of RDS Proxy custom endpoints (#1583)
sergiyvamz Oct 30, 2025
eec89ff
feat: pooled flag for connect (#1581)
sergiyvamz Oct 30, 2025
f283575
docs: deprecate auroraStaleDns plugin (#1590)
sergiyvamz Nov 5, 2025
820f155
feat: add initialConnection plugin to default plugin list (#1592)
sergiyvamz Nov 5, 2025
2a59bdf
chore: remove unused StorageService method (#1597)
aaron-congo Nov 13, 2025
af4c763
chore: remove deprecated ConnectionService classes (#1598)
aaron-congo Nov 14, 2025
f0d868d
Merge ServicesContainerPluginFactory and ConnectionPluginFactory into…
aaron-congo Nov 14, 2025
d052acd
Merge branch 'main' into plugin-factories
aaron-congo Dec 9, 2025
b5b1a4a
Cleanup
aaron-congo Dec 9, 2025
cd9bd6a
Cleanup
aaron-congo Dec 9, 2025
bd34d6a
Merge branch 'main' into plugin-factories
aaron-congo Dec 9, 2025
43e5645
Revert ConnectionPluginFactory -> PluginFactory
aaron-congo Dec 10, 2025
7f7974f
Fix checkstyle
aaron-congo Dec 10, 2025
21422fc
Merge branch 'main' into plugin-factories
aaron-congo Dec 10, 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 @@ -51,21 +51,21 @@
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.hostlistprovider.HostListProviderService;
import software.amazon.jdbc.HostSpec;
import software.amazon.jdbc.HostSpecBuilder;
import software.amazon.jdbc.JdbcMethod;
import software.amazon.jdbc.NodeChangeOptions;
import software.amazon.jdbc.OldConnectionSuggestedAction;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginManagerService;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.PropertyDefinition;
import software.amazon.jdbc.benchmarks.testplugin.BenchmarkPluginFactory;
import software.amazon.jdbc.dialect.Dialect;
import software.amazon.jdbc.hostavailability.SimpleHostAvailabilityStrategy;
import software.amazon.jdbc.hostlistprovider.HostListProviderService;
import software.amazon.jdbc.profile.ConfigurationProfile;
import software.amazon.jdbc.profile.ConfigurationProfileBuilder;
import software.amazon.jdbc.targetdriverdialect.TargetDriverDialect;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class BenchmarkPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(PluginService pluginService, Properties props) {
public ConnectionPlugin getInstance(FullServicesContainer servicesContainer, Properties props) {
return new BenchmarkPlugin();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -220,12 +220,7 @@ public List<ConnectionPlugin> getPlugins(
// make a chain of connection plugins
plugins = new ArrayList<>(pluginFactories.size() + 1);
for (final ConnectionPluginFactory factory : pluginFactories) {
if (factory instanceof ServicesContainerPluginFactory) {
ServicesContainerPluginFactory servicesContainerPluginFactory = (ServicesContainerPluginFactory) factory;
plugins.add(servicesContainerPluginFactory.getInstance(servicesContainer, props));
} else {
plugins.add(factory.getInstance(servicesContainer.getPluginService(), props));
}
plugins.add(factory.getInstance(servicesContainer, props));
}
} else {
plugins = new ArrayList<>(1); // one spot for default connection plugin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@
import software.amazon.jdbc.util.FullServicesContainer;

/**
* Interface for connection plugin factories. This class implements ways to initialize a connection
* plugin.
*
* <p>Note: consider using {@link ServicesContainerPluginFactory} for new implementations as it provides access to all
* services in the {@link FullServicesContainer}.
* Interface for plugin factories. This class implements ways to initialize a plugin.
*/
public interface ConnectionPluginFactory {

ConnectionPlugin getInstance(PluginService pluginService, Properties props);
/**
* Get an instance of a {@link ConnectionPlugin}.
*
* @param servicesContainer the service container containing the services to be used by the {@link ConnectionPlugin}.
* @param props to be used by the {@link ConnectionPlugin}.
* @return an instance of a {@link ConnectionPlugin}.
*/
ConnectionPlugin getInstance(FullServicesContainer servicesContainer, Properties props);
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class AuroraConnectionTrackerPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
return new AuroraConnectionTrackerPlugin(pluginService, props);
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
return new AuroraConnectionTrackerPlugin(servicesContainer.getPluginService(), props);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class AuroraInitialConnectionStrategyPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
return new AuroraInitialConnectionStrategyPlugin(pluginService, props);
public ConnectionPlugin getInstance(FullServicesContainer servicesContainer, Properties props) {
return new AuroraInitialConnectionStrategyPlugin(servicesContainer.getPluginService(), props);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class AwsSecretsManagerConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
return new AwsSecretsManagerConnectionPlugin(pluginService, props);
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
return new AwsSecretsManagerConnectionPlugin(servicesContainer.getPluginService(), props);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class ConnectTimeConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(PluginService pluginService, Properties props) {
public ConnectionPlugin getInstance(FullServicesContainer servicesContainer, Properties props) {
return new ConnectTimeConnectionPlugin();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class DataCacheConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
return new DataCacheConnectionPlugin(pluginService, props);
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
return new DataCacheConnectionPlugin(servicesContainer.getPluginService(), props);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class DriverMetaDataConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(PluginService pluginService, Properties props) {
public ConnectionPlugin getInstance(FullServicesContainer servicesContainer, Properties props) {
return new DriverMetaDataConnectionPlugin(props);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class ExecutionTimeConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
return new ExecutionTimeConnectionPlugin();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class LogQueryConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
return new LogQueryConnectionPlugin(props);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,10 @@

import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.ServicesContainerPluginFactory;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.util.FullServicesContainer;
import software.amazon.jdbc.util.Messages;

public class BlueGreenConnectionPluginFactory implements ServicesContainerPluginFactory {
@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
throw new UnsupportedOperationException(
Messages.get(
"ServicesContainerPluginFactory.servicesContainerRequired", new Object[] {"BlueGreenConnectionPlugin"}));
}
public class BlueGreenConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,11 @@

import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.ServicesContainerPluginFactory;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.util.FullServicesContainer;
import software.amazon.jdbc.util.Messages;

public class CustomEndpointPluginFactory implements ServicesContainerPluginFactory {
@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
throw new UnsupportedOperationException(
Messages.get(
"ServicesContainerPluginFactory.servicesContainerRequired", new Object[] {"CustomEndpointPlugin"}));
}
public class CustomEndpointPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class DeveloperConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(PluginService pluginService, Properties props) {
public ConnectionPlugin getInstance(FullServicesContainer fullServicesContainer, Properties props) {
return new DeveloperConnectionPlugin();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

/** Class initializing a {@link HostMonitoringConnectionPlugin}. */
public class HostMonitoringConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
return new HostMonitoringConnectionPlugin(pluginService, props);
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
return new HostMonitoringConnectionPlugin(servicesContainer.getPluginService(), props);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,11 @@

import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.ServicesContainerPluginFactory;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.util.FullServicesContainer;
import software.amazon.jdbc.util.Messages;

/** Class initializing a {@link HostMonitoringConnectionPlugin}. */
public class HostMonitoringConnectionPluginFactory implements ServicesContainerPluginFactory {
@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
throw new UnsupportedOperationException(
Messages.get(
"ServiceContainerPluginFactory.serviceContainerRequired",
new Object[] {"efm2.HostMonitoringConnectionPlugin"}));
}
public class HostMonitoringConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,10 @@

import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.ServicesContainerPluginFactory;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.util.FullServicesContainer;
import software.amazon.jdbc.util.Messages;

public class FailoverConnectionPluginFactory implements ServicesContainerPluginFactory {
@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
throw new UnsupportedOperationException(
Messages.get(
"ServicesContainerPluginFactory.servicesContainerRequired", new Object[] {"FailoverConnectionPlugin"}));
}
public class FailoverConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
import java.util.Properties;
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;

public class FailoverConnectionPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
return new FailoverConnectionPlugin(pluginService, props);
public ConnectionPlugin getInstance(FullServicesContainer servicesContainer, Properties props) {
return new FailoverConnectionPlugin(servicesContainer.getPluginService(), props);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,15 @@
import software.amazon.jdbc.ConnectionPlugin;
import software.amazon.jdbc.ConnectionPluginFactory;
import software.amazon.jdbc.PluginService;
import software.amazon.jdbc.util.FullServicesContainer;
import software.amazon.jdbc.util.Messages;
import software.amazon.jdbc.util.StringUtils;

public class FederatedAuthPluginFactory implements ConnectionPluginFactory {

@Override
public ConnectionPlugin getInstance(final PluginService pluginService, final Properties props) {
public ConnectionPlugin getInstance(final FullServicesContainer servicesContainer, final Properties props) {
PluginService pluginService = servicesContainer.getPluginService();
return new FederatedAuthPlugin(pluginService, getCredentialsProviderFactory(pluginService, props));
}

Expand Down
Loading
Loading