There are two things here that I believe we need to take care of:
At processor build time dependency on ojdbc6 needs to be added to the project maven pom file.
Here is how this might work:
First, issue maven command to install your jar
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
-Dfile=<path-to-file> -DgroupId=com.oracle \
-DartifactId=ojdbc6 -Dversion=11.2.0
Next, declare it like any other dependency in your processor pom file:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
At processor deploy time this dependency needs to be added to karaf container that GeoEvent runs inside. The easiest way to achieve this is to build a so-called uberjar that wraps 3rd party dependency inside.
Here is how we usually achieve that:
<?xml version="1.0"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>group-id</groupId>
<artifactId>artifact-id</artifactId>
<version>version</version>
<packaging>pom</packaging>
<name>Your-component-name</name>
<url></url>
<properties>
<contact.address>you@company.com</contact.address>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.bundle.plugin.version>2.3.6</maven.bundle.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.esri.geoevent.sdk</groupId>
<artifactId>geoevent-sdk</artifactId>
<version>10.3.0</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<version>${maven.bundle.plugin.version}</version>
<configuration>
<instructions>
<Embed-Dependency>ojdbc6;scope=compile|runtime;inline=true</Embed-Dependency>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
In addition:
Once you get your uberjar built, you may also need to modify your code somewhat from traditional JDBC code. Due to way Class Loaders work within GeoEvent's container (OSGi based Karaf), you cannot use the traditional method to acquire a Connection (DriverManager.getConnection). Instead, you'll need to instantiate the Driver class with code like the following:
Driver oDriver = new OracleDriver();
String url = ...
Properties props = new Properties();
//set properties
Connection conn = oDriver.getConnection(url, props);
This is all I have to share for now.
Please try these steps and let us know if they help.
Thanks!