Skip to main content

Building from source

You need JDK 17 or 21. The repository carries the Maven wrapper, which downloads Maven 3.9.16 and checks its checksum, so ./mvnw needs no Maven installation. Docker is needed only for the integration suites (local testing).

git clone https://github.com/osodevops/kafka-connect-oracle-cdc.git
cd kafka-connect-oracle-cdc
./mvnw clean verify -DskipE2E

That runs every quality gate and every unit test without Docker:

  • Spotless formatting (google-java-format) for Java and the POMs;
  • SpotBugs;
  • JaCoCo line coverage of at least 80 per cent on oracle-cdc-core;
  • the licence allowlist, which fails the build on any GPL or AGPL dependency;
  • the check that the generated reference pages on this site match the code.

Modules​

ModuleWhat it builds
oracle-cdc-coreThe capture engine: mining, transaction buffer and journal, positions, schema versions, doctor rules
kafka-connect-oracle-cdcsh.oso.connect.oracle.OracleCdcSourceConnector and the plugin ZIP
oracle-cdc-doctorThe preflight checker, setup script generator, redo profiler and admin CLI, as one runnable jar and a container image
e2e-testsIntegration suites against Oracle Database Free and a real Kafka Connect worker, and the generators of the reference pages
benchThe workload generator and correctness oracle the suites and labs use
tools/migrationThe Python migration tools for moving from Confluent or Debezium

Artefacts​

To build the artefacts without running the tests:

./mvnw -q package -DskipTests -DskipE2E
FilePath
Plugin ZIPkafka-connect-oracle-cdc/target/kafka-connect-oracle-cdc-<version>-kafka-connect-plugin.zip
Doctor CLIoracle-cdc-doctor/target/oracle-cdc-doctor-<version>-cli.jar

The ZIP has the same contents as the one attached to each GitHub release (installation).

Formatting​

./mvnw spotless:apply

On JDK 17, .mvn/jvm.config adds the compiler exports google-java-format needs.

Generated reference pages​

The configuration reference, the metrics reference with the JMX exporter rules, and the database setup script on this site are generated from the code. Never edit them by hand; regenerate them after changing a cdc.* key, a metric or the setup script:

./mvnw -pl e2e-tests -am test -DskipE2E -Dsurefire.failIfNoSpecifiedTests=false \
-Dtest=ConfigDocsGeneratorTest -Dconfigdocs.update=true
./mvnw -pl oracle-cdc-core test -Dtest=MetricsReferenceTest -Dmetricsdocs.update=true
./mvnw -pl oracle-cdc-core test -Dtest=SetupSqlDocsTest -Dsetupsqldocs.update=true

The quality gates fail when a generated page no longer matches the code.

This site​

The documentation lives in website/ (Docusaurus). Broken links and anchors fail the build:

cd website
npm ci
npm run build