3333import scala .concurrent .ExecutionContext ;
3434import scala .concurrent .duration .Duration ;
3535
36+ import java .nio .charset .Charset ;
3637import java .util .concurrent .TimeUnit ;
3738
3839/**
@@ -57,6 +58,7 @@ public BaseSQLClient(Vertx vertx, JsonObject config) {
5758 }
5859
5960 protected abstract AsyncConnectionPool pool ();
61+
6062 protected abstract SQLConnection createFromPool (Connection conn , AsyncConnectionPool pool , ExecutionContext ec );
6163
6264 public void getConnection (Handler <AsyncResult <SQLConnection >> handler ) {
@@ -91,17 +93,37 @@ public void close() {
9193 close (null );
9294 }
9395
94- protected Configuration getConfiguration (String defaultHost , int defaultPort , String defaultDatabase , String defaultUser , String defaultPassword , JsonObject config ) {
96+ protected Configuration getConfiguration (
97+ String defaultHost ,
98+ int defaultPort ,
99+ String defaultDatabase ,
100+ String defaultUser ,
101+ String defaultPassword ,
102+ String defaultCharset ,
103+ long defaultConnectTimeout ,
104+ long defaultTestTimeout ,
105+ JsonObject config ) {
106+
95107 String host = config .getString ("host" , defaultHost );
96108 int port = config .getInteger ("port" , defaultPort );
97109 String username = config .getString ("username" , defaultUser );
98110 String password = config .getString ("password" , defaultPassword );
99111 String database = config .getString ("database" , defaultDatabase );
112+ Charset charset = Charset .forName (config .getString ("charset" , defaultCharset ));
113+ long connectTimeout = config .getLong ("connectTimeout" , defaultConnectTimeout );
114+ long testTimeout = config .getLong ("testTimeout" , defaultTestTimeout );
115+ Long queryTimeout = config .getLong ("queryTimeout" );
116+ Option <Duration > queryTimeoutOption = (queryTimeout == null ) ?
117+ Option .empty () : Option .apply (Duration .apply (queryTimeout , TimeUnit .MILLISECONDS ));
100118
101119 log .info ("Creating configuration for " + host + ":" + port );
102120 return new Configuration (username , host , port , Option .apply (password ), Option .apply (database ),
103- CharsetUtil .UTF_8 , 16777216 , PooledByteBufAllocator .DEFAULT ,
104- Duration .apply (5 , TimeUnit .SECONDS ), Duration .apply (5 , TimeUnit .SECONDS ), Option .empty ());
121+ charset ,
122+ 16777216 ,
123+ PooledByteBufAllocator .DEFAULT ,
124+ Duration .apply (connectTimeout , TimeUnit .MILLISECONDS ),
125+ Duration .apply (testTimeout , TimeUnit .MILLISECONDS ),
126+ queryTimeoutOption );
105127 }
106128
107129
0 commit comments