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