2020/**
2121 * PoolableObjectFactory custom impl.
2222 */
23- class JedisFactory implements PooledObjectFactory <Jedis > {
23+ public class JedisFactory implements PooledObjectFactory <Jedis > {
2424
2525 private static final Logger logger = LoggerFactory .getLogger (JedisFactory .class );
2626
2727 private final AtomicReference <HostAndPort > hostAndPort = new AtomicReference <>();
2828
2929 private final JedisClientConfig config ;
3030
31- JedisFactory (final String host , final int port , final int connectionTimeout ,
31+ protected JedisFactory (final String host , final int port , final int connectionTimeout ,
3232 final int soTimeout , final String password , final int database , final String clientName ) {
3333 this (host , port , connectionTimeout , soTimeout , password , database , clientName , false , null , null , null );
3434 }
3535
36- JedisFactory (final String host , final int port , final int connectionTimeout ,
36+ protected JedisFactory (final String host , final int port , final int connectionTimeout ,
3737 final int soTimeout , final String user , final String password , final int database , final String clientName ) {
3838 this (host , port , connectionTimeout , soTimeout , 0 , user , password , database , clientName );
3939 }
4040
41- JedisFactory (final String host , final int port , final int connectionTimeout , final int soTimeout ,
41+ protected JedisFactory (final String host , final int port , final int connectionTimeout , final int soTimeout ,
4242 final int infiniteSoTimeout , final String user , final String password , final int database , final String clientName ) {
4343 this (host , port , connectionTimeout , soTimeout , infiniteSoTimeout , user , password , database , clientName , false , null , null , null );
4444 }
4545
46- JedisFactory (final String host , final int port , final int connectionTimeout ,
46+ /**
47+ * {@link #setHostAndPort(redis.clients.jedis.HostAndPort) setHostAndPort} must be called later.
48+ */
49+ protected JedisFactory (final int connectionTimeout , final int soTimeout , final int infiniteSoTimeout ,
50+ final String user , final String password , final int database , final String clientName ) {
51+ this (connectionTimeout , soTimeout , infiniteSoTimeout , user , password , database , clientName , false , null , null , null );
52+ }
53+
54+ protected JedisFactory (final String host , final int port , final int connectionTimeout ,
4755 final int soTimeout , final String password , final int database , final String clientName ,
4856 final boolean ssl , final SSLSocketFactory sslSocketFactory , final SSLParameters sslParameters ,
4957 final HostnameVerifier hostnameVerifier ) {
5058 this (host , port , connectionTimeout , soTimeout , null , password , database , clientName , ssl , sslSocketFactory , sslParameters , hostnameVerifier );
5159 }
5260
53- JedisFactory (final String host , final int port , final int connectionTimeout ,
61+ protected JedisFactory (final String host , final int port , final int connectionTimeout ,
5462 final int soTimeout , final String user , final String password , final int database , final String clientName ,
5563 final boolean ssl , final SSLSocketFactory sslSocketFactory , final SSLParameters sslParameters ,
5664 final HostnameVerifier hostnameVerifier ) {
5765 this (host , port , connectionTimeout , soTimeout , 0 , user , password , database , clientName , ssl , sslSocketFactory , sslParameters , hostnameVerifier );
5866 }
5967
60- JedisFactory (final HostAndPort hostAndPort , final JedisClientConfig clientConfig ) {
68+ protected JedisFactory (final HostAndPort hostAndPort , final JedisClientConfig clientConfig ) {
6169 this .hostAndPort .set (hostAndPort );
6270 this .config = DefaultJedisClientConfig .copyConfig (clientConfig );
6371 }
6472
65- JedisFactory (final String host , final int port , final int connectionTimeout , final int soTimeout ,
73+ protected JedisFactory (final String host , final int port , final int connectionTimeout , final int soTimeout ,
6674 final int infiniteSoTimeout , final String user , final String password , final int database ,
6775 final String clientName , final boolean ssl , final SSLSocketFactory sslSocketFactory ,
6876 final SSLParameters sslParameters , final HostnameVerifier hostnameVerifier ) {
77+ this (connectionTimeout , soTimeout , infiniteSoTimeout , user , password , database , clientName , ssl , sslSocketFactory , sslParameters , hostnameVerifier );
6978 this .hostAndPort .set (new HostAndPort (host , port ));
79+ }
80+
81+ /**
82+ * {@link #setHostAndPort(redis.clients.jedis.HostAndPort) setHostAndPort} must be called later.
83+ */
84+ protected JedisFactory (final int connectionTimeout , final int soTimeout , final int infiniteSoTimeout ,
85+ final String user , final String password , final int database , final String clientName , final boolean ssl ,
86+ final SSLSocketFactory sslSocketFactory , final SSLParameters sslParameters , final HostnameVerifier hostnameVerifier ) {
7087 this .config = DefaultJedisClientConfig .builder ().withConnectionTimeoutMillis (connectionTimeout )
7188 .withSoTimeoutMillis (soTimeout ).withInfiniteSoTimeoutMillis (infiniteSoTimeout ).withUser (user )
7289 .withPassword (password ).withDatabse (database ).withClientName (clientName )
7390 .withSsl (ssl ).withSslSocketFactory (sslSocketFactory )
7491 .withSslParameters (sslParameters ).withHostnameVerifier (hostnameVerifier ).build ();
7592 }
7693
77- JedisFactory (final URI uri , final int connectionTimeout , final int soTimeout ,
94+ protected JedisFactory (final URI uri , final int connectionTimeout , final int soTimeout ,
7895 final String clientName ) {
7996 this (uri , connectionTimeout , soTimeout , clientName , null , null , null );
8097 }
8198
82- JedisFactory (final URI uri , final int connectionTimeout , final int soTimeout ,
99+ protected JedisFactory (final URI uri , final int connectionTimeout , final int soTimeout ,
83100 final String clientName , final SSLSocketFactory sslSocketFactory ,
84101 final SSLParameters sslParameters , final HostnameVerifier hostnameVerifier ) {
85102 this (uri , connectionTimeout , soTimeout , 0 , clientName , sslSocketFactory , sslParameters , hostnameVerifier );
86103 }
87104
88- JedisFactory (final URI uri , final int connectionTimeout , final int soTimeout ,
105+ protected JedisFactory (final URI uri , final int connectionTimeout , final int soTimeout ,
89106 final int infiniteSoTimeout , final String clientName , final SSLSocketFactory sslSocketFactory ,
90107 final SSLParameters sslParameters , final HostnameVerifier hostnameVerifier ) {
91108 if (!JedisURIHelper .isValid (uri )) {
@@ -105,6 +122,10 @@ public void setHostAndPort(final HostAndPort hostAndPort) {
105122 this .hostAndPort .set (hostAndPort );
106123 }
107124
125+ public void setPassword (final String password ) {
126+ this .config .updatePassword (password );
127+ }
128+
108129 @ Override
109130 public void activateObject (PooledObject <Jedis > pooledJedis ) throws Exception {
110131 final BinaryJedis jedis = pooledJedis .getObject ();
0 commit comments