oracdc-kafka
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>solutions.a2.oracle</groupId>
<artifactId>oracdc-kafka</artifactId>
<version>2.15.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2018-present, A2 Rešitve d.o.o.
~
~ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
~ compliance with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software distributed under the License is
~ distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
~ the License for the specific language governing permissions and limitations under the License.
-->
<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>
<groupId>solutions.a2.oracle</groupId>
<artifactId>oracdc-kafka</artifactId>
<version>2.15.0</version>
<packaging>jar</packaging>
<inceptionYear>2018</inceptionYear>
<name>oracdc-kafka</name>
<url>https://a2-solutions.eu/#oracdc</url>
<description>
Oracle CDC Source Connectors (Direct reading of redo logs, LogMiner and Snapshot Logs as source) for Kafka Connect
</description>
<organization>
<name>A2 Rešitve, d.o.o.</name>
<url>https://a2-solutions.eu/</url>
</organization>
<issueManagement>
<url>https://github.com/averemee-si/oracdc/issues</url>
<system>GitHub</system>
</issueManagement>
<licenses>
<license>
<name>Apache License</name>
<url>https://a2-solutions.eu/licenses/apache/LICENSE.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:git://github.com/averemee-si/oracdc.git</connection>
<developerConnection>scm:git:git@github.com:averemee-si/oracdc.git</developerConnection>
<url>https://github.com//averemee-si/oracdc</url>
<tag>HEAD</tag>
</scm>
<developers>
<developer>
<id>averemee-si</id>
<name>Aleksei Veremeev</name>
<email>averemee@a2.solutions</email>
<timezone>Europe/Ljubljana</timezone>
<organization>A2 Rešitve, d.o.o.</organization>
<organizationUrl>https://a2-solutions.eu/</organizationUrl>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>21</maven.compiler.release>
<junit.version>5.14.0</junit.version>
<guava.version>33.5.0-jre</guava.version>
<kafka.version>4.1.1</kafka.version>
<commons.lang3.version>3.20.0</commons.lang3.version>
<commons.math3.version>3.6.1</commons.math3.version>
<commons.cli.version>1.11.0</commons.cli.version>
<ora.jdbc.version>23.26.1.0.0</ora.jdbc.version>
<pg.jdbc.version>42.7.10</pg.jdbc.version>
<HikariCP.version>7.0.2</HikariCP.version>
<slf4j.version>2.0.17</slf4j.version>
<ojdbc.types.version>0.9.9</ojdbc.types.version>
<maverick.version>3.1.4</maverick.version>
<sshj.version>0.40.0</sshj.version>
<smbj.version>0.14.0</smbj.version>
<bouncycastle.version>1.83</bouncycastle.version>
<mbassador.version>1.3.2</mbassador.version>
<agrona.version>2.4.0</agrona.version>
<mina.version>2.17.1</mina.version>
<kafka.connect.maven.plugin.version>0.12.0</kafka.connect.maven.plugin.version>
<jar.plugin.version>3.4.2</jar.plugin.version>
<compiler.plugin.version>3.15.0</compiler.plugin.version>
<assembly.plugin.version>3.8.0</assembly.plugin.version>
<surefire.plugin.version>3.5.4</surefire.plugin.version>
<source.plugin.version>3.4.0</source.plugin.version>
<javadoc.plugin.version>3.12.0</javadoc.plugin.version>
<gpg.plugin.version>3.2.8</gpg.plugin.version>
<central.plugin.version>0.10.0</central.plugin.version>
</properties>
<distributionManagement>
<repository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
</repository>
<snapshotRepository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.kafka/connect-api -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>connect-api</artifactId>
<version>${kafka.version}</version>
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.github.luben</groupId>
<artifactId>zstd-jni</artifactId>
</exclusion>
<exclusion>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons.lang3.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>${commons.math3.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-cli/commons-cli -->
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>${commons.cli.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc17 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc17</artifactId>
<version>${ora.jdbc.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ucp17 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ucp17</artifactId>
<version>${ora.jdbc.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.security/oraclepki -->
<dependency>
<groupId>com.oracle.database.security</groupId>
<artifactId>oraclepki</artifactId>
<version>${ora.jdbc.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.xml/xdb -->
<dependency>
<groupId>com.oracle.database.xml</groupId>
<artifactId>xdb</artifactId>
<version>${ora.jdbc.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.xml/xmlparserv2 -->
<dependency>
<groupId>com.oracle.database.xml</groupId>
<artifactId>xmlparserv2</artifactId>
<version>${ora.jdbc.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${pg.jdbc.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${HikariCP.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-reload4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/solutions.a2.oracle/ojdbc-types -->
<dependency>
<groupId>solutions.a2.oracle</groupId>
<artifactId>ojdbc-types</artifactId>
<version>${ojdbc.types.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sshtools/maverick-synergy-client -->
<dependency>
<groupId>com.sshtools</groupId>
<artifactId>maverick-synergy-client</artifactId>
<version>${maverick.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.hierynomus/sshj -->
<dependency>
<groupId>com.hierynomus</groupId>
<artifactId>sshj</artifactId>
<version>${sshj.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.hierynomus/smbj -->
<dependency>
<groupId>com.hierynomus</groupId>
<artifactId>smbj</artifactId>
<version>${smbj.version}</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcutil-jdk18on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcutil-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.engio/mbassador -->
<dependency>
<groupId>net.engio</groupId>
<artifactId>mbassador</artifactId>
<version>${mbassador.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.agrona/agrona -->
<dependency>
<groupId>org.agrona</groupId>
<artifactId>agrona</artifactId>
<version>${agrona.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.sshd/sshd-common -->
<dependency>
<groupId>org.apache.sshd</groupId>
<artifactId>sshd-common</artifactId>
<version>${mina.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.sshd/sshd-core -->
<dependency>
<groupId>org.apache.sshd</groupId>
<artifactId>sshd-core</artifactId>
<version>${mina.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.sshd/sshd-sftp -->
<dependency>
<groupId>org.apache.sshd</groupId>
<artifactId>sshd-sftp</artifactId>
<version>${mina.version}</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.hierynomus/sshj
<dependency>
<groupId>com.hierynomus</groupId>
<artifactId>sshj</artifactId>
<version>${sshj.version}</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
</exclusion>
</exclusions>
</dependency> -->
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler.plugin.version}</version>
<configuration>
<compilerArgs>
<arg>--enable-preview</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.plugin.version}</version>
<configuration>
<argLine>
--enable-preview
</argLine>
</configuration>
</plugin>
<plugin>
<groupId>io.confluent</groupId>
<version>${kafka.connect.maven.plugin.version}</version>
<artifactId>kafka-connect-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>kafka-connect</goal>
</goals>
<configuration>
<title>Kafka Connect Oracle CDC</title>
<documentationUrl>https://github.com/averemee-si/oracdc</documentationUrl>
<description>
Changed data capture (CDC) for Oracle Database. Contains three different Source connectors:
1) solutions.a2.cdc.oracle.OraCdcRedoMinerConnector - directly reads and parses Oracle RDBMS redo log files from local filesystem, Oracle ASM, or from remote filesystem via SSH, Oracle BFILE, or SMB
2) solutions.a2.cdc.oracle.OraCdcLogMinerConnector - reads and parses Oracle RDBMS redo log files using LogMiner
3) solutions.a2.cdc.oracle.OraCdcSourceConnector - uses Oracle RDBMS materialized view log's as source for data changes
No additional licensing of Oracle Database is required.
JDBC sink connector solutions.a2.kafka.sink.JdbcSinkConnector optimized to work with PostgreSQL is also provided.
</description>
<logo>logos/a2-oracdc.png</logo>
<supportProviderName>A2 Rešitve, d.o.o.</supportProviderName>
<supportSummary>Includes installation, and configuration assistance</supportSummary>
<supportUrl>https://a2-solutions.eu/</supportUrl>
<supportLogo>logos/a2-solutions.png</supportLogo>
<ownerUsername>a2solutions</ownerUsername>
<ownerType>organization</ownerType>
<ownerName>A2 Rešitve, d.o.o.</ownerName>
<ownerUrl>https://a2-solutions.eu/</ownerUrl>
<ownerLogo>logos/a2-solutions.png</ownerLogo>
<dockerNamespace></dockerNamespace>
<dockerName></dockerName>
<dockerTag></dockerTag>
<componentTypes>
<componentType>source</componentType>
<componentType>sink</componentType>
</componentTypes>
<confluentControlCenterIntegration>
true
</confluentControlCenterIntegration>
<tags>
<tag>Oracle</tag>
<tag>database</tag>
<tag>RDBMS</tag>
<tag>ASM</tag>
<tag>CDC</tag>
<tag>PostgreSQL</tag>
<tag>ingest</tag>
<tag>capture</tag>
<tag>collect</tag>
<tag>Hadoop</tag>
<tag>data lake</tag>
<tag>Iceberg</tag>
<tag>LakeHouse</tag>
<tag>JDBC</tag>
<tag>BFILE</tag>
<tag>SSH</tag>
<tag>SMB</tag>
<tag>XML</tag>
<tag>XMLTYPE</tag>
<tag>JSON</tag>
<tag>VECTOR</tag>
</tags>
<requirements>
<requirement>Oracle 9i</requirement>
<requirement>Oracle 10g</requirement>
<requirement>Oracle 11g</requirement>
<requirement>Oracle 12c</requirement>
<requirement>Oracle 18c</requirement>
<requirement>Oracle 19c</requirement>
<requirement>Oracle 21c</requirement>
<requirement>Oracle 23c</requirement>
<requirement>Oracle 23ai</requirement>
<requirement>Oracle 26ai</requirement>
<requirement>Oracle DataGuard</requirement>
<requirement>Oracle Active DataGuard</requirement>
<requirement>Oracle Standby Database</requirement>
<requirement>Oracle RAC</requirement>
<requirement>Oracle Real Application Clusters</requirement>
<requirement>Single Instance Physical Standby for Oracle RAC</requirement>
<requirement>Oracle ASM</requirement>
<requirement>Amazon RDS for Oracle</requirement>
</requirements>
<deliveryGuarantee>
<deliveryGuarantee>exactlyOnce</deliveryGuarantee>
</deliveryGuarantee>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${jar.plugin.version}</version>
<configuration>
<excludes>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${assembly.plugin.version}</version>
<configuration>
<descriptors>
<descriptor>src/assembly/standalone.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>solutions.a2.cdc.oracle.utils.file.OraRedoLogFile</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${source.plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadoc.plugin.version}</version>
<configuration>
<additionalOptions>--enable-preview</additionalOptions>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${gpg.plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<keyname>${gpg.keyname}</keyname>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central.plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>false</autoPublish>
</configuration>
</plugin>
</plugins>
</build>
</project>