Skip to content

Commit 0542f70

Browse files
committed
Reduce code redundancy with deprecation (#1705)
* Reduce code redundancy * Safer/independent String.equals() Conflicts: src/main/java/redis/clients/jedis/JedisClusterInfoCache.java src/main/java/redis/clients/jedis/JedisPool.java src/main/java/redis/clients/jedis/JedisShardInfo.java Changes to be committed: modified: src/main/java/redis/clients/jedis/BinaryJedis.java modified: src/main/java/redis/clients/jedis/Connection.java modified: src/main/java/redis/clients/jedis/JedisClusterInfoCache.java modified: src/main/java/redis/clients/jedis/JedisFactory.java modified: src/main/java/redis/clients/jedis/JedisPool.java modified: src/main/java/redis/clients/jedis/JedisSentinelPool.java modified: src/main/java/redis/clients/jedis/JedisShardInfo.java modified: src/main/java/redis/clients/util/JedisURIHelper.java
1 parent 193a6a9 commit 0542f70

File tree

8 files changed

+128
-152
lines changed

8 files changed

+128
-152
lines changed

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

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public BinaryJedis() {
3333

3434
public BinaryJedis(final String host) {
3535
URI uri = URI.create(host);
36-
if (uri.getScheme() != null && (uri.getScheme().equals("redis") || uri.getScheme().equals("rediss"))) {
36+
if (JedisURIHelper.isValid(uri)) {
3737
initializeClientFromURI(uri);
3838
} else {
3939
client = new Client(host);
@@ -59,23 +59,17 @@ public BinaryJedis(final String host, final int port, final boolean ssl,
5959
}
6060

6161
public BinaryJedis(final String host, final int port, final int timeout) {
62-
client = new Client(host, port);
63-
client.setConnectionTimeout(timeout);
64-
client.setSoTimeout(timeout);
62+
this(host, port, timeout, timeout);
6563
}
6664

6765
public BinaryJedis(final String host, final int port, final int timeout, final boolean ssl) {
68-
client = new Client(host, port, ssl);
69-
client.setConnectionTimeout(timeout);
70-
client.setSoTimeout(timeout);
66+
this(host, port, timeout, timeout, ssl);
7167
}
7268

7369
public BinaryJedis(final String host, final int port, final int timeout, final boolean ssl,
7470
final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
7571
final HostnameVerifier hostnameVerifier) {
76-
client = new Client(host, port, ssl, sslSocketFactory, sslParameters, hostnameVerifier);
77-
client.setConnectionTimeout(timeout);
78-
client.setSoTimeout(timeout);
72+
this(host, port, timeout, timeout, ssl, sslSocketFactory, sslParameters, hostnameVerifier);
7973
}
8074

8175
public BinaryJedis(final String host, final int port, final int connectionTimeout,
@@ -120,16 +114,12 @@ public BinaryJedis(URI uri, final SSLSocketFactory sslSocketFactory,
120114
}
121115

122116
public BinaryJedis(final URI uri, final int timeout) {
123-
initializeClientFromURI(uri);
124-
client.setConnectionTimeout(timeout);
125-
client.setSoTimeout(timeout);
117+
this(uri, timeout, timeout);
126118
}
127119

128120
public BinaryJedis(final URI uri, final int timeout, final SSLSocketFactory sslSocketFactory,
129121
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
130-
initializeClientFromURI(uri, sslSocketFactory, sslParameters, hostnameVerifier);
131-
client.setConnectionTimeout(timeout);
132-
client.setSoTimeout(timeout);
122+
this(uri, timeout, timeout, sslSocketFactory, sslParameters, hostnameVerifier);
133123
}
134124

135125
public BinaryJedis(final URI uri, final int connectionTimeout, final int soTimeout) {
@@ -147,25 +137,7 @@ public BinaryJedis(final URI uri, final int connectionTimeout, final int soTimeo
147137
}
148138

149139
private void initializeClientFromURI(URI uri) {
150-
if (!JedisURIHelper.isValid(uri)) {
151-
throw new InvalidURIException(String.format(
152-
"Cannot open Redis connection due invalid URI. %s", uri.toString()));
153-
}
154-
155-
client = new Client(uri.getHost(), uri.getPort(), uri.getScheme().equals("rediss"));
156-
157-
String password = JedisURIHelper.getPassword(uri);
158-
if (password != null) {
159-
client.auth(password);
160-
client.getStatusCodeReply();
161-
}
162-
163-
int dbIndex = JedisURIHelper.getDBIndex(uri);
164-
if (dbIndex > 0) {
165-
client.select(dbIndex);
166-
client.getStatusCodeReply();
167-
client.setDb(dbIndex);
168-
}
140+
initializeClientFromURI(uri, null, null, null);
169141
}
170142

171143
private void initializeClientFromURI(URI uri, final SSLSocketFactory sslSocketFactory,
@@ -175,7 +147,7 @@ private void initializeClientFromURI(URI uri, final SSLSocketFactory sslSocketFa
175147
"Cannot open Redis connection due invalid URI. %s", uri.toString()));
176148
}
177149

178-
client = new Client(uri.getHost(), uri.getPort(), uri.getScheme().equals("rediss"),
150+
client = new Client(uri.getHost(), uri.getPort(), JedisURIHelper.isRedisSSLScheme(uri),
179151
sslSocketFactory, sslParameters, hostnameVerifier);
180152

181153
String password = JedisURIHelper.getPassword(uri);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ public void connect() {
188188
if (null == sslSocketFactory) {
189189
sslSocketFactory = (SSLSocketFactory)SSLSocketFactory.getDefault();
190190
}
191-
socket = (SSLSocket) sslSocketFactory.createSocket(socket, host, port, true);
191+
socket = sslSocketFactory.createSocket(socket, host, port, true);
192192
if (null != sslParameters) {
193193
((SSLSocket) socket).setSSLParameters(sslParameters);
194194
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ public JedisPool setupNodeIfNotExist(HostAndPort node) {
166166
}
167167
}
168168

169+
@Deprecated
169170
public JedisPool setupNodeIfNotExist(HostAndPort node, boolean ssl) {
170171
w.lock();
171172
try {
@@ -182,6 +183,7 @@ public JedisPool setupNodeIfNotExist(HostAndPort node, boolean ssl) {
182183
}
183184
}
184185

186+
@Deprecated
185187
public JedisPool setupNodeIfNotExist(HostAndPort node, boolean ssl, SSLSocketFactory sslSocketFactory,
186188
SSLParameters sslParameters, HostnameVerifier hostnameVerifier) {
187189
w.lock();

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

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@ class JedisFactory implements PooledObjectFactory<Jedis> {
2727
private final String clientName;
2828
private final boolean ssl;
2929
private final SSLSocketFactory sslSocketFactory;
30-
private SSLParameters sslParameters;
31-
private HostnameVerifier hostnameVerifier;
30+
private final SSLParameters sslParameters;
31+
private final HostnameVerifier hostnameVerifier;
32+
33+
JedisFactory(final String host, final int port, final int connectionTimeout,
34+
final int soTimeout, final String password, final int database, final String clientName) {
35+
this(host, port, connectionTimeout, soTimeout, password, database, clientName,
36+
false, null, null, null);
37+
}
3238

3339
public JedisFactory(final String host, final int port, final int connectionTimeout,
3440
final int soTimeout, final String password, final int database, final String clientName,
@@ -46,6 +52,7 @@ public JedisFactory(final String host, final int port, final int connectionTimeo
4652
this.hostnameVerifier = hostnameVerifier;
4753
}
4854

55+
@Deprecated
4956
public JedisFactory(final URI uri, final int connectionTimeout, final int soTimeout,
5057
final String clientName, final boolean ssl, final SSLSocketFactory sslSocketFactory,
5158
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
@@ -66,6 +73,31 @@ public JedisFactory(final URI uri, final int connectionTimeout, final int soTime
6673
this.hostnameVerifier = hostnameVerifier;
6774
}
6875

76+
JedisFactory(final URI uri, final int connectionTimeout, final int soTimeout,
77+
final String clientName) {
78+
this(uri, connectionTimeout, soTimeout, clientName, null, null, null);
79+
}
80+
81+
JedisFactory(final URI uri, final int connectionTimeout, final int soTimeout,
82+
final String clientName, final SSLSocketFactory sslSocketFactory,
83+
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
84+
if (!JedisURIHelper.isValid(uri)) {
85+
throw new InvalidURIException(String.format(
86+
"Cannot open Redis connection due invalid URI. %s", uri.toString()));
87+
}
88+
89+
this.hostAndPort.set(new HostAndPort(uri.getHost(), uri.getPort()));
90+
this.connectionTimeout = connectionTimeout;
91+
this.soTimeout = soTimeout;
92+
this.password = JedisURIHelper.getPassword(uri);
93+
this.database = JedisURIHelper.getDBIndex(uri);
94+
this.clientName = clientName;
95+
this.ssl = JedisURIHelper.isRedisSSLScheme(uri);
96+
this.sslSocketFactory = sslSocketFactory;
97+
this.sslParameters = sslParameters;
98+
this.hostnameVerifier = hostnameVerifier;
99+
}
100+
69101
public void setHostAndPort(final HostAndPort hostAndPort) {
70102
this.hostAndPort.set(hostAndPort);
71103
}

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

Lines changed: 54 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -20,46 +20,32 @@ public JedisPool() {
2020
}
2121

2222
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host) {
23-
this(poolConfig, host, Protocol.DEFAULT_PORT, Protocol.DEFAULT_TIMEOUT, null,
24-
Protocol.DEFAULT_DATABASE, null);
23+
this(poolConfig, host, Protocol.DEFAULT_PORT);
2524
}
2625

2726
public JedisPool(String host, int port) {
28-
this(new GenericObjectPoolConfig(), host, port, Protocol.DEFAULT_TIMEOUT, null,
29-
Protocol.DEFAULT_DATABASE, null);
27+
this(new GenericObjectPoolConfig(), host, port);
3028
}
3129

3230
public JedisPool(final String host) {
3331
URI uri = URI.create(host);
3432
if (JedisURIHelper.isValid(uri)) {
35-
String h = uri.getHost();
36-
int port = uri.getPort();
37-
String password = JedisURIHelper.getPassword(uri);
38-
int database = JedisURIHelper.getDBIndex(uri);
39-
boolean ssl = uri.getScheme().equals("rediss");
40-
this.internalPool = new GenericObjectPool<Jedis>(new JedisFactory(h, port,
41-
Protocol.DEFAULT_TIMEOUT, Protocol.DEFAULT_TIMEOUT, password, database, null,
42-
ssl, null, null, null), new GenericObjectPoolConfig());
33+
this.internalPool = new GenericObjectPool<Jedis>(new JedisFactory(uri,
34+
Protocol.DEFAULT_TIMEOUT, Protocol.DEFAULT_TIMEOUT, null), new GenericObjectPoolConfig());
4335
} else {
4436
this.internalPool = new GenericObjectPool<Jedis>(new JedisFactory(host,
4537
Protocol.DEFAULT_PORT, Protocol.DEFAULT_TIMEOUT, Protocol.DEFAULT_TIMEOUT, null,
46-
Protocol.DEFAULT_DATABASE, null, false, null, null, null), new GenericObjectPoolConfig());
38+
Protocol.DEFAULT_DATABASE, null), new GenericObjectPoolConfig());
4739
}
4840
}
4941

5042
public JedisPool(final String host, final SSLSocketFactory sslSocketFactory,
5143
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
5244
URI uri = URI.create(host);
5345
if (JedisURIHelper.isValid(uri)) {
54-
String h = uri.getHost();
55-
int port = uri.getPort();
56-
String password = JedisURIHelper.getPassword(uri);
57-
int database = JedisURIHelper.getDBIndex(uri);
58-
boolean ssl = uri.getScheme().equals("rediss");
59-
this.internalPool = new GenericObjectPool<Jedis>(new JedisFactory(h, port,
60-
Protocol.DEFAULT_TIMEOUT, Protocol.DEFAULT_TIMEOUT, password, database, null, ssl,
61-
sslSocketFactory, sslParameters, hostnameVerifier),
62-
new GenericObjectPoolConfig());
46+
this.internalPool = new GenericObjectPool<Jedis>(new JedisFactory(uri,
47+
Protocol.DEFAULT_TIMEOUT, Protocol.DEFAULT_TIMEOUT, null, sslSocketFactory, sslParameters,
48+
hostnameVerifier), new GenericObjectPoolConfig());
6349
} else {
6450
this.internalPool = new GenericObjectPool<Jedis>(new JedisFactory(host,
6551
Protocol.DEFAULT_PORT, Protocol.DEFAULT_TIMEOUT, Protocol.DEFAULT_TIMEOUT, null,
@@ -68,13 +54,12 @@ public JedisPool(final String host, final SSLSocketFactory sslSocketFactory,
6854
}
6955

7056
public JedisPool(final URI uri) {
71-
this(new GenericObjectPoolConfig(), uri, Protocol.DEFAULT_TIMEOUT);
57+
this(new GenericObjectPoolConfig(), uri);
7258
}
7359

7460
public JedisPool(final URI uri, final SSLSocketFactory sslSocketFactory,
7561
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
76-
this(new GenericObjectPoolConfig(), uri, Protocol.DEFAULT_TIMEOUT, sslSocketFactory,
77-
sslParameters, hostnameVerifier);
62+
this(new GenericObjectPoolConfig(), uri, sslSocketFactory, sslParameters, hostnameVerifier);
7863
}
7964

8065
public JedisPool(final URI uri, final int timeout) {
@@ -89,54 +74,53 @@ public JedisPool(final URI uri, final int timeout, final SSLSocketFactory sslSoc
8974

9075
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
9176
int timeout, final String password) {
92-
this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, null);
77+
this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE);
9378
}
9479

9580
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
9681
int timeout, final String password, final boolean ssl) {
97-
this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, null, ssl);
82+
this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl);
9883
}
9984

10085
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
10186
int timeout, final String password, final boolean ssl,
10287
final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
10388
final HostnameVerifier hostnameVerifier) {
104-
this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, null, ssl,
89+
this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl,
10590
sslSocketFactory, sslParameters, hostnameVerifier);
10691
}
10792

10893
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port) {
109-
this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, null, Protocol.DEFAULT_DATABASE, null);
94+
this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT);
11095
}
11196

11297
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port,
11398
final boolean ssl) {
114-
this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, null, Protocol.DEFAULT_DATABASE, null,
115-
ssl);
99+
this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, ssl);
116100
}
117101

118102
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port,
119103
final boolean ssl, final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
120104
final HostnameVerifier hostnameVerifier) {
121-
this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, null, Protocol.DEFAULT_DATABASE, null,
122-
ssl, sslSocketFactory, sslParameters, hostnameVerifier);
105+
this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, ssl, sslSocketFactory, sslParameters,
106+
hostnameVerifier);
123107
}
124108

