
io.quarkiverse.jdbc.sqlite.deployment.JDBCSqliteProcessor Maven / Gradle / Ivy
package io.quarkiverse.jdbc.sqlite.deployment;
import static io.quarkiverse.jdbc.sqlite.runtime.SQLiteConstants.DB_KIND;
import org.sqlite.JDBC;
import org.sqlite.SQLiteDataSource;
import io.quarkiverse.jdbc.sqlite.runtime.SqliteAgroalConnectionConfigurer;
import io.quarkus.agroal.spi.JdbcDriverBuildItem;
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
import io.quarkus.arc.processor.BuiltinScope;
import io.quarkus.datasource.deployment.spi.DefaultDataSourceDbKindBuildItem;
import io.quarkus.datasource.deployment.spi.DevServicesDatasourceConfigurationHandlerBuildItem;
import io.quarkus.deployment.Capabilities;
import io.quarkus.deployment.Capability;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.SslNativeConfigBuildItem;
/**
* Deploy extension to Quarkus framework
*
*/
@SuppressWarnings("unused")
class JDBCSqliteProcessor {
private static final String FEATURE = "jdbc-sqlite";
static final String DRIVER_NAME = JDBC.class.getName();
private static final String DATA_SOURCE_NAME = SQLiteDataSource.class.getName();
@BuildStep
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
}
@BuildStep
void registerDriver(BuildProducer jdbcDriver,
SslNativeConfigBuildItem sslNativeConfigBuildItem) {
jdbcDriver.produce(
new JdbcDriverBuildItem(
DB_KIND,
DRIVER_NAME,
DATA_SOURCE_NAME));
}
@BuildStep
DevServicesDatasourceConfigurationHandlerBuildItem devDbHandler() {
return DevServicesDatasourceConfigurationHandlerBuildItem.jdbc(DB_KIND);
}
@BuildStep
void configureAgroalConnection(BuildProducer additionalBeans,
Capabilities capabilities) {
if (capabilities.isPresent(Capability.AGROAL)) {
additionalBeans.produce(new AdditionalBeanBuildItem.Builder().addBeanClass(SqliteAgroalConnectionConfigurer.class)
.setDefaultScope(BuiltinScope.APPLICATION.getName())
.setUnremovable()
.build());
}
}
@BuildStep
void registerDefaultDbType(BuildProducer dbKind) {
dbKind.produce(new DefaultDataSourceDbKindBuildItem(DB_KIND));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy