Skip to content

Commit 504c4b8

Browse files
committed
Rename MultiDb classes
- MultiClusterPooledConnectionProvider -> MultiDatabaseConnectionProvider - Cluster -> Database - MultiClusterClientConfig -> MultiDatabaseConfig - ClusterConfig -> DatabaseConfig
1 parent 4af3df1 commit 504c4b8

36 files changed

+1036
-1074
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@
488488
<include>**/Health*.java</include>
489489
<include>**/*IT.java</include>
490490
<include>**/scenario/RestEndpointUtil.java</include>
491-
<include>src/main/java/redis/clients/jedis/MultiClusterClientConfig.java</include>
491+
<include>src/main/java/redis/clients/jedis/MultiDatabaseConfig.java</include>
492492
<include>src/main/java/redis/clients/jedis/HostAndPort.java</include>
493493
<include>**/builders/*.java</include>
494494
<include>**/MultiDb*.java</include>

src/main/java/redis/clients/jedis/MultiClusterClientConfig.java renamed to src/main/java/redis/clients/jedis/MultiDatabaseConfig.java

Lines changed: 107 additions & 108 deletions
Large diffs are not rendered by default.

src/main/java/redis/clients/jedis/MultiDbClient.java

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package redis.clients.jedis;
22

3-
import redis.clients.jedis.MultiClusterClientConfig.ClusterConfig;
3+
import redis.clients.jedis.MultiDatabaseConfig.DatabaseConfig;
44
import redis.clients.jedis.annots.Experimental;
55
import redis.clients.jedis.builders.MultiDbClientBuilder;
66
import redis.clients.jedis.csc.Cache;
@@ -9,7 +9,7 @@
99
import redis.clients.jedis.mcf.MultiClusterPipeline;
1010
import redis.clients.jedis.mcf.MultiClusterTransaction;
1111
import redis.clients.jedis.providers.ConnectionProvider;
12-
import redis.clients.jedis.mcf.MultiClusterPooledConnectionProvider;
12+
import redis.clients.jedis.mcf.MultiDatabaseConnectionProvider;
1313

1414
import java.util.Set;
1515

