Skip to content

Commit 9ecee83

Browse files
committed
Register Reactive SQL Client Drivers
Fixes #50140 In some use cases, Reactive SQL Client can be created programmatically (just injecting the Vert.x instance). For these use cases, the Reactive SQL Client drivers must be registered. Otherwise, after creating a native image, the program fails with a java.util.ServiceConfigurationError.
1 parent 6c34fd7 commit 9ecee83

File tree

5 files changed

+30
-0
lines changed

5 files changed

+30
-0
lines changed

extensions/reactive-db2-client/deployment/src/main/java/io/quarkus/reactive/db2/client/deployment/ReactiveDB2ClientProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import io.quarkus.vertx.core.deployment.EventLoopCountBuildItem;
6363
import io.quarkus.vertx.deployment.VertxBuildItem;
6464
import io.vertx.db2client.DB2Pool;
65+
import io.vertx.db2client.spi.DB2Driver;
6566
import io.vertx.sqlclient.Pool;
6667

6768
class ReactiveDB2ClientProcessor {
@@ -154,6 +155,11 @@ void validateBeans(ValidationPhaseBuildItem validationPhase,
154155
}
155156
}
156157

158+
@BuildStep
159+
void registerDriver(BuildProducer<ServiceProviderBuildItem> serviceProvider) {
160+
serviceProvider.produce(new ServiceProviderBuildItem("io.vertx.sqlclient.spi.Driver", DB2Driver.class.getName()));
161+
}
162+
157163
@BuildStep
158164
void registerServiceBinding(Capabilities capabilities, BuildProducer<ServiceProviderBuildItem> serviceProvider,
159165
BuildProducer<DefaultDataSourceDbKindBuildItem> dbKind) {

extensions/reactive-mssql-client/deployment/src/main/java/io/quarkus/reactive/mssql/client/deployment/ReactiveMSSQLClientProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import io.quarkus.vertx.core.deployment.EventLoopCountBuildItem;
6363
import io.quarkus.vertx.deployment.VertxBuildItem;
6464
import io.vertx.mssqlclient.MSSQLPool;
65+
import io.vertx.mssqlclient.spi.MSSQLDriver;
6566
import io.vertx.sqlclient.Pool;
6667

6768
class ReactiveMSSQLClientProcessor {
@@ -154,6 +155,11 @@ void validateBeans(ValidationPhaseBuildItem validationPhase,
154155
}
155156
}
156157

158+
@BuildStep
159+
void registerDriver(BuildProducer<ServiceProviderBuildItem> serviceProvider) {
160+
serviceProvider.produce(new ServiceProviderBuildItem("io.vertx.sqlclient.spi.Driver", MSSQLDriver.class.getName()));
161+
}
162+
157163
@BuildStep
158164
void registerServiceBinding(Capabilities capabilities, BuildProducer<ServiceProviderBuildItem> serviceProvider,
159165
BuildProducer<DefaultDataSourceDbKindBuildItem> dbKind) {

extensions/reactive-mysql-client/deployment/src/main/java/io/quarkus/reactive/mysql/client/deployment/ReactiveMySQLClientProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import io.quarkus.vertx.core.deployment.EventLoopCountBuildItem;
6363
import io.quarkus.vertx.deployment.VertxBuildItem;
6464
import io.vertx.mysqlclient.MySQLPool;
65+
import io.vertx.mysqlclient.spi.MySQLDriver;
6566
import io.vertx.sqlclient.Pool;
6667

6768
class ReactiveMySQLClientProcessor {
@@ -155,6 +156,11 @@ void validateBeans(ValidationPhaseBuildItem validationPhase,
155156
}
156157
}
157158

159+
@BuildStep
160+
void registerDriver(BuildProducer<ServiceProviderBuildItem> serviceProvider) {
161+
serviceProvider.produce(new ServiceProviderBuildItem("io.vertx.sqlclient.spi.Driver", MySQLDriver.class.getName()));
162+
}
163+
158164
@BuildStep
159165
void registerServiceBinding(Capabilities capabilities, BuildProducer<ServiceProviderBuildItem> serviceProvider,
160166
BuildProducer<DefaultDataSourceDbKindBuildItem> dbKind) {

extensions/reactive-oracle-client/deployment/src/main/java/io/quarkus/reactive/oracle/client/deployment/ReactiveOracleClientProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import io.quarkus.vertx.core.deployment.EventLoopCountBuildItem;
6363
import io.quarkus.vertx.deployment.VertxBuildItem;
6464
import io.vertx.oracleclient.OraclePool;
65+
import io.vertx.oracleclient.spi.OracleDriver;
6566
import io.vertx.sqlclient.Pool;
6667

6768
class ReactiveOracleClientProcessor {
@@ -154,6 +155,11 @@ void validateBeans(ValidationPhaseBuildItem validationPhase,
154155
}
155156
}
156157

158+
@BuildStep
159+
void registerDriver(BuildProducer<ServiceProviderBuildItem> serviceProvider) {
160+
serviceProvider.produce(new ServiceProviderBuildItem("io.vertx.sqlclient.spi.Driver", OracleDriver.class.getName()));
161+
}
162+
157163
@BuildStep
158164
void registerServiceBinding(Capabilities capabilities, BuildProducer<ServiceProviderBuildItem> serviceProvider,
159165
BuildProducer<DefaultDataSourceDbKindBuildItem> dbKind) {

extensions/reactive-pg-client/deployment/src/main/java/io/quarkus/reactive/pg/client/deployment/ReactivePgClientProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import io.quarkus.vertx.core.deployment.EventLoopCountBuildItem;
6464
import io.quarkus.vertx.deployment.VertxBuildItem;
6565
import io.vertx.pgclient.PgPool;
66+
import io.vertx.pgclient.spi.PgDriver;
6667
import io.vertx.sqlclient.Pool;
6768

6869
class ReactivePgClientProcessor {
@@ -186,6 +187,11 @@ void validateBeans(ValidationPhaseBuildItem validationPhase,
186187
}
187188
}
188189

190+
@BuildStep
191+
void registerDriver(BuildProducer<ServiceProviderBuildItem> serviceProvider) {
192+
serviceProvider.produce(new ServiceProviderBuildItem("io.vertx.sqlclient.spi.Driver", PgDriver.class.getName()));
193+
}
194+
189195
@BuildStep
190196
void registerServiceBinding(Capabilities capabilities, BuildProducer<ServiceProviderBuildItem> serviceProvider,
191197
BuildProducer<DefaultDataSourceDbKindBuildItem> dbKind) {

0 commit comments

Comments
 (0)