Skip to content

Commit f04d856

Browse files
committed
Add database kind property to SqlConnectOptions
1 parent 0a1a058 commit f04d856

File tree

22 files changed

+221
-5
lines changed

22 files changed

+221
-5
lines changed

vertx-db2-client/src/main/asciidoc/dataobjects.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
|[[hostnameVerificationAlgorithm]]`@hostnameVerificationAlgorithm`|`String`|-
2424
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|-
2525
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|-
26+
|[[kind]]`@kind`|`String`|-
2627
|[[localAddress]]`@localAddress`|`String`|-
2728
|[[logActivity]]`@logActivity`|`Boolean`|-
2829
|[[metricsName]]`@metricsName`|`String`|-

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import io.vertx.db2client.impl.DB2ConnectionUriParser;
2727
import io.vertx.db2client.impl.drda.SQLState;
2828
import io.vertx.db2client.impl.drda.SqlCode;
29+
import io.vertx.db2client.spi.DB2Driver;
2930
import io.vertx.sqlclient.SqlConnectOptions;
3031

3132
/**
@@ -88,6 +89,22 @@ public DB2ConnectOptions(DB2ConnectOptions other) {
8889
super(other);
8990
this.pipeliningLimit = other.pipeliningLimit;
9091
}
92+
93+
@Override
94+
public String getKind() {
95+
return DB2Driver.KIND;
96+
}
97+
98+
@Override
99+
public DB2ConnectOptions setKind(String kind) {
100+
Objects.requireNonNull(kind, "Database kind must be non-null");
101+
// Tolerate setting the kind to DB2, but raise an error otherwise
102+
if (!DB2Driver.KIND.equalsIgnoreCase(kind)) {
103+
throw new IllegalArgumentException("Database kind for " + getClass() +
104+
" must be of type " + DB2Driver.KIND + " but " + kind + " was specified");
105+
}
106+
return this;
107+
}
91108

92109
@Override
93110
public DB2ConnectOptions setHost(String host) {
@@ -182,6 +199,7 @@ public DB2ConnectOptions addProperty(String key, String value) {
182199
protected void init() {
183200
this.setHost(DEFAULT_HOST);
184201
this.setPort(DEFAULT_PORT);
202+
this.setKind(DB2Driver.KIND);
185203
this.setProperties(new HashMap<>(DEFAULT_CONNECTION_ATTRIBUTES));
186204
}
187205

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: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,15 @@
1818
import io.vertx.core.Vertx;
1919
import io.vertx.db2client.DB2ConnectOptions;
2020
import io.vertx.db2client.DB2Pool;
21+
import io.vertx.sqlclient.DatabaseKind;
2122
import io.vertx.sqlclient.Pool;
2223
import io.vertx.sqlclient.PoolOptions;
2324
import io.vertx.sqlclient.SqlConnectOptions;
2425
import io.vertx.sqlclient.spi.Driver;
2526

2627
public class DB2Driver implements Driver {
28+
29+
public static final String KIND = DatabaseKind.DB2;
2730

2831
@Override
2932
public Pool createPool(SqlConnectOptions options, PoolOptions poolOptions) {
@@ -37,7 +40,14 @@ public Pool createPool(Vertx vertx, SqlConnectOptions options, PoolOptions poolO
3740

3841
@Override
3942
public boolean acceptsOptions(SqlConnectOptions options) {
40-
return options instanceof DB2ConnectOptions || SqlConnectOptions.class.equals(options.getClass());
43+
if (options instanceof DB2ConnectOptions) {
44+
return true;
45+
}
46+
if (SqlConnectOptions.class.equals(options.getClass())) {
47+
return KIND.equalsIgnoreCase(options.getKind()) ||
48+
SqlConnectOptions.DEFAULT_KIND.equalsIgnoreCase(options.getKind());
49+
}
50+
return false;
4151
}
4252

4353
private static DB2ConnectOptions wrap(SqlConnectOptions options) {

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
@@ -45,5 +45,10 @@ public void printTestName(TestContext ctx) throws Exception {
4545
protected SqlConnectOptions defaultOptions() {
4646
return rule.options();
4747
}
48+
49+
@Override
50+
protected String getKind() {
51+
return "db2";
52+
}
4853

4954
}

vertx-mssql-client/src/main/asciidoc/dataobjects.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
|[[hostnameVerificationAlgorithm]]`@hostnameVerificationAlgorithm`|`String`|-
2424
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|-
2525
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|-
26+
|[[kind]]`@kind`|`String`|-
2627
|[[localAddress]]`@localAddress`|`String`|-
2728
|[[logActivity]]`@logActivity`|`Boolean`|-
2829
|[[metricsName]]`@metricsName`|`String`|-

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@
2424
import io.vertx.core.net.ProxyOptions;
2525
import io.vertx.core.net.SSLEngineOptions;
2626
import io.vertx.core.net.TrustOptions;
27+
import io.vertx.mssqlclient.spi.MSSQLDriver;
2728
import io.vertx.sqlclient.SqlConnectOptions;
2829

2930
import java.util.HashMap;
3031
import java.util.Map;
32+
import java.util.Objects;
3133
import java.util.Set;
3234
import java.util.concurrent.TimeUnit;
3335

@@ -68,6 +70,22 @@ public MSSQLConnectOptions(SqlConnectOptions other) {
6870
public MSSQLConnectOptions(MSSQLConnectOptions other) {
6971
super(other);
7072
}
73+
74+
@Override
75+
public String getKind() {
76+
return MSSQLDriver.KIND;
77+
}
78+
79+
@Override
80+
public MSSQLConnectOptions setKind(String kind) {
81+
Objects.requireNonNull(kind, "Database kind must be non-null");
82+
// Tolerate setting the kind to the same thing, but raise an error otherwise
83+
if (!MSSQLDriver.KIND.equalsIgnoreCase(kind)) {
84+
throw new IllegalArgumentException("Database kind for " + getClass() +
85+
" must be of type " + MSSQLDriver.KIND + " but " + kind + " was specified");
86+
}
87+
return this;
88+
}
7189

7290
@Override
7391
public MSSQLConnectOptions setHost(String host) {
@@ -323,6 +341,7 @@ protected void init() {
323341
this.setUser(DEFAULT_USER);
324342
this.setPassword(DEFAULT_PASSWORD);
325343
this.setDatabase(DEFAULT_SCHEMA);
344+
this.setKind(MSSQLDriver.KIND);
326345
this.setProperties(new HashMap<>(DEFAULT_PROPERTIES));
327346
}
328347

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,15 @@
1818
import io.vertx.core.Vertx;
1919
import io.vertx.mssqlclient.MSSQLConnectOptions;
2020
import io.vertx.mssqlclient.MSSQLPool;
21+
import io.vertx.sqlclient.DatabaseKind;
2122
import io.vertx.sqlclient.Pool;
2223
import io.vertx.sqlclient.PoolOptions;
2324
import io.vertx.sqlclient.SqlConnectOptions;
2425
import io.vertx.sqlclient.spi.Driver;
2526

2627
public class MSSQLDriver implements Driver {
28+
29+
public static final String KIND = DatabaseKind.MICROSOFT_SQL_SERVER;
2730

2831
@Override
2932
public Pool createPool(SqlConnectOptions options, PoolOptions poolOptions) {
@@ -37,7 +40,14 @@ public Pool createPool(Vertx vertx, SqlConnectOptions options, PoolOptions poolO
3740

3841
@Override
3942
public boolean acceptsOptions(SqlConnectOptions options) {
40-
return options instanceof MSSQLConnectOptions || SqlConnectOptions.class.equals(options.getClass());
43+
if (options instanceof MSSQLConnectOptions) {
44+
return true;
45+
}
46+
if (SqlConnectOptions.class.equals(options.getClass())) {
47+
return KIND.equalsIgnoreCase(options.getKind()) ||
48+
SqlConnectOptions.DEFAULT_KIND.equalsIgnoreCase(options.getKind());
49+
}
50+
return false;
4151
}
4252

4353
private static MSSQLConnectOptions wrap(SqlConnectOptions options) {

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

Lines changed: 5 additions & 0 deletions
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+
37+
@Override
38+
protected String getKind() {
39+
return "sqlserver";
40+
}
3641

3742
}

vertx-mysql-client/src/main/asciidoc/dataobjects.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ Set the collation for the connection.
7070
|[[hostnameVerificationAlgorithm]]`@hostnameVerificationAlgorithm`|`String`|-
7171
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|-
7272
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|-
73+
|[[kind]]`@kind`|`String`|-
7374
|[[localAddress]]`@localAddress`|`String`|-
7475
|[[logActivity]]`@logActivity`|`Boolean`|-
7576
|[[metricsName]]`@metricsName`|`String`|-

0 commit comments

Comments
 (0)