@@ -43,14 +43,14 @@
4343
*
4444
* MultiDbClient client = MultiDbClient.builder()
4545
* .multiDbConfig(
46-
* MultiClusterClientConfig.builder()
46+
* MultiDatabaseConfig.builder()
4747
* .endpoint(
48-
* ClusterConfig.builder(
48+
* DatabaseConfig.builder(
4949
* primary,
5050
* DefaultJedisClientConfig.builder().build())
5151
* .weight(100.0f)
5252
* .build())
53-
* .endpoint(ClusterConfig.builder(
53+
* .endpoint(DatabaseConfig.builder(
5454
* secondary,
5555
* DefaultJedisClientConfig.builder().build())
5656
* .weight(50.0f).build())
@@ -76,9 +76,9 @@
7676
* </p>
7777
* @author Ivo Gaydazhiev
7878
* @since 5.2.0
79-
* @see MultiClusterPooledConnectionProvider
79+
* @see MultiDatabaseConnectionProvider
8080
* @see CircuitBreakerCommandExecutor
81-
* @see MultiClusterClientConfig
81+
* @see MultiDatabaseConfig
8282
*/
8383
@Experimental
8484
public class MultiDbClient extends UnifiedJedis {
@@ -91,8 +91,7 @@ public class MultiDbClient extends UnifiedJedis {
9191
* {@link #builder()} to create instances.
9292
* </p>
9393
* @param commandExecutor the command executor (typically CircuitBreakerCommandExecutor)
94-
* @param connectionProvider the connection provider (typically
95-
* MultiClusterPooledConnectionProvider)
94+
* @param connectionProvider the connection provider (typically MultiDatabaseConnectionProvider)
9695
* @param commandObjects the command objects
9796
* @param redisProtocol the Redis protocol version
9897
* @param cache the client-side cache (may be null)
@@ -103,16 +102,16 @@ public class MultiDbClient extends UnifiedJedis {
103102
}
104103

105104
/**
106-
* Returns the underlying MultiClusterPooledConnectionProvider.
105+
* Returns the underlying MultiDatabaseConnectionProvider.
107106
* <p>
108107
* This provides access to multi-cluster specific operations like manual failover, health status
109108
* monitoring, and cluster switch event handling.
110109
* </p>
111110
* @return the multi-cluster connection provider
112-
* @throws ClassCastException if the provider is not a MultiClusterPooledConnectionProvider
111+
* @throws ClassCastException if the provider is not a MultiDatabaseConnectionProvider
113112
*/
114-
private MultiClusterPooledConnectionProvider getMultiClusterProvider() {
115-
return (MultiClusterPooledConnectionProvider) this.provider;
113+
private MultiDatabaseConnectionProvider getMultiDatabaseConnectionProvider() {
114+
return (MultiDatabaseConnectionProvider) this.provider;
116115
}
117116

118117
/**
@@ -124,20 +123,20 @@ private MultiClusterPooledConnectionProvider getMultiClusterProvider() {
124123
* @param endpoint the endpoint to switch to
125124
*/
126125
public void setActiveDatabase(Endpoint endpoint) {
127-
getMultiClusterProvider().setActiveCluster(endpoint);
126+
getMultiDatabaseConnectionProvider().setActiveDatabase(endpoint);
128127
}
129128

130129
/**
131130
* Adds a pre-configured cluster configuration.
132131
* <p>
133-
* This method allows adding a fully configured ClusterConfig instance, providing maximum
132+
* This method allows adding a fully configured DatabaseConfig instance, providing maximum
134133
* flexibility for advanced configurations including custom health check strategies, connection
135134
* pool settings, etc.
136135
* </p>
137-
* @param clusterConfig the pre-configured cluster configuration
136+
* @param databaseConfig the pre-configured database configuration
138137
*/
139-
public void addEndpoint(ClusterConfig clusterConfig) {
140-
getMultiClusterProvider().add(clusterConfig);
138+
public void addEndpoint(DatabaseConfig databaseConfig) {
139+
getMultiDatabaseConnectionProvider().add(databaseConfig);
141140
}
142141

143142
/**
@@ -153,10 +152,10 @@ public void addEndpoint(ClusterConfig clusterConfig) {
153152
* @throws redis.clients.jedis.exceptions.JedisValidationException if the endpoint already exists
154153
*/
155154
public void addEndpoint(Endpoint endpoint, float weight, JedisClientConfig clientConfig) {
156-
ClusterConfig clusterConfig = ClusterConfig.builder(endpoint, clientConfig).weight(weight)
155+
DatabaseConfig databaseConfig = DatabaseConfig.builder(endpoint, clientConfig).weight(weight)
157156
.build();
158157

159-
getMultiClusterProvider().add(clusterConfig);
158+
getMultiDatabaseConnectionProvider().add(databaseConfig);
160159
}
161160

162161
/**
@@ -167,7 +166,7 @@ public void addEndpoint(Endpoint endpoint, float weight, JedisClientConfig clien
167166
* @return the set of all configured endpoints
168167
*/
169168
public Set<Endpoint> getEndpoints() {
170-
return getMultiClusterProvider().getEndpoints();
169+
return getMultiDatabaseConnectionProvider().getEndpoints();
171170
}
172171

173172
/**
@@ -179,7 +178,7 @@ public Set<Endpoint> getEndpoints() {
179178
* @return the health status of the endpoint
180179
*/
181180
public boolean isHealthy(Endpoint endpoint) {
182-
return getMultiClusterProvider().isHealthy(endpoint);
181+
return getMultiDatabaseConnectionProvider().isHealthy(endpoint);
183182
}
184183

185184
/**
@@ -195,7 +194,7 @@ public boolean isHealthy(Endpoint endpoint) {
195194
* healthy clusters available
196195
*/
197196
public void removeEndpoint(Endpoint endpoint) {
198-
getMultiClusterProvider().remove(endpoint);
197+
getMultiDatabaseConnectionProvider().remove(endpoint);
199198
}
200199

201200
/**
@@ -211,7 +210,7 @@ public void removeEndpoint(Endpoint endpoint) {
211210
* or doesn't exist
212211
*/
213212
public void forceActiveEndpoint(Endpoint endpoint, long forcedActiveDurationMs) {
214-
getMultiClusterProvider().forceActiveCluster(endpoint, forcedActiveDurationMs);
213+
getMultiDatabaseConnectionProvider().forceActiveDatabase(endpoint, forcedActiveDurationMs);
215214
}
216215

217216
/**
@@ -224,7 +223,7 @@ public void forceActiveEndpoint(Endpoint endpoint, long forcedActiveDurationMs)
224223
*/
225224
@Override
226225
public MultiClusterPipeline pipelined() {
227-
return new MultiClusterPipeline(getMultiClusterProvider(), commandObjects);
226+
return new MultiClusterPipeline(getMultiDatabaseConnectionProvider(), commandObjects);
228227
}
229228

230229
/**
@@ -237,7 +236,7 @@ public MultiClusterPipeline pipelined() {
237236
*/
238237
@Override
239238
public MultiClusterTransaction multi() {
240-
return new MultiClusterTransaction((MultiClusterPooledConnectionProvider) provider, true,
239+
return new MultiClusterTransaction((MultiDatabaseConnectionProvider) provider, true,
241240
commandObjects);
242241
}
243242

@@ -252,11 +251,12 @@ public MultiClusterTransaction transaction(boolean doMulti) {
252251
"It is not allowed to create Transaction from this " + getClass());
253252
}
254253

255-
return new MultiClusterTransaction(getMultiClusterProvider(), doMulti, commandObjects);
254+
return new MultiClusterTransaction(getMultiDatabaseConnectionProvider(), doMulti,
255+
commandObjects);
256256
}
257257

258258
public Endpoint getActiveEndpoint() {
259-
return getMultiClusterProvider().getCluster().getEndpoint();
259+
return getMultiDatabaseConnectionProvider().getDatabase().getEndpoint();
260260
}
261261

262262
/**

src/main/java/redis/clients/jedis/UnifiedJedis.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import redis.clients.jedis.json.JsonObjectMapper;
3535
import redis.clients.jedis.mcf.CircuitBreakerCommandExecutor;
3636
import redis.clients.jedis.mcf.MultiClusterPipeline;
37-
import redis.clients.jedis.mcf.MultiClusterPooledConnectionProvider;
37+
import redis.clients.jedis.mcf.MultiDatabaseConnectionProvider;
3838
import redis.clients.jedis.mcf.MultiClusterTransaction;
3939
import redis.clients.jedis.params.*;
4040
import redis.clients.jedis.providers.*;
@@ -240,7 +240,7 @@ public UnifiedJedis(ConnectionProvider provider, int maxAttempts, Duration maxTo
240240
* <p>
241241
*/
242242
@Experimental
243-
public UnifiedJedis(MultiClusterPooledConnectionProvider provider) {
243+
public UnifiedJedis(MultiDatabaseConnectionProvider provider) {
244244
this(new CircuitBreakerCommandExecutor(provider), provider);
245245
}
246246

@@ -5099,8 +5099,8 @@ public List<Double> tdigestByRevRank(String key, long... ranks) {
50995099
public PipelineBase pipelined() {
51005100
if (provider == null) {
51015101
throw new IllegalStateException("It is not allowed to create Pipeline from this " + getClass());
5102-
} else if (provider instanceof MultiClusterPooledConnectionProvider) {
5103-
return new MultiClusterPipeline((MultiClusterPooledConnectionProvider) provider, commandObjects);
5102+
} else if (provider instanceof MultiDatabaseConnectionProvider) {
5103+
return new MultiClusterPipeline((MultiDatabaseConnectionProvider) provider, commandObjects);
51045104
} else {
51055105
return new Pipeline(provider.getConnection(), true, commandObjects);
51065106
}
@@ -5120,8 +5120,8 @@ public AbstractTransaction multi() {
51205120
public AbstractTransaction transaction(boolean doMulti) {
51215121
if (provider == null) {
51225122
throw new IllegalStateException("It is not allowed to create Transaction from this " + getClass());
5123-
} else if (provider instanceof MultiClusterPooledConnectionProvider) {
5124-
return new MultiClusterTransaction((MultiClusterPooledConnectionProvider) provider, doMulti, commandObjects);
5123+
} else if (provider instanceof MultiDatabaseConnectionProvider) {
5124+
return new MultiClusterTransaction((MultiDatabaseConnectionProvider) provider, doMulti, commandObjects);
51255125
} else {
51265126
return new Transaction(provider.getConnection(), doMulti, true, commandObjects);
51275127
}

src/main/java/redis/clients/jedis/builders/MultiDbClientBuilder.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
import java.util.function.Consumer;
44

5-
import redis.clients.jedis.MultiClusterClientConfig;
5+
import redis.clients.jedis.MultiDatabaseConfig;
66
import redis.clients.jedis.annots.Experimental;
77
import redis.clients.jedis.executors.CommandExecutor;
88
import redis.clients.jedis.mcf.CircuitBreakerCommandExecutor;
99
import redis.clients.jedis.mcf.ClusterSwitchEventArgs;
10-
import redis.clients.jedis.mcf.MultiClusterPooledConnectionProvider;
10+
import redis.clients.jedis.mcf.MultiDatabaseConnectionProvider;
1111
import redis.clients.jedis.providers.ConnectionProvider;
1212

1313
/**
@@ -38,14 +38,14 @@
3838
* <pre>
3939
* MultiDbClient client = MultiDbClient.builder()
4040
* .multiDbConfig(
41-
* MultiClusterClientConfig.builder()
41+
* MultiDatabaseConfig.builder()
4242
* .endpoint(
43-
* ClusterConfig.builder(
43+
* DatabaseConfig.builder(
4444
* east,
4545
* DefaultJedisClientConfig.builder().credentials(credentialsEast).build())
4646
* .weight(100.0f)
4747
* .build())
48-
* .endpoint(ClusterConfig.builder(
48+
* .endpoint(DatabaseConfig.builder(
4949
* west,
5050
* DefaultJedisClientConfig.builder().credentials(credentialsWest).build())
5151
* .weight(50.0f).build())
@@ -67,7 +67,7 @@ public abstract class MultiDbClientBuilder<C>
6767
extends AbstractClientBuilder<MultiDbClientBuilder<C>, C> {
6868

6969
// Multi-db specific configuration fields
70-
private MultiClusterClientConfig multiDbConfig = null;
70+
private MultiDatabaseConfig multiDbConfig = null;
7171
private Consumer<ClusterSwitchEventArgs> databaseSwitchListener = null;
7272

7373
/**
@@ -79,7 +79,7 @@ public abstract class MultiDbClientBuilder<C>
7979
* @param config the multi-database configuration
8080
* @return this builder
8181
*/
82-
public MultiDbClientBuilder<C> multiDbConfig(MultiClusterClientConfig config) {
82+
public MultiDbClientBuilder<C> multiDbConfig(MultiDatabaseConfig config) {
8383
this.multiDbConfig = config;
8484
return this;
8585
}
@@ -107,18 +107,17 @@ protected MultiDbClientBuilder<C> self() {
107107
@Override
108108
protected ConnectionProvider createDefaultConnectionProvider() {
109109

110-
if (this.multiDbConfig == null || this.multiDbConfig.getClusterConfigs() == null
111-
|| this.multiDbConfig.getClusterConfigs().length < 1) {
110+
if (this.multiDbConfig == null || this.multiDbConfig.getDatabaseConfigs() == null
111+
|| this.multiDbConfig.getDatabaseConfigs().length < 1) {
112112
throw new IllegalArgumentException("At least one endpoint must be specified");
113113
}
114114

115115
// Create the multi-cluster connection provider
116-
MultiClusterPooledConnectionProvider provider = new MultiClusterPooledConnectionProvider(
117-
multiDbConfig);
116+
MultiDatabaseConnectionProvider provider = new MultiDatabaseConnectionProvider(multiDbConfig);
118117

119118
// Set database switch listener if provided
120119
if (this.databaseSwitchListener != null) {
121-
provider.setClusterSwitchListener(this.databaseSwitchListener);
120+
provider.setDatabaseSwitchListener(this.databaseSwitchListener);
122121
}
123122

124123
return provider;
@@ -128,7 +127,7 @@ protected ConnectionProvider createDefaultConnectionProvider() {
128127
protected CommandExecutor createDefaultCommandExecutor() {
129128
// For multi-db clients, we always use CircuitBreakerCommandExecutor
130129
return new CircuitBreakerCommandExecutor(
131-
(MultiClusterPooledConnectionProvider) this.connectionProvider);
130+
(MultiDatabaseConnectionProvider) this.connectionProvider);
132131
}
133132

134133
@Override

src/main/java/redis/clients/jedis/mcf/CircuitBreakerCommandExecutor.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import redis.clients.jedis.annots.Experimental;
1010
import redis.clients.jedis.exceptions.JedisConnectionException;
1111
import redis.clients.jedis.executors.CommandExecutor;
12-
import redis.clients.jedis.mcf.MultiClusterPooledConnectionProvider.Cluster;
12+
import redis.clients.jedis.mcf.MultiDatabaseConnectionProvider.Database;
1313

1414
/**
1515
* @author Allen Terleto (aterleto)
@@ -24,26 +24,26 @@
2424
public class CircuitBreakerCommandExecutor extends CircuitBreakerFailoverBase
2525
implements CommandExecutor {
2626

27-
public CircuitBreakerCommandExecutor(MultiClusterPooledConnectionProvider provider) {
27+
public CircuitBreakerCommandExecutor(MultiDatabaseConnectionProvider provider) {
2828
super(provider);
2929
}
3030

3131
@Override
3232
public <T> T executeCommand(CommandObject<T> commandObject) {
33-
Cluster cluster = provider.getCluster(); // Pass this by reference for thread safety
33+
Database database = provider.getDatabase(); // Pass this by reference for thread safety
3434

3535
DecorateSupplier<T> supplier = Decorators
36-
.ofSupplier(() -> this.handleExecuteCommand(commandObject, cluster));
36+
.ofSupplier(() -> this.handleExecuteCommand(commandObject, database));
3737

38-
supplier.withCircuitBreaker(cluster.getCircuitBreaker());
39-
supplier.withRetry(cluster.getRetry());
38+
supplier.withCircuitBreaker(database.getCircuitBreaker());
39+
supplier.withRetry(database.getRetry());
4040
supplier.withFallback(provider.getFallbackExceptionList(),
41-
e -> this.handleClusterFailover(commandObject, cluster));
41+
e -> this.handleClusterFailover(commandObject, database));
4242
try {
4343
return supplier.decorate().get();
4444
} catch (Exception e) {
45-
if (cluster.getCircuitBreaker().getState() == State.OPEN && isActiveCluster(cluster)) {
46-
clusterFailover(cluster);
45+
if (database.getCircuitBreaker().getState() == State.OPEN && isActiveDatabase(database)) {
46+
clusterFailover(database);
4747
}
4848
throw e;
4949
}
@@ -52,7 +52,7 @@ public <T> T executeCommand(CommandObject<T> commandObject) {
5252
/**
5353
* Functional interface wrapped in retry and circuit breaker logic to handle happy path scenarios
5454
*/
55-
private <T> T handleExecuteCommand(CommandObject<T> commandObject, Cluster cluster) {
55+
private <T> T handleExecuteCommand(CommandObject<T> commandObject, Database cluster) {
5656
Connection connection;
5757
try {
5858
connection = cluster.getConnection();
@@ -63,7 +63,7 @@ private <T> T handleExecuteCommand(CommandObject<T> commandObject, Cluster clust
6363
try {
6464
return connection.executeCommand(commandObject);
6565
} catch (Exception e) {
66-
if (cluster.retryOnFailover() && !isActiveCluster(cluster)
66+
if (cluster.retryOnFailover() && !isActiveDatabase(cluster)
6767
&& isCircuitBreakerTrackedException(e, cluster)) {
6868
throw new ConnectionFailoverException(
6969
"Command failed during failover: " + cluster.getCircuitBreaker().getName(), e);
@@ -78,7 +78,7 @@ && isCircuitBreakerTrackedException(e, cluster)) {
7878
* Functional interface wrapped in retry and circuit breaker logic to handle open circuit breaker
7979
* failure scenarios
8080
*/
81-
private <T> T handleClusterFailover(CommandObject<T> commandObject, Cluster cluster) {
81+
private <T> T handleClusterFailover(CommandObject<T> commandObject, Database cluster) {
8282

8383
clusterFailover(cluster);
8484

0 commit comments

Comments
 (0)