21 changes: 18 additions & 3 deletions all/pom.xml
Expand Up @@ -56,13 +56,18 @@
<embeddeds>
<embedded>
<groupId>com.theopendle</groupId>
<artifactId>demo.ui.apps</artifactId>
<type>zip</type>
<artifactId>demo.core</artifactId>
<target>/apps/demo-packages/application/install</target>
</embedded>
<embedded>
<groupId>com.theopendle</groupId>
<artifactId>demo.core</artifactId>
<artifactId>demo.ojdbc-bundle</artifactId>
<target>/apps/demo-packages/application/install</target>
</embedded>
<embedded>
<groupId>com.theopendle</groupId>
<artifactId>demo.ui.apps</artifactId>
<type>zip</type>
<target>/apps/demo-packages/application/install</target>
</embedded>
<embedded>
Expand Down Expand Up @@ -184,6 +189,16 @@
<!-- D E P E N D E N C I E S -->
<!-- ====================================================================== -->
<dependencies>
<dependency>
<groupId>com.theopendle</groupId>
<artifactId>demo.core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.theopendle</groupId>
<artifactId>demo.ojdbc-bundle</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.theopendle</groupId>
<artifactId>demo.ui.apps</artifactId>
Expand Down
8 changes: 8 additions & 0 deletions core/pom.xml
Expand Up @@ -89,6 +89,14 @@ Import-Package: javax.annotation;version=0.0.0,*
</build>

<dependencies>
<!-- Oracle JDBC driver -->
<dependency>
<groupId>com.theopendle</groupId>
<artifactId>demo.ojdbc-bundle</artifactId>
<version>${project.version}</version>
</dependency>


<dependency>
<groupId>uk.org.lidalia</groupId>
<artifactId>slf4j-test</artifactId>
Expand Down
@@ -0,0 +1,42 @@
package com.theopendle.core.services;

import com.day.commons.datasource.poolservice.DataSourceNotFoundException;
import com.day.commons.datasource.poolservice.DataSourcePool;
import lombok.extern.slf4j.Slf4j;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

@Slf4j
@Component(service = OracleDataSource.class, immediate = true)
public class OracleDataSource {
public static final String DATA_SOURCE_NAME = "oracle";

@Reference
private DataSourcePool dataSourcePool;

@Activate
public void activate() {
try {
final DataSource dataSource = (DataSource) dataSourcePool.getDataSource(DATA_SOURCE_NAME);

try (final Connection connection = dataSource.getConnection()) {
if (connection == null) {
log.error("Could not establish connection to <{}>", DATA_SOURCE_NAME);
return;
}
log.info("Connection is valid: <{}>", connection.isValid(1000));
}

} catch (final SQLException e) {
log.error("Could not establish connection to <{}>", DATA_SOURCE_NAME, e);

} catch (final DataSourceNotFoundException e) {
log.error("Could not find data source with name <{}>", DATA_SOURCE_NAME, e);
}
}
}
55 changes: 55 additions & 0 deletions ojdbc-bundle/pom.xml
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.theopendle</groupId>
<artifactId>demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>demo.ojdbc-bundle</artifactId>
<packaging>bundle</packaging>
<name>Demo - OJDBC bundle</name>
<description>OSGi wrapper for Oracle JDBC jar.</description>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.5.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-License>non-free</Bundle-License>
<Bundle-Vendor>Oracle</Bundle-Vendor>
<_exportcontents>*</_exportcontents>
<Export-Package>
oracle.core.*;version="${project.version}",
oracle.jdbc.*;version="${project.version}",
oracle.jpub.*;version="${project.version}",
oracle.net.*;version="${project.version}",
oracle.security.*;version="${project.version}",
oracle.sql.*;version="${project.version}"
</Export-Package>
<Import-Package>*;resolution:=optional</Import-Package>
<Embed-Dependency>*;scope=compile|runtime;type=!pom;inline=true</Embed-Dependency>
</instructions>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.7.0.0</version>
</dependency>
</dependencies>
</project>


2 changes: 2 additions & 0 deletions pom.xml
Expand Up @@ -47,6 +47,8 @@

<module>ui.content</module>

<module>ojdbc-bundle</module>

</modules>

<properties>
Expand Down
@@ -0,0 +1,12 @@
{
"jdbc.password": "test",
"jdbc.driver.class": "oracle.jdbc.driver.OracleDriver",
"datasource.name": "oracle",
"jdbc.connection.uri": "jdbc:oracle:thin:@localhost:1521:test",
"jdbc.validation.query": "SELECT 1 FROM DUAL",
"default.readonly": false,
"default.autocommit": false,
"jdbc.username": "test",
"pool.max.wait.msec": 1000,
"pool.size": 10
}