125109
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port,
126110
final int timeout) {
127-
this(poolConfig, host, port, timeout, null, Protocol.DEFAULT_DATABASE, null);
111+
this(poolConfig, host, port, timeout, null);
128112
}
129113

130114
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port,
131115
final int timeout, final boolean ssl) {
132-
this(poolConfig, host, port, timeout, null, Protocol.DEFAULT_DATABASE, null, ssl);
116+
this(poolConfig, host, port, timeout, null, ssl);
133117
}
134118

135119
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port,
136120
final int timeout, final boolean ssl, final SSLSocketFactory sslSocketFactory,
137121
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
138-
this(poolConfig, host, port, timeout, null, Protocol.DEFAULT_DATABASE, null, ssl,
139-
sslSocketFactory, sslParameters, hostnameVerifier);
122+
this(poolConfig, host, port, timeout, null, ssl, sslSocketFactory, sslParameters,
123+
hostnameVerifier);
140124
}
141125

142126
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
@@ -159,15 +143,13 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, in
159143

160144
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
161145
int timeout, final String password, final int database, final String clientName) {
162-
this(poolConfig, host, port, timeout, timeout, password, database, clientName, false,
163-
null, null, null);
146+
this(poolConfig, host, port, timeout, timeout, password, database, clientName);
164147
}
165148

