Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[temp] Changes from 2.7.2.Final #159

Open
wants to merge 157 commits into
base: 2.7.2.Final
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
a02ed6a
[release] Provide documentation version metadata
jpechane Jul 17, 2023
a6b8c6d
[docs] Switch to stable docs
jpechane Dec 21, 2023
66347f3
DBZ-7266 Use column name instead of regular id for partitioning clause
ani-sha Jan 2, 2024
c64d0bf
DBZ-7298 Add service loader manifests for all Connect plugins
mimaison Jan 2, 2024
4456e5c
[docs] remove unnecessary context attribute from anchor
roldanbob Jan 4, 2024
3b095ca
DBZ-7098 Converting engine should honor unsupported tombstone flag
jpechane Jan 4, 2024
d187ab1
DBZ-7315 Introduce trimmed variant helpers
Naros Jan 4, 2024
69ed33d
DBZ-7315 Fix Oracle include/exclude lists with spaces
Naros Jan 4, 2024
e192136
DBZ-7311 Permits to execute a blocking snapshot even if snapshot.mode…
mfvitale Jan 4, 2024
48492c5
DBZ-7311 Use a more meaningful name for identify an on demand blockin…
mfvitale Jan 5, 2024
1775277
DBZ-7259 Solve Parser Issue in MySQL Create Procedure
ilyasahsan123 Jan 8, 2024
716a41a
[docs] Fix Notifications link
Naros Jan 10, 2024
27813e7
[docs] Add informix version bits
Naros Jan 10, 2024
f052639
[docs] Fix substitution issues
Naros Jan 10, 2024
5026424
[docs] Remove deprecated link to Embedding Debezium
Naros Jan 10, 2024
0e5c09f
DBZ-7312 On demand blocking snapshot will not set transaction snapshot
mfvitale Jan 11, 2024
a1ae8de
DBZ-7316 Send heartbeats while searching for WAL position
james-johnston-thumbtack Jan 16, 2024
fce42bc
DBZ-7316 Formatting and cotnributor
jpechane Jan 16, 2024
54bdb92
DBZ-7347 use identifiers for initial snapshot notifications
wukachn Jan 12, 2024
0bb5fc9
DBZ-7347 Update notification tests.
wukachn Jan 15, 2024
86b91db
DBZ-7340 Upgrade Groovy and GraalJS to the latest 2023 version
jpechane Jan 16, 2024
0eb5d4b
DBZ-7345 Oracle log de-dupe on sequence and redo thread
Naros Jan 15, 2024
61638a5
DBZ-7345 Use equality check instead
Naros Jan 16, 2024
dfb422c
DBZ-7358 Use relational table primary key by default
Naros Jan 16, 2024
2b8d7e5
DBZ-7366 use withMaskedPasswords()
koneru9999 Jan 19, 2024
5a18948
DBZ-7362 modify db2 docs that add DECFLOAT datatype mapping
leoloel Jan 25, 2024
1df224d
DBZ-7362 Remove invalid DECFLOAT mapping
jpechane Jan 25, 2024
ddf1f80
DBZ-7360 Resolve DDL Parser in Oracle Alter Table
ilyasahsan123 Jan 26, 2024
236ff37
DBZ-7360 Resolve DDL Parser in Oracle Alter Table
ilyasahsan123 Jan 26, 2024
f872456
DBZ-7299 Ability to use post images for full document update
jcechace Jan 25, 2024
cab4843
DBZ-7299 Test coverage for lookup and post-image full updates
jcechace Jan 25, 2024
9d5c3db
DBZ-7374 Fix parsing NULL as the default value for SQL server (Unicod…
iankko Jan 24, 2024
9504b00
[release] Set to 2.5.0-SNAPSHOT
jpechane Jan 30, 2024
24a2dfb
[release] Changelog for 2.5.1.Final
jpechane Jan 30, 2024
a25f469
[release] Stable 2.5.1.Final for testing module deps
debezium-builder Jan 30, 2024
493e1e2
[maven-release-plugin] prepare release v2.5.1.Final
debezium-builder Jan 30, 2024
ac1b0b6
[maven-release-plugin] prepare for next development iteration
debezium-builder Jan 30, 2024
0345317
[release] Development version for testing module deps
debezium-builder Jan 30, 2024
abd92a1
DBZ-7431 Document JDBC connector sink option `connection.provider`
Naros Jan 30, 2024
19d5c90
DBZ-7421 Improve incremental snapshot performance with increasing num…
mfvitale Jan 29, 2024
71e48e5
DBZ-7421 Encapsulate data collection queue and its json version into …
mfvitale Jan 29, 2024
8d991a2
DBZ-7421 Change access modifier for SnapshotDataCollection to private
mfvitale Jan 30, 2024
59bdd2b
DBZ-7429 Resolve primary key values from after struct
Naros Jan 30, 2024
3397a52
DBZ-7379 Ability to use connector specific keystore/truststore
jcechace Jan 31, 2024
ef6cbbb
DBZ-7442 Upgrade protobuf to 3.25.2
jpechane Feb 2, 2024
bcf87ff
DBZ-7436 Add empty statistics for SingleDuration to avoid NPE
mfvitale Feb 1, 2024
6e9a8ab
DBZ-7443 Correct debezium.sink.pubsub.flowcontrol variables
CliffordCheefoon Feb 3, 2024
3d1a1e8
DBZ-7441 Postpone SignalProcessor start after streaming is initialized
mfvitale Feb 2, 2024
dc18a48
DBZ-7445 LogMiner batch size does not increase automatically
jchipmunk Feb 4, 2024
e9f887c
DBZ-7425 Use adapter-specific offset loaders when copying offsets
Naros Feb 5, 2024
188be0e
DBZ-7460 [docs] The expected value pattern for table.include.list doe…
nrkljo Feb 9, 2024
d6ec0e8
DBZ-7467 Fix missing signaling actions
mfvitale Feb 9, 2024
15c40d0
DBZ-7468 Support parsing MariaDB `SYSTEM VERSIONING` DDL
Naros Feb 9, 2024
8f57d14
DBZ-7456 Skip PK change LOB column reselect if column is excluded
Naros Feb 8, 2024
84393cb
[ci] Fix Oracle test workflow worker space failure
Naros Feb 9, 2024
a31ef5f
DBZ-7440 Fix link/link text in shared deployment file Addl resource list
roldanbob Feb 8, 2024
48654ae
DBZ-7440 Update link target for Streams monitoring docs
roldanbob Feb 8, 2024
f09d20f
DBZ-7440 Retarget Streams Deployment guide links to Deploy/Manage guide
roldanbob Feb 9, 2024
27a922b
DBZ-7440 Point links to Streams Deploy/Manage vs Deploy guide (MongoDB)
roldanbob Feb 9, 2024
665d900
DBZ-7440 Removes closing square bracket after attribute reference
roldanbob Feb 9, 2024
2721344
DBZ-7440 Corrects internal xref and link to Streams Deploy/Manage guide
roldanbob Feb 9, 2024
d8ec775
DBZ-7440 Applies link fixes from `main` to `2.5`
roldanbob Feb 9, 2024
1416bb7
DBZ-7440 Missed commit from cherry-pick
roldanbob Feb 12, 2024
93e5d25
DBZ-7440 Applies commits omitted from #5255
roldanbob Feb 12, 2024
840647c
DBZ-7440 Link fixes from c7dee74 that were omitted cherrypick from main
roldanbob Feb 9, 2024
b7c17c9
DBZ-7418 Apply correct formatting to title of JDBC config settings table
roldanbob Feb 14, 2024
a29158c
DBZ-7418 Adjust formatting to fix callout descriptions table rendering
roldanbob Feb 13, 2024
fd2f197
DBZ-7418 Adds Db2, Informix, & Oracle to list of supported connectors
roldanbob Feb 6, 2024
54e9f66
DBZ-7418 Updates title of callout table to designate `update` event type
roldanbob Feb 13, 2024
64a34dd
DBZ-7418 Fix typo
roldanbob Feb 13, 2024
a296e11
DBZ-7418 Adjust formatting to fix callout descriptions table rendering
roldanbob Feb 13, 2024
c58ab2c
DBZ-7418 Remove references that imply downstream support for CloudEvents
roldanbob Feb 13, 2024
09f40d7
DBZ-7418 Fix formatting to subordinate callout table to example block
roldanbob Feb 13, 2024
2b8b04c
DBZ-7418 Converts format of example callouts to a table
roldanbob Feb 5, 2024
25103e2
DBZ-7418 Convert callouts for CloudEvents example to table format
roldanbob Feb 5, 2024
f85f966
DBZ-7418 Formats callout list in `jdbc.adoc` as table
roldanbob Feb 5, 2024
b03912c
DBZ-7418 Repeated callouts after `log4j.properties` example
roldanbob Feb 14, 2024
fc15da6
DBZ-7418 Correct formatting errors
roldanbob Feb 14, 2024
d43883b
DBZ-7418 Removes duplicate callout annotation from example
roldanbob Feb 15, 2024
352b844
DBZ-7488 Skip re-selection on `r` (read) events
Naros Feb 15, 2024
eb88775
DBZ-7488 Keep assertion and switch expected result
jpechane Feb 16, 2024
9854157
DBZ-7489 Correctly parse XML preamble SQL ending with "IS NULL"
Naros Feb 15, 2024
306a7bf
DBZ-7489 Correctly handle setting XML field to "NULL"
Naros Feb 15, 2024
fbc4dec
DBZ-7418 Converts 2.3 cloudevents callout list to table to fix rendering
roldanbob Feb 16, 2024
e7df8a2
DBZ-7418 Assign unique name to callout table
roldanbob Feb 16, 2024
5d63bb9
DBZ-7479 PreparedStatement leak in Oracle ReselectColumnsProcessor
jchipmunk Feb 12, 2024
b091a3f
DBZ-7479 Refactor code to support re-selection without flashback
jchipmunk Feb 15, 2024
e835890
DBZ-7487 Document enablement of MariaDB mode
Naros Feb 17, 2024
df8243c
DBZ-7500 Fix MySQL 8 event timestamp resolution logic error where fal…
methodmissing Feb 16, 2024
52ac350
DBZ-7500 Fallback to seconds resolution for MariaDB as high resolutio…
methodmissing Feb 17, 2024
e8ad7c5
DBZ-7500 prefer a more concise and self documenting version of setEve…
methodmissing Feb 17, 2024
8aebbb6
DBZ-6679 Only advance LogMiner start position when query has data
Naros Feb 18, 2024
396d800
DBZ-7516 Correctly enable table CDC to avoid failures
Naros Feb 20, 2024
2c68951
DBZ-7521 Promote JDBC sink from Incubating
Naros Feb 20, 2024
c0071c1
DBZ-7520 Upgrade commons-commpress to 1.26.0
jpechane Feb 20, 2024
baa760d
DBZ-7418 Fix more callout descriptions in CloudEvents doc
roldanbob Feb 21, 2024
570b826
DBZ-7418 Converts remaining lists of callout descriptions to tables
roldanbob Feb 21, 2024
effdc3d
DBZ-6236 Reset ErrorHandler retry counter on successful poll
Naros Feb 16, 2024
f7cdb39
DBZ-6236 Fix test failures
Naros Feb 19, 2024
171f334
DBZ-7567 Fix null event timestamp possible from FORMAT_DESCRIPTION an…
methodmissing Feb 27, 2024
4a48069
[release] Changelog for 2.5.2.Final
jpechane Feb 27, 2024
837b4af
[release] Stable 2.5.2.Final for testing module deps
debezium-builder Feb 27, 2024
5b9ee36
[maven-release-plugin] prepare release v2.5.2.Final
debezium-builder Feb 27, 2024
25fa5ec
[DBZ-PGYB] Initial commit to for PG connector parity (#104)
vaibhav-yb Mar 18, 2024
66e66fc
[DBZ-PGYB][yugabyte/yugabyte-db#21394] Test changes for working again…
vaibhav-yb Mar 20, 2024
073a9ac
[DBZ-PGYB] Debug Logging related to txn messages (#108)
asrinivasanyb Mar 28, 2024
ba81a5e
[DBZ-PGYB] Modified Dockerfile to package custom log4j.properties (#111)
vaibhav-yb Apr 22, 2024
e7990ab
[DBZ-PGYB] Add aiven transformers to docker build (#109)
vaibhav-yb Apr 22, 2024
8c4ee44
[DBZ-PGYB] Use YugabyteDB smart driver instead of vanilla Postgres JD…
vaibhav-yb Apr 24, 2024
d1f6ede
[DBZ-PGYB] Package AvroConverter while creating docker builds (#112)
vaibhav-yb Apr 30, 2024
c8e3fa4
[DBZ-PGYB] Support for consistent snapshot for an existing slot (#113)
asrinivasanyb Apr 30, 2024
939b263
[DBZ-PGYB] Modify MBean regex to scrape proper metrics (#110)
vaibhav-yb May 3, 2024
f3c9496
Consistent snapshot on YugabyteDB by a connector user who is not a su…
asrinivasanyb May 6, 2024
50b082e
[DBZ-PGYB] Higher level retry for failures while starting PostgresCon…
vaibhav-yb May 7, 2024
834657a
Wait for snapshot completion acknowledgement before transitioning to …
siddharth2411 May 8, 2024
9ec0863
[DBZ-PGYB][#21425] Support for INITIAL_ONLY snapshot mode for Yugabyt…
asrinivasanyb May 10, 2024
b2d27bc
[DBZ-PGYB] Add dependencies for Avro converter while packaging docker…
vaibhav-yb May 14, 2024
70cf8f0
[DBZ-PGYB] Logging the IP of node upon a new connection (#117)
vaibhav-yb May 14, 2024
b908e58
Retry in case of failures while task is restarting (#121)
suranjan May 17, 2024
ab3aadd
[DBZ-PGYB][#21312] Enable 30/33 Incremental snapshot tests for Yugaby…
asrinivasanyb May 20, 2024
1c55b0d
[DBZ-PGYB] Do not create extensions during test startup (#123)
vaibhav-yb May 20, 2024
2222884
Revert "Retry in case of failures while task is restarting (#121)" (#…
suranjan May 20, 2024
17aa8a3
Throw RetriableException in case of all exception (#125)
suranjan May 20, 2024
d720158
[DBZ-PGYB] Get the latest custom JDBC sink image while building docke…
vaibhav-yb Jun 3, 2024
ce4c243
Disable records filtering when 'provide.transaction.metadata' config …
siddharth2411 Jun 7, 2024
48da614
[DBZ-PGYB] Add GitHub actions to automate workflows (#126)
vaibhav-yb Jun 25, 2024
37cd4d8
[DBZ-PGYB][yugabyte/yugabyte-db#21591] Support to process update reco…
vaibhav-yb Jun 25, 2024
5e7b940
[DBZ-PGYB] Add config to control YB consistent snapshot (#132)
vaibhav-yb Jun 25, 2024
8f03a46
[DBZ-PGYB] Enable the disabled replica identity related tests (#128)
vaibhav-yb Jun 25, 2024
9890544
[DBZ-PGYB] Changes to support all operations with all replica identit…
vaibhav-yb Jun 25, 2024
338ce30
[DBZ-PGYB] Update link to download latest sink connector jar (#133)
vaibhav-yb Jun 25, 2024
e41b21a
[DBZ-PGYB] Add load-balance property to multi host url pattern (#135)
Sumukh-Phalgaonkar Jul 1, 2024
d3fb9c7
Fix log statement (#138)
siddharth2411 Jul 4, 2024
dfa24c4
Fix log statement wihile skipping empty transactions (#139)
siddharth2411 Jul 8, 2024
eadea29
[DBZ-PGYB][yugabyte/yugabyte-db#23153] Change default plugin to ybout…
vaibhav-yb Jul 9, 2024
9f505a3
[DBZ-PGYB][yugabyte/yugabyte-db#23081] Change versioning schema to fo…
vaibhav-yb Jul 12, 2024
3f5aec5
[DBZ-PGYB][yugabyte/yugabyte-db#23081] Renamed connector to new namin…
vaibhav-yb Jul 12, 2024
bef328a
[DBZ-PGYB][yugabyte/yugabyte-db#23082] Remove dependency on custom de…
vaibhav-yb Jul 12, 2024
31cc378
[DBZ-PGYB] Fixed flakiness for the tests in PostgresConnectorIT (#143)
vaibhav-yb Jul 12, 2024
99ab8a4
[DBZ-PGYB] Add new test class `YBRecordsStreamProducerIT` to add test…
vaibhav-yb Jul 12, 2024
dd886b2
[DBZ-PGYB] Enable more test classes in the PG connector test suite (#…
vaibhav-yb Jul 15, 2024
503bf93
[DBZ-PGYB] Rename jar artefact according to new naming standards (#146)
vaibhav-yb Jul 29, 2024
d94c5e9
[DBZ-PGYB] Non-key columns should always be optional for replica iden…
vaibhav-yb Jul 29, 2024
a6dc1c4
[DBZ-PGYB] Fix vulnerability in the Postgres JDBC driver (#148)
vaibhav-yb Jul 29, 2024
e36efc3
[DBZ-PGYB] GitHub action pipeline to publish to Quay (#145)
vaibhav-yb Jul 29, 2024
b02227c
[DBZ-PGYB] Dockerfile fix to package proper artefact (#149)
vaibhav-yb Jul 30, 2024
7b5b547
[DBZ-PGYB] Add tests to enhance test suite for YugabyteDBConnector (#…
vaibhav-yb Aug 5, 2024
6a7e5d7
[DBZ-PGYB] Fixed bug resulting a `0` value in case of `pgoutput` (#151)
vaibhav-yb Aug 6, 2024
e4746ba
[DBZ-PGYB] Decimal handling mode precise should throw exception (#155)
vaibhav-yb Aug 7, 2024
de8de43
[DB-PGYB] Test addition for updating columns of all data types (#154)
vaibhav-yb Aug 7, 2024
16ead43
[DBZ-PGYB] Modify GitHub Action to publish to set proper versions (#156)
vaibhav-yb Aug 8, 2024
4e26b3b
resolved merge conflicts with main with 1 remaining conflict in Postg…
vaibhav-yb Sep 11, 2024
aaa70aa
added new files
vaibhav-yb Sep 11, 2024
6bf8d7c
changed
vaibhav-yb Sep 12, 2024
dda6772
compilation successful
vaibhav-yb Sep 13, 2024
b55f1cd
checked out files from 2.7.2.Final branch
vaibhav-yb Sep 13, 2024
c021d3f
resolved merge conflicts
vaibhav-yb Sep 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/workflows/yb-pg-parity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: YugabyteDB PG parity sanity

on:
push:
branches:
- ybdb-debezium-2.5.2
pull_request:
branches:
- ybdb-debezium-2.5.2

jobs:
build:
name: "Build PG connector"
runs-on: ubuntu-latest
steps:
- name: Checkout Action
uses: actions/checkout@v4

- name: Set up Java 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17

- name: Download dependencies
run: ./mvnw clean install -Dquick -pl debezium-connector-postgres -am
77 changes: 77 additions & 0 deletions .github/workflows/yb-release-quay.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Publish YugabyteDBConnector

on:
workflow_dispatch:
inputs:
version:
description: "Version of the connector to be released"
required: true
type: string
isSnapshotBuild:
description: "Snapshot build?"
required: true
type: boolean
default: true

permissions: write-all

jobs:
build:
name: "Publish YugabyteDBConnector"
runs-on: ubuntu-latest
steps:
- name: Checkout Action
uses: actions/checkout@v4

- name: Set up Java 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17

- name: Set version for release
run: ./mvnw versions:set -DnewVersion=${{ inputs.version }}

- name: Compile jar file
run: ./mvnw clean install -Dquick -pl debezium-connector-postgres -am
- name: Login to Quay.io
uses: docker/login-action@v2
with:
registry: quay.io
username: ${{ secrets.QUAY_BOT_USERNAME }}
password: ${{ secrets.QUAY_BOT_TOKEN }}
- name: Build docker image
run: docker build . -t quay.io/yugabyte/ybdb-debezium:${{ inputs.version }} --platform linux/amd64
- name: Push image to Quay
run: docker push quay.io/yugabyte/ybdb-debezium:${{ inputs.version }}
- name: Create GitHub release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ inputs.version }}
release_name: Release ${{ inputs.version }}
draft: true
prerelease: ${{ inputs.isSnapshotBuild }}
- name: Upload fat jar to GitHub release
id: upload-release-asset-fat-jar
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./debezium-connector-postgres/target/debezium-connector-yugabytedb-${{ inputs.version }}-jar-with-dependencies.jar
asset_name: debezium-connector-yugabytedb-${{ inputs.version }}-jar-with-dependencies.jar
asset_content_type: application/java-archive
# Commenting the code to upload a light jar for the time being.
# - name: Upload fat jar to GitHub release
# id: upload-release-asset-jar
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: ./debezium-connector-postgresql/target/debezium-connector-postgres-*.jar
# asset_name: debezium-connector-postgresql-${{ inputs.version }}.jar
# asset_content_type: application/java-archive
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -692,6 +692,11 @@ January 18th 2024 [Detailed release notes](https://issues.redhat.com/secure/Rele

### Fixes since 2.5.0.Final

* Connector is getting stopped while processing bulk update(50k) records in debezium server 2.0.1.Final [DBZ-6955](https://issues.redhat.com/browse/DBZ-6955)
* Empty object sent to GCP Pub/Sub after DELETE event [DBZ-7098](https://issues.redhat.com/browse/DBZ-7098)
* Enhance Oracle's CREATE TABLE for Multiple Table Specifications [DBZ-7286](https://issues.redhat.com/browse/DBZ-7286)
* PostgreSQL ad-hoc blocking snapshots fail when snapshot mode is "never" [DBZ-7311](https://issues.redhat.com/browse/DBZ-7311)
* Ad-hoc blocking snapshot dies with "invalid snapshot identifier" immediately after connector creation [DBZ-7312](https://issues.redhat.com/browse/DBZ-7312)
* Empty object sent to GCP Pub/Sub after DELETE event [DBZ-7098](https://issues.redhat.com/browse/DBZ-7098)
* Debezium-ddl-parser crashes on parsing MySQL DDL statement (subquery with UNION) [DBZ-7259](https://issues.redhat.com/browse/DBZ-7259)
* Oracle DDL parsing error in PARTITION REFERENCE [DBZ-7266](https://issues.redhat.com/browse/DBZ-7266)
Expand Down
1 change: 1 addition & 0 deletions COPYRIGHT.txt
Original file line number Diff line number Diff line change
Expand Up @@ -494,6 +494,7 @@ Shuran Zhang
SiuFay
Siddhant Agnihotry
Stanley Shyiko
Stavros Champilomatis
Stathis Souris
Stavros Champilomatis
Stefan Miklosovic
Expand Down
71 changes: 71 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# On your terminal, run the following to build the image:
# mvn clean package -Dquick

FROM debezium/connect:2.5.2.Final

WORKDIR $KAFKA_CONNECT_PLUGINS_DIR
RUN rm -f debezium-connector-postgres/debezium-connector-postgres-*.jar
RUN rm -rf debezium-connector-db2
RUN rm -rf debezium-connector-informix
RUN rm -rf debezium-connector-mongodb
RUN rm -rf debezium-connector-jdbc
RUN rm -rf debezium-connector-mysql
RUN rm -rf debezium-connector-oracle
RUN rm -rf debezium-connector-spanner
RUN rm -rf debezium-connector-sqlserver
RUN rm -rf debezium-connector-vitess
WORKDIR /

# Copy the Debezium Connector for Postgres adapted for YugabyteDB
COPY debezium-connector-postgres/target/debezium-connector-yugabytedb-*.jar $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-postgres

# Set the TLS version to be used by Kafka processes
ENV KAFKA_OPTS="-Djdk.tls.client.protocols=TLSv1.2 -javaagent:/kafka/etc/jmx_prometheus_javaagent-0.17.2.jar=8080:/kafka/etc/jmx-exporter/metrics.yml"

# Package all the Avro related jar files
RUN mkdir -p $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-postgres/avro-supporting-jars/
WORKDIR $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-postgres/avro-supporting-jars
RUN curl -sLo kafka-connect-avro-converter-7.5.3.jar https://packages.confluent.io/maven/io/confluent/kafka-connect-avro-converter/7.5.3/kafka-connect-avro-converter-7.5.3.jar
RUN curl -sLo kafka-connect-avro-data-7.5.3.jar https://packages.confluent.io/maven/io/confluent/kafka-connect-avro-data/7.5.3/kafka-connect-avro-data-7.5.3.jar
RUN curl -sLo kafka-avro-serializer-7.5.3.jar https://packages.confluent.io/maven/io/confluent/kafka-avro-serializer/7.5.3/kafka-avro-serializer-7.5.3.jar
RUN curl -sLo kafka-schema-serializer-7.5.3.jar https://packages.confluent.io/maven/io/confluent/kafka-schema-serializer/7.5.3/kafka-schema-serializer-7.5.3.jar
RUN curl -sLo kafka-schema-converter-7.5.3.jar https://packages.confluent.io/maven/io/confluent/kafka-schema-converter/7.5.3/kafka-schema-converter-7.5.3.jar
RUN curl -sLo kafka-schema-registry-client-7.5.3.jar https://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/7.5.3/kafka-schema-registry-client-7.5.3.jar
RUN curl -sLo common-config-7.5.3.jar https://packages.confluent.io/maven/io/confluent/common-config/7.5.3/common-config-7.5.3.jar
RUN curl -sLo common-utils-7.5.3.jar https://packages.confluent.io/maven/io/confluent/common-utils/7.5.3/common-utils-7.5.3.jar

RUN curl -sLo avro-1.11.3.jar https://repo1.maven.org/maven2/org/apache/avro/avro/1.11.3/avro-1.11.3.jar
RUN curl -sLo commons-compress-1.21.jar https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.21/commons-compress-1.21.jar
RUN curl -sLo failureaccess-1.0.jar https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0/failureaccess-1.0.jar
RUN curl -sLo guava-33.0.0-jre.jar https://repo1.maven.org/maven2/com/google/guava/guava/33.0.0-jre/guava-33.0.0-jre.jar
RUN curl -sLo minimal-json-0.9.5.jar https://repo1.maven.org/maven2/com/eclipsesource/minimal-json/minimal-json/0.9.5/minimal-json-0.9.5.jar
RUN curl -sLo re2j-1.6.jar https://repo1.maven.org/maven2/com/google/re2j/re2j/1.6/re2j-1.6.jar
RUN curl -sLo slf4j-api-1.7.36.jar https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar
RUN curl -sLo snakeyaml-2.0.jar https://repo1.maven.org/maven2/org/yaml/snakeyaml/2.0/snakeyaml-2.0.jar
RUN curl -sLo swagger-annotations-2.1.10.jar https://repo1.maven.org/maven2/io/swagger/core/v3/swagger-annotations/2.1.10/swagger-annotations-2.1.10.jar
RUN curl -sLo jackson-databind-2.14.2.jar https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.14.2/jackson-databind-2.14.2.jar
RUN curl -sLo jackson-core-2.14.2.jar https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.14.2/jackson-core-2.14.2.jar
RUN curl -sLo jackson-annotations-2.14.2.jar https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.14.2/jackson-annotations-2.14.2.jar
RUN curl -sLo jackson-dataformat-csv-2.14.2.jar https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-csv/2.14.2/jackson-dataformat-csv-2.14.2.jar
RUN curl -sLo logredactor-1.0.12.jar https://repo1.maven.org/maven2/io/confluent/logredactor/1.0.12/logredactor-1.0.12.jar
RUN curl -sLo logredactor-metrics-1.0.12.jar https://repo1.maven.org/maven2/io/confluent/logredactor-metrics/1.0.12/logredactor-metrics-1.0.12.jar
WORKDIR /

# Add the required jar files to be packaged with the base connector
RUN cd $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-postgres && curl -sLo kafka-connect-jdbc-10.6.5-CUSTOM.7.jar https://github.com/yugabyte/kafka-connect-jdbc/releases/download/10.6.5-CUSTOM.7/kafka-connect-jdbc-10.6.5-CUSTOM.7.jar
RUN cd $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-postgres && curl -sLo jdbc-yugabytedb-42.3.5-yb-1.jar https://repo1.maven.org/maven2/com/yugabyte/jdbc-yugabytedb/42.3.5-yb-1/jdbc-yugabytedb-42.3.5-yb-1.jar
RUN cd $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-postgres && curl -sLo transforms-for-apache-kafka-connect-1.5.0.zip https://github.com/Aiven-Open/transforms-for-apache-kafka-connect/releases/download/v1.5.0/transforms-for-apache-kafka-connect-1.5.0.zip
RUN cd $KAFKA_CONNECT_PLUGINS_DIR/debezium-connector-postgres && unzip transforms-for-apache-kafka-connect-1.5.0.zip

# Add Jmx agent and metrics pattern file to expose the metrics info
RUN mkdir /kafka/etc && cd /kafka/etc && curl -so jmx_prometheus_javaagent-0.17.2.jar https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.17.2/jmx_prometheus_javaagent-0.17.2.jar

COPY metrics.yml /kafka/etc/jmx-exporter/

ENV CLASSPATH=$KAFKA_HOME
ENV JMXHOST=localhost
ENV JMXPORT=1976

# properties file having instructions to roll over log files in case the size exceeds a given limit
COPY log4j.properties $KAFKA_HOME/config/log4j.properties

18 changes: 18 additions & 0 deletions debezium-connector-postgres/YB_DEV_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# YugabyteDB Development Instructions

## Compiling code

Since the smart driver changes require us to build the debezium core as well, build can be completed using:

```bash
./mvnw clean install -Passembly -DskipITs -DskipTests -pl debezium-connector-postgres -am
```

## Running tests

1. Compile PG connector code from the root directory with the above command.
2. Start YugabyteDB instance using `yugabyted`:
```bash
./bin/yugabyted start --ui=false --advertise_address=127.0.0.1 --master_flags="ysql_cdc_active_replication_slot_window_ms=0" --tserver_flags="allowed_preview_flags_csv={cdcsdk_enable_dynamic_table_support},cdcsdk_enable_dynamic_table_support=true,cdcsdk_publication_list_refresh_interval_secs=3,ysql_cdc_active_replication_slot_window_ms=0,ysql_sequence_cache_method=server"
```
3. Run tests
46 changes: 35 additions & 11 deletions debezium-connector-postgres/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,25 @@
<relativePath>../debezium-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>debezium-connector-postgres</artifactId>
<name>Debezium Connector for PostgreSQL</name>
<artifactId>debezium-connector-yugabytedb</artifactId>
<name>YugabyteDB Source Connector</name>
<packaging>jar</packaging>
<properties>
<!--
Specify the properties that will be used for setting up the integration tests' Docker container.
Note that the `dockerhost.ip` property is computed from the IP address of DOCKER_HOST, which will
work on all platforms. We'll set some of these as system properties during integration testing.
-->
<version.postgres.server>12</version.postgres.server>
<postgres.host>${docker.host.address}</postgres.host>
<postgres.port>5432</postgres.port>
<postgres.user>postgres</postgres.user>
<postgres.password>postgres</postgres.password>
<postgres.db.name>postgres</postgres.db.name>
<version.postgres.server>10</version.postgres.server>
<postgres.host>127.0.0.1</postgres.host>
<postgres.port>5433</postgres.port>
<postgres.user>yugabyte</postgres.user>
<postgres.password>yugabyte</postgres.password>
<postgres.db.name>yugabyte</postgres.db.name>
<postgres.encoding>UTF8</postgres.encoding>
<postgres.system.lang>en_US.utf8</postgres.system.lang>
<postgres.image>quay.io/debezium/postgres:${version.postgres.server}</postgres.image>
<postgres.config.file>/usr/share/postgresql/postgresql.conf.sample</postgres.config.file>
<!-- <postgres.image>quay.io/debezium/postgres:${version.postgres.server}</postgres.image>-->
<!-- <postgres.config.file>/usr/share/postgresql/postgresql.conf.sample</postgres.config.file>-->
<docker.skip>false</docker.skip>
<docker.showLogs>true</docker.showLogs>
<docker.initimage>ln -fs /usr/share/zoneinfo/US/Samoa /etc/localtime &amp;&amp; echo timezone=US/Samoa &gt;&gt; ${postgres.config.file}</docker.initimage>
Expand All @@ -51,6 +51,11 @@
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>com.yugabyte</groupId>
<artifactId>jdbc-yugabytedb</artifactId>
<version>42.3.5-yb-4</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
Expand Down Expand Up @@ -161,6 +166,25 @@

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>assemble-all</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
Expand Down Expand Up @@ -201,7 +225,7 @@
<LANG>${postgres.system.lang}</LANG>
</env>
<ports>
<port>${postgres.port}:5432</port>
<port>${postgres.port}:5433</port>
</ports>
<log>
<prefix>postgres</prefix>
Expand Down
Loading
Loading