Skip to content

Commit 022a9af

Browse files
authored
Easier constructors for pipeline classes (#2731)
1 parent c0136df commit 022a9af

File tree

8 files changed

+691
-498
lines changed

8 files changed

+691
-498
lines changed

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

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

3+
import java.util.Set;
4+
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
35
import redis.clients.jedis.providers.ClusterConnectionProvider;
6+
import redis.clients.jedis.util.IOUtils;
47

58
public class ClusterPipeline extends MultiNodePipelineBase {
69

710
private final ClusterConnectionProvider provider;
11+
private AutoCloseable closeable = null;
12+
13+
public ClusterPipeline(Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig) {
14+
this(new ClusterConnectionProvider(clusterNodes, clientConfig));
15+
this.closeable = this.provider;
16+
}
17+
18+
public ClusterPipeline(Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig,
19+
GenericObjectPoolConfig<Connection> poolConfig) {
20+
this(new ClusterConnectionProvider(clusterNodes, clientConfig, poolConfig));
21+
this.closeable = this.provider;
22+
}
823

924
public ClusterPipeline(ClusterConnectionProvider provider) {
1025
super(new ClusterCommandObjects());
1126
this.provider = provider;
1227
}
1328

29+
@Override
30+
public void close() {
31+
try {
32+
super.close();
33+
} finally {
34+
IOUtils.closeQuietly(closeable);
35+
}
36+
}
37+
1438
@Override
1539
protected HostAndPort getNodeKey(CommandArguments args) {
1640
return provider.getNode(((ClusterCommandArguments) args).getCommandHashSlot());

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

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -108,80 +108,80 @@ public JedisCluster(Set<HostAndPort> nodes, int timeout,
108108
this(nodes, timeout, DEFAULT_MAX_ATTEMPTS, poolConfig);
109109
}
110110

111-
public JedisCluster(Set<HostAndPort> jedisClusterNode, int timeout, int maxAttempts,
111+
public JedisCluster(Set<HostAndPort> clusterNodes, int timeout, int maxAttempts,
112112
final GenericObjectPoolConfig<Connection> poolConfig) {
113-
this(jedisClusterNode, timeout, timeout, maxAttempts, poolConfig);
113+
this(clusterNodes, timeout, timeout, maxAttempts, poolConfig);
114114
}
115115

116-
public JedisCluster(Set<HostAndPort> jedisClusterNode, int connectionTimeout,
117-
int soTimeout, int maxAttempts, final GenericObjectPoolConfig<Connection> poolConfig) {
118-
this(jedisClusterNode, connectionTimeout, soTimeout, maxAttempts, null, poolConfig);
116+
public JedisCluster(Set<HostAndPort> clusterNodes, int connectionTimeout, int soTimeout,
117+
int maxAttempts, final GenericObjectPoolConfig<Connection> poolConfig) {
118+
this(clusterNodes, connectionTimeout, soTimeout, maxAttempts, null, poolConfig);
119119
}
120120

121-
public JedisCluster(Set<HostAndPort> jedisClusterNode, int connectionTimeout,
122-
int soTimeout, int maxAttempts, String password, GenericObjectPoolConfig<Connection> poolConfig) {
123-
this(jedisClusterNode, connectionTimeout, soTimeout, maxAttempts, password, null, poolConfig);
121+
public JedisCluster(Set<HostAndPort> clusterNodes, int connectionTimeout, int soTimeout,
122+
int maxAttempts, String password, GenericObjectPoolConfig<Connection> poolConfig) {
123+
this(clusterNodes, connectionTimeout, soTimeout, maxAttempts, password, null, poolConfig);
124124
}
125125

126-
public JedisCluster(Set<HostAndPort> jedisClusterNode, int connectionTimeout,
126+
public JedisCluster(Set<HostAndPort> clusterNodes, int connectionTimeout,
127127
int soTimeout, int maxAttempts, String password, String clientName,
128128
GenericObjectPoolConfig<Connection> poolConfig) {
129-
this(jedisClusterNode, connectionTimeout, soTimeout, maxAttempts, null, password, clientName,
129+
this(clusterNodes, connectionTimeout, soTimeout, maxAttempts, null, password, clientName,
130130
poolConfig);
131131
}
132132

133-
public JedisCluster(Set<HostAndPort> jedisClusterNode, int connectionTimeout,
134-
int soTimeout, int maxAttempts, String user, String password, String clientName,
133+
public JedisCluster(Set<HostAndPort> clusterNodes, int connectionTimeout, int soTimeout,
134+
int maxAttempts, String user, String password, String clientName,
135135
GenericObjectPoolConfig<Connection> poolConfig) {
136-
this(jedisClusterNode, DefaultJedisClientConfig.builder().connectionTimeoutMillis(connectionTimeout)
136+
this(clusterNodes, DefaultJedisClientConfig.builder().connectionTimeoutMillis(connectionTimeout)
137137
.socketTimeoutMillis(soTimeout).user(user).password(password).clientName(clientName).build(),
138138
maxAttempts, poolConfig);
139139
}
140140

141-
public JedisCluster(Set<HostAndPort> jedisClusterNode, int connectionTimeout,
141+
public JedisCluster(Set<HostAndPort> clusterNodes, int connectionTimeout,
142142
int soTimeout, int infiniteSoTimeout, int maxAttempts, String user, String password,
143143
String clientName, GenericObjectPoolConfig<Connection> poolConfig) {
144-
this(jedisClusterNode, DefaultJedisClientConfig.builder().connectionTimeoutMillis(connectionTimeout)
144+
this(clusterNodes, DefaultJedisClientConfig.builder().connectionTimeoutMillis(connectionTimeout)
145145
.socketTimeoutMillis(soTimeout).blockingSocketTimeoutMillis(infiniteSoTimeout)
146146
.user(user).password(password).clientName(clientName).build(), maxAttempts, poolConfig);
147147
}
148148

149-
public JedisCluster(Set<HostAndPort> jedisClusterNode, int connectionTimeout,
150-
int soTimeout, int maxAttempts, String password, String clientName,
149+
public JedisCluster(Set<HostAndPort> clusterNodes, int connectionTimeout, int soTimeout,
150+
int maxAttempts, String password, String clientName,
151151
GenericObjectPoolConfig<Connection> poolConfig, boolean ssl) {
152-
this(jedisClusterNode, connectionTimeout, soTimeout, maxAttempts, null, password, clientName,
152+
this(clusterNodes, connectionTimeout, soTimeout, maxAttempts, null, password, clientName,
153153
poolConfig, ssl);
154154
}
155155

156-
public JedisCluster(Set<HostAndPort> jedisClusterNode, int connectionTimeout,
157-
int soTimeout, int maxAttempts, String user, String password, String clientName,
156+
public JedisCluster(Set<HostAndPort> clusterNodes, int connectionTimeout, int soTimeout,
157+
int maxAttempts, String user, String password, String clientName,
158158
GenericObjectPoolConfig<Connection> poolConfig, boolean ssl) {
159-
this(jedisClusterNode, DefaultJedisClientConfig.builder().connectionTimeoutMillis(connectionTimeout)
159+
this(clusterNodes, DefaultJedisClientConfig.builder().connectionTimeoutMillis(connectionTimeout)
160160
.socketTimeoutMillis(soTimeout).user(user).password(password).clientName(clientName).ssl(ssl).build(),
161161
maxAttempts, poolConfig);
162162
}
163163

164-
public JedisCluster(Set<HostAndPort> jedisClusterNode, JedisClientConfig clientConfig,
164+
public JedisCluster(Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig,
165165
int maxAttempts, GenericObjectPoolConfig<Connection> poolConfig) {
166-
this(jedisClusterNode, clientConfig, maxAttempts,
166+
this(clusterNodes, clientConfig, maxAttempts,
167167
Duration.ofMillis((long) clientConfig.getSocketTimeoutMillis() * maxAttempts), poolConfig);
168168
}
169169

170-
public JedisCluster(Set<HostAndPort> jedisClusterNode, JedisClientConfig clientConfig,
170+
public JedisCluster(Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig,
171171
int maxAttempts, Duration maxTotalRetriesDuration, GenericObjectPoolConfig<Connection> poolConfig) {
172-
super(jedisClusterNode, clientConfig, poolConfig, maxAttempts, maxTotalRetriesDuration);
172+
super(clusterNodes, clientConfig, poolConfig, maxAttempts, maxTotalRetriesDuration);
173173
}
174174

175-
public JedisCluster(Set<HostAndPort> jedisClusterNodes, JedisClientConfig clientConfig) {
176-
this(jedisClusterNodes, clientConfig, DEFAULT_MAX_ATTEMPTS);
175+
public JedisCluster(Set<HostAndPort> clusterNodess, JedisClientConfig clientConfig) {
176+
this(clusterNodess, clientConfig, DEFAULT_MAX_ATTEMPTS);
177177
}
178178

179-
public JedisCluster(Set<HostAndPort> jedisClusterNodes, JedisClientConfig clientConfig, int maxAttempts) {
180-
super(jedisClusterNodes, clientConfig, maxAttempts);
179+
public JedisCluster(Set<HostAndPort> clusterNodess, JedisClientConfig clientConfig, int maxAttempts) {
180+
super(clusterNodess, clientConfig, maxAttempts);
181181
}
182182

183-
public JedisCluster(Set<HostAndPort> jedisClusterNodes, JedisClientConfig clientConfig, int maxAttempts, Duration maxTotalRetriesDuration) {
184-
super(jedisClusterNodes, clientConfig, maxAttempts, maxTotalRetriesDuration);
183+
public JedisCluster(Set<HostAndPort> clusterNodess, JedisClientConfig clientConfig, int maxAttempts, Duration maxTotalRetriesDuration) {
184+
super(clusterNodess, clientConfig, maxAttempts, maxTotalRetriesDuration);
185185
}
186186

187187
public Map<String, ConnectionPool> getClusterNodes() {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ protected final <T> Response<T> appendCommand(CommandObject<T> commandObject) {
6363
}
6464

6565
@Override
66-
public final void close() {
66+
public void close() {
6767
sync();
6868
for (Connection connection : connections.values()) {
6969
connection.close();

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

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,47 @@
11
package redis.clients.jedis;
22

3-
import redis.clients.jedis.providers.ShardedConnectionProvider;
3+
import java.util.List;
44
import java.util.regex.Pattern;
5+
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
6+
import redis.clients.jedis.providers.ShardedConnectionProvider;
7+
import redis.clients.jedis.util.Hashing;
8+
import redis.clients.jedis.util.IOUtils;
59

610
public class ShardedPipeline extends MultiNodePipelineBase {
711

812
private final ShardedConnectionProvider provider;
13+
private AutoCloseable closeable = null;
14+
15+
public ShardedPipeline(List<HostAndPort> shards, JedisClientConfig clientConfig) {
16+
this(new ShardedConnectionProvider(shards, clientConfig));
17+
this.closeable = this.provider;
18+
}
919

1020
public ShardedPipeline(ShardedConnectionProvider provider) {
1121
super(new ShardedCommandObjects(provider.getHashingAlgo()));
1222
this.provider = provider;
1323
}
1424

25+
public ShardedPipeline(List<HostAndPort> shards, JedisClientConfig clientConfig,
26+
GenericObjectPoolConfig<Connection> poolConfig, Hashing algo, Pattern tagPattern) {
27+
this(new ShardedConnectionProvider(shards, clientConfig, poolConfig, algo), tagPattern);
28+
this.closeable = this.provider;
29+
}
30+
1531
public ShardedPipeline(ShardedConnectionProvider provider, Pattern tagPattern) {
1632
super(new ShardedCommandObjects(provider.getHashingAlgo(), tagPattern));
1733
this.provider = provider;
1834
}
1935

36+
@Override
37+
public void close() {
38+
try {
39+
super.close();
40+
} finally {
41+
IOUtils.closeQuietly(closeable);
42+
}
43+
}
44+
2045
@Override
2146
protected HostAndPort getNodeKey(CommandArguments args) {
2247
return provider.getNode(((ShardedCommandArguments) args).getKeyHash());

src/main/java/redis/clients/jedis/providers/ClusterConnectionProvider.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ public class ClusterConnectionProvider implements ConnectionProvider {
2222

2323
protected final JedisClusterInfoCache cache;
2424

25-
public ClusterConnectionProvider(Set<HostAndPort> jedisClusterNodes, JedisClientConfig clientConfig) {
25+
public ClusterConnectionProvider(Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig) {
2626
this.cache = new JedisClusterInfoCache(clientConfig);
27-
initializeSlotsCache(jedisClusterNodes, clientConfig);
27+
initializeSlotsCache(clusterNodes, clientConfig);
2828
}
2929

30-
public ClusterConnectionProvider(Set<HostAndPort> jedisClusterNodes, JedisClientConfig clientConfig,
30+
public ClusterConnectionProvider(Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig,
3131
GenericObjectPoolConfig<Connection> poolConfig) {
3232
this.cache = new JedisClusterInfoCache(clientConfig, poolConfig);
33-
initializeSlotsCache(jedisClusterNodes, clientConfig);
33+
initializeSlotsCache(clusterNodes, clientConfig);
3434
}
3535

3636
private void initializeSlotsCache(Set<HostAndPort> startNodes, JedisClientConfig clientConfig) {

0 commit comments

Comments
 (0)