CDI extension for HikariCP

This CDI portable extension provides support for injecting HikariCP data sources in your Helidon MicroProfile applications.

Prerequisites

Declare the following dependency in your project:

<dependency>
    <groupId>io.helidon.integrations.cdi</groupId>
    <artifactId>helidon-integrations-cdi-datasource-hikaricp</artifactId>
</dependency>
Copied

Injecting a HikariCP data source

The following examples show how to create a DataSource named orders in your application.

Field-injection example
 @Inject
 @Named("orders")
 private DataSource ordersDataSource;
Copied
Constructor-injection example
 private final DataSource ds;
 @Inject
 public YourConstructor(@Named("orders") DataSource ds) {
   super();
   this.ds = ds;
 }
Copied

The extension implements this injection point by creating a HikariDataSource object in the application scope.

You can configure the object using MicroProfile config. For example, the data source created above can be configured as follows:

META-INF/microprofile-config.properties
javax.sql.DataSource.orders.dataSourceClassName=oracle.jdbc.pool.OracleDataSource
javax.sql.DataSource.orders.dataSource.url = jdbc:oracle:thin:@localhost:1521:ORCL
javax.sql.DataSource.orders.dataSource.user = sys as sysoper
javax.sql.DataSource.orders.dataSource.password = Oracle
Copied

Property names that start with javax.sql.DataSource.dataSourceName. are parsed, and the remaining portion of each name is treated as a Hikari connection pool property.