166149
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
167150
int timeout, final String password, final int database, final String clientName,
168151
final boolean ssl) {
169-
this(poolConfig, host, port, timeout, timeout, password, database, clientName, ssl,
170-
null, null, null);
152+
this(poolConfig, host, port, timeout, timeout, password, database, clientName, ssl);
171153
}
172154

173155
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
@@ -186,6 +168,35 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, in
186168
database, clientName, ssl, sslSocketFactory, sslParameters, hostnameVerifier));
187169
}
188170

171+
public JedisPool(final GenericObjectPoolConfig poolConfig) {
172+
this(poolConfig, Protocol.DEFAULT_HOST, Protocol.DEFAULT_PORT);
173+
}
174+
175+
public JedisPool(final String host, final int port, final boolean ssl) {
176+
this(new GenericObjectPoolConfig(), host, port, ssl);
177+
}
178+
179+
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port,
180+
final int connectionTimeout, final int soTimeout, final String password, final int database,
181+
final String clientName) {
182+
super(poolConfig, new JedisFactory(host, port, connectionTimeout, soTimeout, password,
183+
database, clientName));
184+
}
185+
186+
public JedisPool(final String host, final int port, final boolean ssl,
187+
final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
188+
final HostnameVerifier hostnameVerifier) {
189+
this(new GenericObjectPoolConfig(), host, port, ssl, sslSocketFactory, sslParameters,
190+
hostnameVerifier);
191+
}
192+
193+
public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port,
194+
final int connectionTimeout, final int soTimeout, final String password, final int database,
195+
final String clientName, final boolean ssl) {
196+
this(poolConfig, host, port, connectionTimeout, soTimeout, password, database, clientName, ssl,
197+
null, null, null);
198+
}
199+
189200
public JedisPool(final GenericObjectPoolConfig poolConfig, final URI uri) {
190201
this(poolConfig, uri, Protocol.DEFAULT_TIMEOUT);
191202
}
@@ -209,15 +220,13 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final URI uri, final
209220

