From ba63b5d02459c38de3c42e63d866031f8a156122 Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> Date: Wed, 22 Jun 2022 22:52:46 +0600 Subject: [PATCH] Refactor JedisPool and JedisPooled constructors (#3048) --- .../java/redis/clients/jedis/JedisPool.java | 285 +++++++++-------- .../java/redis/clients/jedis/JedisPooled.java | 301 +++++++++--------- 2 files changed, 303 insertions(+), 283 deletions(-) diff --git a/src/main/java/redis/clients/jedis/JedisPool.java b/src/main/java/redis/clients/jedis/JedisPool.java index 913e46a4be..3680e69fc2 100644 --- a/src/main/java/redis/clients/jedis/JedisPool.java +++ b/src/main/java/redis/clients/jedis/JedisPool.java @@ -22,20 +22,11 @@ public JedisPool() { this(Protocol.DEFAULT_HOST, Protocol.DEFAULT_PORT); } - public JedisPool(final GenericObjectPoolConfig poolConfig, final String url) { - this(poolConfig, URI.create(url)); - } - - public JedisPool(String host, int port) { - this(new GenericObjectPoolConfig(), host, port); - } - /** - * WARNING: This constructor only accepts a uri string as {@code url}. - * {@link JedisURIHelper#isValid(java.net.URI)} can be used before this. + * WARNING: This constructor only accepts a uri string as {@code url}. {@link JedisURIHelper#isValid(java.net.URI)} + * can be used before this. *

- * To use a host string, {@link #JedisPool(java.lang.String, int)} can be used with - * {@link Protocol#DEFAULT_PORT}. + * To use a host string, {@link #JedisPool(java.lang.String, int)} can be used with {@link Protocol#DEFAULT_PORT}. * * @param url */ @@ -44,12 +35,12 @@ public JedisPool(final String url) { } /** - * WARNING: This constructor only accepts a uri string as {@code url}. - * {@link JedisURIHelper#isValid(java.net.URI)} can be used before this. + * WARNING: This constructor only accepts a uri string as {@code url}. {@link JedisURIHelper#isValid(java.net.URI)} + * can be used before this. *

* To use a host string, - * {@link #JedisPool(java.lang.String, int, boolean, javax.net.ssl.SSLSocketFactory, javax.net.ssl.SSLParameters, javax.net.ssl.HostnameVerifier)} - * can be used with {@link Protocol#DEFAULT_PORT} and {@code ssl=true}. + * {@link #JedisPool(java.lang.String, int, boolean, javax.net.ssl.SSLSocketFactory, javax.net.ssl.SSLParameters, + * javax.net.ssl.HostnameVerifier)} can be used with {@link Protocol#DEFAULT_PORT} and {@code ssl=true}. * * @param url * @param sslSocketFactory @@ -62,62 +53,42 @@ public JedisPool(final String url, final SSLSocketFactory sslSocketFactory, Protocol.DEFAULT_TIMEOUT, null, sslSocketFactory, sslParameters, hostnameVerifier)); } - public JedisPool(final URI uri) { - this(new GenericObjectPoolConfig(), uri); - } - - public JedisPool(final URI uri, final SSLSocketFactory sslSocketFactory, - final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(new GenericObjectPoolConfig(), uri, sslSocketFactory, sslParameters, - hostnameVerifier); + public JedisPool(final String host, final int port) { + this(new GenericObjectPoolConfig(), host, port); } - public JedisPool(final URI uri, final int timeout) { - this(new GenericObjectPoolConfig(), uri, timeout); + public JedisPool(final String host, final int port, final boolean ssl) { + this(new GenericObjectPoolConfig(), host, port, ssl); } - public JedisPool(final URI uri, final int timeout, final SSLSocketFactory sslSocketFactory, - final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(new GenericObjectPoolConfig(), uri, timeout, sslSocketFactory, sslParameters, + public JedisPool(final String host, final int port, final boolean ssl, + final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, + final HostnameVerifier hostnameVerifier) { + this(new GenericObjectPoolConfig(), host, port, ssl, sslSocketFactory, sslParameters, hostnameVerifier); } - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password) { - this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE); - } - public JedisPool(final String host, int port, String user, final String password) { this(new GenericObjectPoolConfig(), host, port, user, password); } - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - String user, final String password) { - this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, user, password, - Protocol.DEFAULT_DATABASE); - } - - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password) { - this(poolConfig, host, port, timeout, user, password, Protocol.DEFAULT_DATABASE); - } - - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final boolean ssl) { - this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl); - } - - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final boolean ssl) { - this(poolConfig, host, port, timeout, user, password, Protocol.DEFAULT_DATABASE, ssl); + public JedisPool(final GenericObjectPoolConfig poolConfig) { + this(poolConfig, Protocol.DEFAULT_HOST, Protocol.DEFAULT_PORT); } - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final boolean ssl, - final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, - final HostnameVerifier hostnameVerifier) { - this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl, - sslSocketFactory, sslParameters, hostnameVerifier); + /** + * WARNING: This constructor only accepts a uri string as {@code url}. {@link JedisURIHelper#isValid(java.net.URI)} + * can be used before this. + *

+ * To use a host string, + * {@link #JedisPool(org.apache.commons.pool2.impl.GenericObjectPoolConfig, java.lang.String, int)} can be used with + * {@link Protocol#DEFAULT_PORT}. + * + * @param poolConfig + * @param url + */ + public JedisPool(final GenericObjectPoolConfig poolConfig, final String url) { + this(poolConfig, URI.create(url)); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, @@ -137,6 +108,11 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String h hostnameVerifier); } + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, + String user, final String password) { + this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, user, password, Protocol.DEFAULT_DATABASE); + } + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, final int port, final int timeout) { this(poolConfig, host, port, timeout, null); @@ -156,23 +132,41 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String h } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final int database) { - this(poolConfig, host, port, timeout, password, database, null); + int timeout, final String password) { + this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final int database) { - this(poolConfig, host, port, timeout, user, password, database, null); + int timeout, final String password, final boolean ssl) { + this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final int database, final boolean ssl) { - this(poolConfig, host, port, timeout, password, database, null, ssl); + int timeout, final String password, final boolean ssl, + final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, + final HostnameVerifier hostnameVerifier) { + this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl, + sslSocketFactory, sslParameters, hostnameVerifier); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final int database, final boolean ssl) { - this(poolConfig, host, port, timeout, user, password, database, null, ssl); + int timeout, final String user, final String password) { + this(poolConfig, host, port, timeout, user, password, Protocol.DEFAULT_DATABASE); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String user, final String password, final boolean ssl) { + this(poolConfig, host, port, timeout, user, password, Protocol.DEFAULT_DATABASE, ssl); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String password, final int database) { + this(poolConfig, host, port, timeout, password, database, null); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String password, final int database, final boolean ssl) { + this(poolConfig, host, port, timeout, password, database, null, ssl); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, @@ -184,14 +178,18 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String h } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final int database, final String clientName) { - this(poolConfig, host, port, timeout, timeout, password, database, clientName); + int timeout, final String user, final String password, final int database) { + this(poolConfig, host, port, timeout, user, password, database, null); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final int database, - final String clientName) { - this(poolConfig, host, port, timeout, timeout, user, password, database, clientName); + int timeout, final String user, final String password, final int database, final boolean ssl) { + this(poolConfig, host, port, timeout, user, password, database, null, ssl); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String password, final int database, final String clientName) { + this(poolConfig, host, port, timeout, timeout, password, database, clientName); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, @@ -200,6 +198,20 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String h this(poolConfig, host, port, timeout, timeout, password, database, clientName, ssl); } + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String password, final int database, final String clientName, + final boolean ssl, final SSLSocketFactory sslSocketFactory, + final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { + this(poolConfig, host, port, timeout, timeout, password, database, clientName, ssl, + sslSocketFactory, sslParameters, hostnameVerifier); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String user, final String password, final int database, + final String clientName) { + this(poolConfig, host, port, timeout, timeout, user, password, database, clientName); + } + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, int timeout, final String user, final String password, final int database, final String clientName, final boolean ssl) { @@ -207,11 +219,17 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String h } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final int database, final String clientName, - final boolean ssl, final SSLSocketFactory sslSocketFactory, - final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(poolConfig, host, port, timeout, timeout, password, database, clientName, ssl, - sslSocketFactory, sslParameters, hostnameVerifier); + final int connectionTimeout, final int soTimeout, final String password, final int database, + final String clientName) { + this(poolConfig, new JedisFactory(host, port, connectionTimeout, soTimeout, password, + database, clientName)); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, + final int port, final int connectionTimeout, final int soTimeout, final String password, + final int database, final String clientName, final boolean ssl) { + this(poolConfig, host, port, connectionTimeout, soTimeout, password, database, clientName, ssl, + null, null, null); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, @@ -223,12 +241,17 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String h } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final int infiniteSoTimeout, - final String password, final int database, final String clientName, final boolean ssl, - final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, - final HostnameVerifier hostnameVerifier) { - this(poolConfig, host, port, connectionTimeout, soTimeout, infiniteSoTimeout, null, password, - database, clientName, ssl, sslSocketFactory, sslParameters, hostnameVerifier); + final int connectionTimeout, final int soTimeout, final String user, final String password, + final int database, final String clientName) { + this(poolConfig, new JedisFactory(host, port, connectionTimeout, soTimeout, user, password, + database, clientName)); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, + final int port, final int connectionTimeout, final int soTimeout, final String user, + final String password, final int database, final String clientName, final boolean ssl) { + this(poolConfig, host, port, connectionTimeout, soTimeout, user, password, database, + clientName, ssl, null, null, null); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, @@ -242,76 +265,48 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final String h public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, final int connectionTimeout, final int soTimeout, final int infiniteSoTimeout, - final String user, final String password, final int database, final String clientName, - final boolean ssl, final SSLSocketFactory sslSocketFactory, - final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(poolConfig, new JedisFactory(host, port, connectionTimeout, soTimeout, infiniteSoTimeout, - user, password, database, clientName, ssl, sslSocketFactory, sslParameters, - hostnameVerifier)); - } - - public JedisPool(final HostAndPort hostAndPort, final JedisClientConfig clientConfig) { - this(new GenericObjectPoolConfig(), hostAndPort, clientConfig); - } - - public JedisPool(final GenericObjectPoolConfig poolConfig, final HostAndPort hostAndPort, - final JedisClientConfig clientConfig) { - this(poolConfig, new JedisFactory(hostAndPort, clientConfig)); - } - - public JedisPool(final GenericObjectPoolConfig poolConfig, final JedisSocketFactory jedisSocketFactory, - final JedisClientConfig clientConfig) { - this(poolConfig, new JedisFactory(jedisSocketFactory, clientConfig)); - } - - public JedisPool(final GenericObjectPoolConfig poolConfig) { - this(poolConfig, Protocol.DEFAULT_HOST, Protocol.DEFAULT_PORT); - } - - public JedisPool(final String host, final int port, final boolean ssl) { - this(new GenericObjectPoolConfig(), host, port, ssl); - } - - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final String password, final int database, - final String clientName) { - this(poolConfig, new JedisFactory(host, port, connectionTimeout, soTimeout, password, - database, clientName)); + final String password, final int database, final String clientName, final boolean ssl, + final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, + final HostnameVerifier hostnameVerifier) { + this(poolConfig, host, port, connectionTimeout, soTimeout, infiniteSoTimeout, null, password, + database, clientName, ssl, sslSocketFactory, sslParameters, hostnameVerifier); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final String user, final String password, - final int database, final String clientName) { - this(poolConfig, new JedisFactory(host, port, connectionTimeout, soTimeout, user, password, - database, clientName)); + final int connectionTimeout, final int soTimeout, final int infiniteSoTimeout, + final String user, final String password, final int database, final String clientName) { + this(poolConfig, new JedisFactory(host, port, connectionTimeout, soTimeout, infiniteSoTimeout, + user, password, database, clientName)); } public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, int port, final int connectionTimeout, final int soTimeout, final int infiniteSoTimeout, - final String user, final String password, final int database, final String clientName) { + final String user, final String password, final int database, final String clientName, + final boolean ssl, final SSLSocketFactory sslSocketFactory, + final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { this(poolConfig, new JedisFactory(host, port, connectionTimeout, soTimeout, infiniteSoTimeout, - user, password, database, clientName)); + user, password, database, clientName, ssl, sslSocketFactory, sslParameters, + hostnameVerifier)); } - public JedisPool(final String host, final int port, final boolean ssl, - final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, - final HostnameVerifier hostnameVerifier) { - this(new GenericObjectPoolConfig(), host, port, ssl, sslSocketFactory, sslParameters, + public JedisPool(final URI uri) { + this(new GenericObjectPoolConfig(), uri); + } + + public JedisPool(final URI uri, final SSLSocketFactory sslSocketFactory, + final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { + this(new GenericObjectPoolConfig(), uri, sslSocketFactory, sslParameters, hostnameVerifier); } - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, - final int port, final int connectionTimeout, final int soTimeout, final String password, - final int database, final String clientName, final boolean ssl) { - this(poolConfig, host, port, connectionTimeout, soTimeout, password, database, clientName, ssl, - null, null, null); + public JedisPool(final URI uri, final int timeout) { + this(new GenericObjectPoolConfig(), uri, timeout); } - public JedisPool(final GenericObjectPoolConfig poolConfig, final String host, - final int port, final int connectionTimeout, final int soTimeout, final String user, - final String password, final int database, final String clientName, final boolean ssl) { - this(poolConfig, host, port, connectionTimeout, soTimeout, user, password, database, - clientName, ssl, null, null, null); + public JedisPool(final URI uri, final int timeout, final SSLSocketFactory sslSocketFactory, + final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { + this(new GenericObjectPoolConfig(), uri, timeout, sslSocketFactory, sslParameters, + hostnameVerifier); } public JedisPool(final GenericObjectPoolConfig poolConfig, final URI uri) { @@ -355,6 +350,20 @@ public JedisPool(final GenericObjectPoolConfig poolConfig, final URI uri, sslSocketFactory, sslParameters, hostnameVerifier)); } + public JedisPool(final HostAndPort hostAndPort, final JedisClientConfig clientConfig) { + this(new GenericObjectPoolConfig(), hostAndPort, clientConfig); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final HostAndPort hostAndPort, + final JedisClientConfig clientConfig) { + this(poolConfig, new JedisFactory(hostAndPort, clientConfig)); + } + + public JedisPool(final GenericObjectPoolConfig poolConfig, final JedisSocketFactory jedisSocketFactory, + final JedisClientConfig clientConfig) { + this(poolConfig, new JedisFactory(jedisSocketFactory, clientConfig)); + } + public JedisPool(GenericObjectPoolConfig poolConfig, PooledObjectFactory factory) { super(poolConfig, factory); } diff --git a/src/main/java/redis/clients/jedis/JedisPooled.java b/src/main/java/redis/clients/jedis/JedisPooled.java index 4d705b2164..cbbb2e9af0 100644 --- a/src/main/java/redis/clients/jedis/JedisPooled.java +++ b/src/main/java/redis/clients/jedis/JedisPooled.java @@ -18,20 +18,11 @@ public JedisPooled() { this(Protocol.DEFAULT_HOST, Protocol.DEFAULT_PORT); } - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String url) { - this(poolConfig, URI.create(url)); - } - - public JedisPooled(String host, int port) { - this(new GenericObjectPoolConfig(), host, port); - } - /** - * WARNING: This constructor only accepts a uri string as {@code url}. - * {@link JedisURIHelper#isValid(java.net.URI)} can be used before this. + * WARNING: This constructor only accepts a uri string as {@code url}. {@link JedisURIHelper#isValid(java.net.URI)} + * can be used before this. *

- * To use a host string, {@link #JedisPooled(java.lang.String, int)} can be used with - * {@link Protocol#DEFAULT_PORT}. + * To use a host string, {@link #JedisPooled(java.lang.String, int)} can be used with {@link Protocol#DEFAULT_PORT}. * * @param url */ @@ -40,12 +31,12 @@ public JedisPooled(final String url) { } /** - * WARNING: This constructor only accepts a uri string as {@code url}. - * {@link JedisURIHelper#isValid(java.net.URI)} can be used before this. + * WARNING: This constructor only accepts a uri string as {@code url}. {@link JedisURIHelper#isValid(java.net.URI)} + * can be used before this. *

- * To use a host string, - * {@link #JedisPooled(java.lang.String, int, boolean, javax.net.ssl.SSLSocketFactory, javax.net.ssl.SSLParameters, javax.net.ssl.HostnameVerifier)} - * can be used with {@link Protocol#DEFAULT_PORT} and {@code ssl=true}. + * To use a host string, {@link #JedisPooled(java.lang.String, int, boolean, javax.net.ssl.SSLSocketFactory, + * javax.net.ssl.SSLParameters, javax.net.ssl.HostnameVerifier)} can be used with {@link Protocol#DEFAULT_PORT} and + * {@code ssl=true}. * * @param url * @param sslSocketFactory @@ -57,62 +48,42 @@ public JedisPooled(final String url, final SSLSocketFactory sslSocketFactory, this(URI.create(url), sslSocketFactory, sslParameters, hostnameVerifier); } - public JedisPooled(final URI uri) { - super(uri); - } - - public JedisPooled(final URI uri, final SSLSocketFactory sslSocketFactory, - final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(new GenericObjectPoolConfig(), uri, sslSocketFactory, sslParameters, - hostnameVerifier); + public JedisPooled(final String host, final int port) { + this(new GenericObjectPoolConfig(), host, port); } - public JedisPooled(final URI uri, final int timeout) { - this(new GenericObjectPoolConfig(), uri, timeout); + public JedisPooled(final String host, final int port, final boolean ssl) { + this(new GenericObjectPoolConfig(), host, port, ssl); } - public JedisPooled(final URI uri, final int timeout, final SSLSocketFactory sslSocketFactory, - final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(new GenericObjectPoolConfig(), uri, timeout, sslSocketFactory, sslParameters, + public JedisPooled(final String host, final int port, final boolean ssl, + final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, + final HostnameVerifier hostnameVerifier) { + this(new GenericObjectPoolConfig(), host, port, ssl, sslSocketFactory, sslParameters, hostnameVerifier); } - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password) { - this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE); - } - - public JedisPooled(final String host, int port, String user, final String password) { + public JedisPooled(final String host, final int port, final String user, final String password) { this(new GenericObjectPoolConfig(), host, port, user, password); } - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - String user, final String password) { - this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, user, password, - Protocol.DEFAULT_DATABASE); - } - - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password) { - this(poolConfig, host, port, timeout, user, password, Protocol.DEFAULT_DATABASE); - } - - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final boolean ssl) { - this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl); - } - - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final boolean ssl) { - this(poolConfig, host, port, timeout, user, password, Protocol.DEFAULT_DATABASE, ssl); + public JedisPooled(final GenericObjectPoolConfig poolConfig) { + this(poolConfig, Protocol.DEFAULT_HOST, Protocol.DEFAULT_PORT); } - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final boolean ssl, - final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, - final HostnameVerifier hostnameVerifier) { - this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl, - sslSocketFactory, sslParameters, hostnameVerifier); + /** + * WARNING: This constructor only accepts a uri string as {@code url}. {@link JedisURIHelper#isValid(java.net.URI)} + * can be used before this. + *

+ * To use a host string, + * {@link #JedisPooled(org.apache.commons.pool2.impl.GenericObjectPoolConfig, java.lang.String, int)} can be used with + * {@link Protocol#DEFAULT_PORT}. + * + * @param poolConfig + * @param url + */ + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String url) { + this(poolConfig, URI.create(url)); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, @@ -132,6 +103,12 @@ public JedisPooled(final GenericObjectPoolConfig poolConfig, final S hostnameVerifier); } + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, + final int port, final String user, final String password) { + this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT, user, password, + Protocol.DEFAULT_DATABASE); + } + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, final int port, final int timeout) { this(poolConfig, host, port, timeout, null); @@ -151,23 +128,40 @@ public JedisPooled(final GenericObjectPoolConfig poolConfig, final S } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final int database) { - this(poolConfig, host, port, timeout, password, database, null); + int timeout, final String password) { + this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final int database) { - this(poolConfig, host, port, timeout, user, password, database, null); + int timeout, final String password, final boolean ssl) { + this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final int database, final boolean ssl) { - this(poolConfig, host, port, timeout, password, database, null, ssl); + int timeout, final String password, final boolean ssl, final SSLSocketFactory sslSocketFactory, + final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { + this(poolConfig, host, port, timeout, password, Protocol.DEFAULT_DATABASE, ssl, sslSocketFactory, + sslParameters, hostnameVerifier); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final int database, final boolean ssl) { - this(poolConfig, host, port, timeout, user, password, database, null, ssl); + int timeout, final String user, final String password) { + this(poolConfig, host, port, timeout, user, password, Protocol.DEFAULT_DATABASE); + } + + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String user, final String password, final boolean ssl) { + this(poolConfig, host, port, timeout, user, password, Protocol.DEFAULT_DATABASE, ssl); + } + + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String password, final int database) { + this(poolConfig, host, port, timeout, password, database, null); + } + + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, + int timeout, final String password, final int database, final boolean ssl) { + this(poolConfig, host, port, timeout, password, database, null, ssl); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, @@ -179,26 +173,24 @@ public JedisPooled(final GenericObjectPoolConfig poolConfig, final S } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final int database, final String clientName) { - this(poolConfig, host, port, timeout, timeout, password, database, clientName); + int timeout, final String user, final String password, final int database) { + this(poolConfig, host, port, timeout, user, password, database, null); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final int database, - final String clientName) { - this(poolConfig, host, port, timeout, timeout, user, password, database, clientName); + int timeout, final String user, final String password, final int database, final boolean ssl) { + this(poolConfig, host, port, timeout, user, password, database, null, ssl); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String password, final int database, final String clientName, - final boolean ssl) { - this(poolConfig, host, port, timeout, timeout, password, database, clientName, ssl); + int timeout, final String password, final int database, final String clientName) { + this(poolConfig, host, port, timeout, timeout, password, database, clientName); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - int timeout, final String user, final String password, final int database, - final String clientName, final boolean ssl) { - this(poolConfig, host, port, timeout, timeout, user, password, database, clientName, ssl); + int timeout, final String password, final int database, final String clientName, + final boolean ssl) { + this(poolConfig, host, port, timeout, timeout, password, database, clientName, ssl); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, @@ -210,73 +202,67 @@ public JedisPooled(final GenericObjectPoolConfig poolConfig, final S } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final String password, final int database, - final String clientName, final boolean ssl, final SSLSocketFactory sslSocketFactory, - final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(poolConfig, host, port, connectionTimeout, soTimeout, 0, password, database, clientName, - ssl, sslSocketFactory, sslParameters, hostnameVerifier); + int timeout, final String user, final String password, final int database, + final String clientName) { + this(poolConfig, host, port, timeout, timeout, user, password, database, clientName); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final int infiniteSoTimeout, - final String password, final int database, final String clientName, final boolean ssl, - final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, - final HostnameVerifier hostnameVerifier) { - this(poolConfig, host, port, connectionTimeout, soTimeout, infiniteSoTimeout, null, password, - database, clientName, ssl, sslSocketFactory, sslParameters, hostnameVerifier); + int timeout, final String user, final String password, final int database, + final String clientName, final boolean ssl) { + this(poolConfig, host, port, timeout, timeout, user, password, database, clientName, ssl); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final String user, final String password, - final int database, final String clientName, final boolean ssl, - final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, - final HostnameVerifier hostnameVerifier) { - this(poolConfig, host, port, connectionTimeout, soTimeout, 0, user, password, database, - clientName, ssl, sslSocketFactory, sslParameters, hostnameVerifier); + final int connectionTimeout, final int soTimeout, final String password, final int database, + final String clientName) { + this(poolConfig, host, port, connectionTimeout, soTimeout, null, password, database, clientName); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final int infiniteSoTimeout, - final String user, final String password, final int database, final String clientName, - final boolean ssl, final SSLSocketFactory sslSocketFactory, - final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(new HostAndPort(host, port), DefaultJedisClientConfig.create(connectionTimeout, soTimeout, - infiniteSoTimeout, user, password, database, clientName, ssl, sslSocketFactory, sslParameters, - hostnameVerifier, null)); - } - - public JedisPooled(final HostAndPort hostAndPort, final JedisClientConfig clientConfig) { - this(new GenericObjectPoolConfig(), hostAndPort, clientConfig); - } - - public JedisPooled(final GenericObjectPoolConfig poolConfig, final HostAndPort hostAndPort, - final JedisClientConfig clientConfig) { - this(hostAndPort, clientConfig, poolConfig); + final int connectionTimeout, final int soTimeout, final String password, final int database, + final String clientName, final boolean ssl) { + this(poolConfig, host, port, connectionTimeout, soTimeout, password, database, clientName, ssl, + null, null, null); } - public JedisPooled(final GenericObjectPoolConfig poolConfig, final JedisSocketFactory jedisSocketFactory, - final JedisClientConfig clientConfig) { - this(new ConnectionFactory(jedisSocketFactory, clientConfig), poolConfig); + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, + final int connectionTimeout, final int soTimeout, final String password, final int database, + final String clientName, final boolean ssl, final SSLSocketFactory sslSocketFactory, + final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { + this(poolConfig, host, port, connectionTimeout, soTimeout, null, password, database, clientName, + ssl, sslSocketFactory, sslParameters, hostnameVerifier); } - public JedisPooled(final GenericObjectPoolConfig poolConfig) { - this(poolConfig, Protocol.DEFAULT_HOST, Protocol.DEFAULT_PORT); + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, + final int connectionTimeout, final int soTimeout, final String user, final String password, + final int database, final String clientName) { + this(poolConfig, host, port, connectionTimeout, soTimeout, 0, user, password, database, clientName); } - public JedisPooled(final String host, final int port, final boolean ssl) { - this(new GenericObjectPoolConfig(), host, port, ssl); + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, + final int connectionTimeout, final int soTimeout, final String user, final String password, + final int database, final String clientName, final boolean ssl) { + this(poolConfig, host, port, connectionTimeout, soTimeout, user, password, database, clientName, + ssl, null, null, null); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final String password, final int database, - final String clientName) { - this(poolConfig, host, port, connectionTimeout, soTimeout, null, password, database, clientName); + final int connectionTimeout, final int soTimeout, final String user, final String password, + final int database, final String clientName, final boolean ssl, + final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, + final HostnameVerifier hostnameVerifier) { + this(poolConfig, host, port, connectionTimeout, soTimeout, 0, user, password, database, + clientName, ssl, sslSocketFactory, sslParameters, hostnameVerifier); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, - final int connectionTimeout, final int soTimeout, final String user, final String password, - final int database, final String clientName) { - this(poolConfig, host, port, connectionTimeout, soTimeout, 0, user, password, database, clientName); + final int connectionTimeout, final int soTimeout, final int infiniteSoTimeout, + final String password, final int database, final String clientName, final boolean ssl, + final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, + final HostnameVerifier hostnameVerifier) { + this(poolConfig, host, port, connectionTimeout, soTimeout, infiniteSoTimeout, null, password, + database, clientName, ssl, sslSocketFactory, sslParameters, hostnameVerifier); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, @@ -287,25 +273,34 @@ public JedisPooled(final GenericObjectPoolConfig poolConfig, final S poolConfig); } - public JedisPooled(final String host, final int port, final boolean ssl, + public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, int port, + final int connectionTimeout, final int soTimeout, final int infiniteSoTimeout, final String user, + final String password, final int database, final String clientName, final boolean ssl, final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { - this(new GenericObjectPoolConfig(), host, port, ssl, sslSocketFactory, sslParameters, + this(new HostAndPort(host, port), DefaultJedisClientConfig.create(connectionTimeout, soTimeout, + infiniteSoTimeout, user, password, database, clientName, ssl, sslSocketFactory, sslParameters, + hostnameVerifier, null)); + } + + public JedisPooled(final URI uri) { + super(uri); + } + + public JedisPooled(final URI uri, final SSLSocketFactory sslSocketFactory, + final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { + this(new GenericObjectPoolConfig(), uri, sslSocketFactory, sslParameters, hostnameVerifier); } - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, - final int port, final int connectionTimeout, final int soTimeout, final String password, - final int database, final String clientName, final boolean ssl) { - this(poolConfig, host, port, connectionTimeout, soTimeout, password, database, clientName, ssl, - null, null, null); + public JedisPooled(final URI uri, final int timeout) { + this(new GenericObjectPoolConfig(), uri, timeout); } - public JedisPooled(final GenericObjectPoolConfig poolConfig, final String host, - final int port, final int connectionTimeout, final int soTimeout, final String user, - final String password, final int database, final String clientName, final boolean ssl) { - this(poolConfig, host, port, connectionTimeout, soTimeout, user, password, database, - clientName, ssl, null, null, null); + public JedisPooled(final URI uri, final int timeout, final SSLSocketFactory sslSocketFactory, + final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { + this(new GenericObjectPoolConfig(), uri, timeout, sslSocketFactory, sslParameters, + hostnameVerifier); } public JedisPooled(final GenericObjectPoolConfig poolConfig, final URI uri) { @@ -319,7 +314,8 @@ public JedisPooled(final GenericObjectPoolConfig poolConfig, final U hostnameVerifier); } - public JedisPooled(final GenericObjectPoolConfig poolConfig, final URI uri, final int timeout) { + public JedisPooled(final GenericObjectPoolConfig poolConfig, final URI uri, + final int timeout) { this(poolConfig, uri, timeout, timeout); } @@ -350,22 +346,37 @@ public JedisPooled(final GenericObjectPoolConfig poolConfig, final U JedisURIHelper.isRedisSSLScheme(uri), sslSocketFactory, sslParameters, hostnameVerifier, null)); } - public JedisPooled(GenericObjectPoolConfig poolConfig, PooledObjectFactory factory) { - this(factory, poolConfig); + public JedisPooled(final HostAndPort hostAndPort) { + this(new PooledConnectionProvider(hostAndPort)); } - public JedisPooled(HostAndPort hostAndPort) { - this(new ConnectionFactory(hostAndPort), new GenericObjectPoolConfig()); + public JedisPooled(final HostAndPort hostAndPort, final JedisClientConfig clientConfig) { + this(new PooledConnectionProvider(hostAndPort, clientConfig)); } - public JedisPooled(HostAndPort hostAndPort, GenericObjectPoolConfig poolConfig) { + public JedisPooled(final HostAndPort hostAndPort, final GenericObjectPoolConfig poolConfig) { this(new ConnectionFactory(hostAndPort), poolConfig); } - public JedisPooled(HostAndPort hostAndPort, JedisClientConfig clientConfig, GenericObjectPoolConfig poolConfig) { + public JedisPooled(final GenericObjectPoolConfig poolConfig, final HostAndPort hostAndPort, + final JedisClientConfig clientConfig) { + this(hostAndPort, clientConfig, poolConfig); + } + + public JedisPooled(final HostAndPort hostAndPort, final JedisClientConfig clientConfig, + final GenericObjectPoolConfig poolConfig) { this(new ConnectionFactory(hostAndPort, clientConfig), poolConfig); } + public JedisPooled(final GenericObjectPoolConfig poolConfig, + final JedisSocketFactory jedisSocketFactory, final JedisClientConfig clientConfig) { + this(new ConnectionFactory(jedisSocketFactory, clientConfig), poolConfig); + } + + public JedisPooled(GenericObjectPoolConfig poolConfig, PooledObjectFactory factory) { + this(factory, poolConfig); + } + public JedisPooled(PooledObjectFactory factory, GenericObjectPoolConfig poolConfig) { this(new PooledConnectionProvider(factory, poolConfig)); }