oracdc-kafka
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>solutions.a2.oracle</groupId>
<artifactId>oracdc-kafka</artifactId>
<version>2.15.2</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
~ This file is part of the oracdc project.
~ Copyright (c) 2018-present, A2 Rešitve d.o.o.
~ Authors: Aleksei Veremeev
~
~ This program is offered under a commercial and under the AGPL license.
~ For commercial licensing, contact us at sales@a2.solutions.
~ For AGPL licensing, see below.
~
~ AGPL licensing:
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public
~ License along with this program; see the file GNU-AGPL-v3.0.adoc.
~ If not, see <https://www.gnu.org/licenses/>.
-->
<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.2</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>GNU Affero General Public License</name>
<url>https://www.gnu.org/licenses/agpl-3.0.html</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.11</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.84</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>