210221
public JedisPool(final GenericObjectPoolConfig poolConfig, final URI uri,
211222
final int connectionTimeout, final int soTimeout) {
212-
super(poolConfig, new JedisFactory(uri, connectionTimeout, soTimeout, null, false,
213-
null, null, null));
223+
super(poolConfig, new JedisFactory(uri, connectionTimeout, soTimeout, null));
214224
}
215225

216226
public JedisPool(final GenericObjectPoolConfig poolConfig, final URI uri,
217227
final int connectionTimeout, final int soTimeout, final SSLSocketFactory sslSocketFactory,
218228
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
219-
super(poolConfig, new JedisFactory(uri, connectionTimeout, soTimeout, null,
220-
(uri.getScheme() !=null && uri.getScheme().equals("rediss")), sslSocketFactory,
229+
super(poolConfig, new JedisFactory(uri, connectionTimeout, soTimeout, null, sslSocketFactory,
221230
sslParameters, hostnameVerifier));
222231
}
223232

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ private void initPool(HostAndPort master) {
114114
currentHostMaster = master;
115115
if (factory == null) {
116116
factory = new JedisFactory(master.getHost(), master.getPort(), connectionTimeout,
117-
soTimeout, password, database, clientName, false, null, null, null);
117+
soTimeout, password, database, clientName);
118118
initPool(poolConfig, factory);
119119
} else {
120120
factory.setHostAndPort(currentHostMaster);

0 commit comments

Comments
 (0)