Skip to content

Commit

Permalink
Refactor GenericObjectPool usages (#3186)
Browse files Browse the repository at this point in the history
* Refactor GenericObjectPool usages

* Refactor Pool without GenericObjectPoolConfig usages
  • Loading branch information
sazzad16 authored Oct 30, 2022
1 parent c4988b2 commit 338f5d3
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 42 deletions.
15 changes: 8 additions & 7 deletions src/main/java/redis/clients/jedis/ConnectionPool.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,21 @@

public class ConnectionPool extends Pool<Connection> {

public ConnectionPool(HostAndPort hostAndPort, JedisClientConfig clientConfig,
GenericObjectPoolConfig<Connection> poolConfig) {
this(new ConnectionFactory(hostAndPort, clientConfig), poolConfig);
}

public ConnectionPool(HostAndPort hostAndPort, JedisClientConfig clientConfig) {
this(new ConnectionFactory(hostAndPort, clientConfig));
}

public ConnectionPool(PooledObjectFactory<Connection> factory) {
this(factory, new GenericObjectPoolConfig<Connection>());
super(factory);
}

public ConnectionPool(PooledObjectFactory<Connection> factory, GenericObjectPoolConfig<Connection> poolConfig) {
public ConnectionPool(HostAndPort hostAndPort, JedisClientConfig clientConfig,
GenericObjectPoolConfig<Connection> poolConfig) {
this(new ConnectionFactory(hostAndPort, clientConfig), poolConfig);
}

public ConnectionPool(PooledObjectFactory<Connection> factory,
GenericObjectPoolConfig<Connection> poolConfig) {
super(factory, poolConfig);
}

Expand Down
5 changes: 3 additions & 2 deletions src/main/java/redis/clients/jedis/JedisClusterInfoCache.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public JedisClusterInfoCache(final JedisClientConfig clientConfig,
}

public JedisClusterInfoCache(final JedisClientConfig clientConfig, final Set<HostAndPort> startNodes) {
this(clientConfig, new GenericObjectPoolConfig<Connection>(), startNodes);
this(clientConfig, null, startNodes);
}

public JedisClusterInfoCache(final JedisClientConfig clientConfig,
Expand Down Expand Up @@ -204,7 +204,8 @@ public ConnectionPool setupNodeIfNotExist(final HostAndPort node) {
ConnectionPool existingPool = nodes.get(nodeKey);
if (existingPool != null) return existingPool;

ConnectionPool nodePool = new ConnectionPool(node, clientConfig, poolConfig);
ConnectionPool nodePool = poolConfig == null ? new ConnectionPool(node, clientConfig)
: new ConnectionPool(node, clientConfig, poolConfig);
nodes.put(nodeKey, nodePool);
return nodePool;
} finally {
Expand Down
27 changes: 16 additions & 11 deletions src/main/java/redis/clients/jedis/JedisPool.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,31 @@ public JedisPool(final String url, final SSLSocketFactory sslSocketFactory,
}

public JedisPool(final String host, final int port) {
this(new GenericObjectPoolConfig<Jedis>(), host, port);
this(new HostAndPort(host, port), DefaultJedisClientConfig.builder().build());
}

public JedisPool(final String host, final int port, final boolean ssl) {
this(new GenericObjectPoolConfig<Jedis>(), host, port, ssl);
this(new HostAndPort(host, port), DefaultJedisClientConfig.builder().ssl(ssl).build());
}

public JedisPool(final String host, final int port, final boolean ssl,
final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
final HostnameVerifier hostnameVerifier) {
this(new GenericObjectPoolConfig<Jedis>(), host, port, ssl, sslSocketFactory, sslParameters,
hostnameVerifier);
this(new HostAndPort(host, port), DefaultJedisClientConfig.builder().ssl(ssl)
.sslSocketFactory(sslSocketFactory).sslParameters(sslParameters)
.hostnameVerifier(hostnameVerifier).build());
}

public JedisPool(final String host, int port, String user, final String password) {
this(new GenericObjectPoolConfig<Jedis>(), host, port, user, password);
this(new HostAndPort(host, port), DefaultJedisClientConfig.builder().user(user).password(password).build());
}

public JedisPool(final HostAndPort hostAndPort, final JedisClientConfig clientConfig) {
this(new JedisFactory(hostAndPort, clientConfig));
}

public JedisPool(PooledObjectFactory<Jedis> factory) {
super(factory);
}

public JedisPool(final GenericObjectPoolConfig<Jedis> poolConfig) {
Expand Down Expand Up @@ -350,17 +359,13 @@ public JedisPool(final GenericObjectPoolConfig<Jedis> poolConfig, final URI uri,
sslSocketFactory, sslParameters, hostnameVerifier));
}

public JedisPool(final HostAndPort hostAndPort, final JedisClientConfig clientConfig) {
this(new GenericObjectPoolConfig<Jedis>(), hostAndPort, clientConfig);
}

public JedisPool(final GenericObjectPoolConfig<Jedis> poolConfig, final HostAndPort hostAndPort,
final JedisClientConfig clientConfig) {
this(poolConfig, new JedisFactory(hostAndPort, clientConfig));
}

public JedisPool(final GenericObjectPoolConfig<Jedis> poolConfig, final JedisSocketFactory jedisSocketFactory,
final JedisClientConfig clientConfig) {
public JedisPool(final GenericObjectPoolConfig<Jedis> poolConfig,
final JedisSocketFactory jedisSocketFactory, final JedisClientConfig clientConfig) {
this(poolConfig, new JedisFactory(jedisSocketFactory, clientConfig));
}

Expand Down
31 changes: 18 additions & 13 deletions src/main/java/redis/clients/jedis/JedisPooled.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,22 +49,35 @@ public JedisPooled(final String url, final SSLSocketFactory sslSocketFactory,
}

public JedisPooled(final String host, final int port) {
this(new GenericObjectPoolConfig<Connection>(), host, port);
this(new HostAndPort(host, port));
}

public JedisPooled(final HostAndPort hostAndPort) {
this(new PooledConnectionProvider(hostAndPort));
}

public JedisPooled(final String host, final int port, final boolean ssl) {
this(new GenericObjectPoolConfig<Connection>(), host, port, ssl);
this(new HostAndPort(host, port), DefaultJedisClientConfig.builder().ssl(ssl).build());
}

public JedisPooled(final String host, final int port, final boolean ssl,
final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
final HostnameVerifier hostnameVerifier) {
this(new GenericObjectPoolConfig<Connection>(), host, port, ssl, sslSocketFactory, sslParameters,
hostnameVerifier);
this(new HostAndPort(host, port), DefaultJedisClientConfig.builder().ssl(ssl)
.sslSocketFactory(sslSocketFactory).sslParameters(sslParameters)
.hostnameVerifier(hostnameVerifier).build());
}

public JedisPooled(final String host, final int port, final String user, final String password) {
this(new GenericObjectPoolConfig<Connection>(), host, port, user, password);
this(new HostAndPort(host, port), DefaultJedisClientConfig.builder().user(user).password(password).build());
}

public JedisPooled(final HostAndPort hostAndPort, final JedisClientConfig clientConfig) {
this(new PooledConnectionProvider(hostAndPort, clientConfig));
}

public JedisPooled(PooledObjectFactory<Connection> factory) {
this(new PooledConnectionProvider(factory));
}

public JedisPooled(final GenericObjectPoolConfig<Connection> poolConfig) {
Expand Down Expand Up @@ -347,14 +360,6 @@ public JedisPooled(final GenericObjectPoolConfig<Connection> poolConfig, final U
null), poolConfig);
}

public JedisPooled(final HostAndPort hostAndPort) {
this(new PooledConnectionProvider(hostAndPort));
}

public JedisPooled(final HostAndPort hostAndPort, final JedisClientConfig clientConfig) {
this(new PooledConnectionProvider(hostAndPort, clientConfig));
}

public JedisPooled(final HostAndPort hostAndPort, final GenericObjectPoolConfig<Connection> poolConfig) {
this(hostAndPort, DefaultJedisClientConfig.builder().build(), poolConfig);
}
Expand Down
21 changes: 16 additions & 5 deletions src/main/java/redis/clients/jedis/JedisSentinelPool.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ public class JedisSentinelPool extends Pool<Jedis> {

private final Object initPoolLock = new Object();

public JedisSentinelPool(String masterName, Set<HostAndPort> sentinels,
final JedisClientConfig masteClientConfig, final JedisClientConfig sentinelClientConfig) {
this(masterName, sentinels, new JedisFactory(masteClientConfig), sentinelClientConfig);
}

public JedisSentinelPool(String masterName, Set<String> sentinels,
final GenericObjectPoolConfig<Jedis> poolConfig) {
this(masterName, sentinels, poolConfig, Protocol.DEFAULT_TIMEOUT, null,
Expand Down Expand Up @@ -161,17 +166,23 @@ public JedisSentinelPool(String masterName, Set<String> sentinels,
DefaultJedisClientConfig.builder().build());
}

public JedisSentinelPool(String masterName, Set<HostAndPort> sentinels,
final JedisClientConfig masteClientConfig, final JedisClientConfig sentinelClientConfig) {
this(masterName, sentinels, new GenericObjectPoolConfig<Jedis>(), masteClientConfig, sentinelClientConfig);
}

public JedisSentinelPool(String masterName, Set<HostAndPort> sentinels,
final GenericObjectPoolConfig<Jedis> poolConfig, final JedisClientConfig masteClientConfig,
final JedisClientConfig sentinelClientConfig) {
this(masterName, sentinels, poolConfig, new JedisFactory(masteClientConfig), sentinelClientConfig);
}

public JedisSentinelPool(String masterName, Set<HostAndPort> sentinels,
final JedisFactory factory, final JedisClientConfig sentinelClientConfig) {
super(factory);

this.factory = factory;
this.sentinelClientConfig = sentinelClientConfig;

HostAndPort master = initSentinels(sentinels, masterName);
initMaster(master);
}

public JedisSentinelPool(String masterName, Set<HostAndPort> sentinels,
final GenericObjectPoolConfig<Jedis> poolConfig, final JedisFactory factory,
final JedisClientConfig sentinelClientConfig) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public PooledConnectionProvider(HostAndPort hostAndPort) {
}

public PooledConnectionProvider(HostAndPort hostAndPort, JedisClientConfig clientConfig) {
this(hostAndPort, clientConfig, new GenericObjectPoolConfig<>());
this(new ConnectionPool(hostAndPort, clientConfig));
}

public PooledConnectionProvider(HostAndPort hostAndPort, JedisClientConfig clientConfig,
Expand All @@ -29,7 +29,7 @@ public PooledConnectionProvider(HostAndPort hostAndPort, JedisClientConfig clien
}

public PooledConnectionProvider(PooledObjectFactory<Connection> factory) {
this(factory, new GenericObjectPoolConfig<>());
this(new ConnectionPool(factory));
}

public PooledConnectionProvider(PooledObjectFactory<Connection> factory,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public ShardedConnectionProvider(List<HostAndPort> shards, JedisClientConfig cli

public ShardedConnectionProvider(List<HostAndPort> shards, JedisClientConfig clientConfig,
Hashing algo) {
this(shards, clientConfig, new GenericObjectPoolConfig<Connection>(), algo);
this(shards, clientConfig, null, algo);
}

public ShardedConnectionProvider(List<HostAndPort> shards, JedisClientConfig clientConfig,
Expand All @@ -69,7 +69,8 @@ private ConnectionPool setupNodeIfNotExist(final HostAndPort node) {
ConnectionPool existingPool = resources.get(nodeKey);
if (existingPool != null) return existingPool;

ConnectionPool nodePool = new ConnectionPool(node, clientConfig, poolConfig);
ConnectionPool nodePool = poolConfig == null ? new ConnectionPool(node, clientConfig)
: new ConnectionPool(node, clientConfig, poolConfig);
resources.put(nodeKey, nodePool);
return nodePool;
}
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/redis/clients/jedis/util/Pool.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ public Pool(final PooledObjectFactory<T> factory, final GenericObjectPoolConfig<
super(factory, poolConfig);
}

public Pool(final PooledObjectFactory<T> factory) {
super(factory);
}

@Override
public void close() {
destroy();
Expand Down

0 comments on commit 338f5d3

Please sign in to comment.