Skip to content

Commit c002eb9

Browse files
switch limitless monitor to use query helper
1 parent cec19f0 commit c002eb9

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

wrapper/src/main/java/software/amazon/jdbc/plugin/limitless/LimitlessConnectionPlugin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private Connection connectInternal(
130130
final boolean isInitialConnection,
131131
final JdbcCallable<Connection, SQLException> connectFunc) throws SQLException {
132132
final Dialect dialect = this.pluginService.getDialect();
133-
if (AuroraLimitlessDialect.class.isAssignableFrom(dialect.getClass())) {
133+
if (dialect instanceof AuroraLimitlessDialect) {
134134
return connectInternalWithDialect(driverProtocol, hostSpec, props, isInitialConnection, connectFunc);
135135
} else {
136136
return connectInternalWithoutDialect(driverProtocol, hostSpec, props, isInitialConnection, connectFunc);
@@ -204,7 +204,7 @@ private Connection connectInternalWithoutDialect(
204204
final Connection conn = connectFunc.call();
205205

206206
final Dialect dialect = this.pluginService.getDialect();
207-
if (AuroraLimitlessDialect.class.isAssignableFrom(dialect.getClass())) {
207+
if (dialect instanceof AuroraLimitlessDialect) {
208208
throw new SQLException(""); // TODO: add message
209209
}
210210

wrapper/src/main/java/software/amazon/jdbc/plugin/limitless/LimitlessQueryHelper.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ public List<HostSpec> queryForLimitlessRouters(final Connection conn, final int
7575
}
7676
}
7777

78-
private List<HostSpec> mapResultSetToHostSpecList(final ResultSet resultSet, final int hostPortToMap) throws SQLException {
78+
private List<HostSpec> mapResultSetToHostSpecList(
79+
final ResultSet resultSet,
80+
final int hostPortToMap) throws SQLException {
7981

8082
List<HostSpec> hosts = new ArrayList<>();
8183
while (resultSet.next()) {

wrapper/src/main/java/software/amazon/jdbc/plugin/limitless/LimitlessRouterMonitor.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public class LimitlessRouterMonitor implements AutoCloseable, Runnable {
6565
private final AtomicReference<List<HostSpec>> limitlessRouters;
6666
private final @NonNull Properties props;
6767
private final @NonNull PluginService pluginService;
68+
protected final LimitlessQueryHelper queryHelper;
6869
private final TelemetryFactory telemetryFactory;
6970
private Connection monitoringConn = null;
7071
final Executor networkTimeoutExecutor = new SynchronousExecutor();
@@ -89,7 +90,6 @@ public LimitlessRouterMonitor(
8990
this.limitlessRouterEndpointQuery = getLimitlessRouterEndpointQuery();
9091
this.limitlessRouters = new AtomicReference<>(limitlessRouters);
9192
this.props = PropertyUtils.copyProperties(props);
92-
9393
props.stringPropertyNames().stream()
9494
.filter(p -> p.startsWith(MONITORING_PROPERTY_PREFIX))
9595
.forEach(
@@ -103,7 +103,7 @@ public LimitlessRouterMonitor(
103103

104104
this.intervalMs = intervalMs;
105105
this.telemetryFactory = this.pluginService.getTelemetryFactory();
106-
106+
this.queryHelper = new LimitlessQueryHelper(this.pluginService);
107107
this.threadPool.submit(this);
108108
this.threadPool.shutdown(); // No more task are accepted by pool.
109109
}
@@ -153,7 +153,8 @@ public void run() {
153153
if (this.monitoringConn == null || this.monitoringConn.isClosed()) {
154154
continue;
155155
}
156-
List<HostSpec> newLimitlessRouters = queryForLimitlessRouters(this.monitoringConn);
156+
List<HostSpec> newLimitlessRouters = queryHelper.queryForLimitlessRouters(this.monitoringConn,
157+
this.hostSpec.getPort());
157158
this.limitlessRouters.set(Collections.unmodifiableList(newLimitlessRouters));
158159
RoundRobinHostSelector.setRoundRobinHostWeightPairsProperty(this.props, newLimitlessRouters);
159160
LOGGER.finest(Utils.logTopology(limitlessRouters.get(), "[limitlessRouterMonitor]"));
@@ -190,7 +191,8 @@ public List<HostSpec> forceGetLimitlessRouters() throws SQLException {
190191
if (this.monitoringConn == null || this.monitoringConn.isClosed()) {
191192
throw new SQLException(Messages.get("LimitlessRouterMonitor.forceGetLimitlessRoutersFailed"));
192193
}
193-
List<HostSpec> newLimitlessRouters = queryForLimitlessRouters(this.monitoringConn);
194+
List<HostSpec> newLimitlessRouters = queryHelper.queryForLimitlessRouters(this.monitoringConn,
195+
this.hostSpec.getPort());
194196
this.limitlessRouters.set(Collections.unmodifiableList(newLimitlessRouters));
195197
RoundRobinHostSelector.setRoundRobinHostWeightPairsProperty(this.props, newLimitlessRouters);
196198
LOGGER.finest(Utils.logTopology(limitlessRouters.get(), "[limitlessRouterMonitor]"));

wrapper/src/main/java/software/amazon/jdbc/plugin/limitless/LimitlessRouterServiceImpl.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,11 @@
1818

1919
import java.sql.Connection;
2020
import java.sql.SQLException;
21-
import java.util.ArrayList;
2221
import java.util.Collections;
2322
import java.util.List;
2423
import java.util.Properties;
2524
import java.util.concurrent.TimeUnit;
2625
import java.util.concurrent.locks.ReentrantLock;
27-
import java.util.function.Supplier;
2826
import org.checkerframework.checker.nullness.qual.NonNull;
2927
import software.amazon.jdbc.AwsWrapperProperty;
3028
import software.amazon.jdbc.HostSpec;
@@ -70,7 +68,9 @@ public LimitlessRouterServiceImpl(final @NonNull PluginService pluginService) {
7068
this(pluginService, LimitlessRouterMonitor::new);
7169
}
7270

73-
public LimitlessRouterServiceImpl(final @NonNull PluginService pluginService, final LimitlessRouterMonitorInitializer limitlessRouterMonitorInitializer) {
71+
public LimitlessRouterServiceImpl(
72+
final @NonNull PluginService pluginService,
73+
final LimitlessRouterMonitorInitializer limitlessRouterMonitorInitializer) {
7474
this.pluginService = pluginService;
7575
this.limitlessRouterMonitorInitializer = limitlessRouterMonitorInitializer;
7676
this.queryHelper = new LimitlessQueryHelper(pluginService);
@@ -95,7 +95,8 @@ public List<HostSpec> forceGetLimitlessRoutersWithConn(
9595

9696
forceGetLimitlessRoutersLock.lock();
9797
try {
98-
final List<HostSpec> limitlessRouters = limitlessRouterCache.get(this.pluginService.getHostListProvider().getClusterId(), cacheExpirationNano);
98+
final List<HostSpec> limitlessRouters =
99+
limitlessRouterCache.get(this.pluginService.getHostListProvider().getClusterId(), cacheExpirationNano);
99100
if (!Utils.isNullOrEmpty(limitlessRouters)) {
100101
return limitlessRouters;
101102
}

0 commit comments

Comments
 (0)