Skip to content

Commit 6400b8c

Browse files
committed
Add Driver#createConnectOptions
Also deprecate generic construction of SqlConnectOptions
1 parent e87b0a1 commit 6400b8c

File tree

16 files changed

+255
-86
lines changed

16 files changed

+255
-86
lines changed

vertx-db2-client/src/main/java/io/vertx/db2client/DB2ConnectOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public DB2ConnectOptions(DB2ConnectOptions other) {
8888
super(other);
8989
this.pipeliningLimit = other.pipeliningLimit;
9090
}
91-
91+
9292
@Override
9393
public DB2ConnectOptions setHost(String host) {
9494
return (DB2ConnectOptions) super.setHost(host);
@@ -210,6 +210,6 @@ public boolean equals(Object o) {
210210

211211
@Override
212212
public int hashCode() {
213-
return Objects.hash(pipeliningLimit);
213+
return Objects.hash(super.hashCode(), pipeliningLimit);
214214
}
215215
}

vertx-db2-client/src/main/java/io/vertx/db2client/DB2Exception.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,6 @@ public String getSqlState() {
5555
*/
5656
@Override
5757
public String getMessage() {
58-
return super.getMessage();
58+
return super.getMessage() + "; errorCode=" + errorCode + "; sqlState=" + sqlState;
5959
}
6060
}

vertx-db2-client/src/main/java/io/vertx/db2client/spi/DB2Driver.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import io.vertx.sqlclient.spi.Driver;
2525

2626
public class DB2Driver implements Driver {
27-
27+
2828
@Override
2929
public Pool createPool(SqlConnectOptions options, PoolOptions poolOptions) {
3030
return DB2Pool.pool(wrap(options), poolOptions);
@@ -35,17 +35,24 @@ public Pool createPool(Vertx vertx, SqlConnectOptions options, PoolOptions poolO
3535
return DB2Pool.pool(vertx, wrap(options), poolOptions);
3636
}
3737

38-
@Override
39-
public boolean acceptsOptions(SqlConnectOptions options) {
40-
return options instanceof DB2ConnectOptions || SqlConnectOptions.class.equals(options.getClass());
41-
}
42-
4338
private static DB2ConnectOptions wrap(SqlConnectOptions options) {
4439
if (options instanceof DB2ConnectOptions) {
45-
return (DB2ConnectOptions) options;
46-
} else {
40+
return (DB2ConnectOptions) options;
41+
} else if (options.getClass().equals(SqlConnectOptions.class)) {
4742
return new DB2ConnectOptions(options);
43+
} else {
44+
throw new IllegalArgumentException("Unsupported option type: " + options.getClass());
4845
}
4946
}
5047

48+
@Override
49+
public SqlConnectOptions createConnectOptions() {
50+
return new DB2ConnectOptions();
51+
}
52+
53+
@Override
54+
public String name() {
55+
return KnownDrivers.DB2.name();
56+
}
57+
5158
}

vertx-db2-client/src/test/java/io/vertx/db2client/tck/DB2DriverTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,9 @@ protected SqlConnectOptions defaultOptions() {
4646
return rule.options();
4747
}
4848

49+
@Override
50+
protected String getDriverName() {
51+
return "DB2";
52+
}
53+
4954
}

vertx-mssql-client/src/main/java/io/vertx/mssqlclient/MSSQLConnectOptions.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111

1212
package io.vertx.mssqlclient;
1313

14+
import java.util.HashMap;
15+
import java.util.Map;
16+
import java.util.Set;
17+
import java.util.concurrent.TimeUnit;
18+
1419
import io.vertx.codegen.annotations.DataObject;
1520
import io.vertx.core.buffer.Buffer;
1621
import io.vertx.core.json.JsonObject;
@@ -26,11 +31,6 @@
2631
import io.vertx.core.net.TrustOptions;
2732
import io.vertx.sqlclient.SqlConnectOptions;
2833

29-
import java.util.HashMap;
30-
import java.util.Map;
31-
import java.util.Set;
32-
import java.util.concurrent.TimeUnit;
33-
3434
/**
3535
* Connect options for configuring {@link MSSQLConnection}.
3636
*/
@@ -68,7 +68,7 @@ public MSSQLConnectOptions(SqlConnectOptions other) {
6868
public MSSQLConnectOptions(MSSQLConnectOptions other) {
6969
super(other);
7070
}
71-
71+
7272
@Override
7373
public MSSQLConnectOptions setHost(String host) {
7474
return (MSSQLConnectOptions) super.setHost(host);

vertx-mssql-client/src/main/java/io/vertx/mssqlclient/spi/MSSQLDriver.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import io.vertx.sqlclient.spi.Driver;
2525

2626
public class MSSQLDriver implements Driver {
27-
27+
2828
@Override
2929
public Pool createPool(SqlConnectOptions options, PoolOptions poolOptions) {
3030
return MSSQLPool.pool(wrap(options), poolOptions);
@@ -35,17 +35,24 @@ public Pool createPool(Vertx vertx, SqlConnectOptions options, PoolOptions poolO
3535
return MSSQLPool.pool(vertx, wrap(options), poolOptions);
3636
}
3737

38-
@Override
39-
public boolean acceptsOptions(SqlConnectOptions options) {
40-
return options instanceof MSSQLConnectOptions || SqlConnectOptions.class.equals(options.getClass());
41-
}
42-
4338
private static MSSQLConnectOptions wrap(SqlConnectOptions options) {
4439
if (options instanceof MSSQLConnectOptions) {
4540
return (MSSQLConnectOptions) options;
46-
} else {
41+
} else if (SqlConnectOptions.class.equals(options.getClass())) {
4742
return new MSSQLConnectOptions(options);
43+
} else {
44+
throw new IllegalArgumentException("Unsupported option type: " + options.getClass());
4845
}
4946
}
5047

48+
@Override
49+
public SqlConnectOptions createConnectOptions() {
50+
return new MSSQLConnectOptions();
51+
}
52+
53+
@Override
54+
public String name() {
55+
return KnownDrivers.SQLSERVER.name();
56+
}
57+
5158
}

vertx-mssql-client/src/test/java/io/vertx/mssqlclient/tck/MSSQLDriverTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,10 @@ public class MSSQLDriverTest extends DriverTestBase {
3333
protected SqlConnectOptions defaultOptions() {
3434
return rule.options();
3535
}
36-
36+
37+
@Override
38+
protected String getDriverName() {
39+
return "SQLSERVER";
40+
}
41+
3742
}

vertx-mysql-client/src/main/java/io/vertx/mysqlclient/MySQLConnectOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public MySQLConnectOptions(MySQLConnectOptions other) {
9292
this.serverRsaPublicKeyPath = other.serverRsaPublicKeyPath;
9393
this.serverRsaPublicKeyValue = other.serverRsaPublicKeyValue != null ? other.serverRsaPublicKeyValue.copy() : null;
9494
}
95-
95+
9696
/**
9797
* Get the collation for the connection.
9898
*

vertx-mysql-client/src/main/java/io/vertx/mysqlclient/spi/MySQLDriver.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import io.vertx.sqlclient.spi.Driver;
2525

2626
public class MySQLDriver implements Driver {
27-
27+
2828
@Override
2929
public Pool createPool(SqlConnectOptions options, PoolOptions poolOptions) {
3030
return MySQLPool.pool(wrap(options), poolOptions);
@@ -35,17 +35,24 @@ public Pool createPool(Vertx vertx, SqlConnectOptions options, PoolOptions poolO
3535
return MySQLPool.pool(vertx, wrap(options), poolOptions);
3636
}
3737

38-
@Override
39-
public boolean acceptsOptions(SqlConnectOptions options) {
40-
return options instanceof MySQLConnectOptions || SqlConnectOptions.class.equals(options.getClass());
41-
}
42-
4338
private static MySQLConnectOptions wrap(SqlConnectOptions options) {
4439
if (options instanceof MySQLConnectOptions) {
45-
return (MySQLConnectOptions) options;
46-
} else {
40+
return (MySQLConnectOptions) options;
41+
} else if (options.getClass().equals(SqlConnectOptions.class)) {
4742
return new MySQLConnectOptions(options);
43+
} else {
44+
throw new IllegalArgumentException("Unsupported option type: " + options.getClass());
4845
}
4946
}
47+
48+
@Override
49+
public SqlConnectOptions createConnectOptions() {
50+
return new MySQLConnectOptions();
51+
}
52+
53+
@Override
54+
public String name() {
55+
return "MYSQL";
56+
}
5057

5158
}

vertx-mysql-client/src/test/java/io/vertx/mysqlclient/tck/MySQLDriverTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,9 @@ protected SqlConnectOptions defaultOptions() {
3535
return rule.options();
3636
}
3737

38+
@Override
39+
protected String getDriverName() {
40+
return "MYSQL";
41+
}
42+
3843
}

vertx-pg-client/src/main/java/io/vertx/pgclient/PgConnectOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public PgConnectOptions(PgConnectOptions other) {
135135
pipeliningLimit = other.pipeliningLimit;
136136
sslMode = other.sslMode;
137137
}
138-
138+
139139
@Override
140140
public PgConnectOptions setHost(String host) {
141141
return (PgConnectOptions) super.setHost(host);

vertx-pg-client/src/main/java/io/vertx/pgclient/spi/PgDriver.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import io.vertx.sqlclient.spi.Driver;
1010

1111
public class PgDriver implements Driver {
12-
12+
1313
@Override
1414
public Pool createPool(SqlConnectOptions options, PoolOptions poolOptions) {
1515
return PgPool.pool(wrap(options), poolOptions);
@@ -20,17 +20,24 @@ public Pool createPool(Vertx vertx, SqlConnectOptions options, PoolOptions poolO
2020
return PgPool.pool(vertx, wrap(options), poolOptions);
2121
}
2222

23-
@Override
24-
public boolean acceptsOptions(SqlConnectOptions options) {
25-
return options instanceof PgConnectOptions || SqlConnectOptions.class.equals(options.getClass());
26-
}
27-
2823
private static PgConnectOptions wrap(SqlConnectOptions options) {
2924
if (options instanceof PgConnectOptions) {
30-
return (PgConnectOptions) options;
31-
} else {
25+
return (PgConnectOptions) options;
26+
} else if (options.getClass().equals(SqlConnectOptions.class)) {
3227
return new PgConnectOptions(options);
28+
} else {
29+
throw new IllegalArgumentException("Unsupported option type: " + options.getClass());
3330
}
3431
}
32+
33+
@Override
34+
public SqlConnectOptions createConnectOptions() {
35+
return new PgConnectOptions();
36+
}
37+
38+
@Override
39+
public String name() {
40+
return KnownDrivers.POSTGRESQL.name();
41+
}
3542

3643
}

vertx-pg-client/src/test/java/io/vertx/pgclient/tck/PgDriverTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,9 @@ protected SqlConnectOptions defaultOptions() {
3434
return rule.options();
3535
}
3636

37+
@Override
38+
protected String getDriverName() {
39+
return "POSTGRESQL";
40+
}
41+
3742
}

vertx-sql-client/src/main/java/io/vertx/sqlclient/SqlConnectOptions.java

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io.vertx.codegen.annotations.GenIgnore;
1616
import io.vertx.core.json.JsonObject;
1717
import io.vertx.core.net.NetClientOptions;
18+
import io.vertx.sqlclient.spi.Driver;
1819

1920
import java.util.HashMap;
2021
import java.util.Map;
@@ -25,6 +26,7 @@
2526
*/
2627
@DataObject(generateConverter = true)
2728
public class SqlConnectOptions extends NetClientOptions {
29+
2830
public static final boolean DEFAULT_CACHE_PREPARED_STATEMENTS = false;
2931
public static final int DEFAULT_PREPARED_STATEMENT_CACHE_MAX_SIZE = 256;
3032
public static final int DEFAULT_PREPARED_STATEMENT_CACHE_SQL_LIMIT = 2048;
@@ -39,17 +41,32 @@ public class SqlConnectOptions extends NetClientOptions {
3941
private int preparedStatementCacheSqlLimit = DEFAULT_PREPARED_STATEMENT_CACHE_SQL_LIMIT;
4042
private Map<String, String> properties = new HashMap<>(4);
4143

44+
/**
45+
* @deprecated This constructor will be removed in the next release.
46+
* Instead, use {@link Driver#createConnectOptions()}
47+
*/
48+
@Deprecated
4249
public SqlConnectOptions() {
4350
super();
4451
init();
4552
}
4653

54+
/**
55+
* @deprecated This constructor will be removed in the next release.
56+
* Instead, use {@link Driver#createConnectOptions()}
57+
*/
58+
@Deprecated
4759
public SqlConnectOptions(JsonObject json) {
4860
super(json);
4961
init();
5062
SqlConnectOptionsConverter.fromJson(json, this);
5163
}
5264

65+
/**
66+
* @deprecated This constructor will be removed in the next release.
67+
* Instead, use {@link Driver#createConnectOptions()}
68+
*/
69+
@Deprecated
5370
public SqlConnectOptions(SqlConnectOptions other) {
5471
super(other);
5572
this.host = other.host;
@@ -64,7 +81,7 @@ public SqlConnectOptions(SqlConnectOptions other) {
6481
this.properties = new HashMap<>(other.properties);
6582
}
6683
}
67-
84+
6885
/**
6986
* Get the host for connecting to the server.
7087
*
@@ -279,4 +296,28 @@ public JsonObject toJson() {
279296
*/
280297
protected void init() {
281298
}
299+
300+
@Override
301+
public boolean equals(Object obj) {
302+
if (this == obj)
303+
return true;
304+
if (!(obj instanceof SqlConnectOptions))
305+
return false;
306+
SqlConnectOptions that = (SqlConnectOptions) obj;
307+
return Objects.equals(host, that.host) &&
308+
Objects.equals(port, that.port) &&
309+
Objects.equals(database, that.database) &&
310+
Objects.equals(user, that.user) &&
311+
Objects.equals(password, that.password) &&
312+
Objects.equals(properties, that.properties) &&
313+
Objects.equals(cachePreparedStatements, that.cachePreparedStatements) &&
314+
Objects.equals(preparedStatementCacheMaxSize, that.preparedStatementCacheMaxSize) &&
315+
Objects.equals(preparedStatementCacheSqlLimit, that.preparedStatementCacheSqlLimit);
316+
}
317+
318+
@Override
319+
public int hashCode() {
320+
return Objects.hash(host, port, database, user, password, properties, cachePreparedStatements,
321+
preparedStatementCacheMaxSize, preparedStatementCacheSqlLimit);
322+
}
282323
}

0 commit comments

Comments
 (0)