@@ -110,8 +110,10 @@ private PoolOptions poolOptions(Map configurationValues) {
110
110
111
111
private SqlConnectOptions sqlConnectOptions (URI uri ) {
112
112
113
+ String scheme = uri .getScheme ();
114
+
113
115
String database = uri .getPath ().substring ( 1 );
114
- if (uri . getScheme (). equals ("db2" ) && database .indexOf ( ':' ) > 0 ) {
116
+ if ( scheme . equals ("db2" ) && database .indexOf ( ':' ) > 0 ) {
115
117
database = database .substring ( 0 , database .indexOf ( ':' ) );
116
118
}
117
119
@@ -121,7 +123,7 @@ private SqlConnectOptions sqlConnectOptions(URI uri) {
121
123
if (username ==null || password ==null ) {
122
124
String [] params = {};
123
125
// DB2 URLs are a bit odd and have the format: jdbc:db2://<HOST>:<PORT>/<DB>:key1=value1;key2=value2;
124
- if (uri . getScheme (). equals ("db2" )) {
126
+ if ( scheme . equals ("db2" ) ) {
125
127
int queryIndex = uri .getPath ().indexOf (':' ) + 1 ;
126
128
if (queryIndex > 0 ) {
127
129
params = uri .getPath ().substring (queryIndex ).split (";" );
@@ -142,9 +144,18 @@ private SqlConnectOptions sqlConnectOptions(URI uri) {
142
144
}
143
145
}
144
146
147
+ int port = uri .getPort ();
148
+ if (port ==-1 ) {
149
+ switch (scheme ) {
150
+ case "postgresql" : port = 5432 ; break ;
151
+ case "mysql" : port = 3306 ; break ;
152
+ case "db2" : port = 50000 ; break ;
153
+ }
154
+ }
155
+
145
156
SqlConnectOptions connectOptions = new SqlConnectOptions ()
146
157
.setHost ( uri .getHost () )
147
- .setPort ( uri . getPort () )
158
+ .setPort ( port )
148
159
.setDatabase ( database )
149
160
.setUser ( username );
150
161
if (password != null ) {
0 commit comments