Commit Graph

370 Commits

Author SHA1 Message Date
Gunnar Morling
2f6a61002e DBZ-1970 Moving asType() method from builder to separate factory contract, as they are not meant to be called by users. 2020-05-06 14:33:37 +02:00
Gunnar Morling
ab1d4bb1cd DBZ-1970 Making change event API more consistent and uniform 2020-05-06 14:33:37 +02:00
Jiri Pechanec
d82307c331 DBZ-1970 Support for separate key/value embedded converter 2020-05-06 14:33:37 +02:00
Gunnar Morling
3d0606b348 DBZ-2027 Small speed-up of PG test execution;
* Using Awaitility so we can use 100ms looping intervals; also it's more concise
* Avoiding creation of one temporary connection
2020-04-29 09:56:59 +02:00
Debezium Builder
4ca9f92575 [maven-release-plugin] prepare for next development iteration 2020-04-16 02:22:00 -04:00
Debezium Builder
e704bccdaa [maven-release-plugin] prepare release v1.2.0.Alpha1 2020-04-16 02:22:00 -04:00
Gunnar Morling
659d4a415b DBZ-1807 Misc. adjustments;
* Adding @TestFor annotations
* Change -> ChangeEvent
2020-04-15 16:29:29 +02:00
Jiri Pechanec
c0914b245b DBZ-1807 Support for CloudEvents converter 2020-04-15 16:29:29 +02:00
Jiri Pechanec
c06707f4c5 DBZ-1807 Support for Avro converters 2020-04-15 16:29:29 +02:00
Jiri Pechanec
4e2ac367a9 DBZ-1807 Support for JSON Converter 2020-04-15 16:29:29 +02:00
Gunnar Morling
98236eba89 DBZ-1930 Misc. clean-up 2020-04-07 10:48:28 +02:00
Jiri Pechanec
757ecf596e DBZ-1930 Change logger to static 2020-04-07 10:48:28 +02:00
Jiri Pechanec
36778313f2 DBZ-1930 Test invalid config and filtering 2020-04-07 10:48:28 +02:00
Jiri Pechanec
2c1e51b657 DBZ-1930 Support for SMTs in embedded engine 2020-04-07 10:48:28 +02:00
Debezium Builder
ab54ce062f [maven-release-plugin] prepare for next development iteration 2020-03-24 01:23:05 -04:00
Debezium Builder
0b5a9117fb [maven-release-plugin] prepare release v1.1.0.Final 2020-03-24 01:23:05 -04:00
Jiri Pechanec
32b6a8cb3c DBZ-1889 Use parker 2020-03-23 13:56:29 +01:00
Jiri Pechanec
224f97e380 DBZ-1857 Support for autorestart for embedded engine 2020-03-23 13:56:29 +01:00
Debezium Builder
86c1ed90ed [maven-release-plugin] prepare for next development iteration 2020-03-11 09:54:44 -04:00
Debezium Builder
062c6abbe5 [maven-release-plugin] prepare release v1.1.0.CR1 2020-03-11 09:54:44 -04:00
Chris Cranford
5506fadd2d DBZ-1664 Verify correctness of JMX metrics 2020-03-09 23:30:24 +01:00
Jiri Pechanec
f203af29de DBZ-234 Support try with resource for engine 2020-02-28 15:00:12 +01:00
Jiri Pechanec
06858f4023 DBZ-234 Provide return type indirectly 2020-02-25 15:31:10 +01:00
Jiri Pechanec
8ef4245073 DBZ-234 Mark deprecated code 2020-02-25 15:31:10 +01:00
Jiri Pechanec
3ce0aea457 DBZ-234 Move exceptions out of separate package 2020-02-25 15:31:10 +01:00
Jiri Pechanec
38df24a76b DBZ-234 Create API module with engine API 2020-02-25 15:31:10 +01:00
Debezium Builder
f75746fb7b [maven-release-plugin] prepare for next development iteration 2020-02-13 03:18:20 -05:00
Debezium Builder
1d2df32743 [maven-release-plugin] prepare release v1.1.0.Beta2 2020-02-13 03:18:20 -05:00
Debezium Builder
9c424b2404 [maven-release-plugin] prepare for next development iteration 2020-02-05 08:54:52 -05:00
Debezium Builder
9f2caa3b7c [maven-release-plugin] prepare release v1.1.0.Beta1 2020-02-05 08:54:52 -05:00
Jiri Pechanec
0e671d6167 DBZ-1052 Add counts per table to END 2020-02-03 09:29:10 +01:00
Jiri Pechanec
60056b0a94 DBZ-1052 Transaction block moved to envelope 2020-02-03 09:29:10 +01:00
Jiri Pechanec
cd6a1f942d DBZ-1052 Transaction metadata for Postgres/pgoutput 2020-02-03 09:29:10 +01:00
Debezium Builder
274bba9dc9 [maven-release-plugin] prepare for next development iteration 2020-01-16 05:40:24 -05:00
Debezium Builder
076df30108 [maven-release-plugin] prepare release v1.1.0.Alpha1 2020-01-16 05:40:24 -05:00
Debezium Builder
9723c93db9 [maven-release-plugin] prepare for next development iteration 2019-12-18 01:44:33 -05:00
Debezium Builder
09049516f2 [maven-release-plugin] prepare release v1.0.0.Final 2019-12-18 01:44:33 -05:00
Jiri Pechanec
1de53607dc DBZ-824 Fix tests with invalid field names 2019-12-16 14:31:15 +01:00
Jiri Pechanec
6205f1d6ea DBZ-824 Assert serialization of every processed record 2019-12-16 14:31:15 +01:00
Debezium Builder
b1c62fe306 [maven-release-plugin] prepare for next development iteration 2019-12-10 06:39:17 -05:00
Debezium Builder
ad2efdb9a6 [maven-release-plugin] prepare release v1.0.0.CR1 2019-12-10 06:39:17 -05:00
Brandon Brown
a0f7f6ec6b DBZ-1402 Support for JDK 11 2019-11-25 11:53:19 +01:00
Debezium Builder
38279cc2dd [maven-release-plugin] prepare for next development iteration 2019-11-14 02:56:07 -05:00
Debezium Builder
868faf4412 [maven-release-plugin] prepare release v1.0.0.Beta3 2019-11-14 02:56:07 -05:00
Gunnar Morling
2c569977d7 DBZ-1392 Applying formatter;
* Keeping indentation formatting for JSON


Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
Co-authored-by: Chris Cranford <chris@hibernate.org>
2019-11-01 13:20:43 +02:00
Debezium Builder
b08f523ed7 [maven-release-plugin] prepare for next development iteration 2019-10-24 07:42:49 -04:00
Debezium Builder
8ecd9e28cf [maven-release-plugin] prepare release v1.0.0.Beta2 2019-10-24 07:42:49 -04:00
Debezium Builder
519dc011ff [maven-release-plugin] prepare for next development iteration 2019-10-17 04:20:13 -04:00
Debezium Builder
51ef6b9470 [maven-release-plugin] prepare release v1.0.0.Beta1 2019-10-17 04:20:12 -04:00
Jiri Pechanec
ae4b5d6764 DBZ-1401 Longer time to wait for records from new CDC tables 2019-10-10 09:37:52 +02:00
Gunnar Morling
92885ebe99 DBZ-1392 Removing trailing whitespace from Java files 2019-10-07 12:11:43 +03:00
Gunnar Morling
8d6f5409b1 DBZ-1392 Moving static imports up and applying this to all files 2019-10-07 12:11:43 +03:00
Chris Cranford
ca5517746a DBZ-1341 Checkstyle flag missing whitespace 2019-10-03 19:44:43 +02:00
Chris Cranford
5ac2318d84 DBZ-1391 Do not allow code after closing brace (#1065)
* DBZ-1391 Do not allow code after closing brace
2019-10-02 20:44:40 +02:00
Debezium Builder
2ff77b993b [maven-release-plugin] prepare for next development iteration 2019-10-01 15:34:23 -04:00
Debezium Builder
e09d584b11 [maven-release-plugin] prepare release v0.10.0.Final 2019-10-01 15:34:23 -04:00
Debezium Builder
2f5960c5d2 [maven-release-plugin] prepare for next development iteration 2019-09-27 01:03:50 -04:00
Debezium Builder
e3b44ffb12 [maven-release-plugin] prepare release v0.10.0.CR2 2019-09-27 01:03:50 -04:00
Chris Cranford
dc3f07d9d2 DBZ-1500 Fix race condition in mysql connector test suite 2019-09-25 08:02:42 +03:00
jerrinot
3064a4af06 DBZ-1438 Fix InterruptedException handling
It appears there is an intent to restore the interruption flag
when catching InterruptedException. However the old code was just
checking the current state of the flag instead of raising it.
2019-09-24 12:51:48 +02:00
Debezium Builder
9b7e09fdda [maven-release-plugin] prepare for next development iteration 2019-09-10 09:12:12 -04:00
Debezium Builder
a1c2861458 [maven-release-plugin] prepare release v0.10.0.CR1 2019-09-10 09:12:11 -04:00
Debezium Builder
4ae105bdce [maven-release-plugin] prepare for next development iteration 2019-08-16 03:42:55 -04:00
Debezium Builder
945ccf68cb [maven-release-plugin] prepare release v0.10.0.Beta4 2019-08-16 03:42:54 -04:00
Jiri Pechanec
ffb7e6d7d8 DBZ-777 Assertions against internal schema 2019-08-15 20:43:31 +02:00
Jiri Pechanec
f4246df6e4 DBZ-777 PostgreSQL connector rewrite to the standard framework 2019-08-15 20:43:31 +02:00
Jiri Pechanec
0742e5775f Revert "[maven-release-plugin] prepare release v0.10.0.Beta4"
This reverts commit c7340e5152.
2019-07-23 14:54:55 +02:00
Jiri Pechanec
f7d20635ce Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit 22879777e4.
2019-07-23 14:54:49 +02:00
Jiri Pechanec
22879777e4 [maven-release-plugin] prepare for next development iteration 2019-07-23 14:10:03 +02:00
Jiri Pechanec
c7340e5152 [maven-release-plugin] prepare release v0.10.0.Beta4 2019-07-23 14:10:02 +02:00
Debezium Builder
71333fda98 [maven-release-plugin] prepare for next development iteration 2019-07-23 02:55:08 -04:00
Debezium Builder
20d006fac7 [maven-release-plugin] prepare release v0.10.0.Beta3 2019-07-23 02:55:08 -04:00
Jiri Pechanec
7e03dbe87e DBZ-1362 Log test method executions 2019-06-28 05:41:02 +02:00
Jenkins user
e95d656bca [maven-release-plugin] prepare for next development iteration 2019-06-27 07:36:13 +00:00
Jenkins user
d95fd87311 [maven-release-plugin] prepare release v0.10.0.Beta2 2019-06-27 07:36:12 +00:00
Jenkins user
5fdb0ca81b [maven-release-plugin] prepare for next development iteration 2019-06-11 11:20:46 +00:00
Jenkins user
61729b9e00 [maven-release-plugin] prepare release v0.10.0.Beta1 2019-06-11 11:20:46 +00:00
Chris Cranford
0aadaa10dc DBZ-1242 Fixed typo and added negative test checks 2019-06-05 13:31:25 -04:00
Jenkins user
056730d06a [maven-release-plugin] prepare for next development iteration 2019-06-03 10:24:08 +00:00
Jenkins user
7aeaec236e [maven-release-plugin] prepare release v0.10.0.Alpha2 2019-06-03 10:24:08 +00:00
Jenkins user
ac5c76e431 [maven-release-plugin] prepare for next development iteration 2019-05-28 14:38:32 +00:00
Jenkins user
35f59ba460 [maven-release-plugin] prepare release v0.10.0.Alpha1 2019-05-28 14:38:32 +00:00
Jenkins user
7748be6056 [maven-release-plugin] prepare for next development iteration 2019-05-02 16:04:56 +00:00
Jenkins user
5af083b86e [maven-release-plugin] prepare release v0.9.5.Final 2019-05-02 16:04:55 +00:00
jcechace
74e7fc8325 [jenkins-jobs] Removed @Override annotation when implementing SourceTaskContext#configs(); for compatibility with Kafka 1.x APIs 2019-04-17 17:26:39 +02:00
Jenkins user
cefc5ccfb9 [maven-release-plugin] prepare for next development iteration 2019-04-11 12:07:16 +00:00
Jenkins user
fc3026adc3 [maven-release-plugin] prepare release v0.9.4.Final 2019-04-11 12:07:15 +00:00
jchipmunk
7c0ae3ee20 DBZ-1212 SLF4J usage issues 2019-04-04 21:32:12 +02:00
ShubhamRwt
540a951211 DBZ- 362 Adding WhitespaceAfter check to Checkstyle 2019-03-28 09:24:11 +01:00
Jenkins user
8b0edd1871 [maven-release-plugin] prepare for next development iteration 2019-03-25 12:16:31 +00:00
Jenkins user
56f98a48b2 [maven-release-plugin] prepare release v0.9.3.Final 2019-03-25 12:16:30 +00:00
shubham
8cca21e969 DBZ-1039 Make all ifs with braces 2019-03-25 10:23:14 +01:00
Addison Higham
8e21139ca3 DBZ-1082 Add new custom recovery mode, more metadata
This commit does a few things:

- Refactors snapshot modes to be encapsulated by an interface and
to only use that interface in determining when to snapshot and in
determing the type of the `RecordProducer` interface to instantiate
- Refactors the configuration of existing snapshot modes to tie the
existing snapshot modes to their aligned implementation
- Adds a new snapshot.mode, custom, and a new configuration option to
specify a custom implementation that will be loaded by the class loader
- Changes the visibility of some classes to allow for custom snapshot
modes to get enough context to make an informed choice
- Adds some metadata about slots (the catalog_xmin) to give a full idea
of the state of slots which can be useful in implementing snapshot
modes (which is also configurable, as it can add some overhead)

Together, these changes allow for a much broader flexibility got end
users to implement a snapshot mode that can do more advanced snapshots,
such as partial recovery or for partial snapshots for tables where not
all records are needed.

This could also be seen as superseeding the
`snapshot.select.statement.overrides` to allow for users to dynamically
build queries based on the state of the slot and the offsets consumed.
2019-03-24 11:56:40 +01:00
Jenkins user
50a7c568fa [maven-release-plugin] prepare for next development iteration 2019-02-23 09:53:58 +00:00
Jenkins user
28f3839804 [maven-release-plugin] prepare release v0.9.2.Final 2019-02-23 09:53:58 +00:00
Jenkins user
b96e5fee0d [maven-release-plugin] prepare for next development iteration 2019-02-13 11:13:44 +00:00
Jenkins user
3de2d04bcd [maven-release-plugin] prepare release v0.9.1.Final 2019-02-13 11:13:44 +00:00
jchipmunk
ff4e38cc46 DBZ-1112 Strings.join() doesn't apply conversation for first element
Replace:
- Integer.parseInt() to Integer.valueOf()
- Short.parseShort() and new Short() to Short.valueOf()
- Long.parseLong() to Long.valueOf()
2019-01-30 09:36:09 +01:00
Jenkins user
c5b7d21d3e [maven-release-plugin] prepare for next development iteration 2019-01-28 11:07:04 +00:00
Jenkins user
f1ae79ff73 [maven-release-plugin] prepare release v0.9.0.CR1 2019-01-28 11:07:04 +00:00
Jiri Pechanec
32f9543979 DBZ-1103 Make pause before interrupt configurable 2019-01-28 11:07:34 +01:00
Jiri Pechanec
3bd97d3bd7 DBZ-1103 Wait for completion before interrupt 2019-01-25 21:27:06 +01:00
Jiri Pechanec
80334ea14a DBZ-1101 Increase wait times for shutdown 2019-01-25 21:27:06 +01:00
Gunnar Morling
54b47e5205 DBZ-1080 Exception clarification 2019-01-18 14:06:50 +01:00
Gunnar Morling
4522b84c13 DBZ-1080 Some clean-up;
* JavaDoc
* Improved method signature
2019-01-18 14:06:50 +01:00
Gunnar Morling
58366fc5f3 DBZ-1080 Some clean-up 2019-01-18 14:06:50 +01:00
Addison Higham
26f836e0f6 DBZ-1080 new API for EmbeddedEngine for batch/async
This introduces a new API to the EmbeddedEngine, the ChangeConsumer,
which gives the user a more flexible option for consuming changes by
exposing groups of records as well as the ability to control the
comitting of those records.

This remainds completely backwards compatible with the old API as the
ChangeConsumer wraps the existing Consumer interface with a default
implementation.
2019-01-18 14:06:50 +01:00
Jenkins user
5275f73424 [maven-release-plugin] prepare for next development iteration 2018-12-19 13:06:12 +00:00
Jenkins user
b6569c18ae [maven-release-plugin] prepare release v0.9.0.Beta2 2018-12-19 13:06:12 +00:00
Jiri Pechanec
80732a1094 DBZ-1037 Making embedded engine compileable with Kafka 1.x 2018-12-13 12:31:54 +01:00
Jenkins user
db1d3a7fb8 [maven-release-plugin] prepare for next development iteration 2018-11-20 16:15:14 +00:00
Jenkins user
f83db82cea [maven-release-plugin] prepare release v0.9.0.Beta1 2018-11-20 16:15:14 +00:00
Gunnar Morling
19becc4122 DBZ-776 Typo fix 2018-11-16 14:21:39 +01:00
Jenkins user
d952f5dfb0 [maven-release-plugin] prepare for next development iteration 2018-10-04 11:59:14 +00:00
Jenkins user
ff9b70278b [maven-release-plugin] prepare release v0.9.0.Alpha2 2018-10-04 11:59:13 +00:00
Jiri Pechanec
9d904a1150 DBZ-858 Upgrade to Kafka 2.0.0 2018-08-20 15:56:23 +02:00
Jenkins user
e00dad127f [maven-release-plugin] prepare for next development iteration 2018-07-26 08:00:12 +00:00
Jenkins user
16bfd5c700 [maven-release-plugin] prepare release v0.9.0.Alpha1 2018-07-26 08:00:12 +00:00
Jiri Pechanec
f118e37da0 DBZ-40 Changes to support SQL Server connector 2018-07-13 22:23:00 +02:00
Jenkins user
f9b8d830a8 [maven-release-plugin] prepare for next development iteration 2018-07-11 07:36:30 +00:00
Jenkins user
290ded678f [maven-release-plugin] prepare release v0.8.0.Final 2018-07-11 07:36:29 +00:00
Jenkins user
033db6659d [maven-release-plugin] prepare for next development iteration 2018-07-04 07:07:44 +00:00
Jenkins user
696f35f2c0 [maven-release-plugin] prepare release v0.8.0.CR1 2018-07-04 07:07:44 +00:00
Gunnar Morling
bf7a5018ca Setting POM version back to 0.8.0-SNAPSHOT 2018-06-22 12:21:03 +02:00
Jenkins user
db42e4657a [maven-release-plugin] prepare for next development iteration 2018-06-21 14:07:45 +00:00
Jenkins user
c4b8ecaa99 [maven-release-plugin] prepare release v0.8.0.Beta1 2018-06-21 14:07:45 +00:00
Jiri Pechanec
b23a1ecd96 DBZ-20 Restore default test timeout 2018-06-20 13:05:37 +02:00
Gunnar Morling
f4e3668ebf DBZ-20 Tune up timeouts/connector/oracle/OracleStreamingChangeEventSource.java 2018-06-20 13:05:37 +02:00
Jiri Pechanec
10ddb69dea DBZ-20 A subset of string, time and number datatypes 2018-06-20 13:05:37 +02:00
Gunnar Morling
d7e196a18e DBZ-20 Initial import of Oracle connector based on XStream 2018-06-20 13:05:37 +02:00
Jiri Pechanec
9580c8c290 DBZ-252 Rebase to master 2018-06-15 11:42:24 +02:00
Stephen Powis
867202e0ca DBZ-706 Slight refactoring / shuffling of code to validate source query field in snapshot tests 2018-06-01 11:23:12 +02:00
Stephen Powis
cc33fed16a DBZ-706 Adding option for showing source query in sourceInfo element 2018-06-01 11:23:12 +02:00
Jenkins user
f4e151b23a [maven-release-plugin] prepare for next development iteration 2018-03-20 08:14:19 +00:00
Jenkins user
93b3252332 [maven-release-plugin] prepare release v0.7.5 2018-03-20 08:14:19 +00:00
Andrew Tongen
2792f4cac3 DBZ-665 Passing correct value for timeSinceLastCommit to commit offset policy 2018-03-19 12:23:18 +01:00
Jenkins user
daf27207be [maven-release-plugin] prepare for next development iteration 2018-03-07 08:31:07 +00:00
Jenkins user
9c73774928 [maven-release-plugin] prepare release v0.7.4 2018-03-07 08:31:07 +00:00
Jenkins user
6d0cd88e12 [maven-release-plugin] prepare for next development iteration 2018-02-15 04:15:34 +00:00
Jenkins user
7d1e1a989e [maven-release-plugin] prepare release v0.7.3 2018-02-15 04:15:34 +00:00
Gunnar Morling
2a724d9611 DBZ-537 Misc. adjustments:
* Renaming ConfigurationHelper to Instantiator
* Doc improvements and typo fixes
* Bringing getInstance() methods into consistent order
* Raising exception instead of logging error if instantion fails
2018-02-09 15:45:57 +01:00
Jiri Pechanec
5be55ae8ff DBZ-537 OffsetCommitPolicy supports Configuration constructor initialization 2018-02-09 15:19:48 +01:00
Jiri Pechanec
a8750221cb DBZ-537 OffsetCommitPolicy is configurable via builder 2018-02-09 15:19:48 +01:00
Jiri Pechanec
eb7cc3f28e DBZ-537 Change OffsetCommitPolicy to use Duration in API 2018-02-09 15:19:48 +01:00
Jiri Pechanec
8c3daa387d DBZ-537 Move OffsetCommitPolicy to SPI 2018-02-09 15:19:48 +01:00
Jiri Pechanec
452f9af52d DBZ-537 Configurable offset commit strategy 2018-02-09 15:19:48 +01:00
Jiri Pechanec
9b592204ac DBZ-587 Centralize and unify thread management 2018-02-01 10:04:20 +01:00
Jenkins user
04624341f5 [maven-release-plugin] prepare for next development iteration 2018-01-25 09:39:44 +00:00
Jenkins user
898f6884e1 [maven-release-plugin] prepare release v0.7.2 2018-01-25 09:39:44 +00:00
Gunnar Morling
1bc9dec6f5 DBZ-555 Adding Denis Mikhaylov to COPYRIGHT.txt; formatting 2018-01-19 12:30:26 +01:00
Denis Mikhaylov
048f1323cd DBZ-555 Add missing config fields to EmbeddedEngine 2018-01-19 12:30:17 +01:00
Jenkins user
6bb34b42f9 [maven-release-plugin] prepare for next development iteration 2017-12-20 07:15:12 +00:00
Jenkins user
16dcd4c980 [maven-release-plugin] prepare release v0.7.1 2017-12-20 07:15:12 +00:00
Jenkins user
5e09932cb9 [maven-release-plugin] prepare for next development iteration 2017-12-15 05:10:23 +00:00
Jenkins user
6c1d61e03b [maven-release-plugin] prepare release v0.7.0 2017-12-15 05:10:23 +00:00
Jiri Pechanec
196f6b3571 DBZ-406 Fixing test, adding warning for disabled rollback 2017-12-13 14:12:27 +01:00
Gunnar Morling
5fbe742be8 DBZ-285 Specifying scope of dependencies in the individual POMs for the sake of comprehensibility 2017-11-10 16:48:32 +01:00
Ben Williams
a3b4fedd5f DBZ-363 Add support for BIGINT UNSIGNED handling for MySQL 2017-10-18 10:20:03 +02:00
Jiri Pechanec
0bc8129961 DBZ-258 Support for wal2json plugin 2017-10-18 09:21:22 +02:00
Jenkins user
75937711fa [maven-release-plugin] prepare for next development iteration 2017-09-21 04:42:02 +00:00
Jenkins user
a89b9332e4 [maven-release-plugin] prepare release v0.6.0 2017-09-21 04:42:02 +00:00
Jenkins user
214696ef0c [maven-release-plugin] prepare for next development iteration 2017-08-17 11:51:05 +00:00
Jenkins user
c867e6fea6 [maven-release-plugin] prepare release v0.5.2 2017-08-17 11:51:05 +00:00
Gunnar Morling
a8d1817c22 [maven-release-plugin] prepare for next development iteration 2017-06-09 16:14:31 +00:00
Gunnar Morling
3f512aace7 [maven-release-plugin] prepare release v0.5.1 2017-06-09 16:14:31 +00:00
Randall Hauch
709cd8f3fe [maven-release-plugin] prepare for next development iteration 2017-03-27 11:28:12 -05:00
Randall Hauch
2bc3d45954 [maven-release-plugin] prepare release v0.5.0 2017-03-27 11:28:11 -05:00
Randall Hauch
430d756062 [maven-release-plugin] prepare for next development iteration 2017-03-17 15:41:58 -05:00
Randall Hauch
536cbf6300 [maven-release-plugin] prepare release v0.4.1 2017-03-17 15:41:57 -05:00
Randall Hauch
8c60c29883 [maven-release-plugin] prepare for next development iteration 2017-02-07 14:22:12 -06:00
Randall Hauch
20134286e9 [maven-release-plugin] prepare release v0.4.0 2017-02-07 14:22:11 -06:00
Randall Hauch
fe17b246af DBZ-113 Added MySQL threads to the event’s source metadata
Changed the events’ `source` structure to optionally contain the identifier of the MySQL thread where appropriate. The thread is included on each `BEGIN` binlog event, so these are captured and added to all of the associated change events produced for that transaction.
2017-02-02 11:53:32 -06:00
Horia Chiorean
d035c4bc8d DBZ-173 Changes the MySQL ITs to not use TZ information for expected dates and fixes the character set for parsing test files 2017-01-27 14:53:10 +02:00
Horia Chiorean
a2154d3d32 DBZ-173 Changes the MySQL ITs to use the database.hostname system property instead of always hardcoding 'localhost' 2017-01-27 09:19:57 +02:00
Horia Chiorean
7dfdef3558 DBZ-173 Upgrades the Kafka artifact versions to 0.10.1.1 2017-01-27 09:19:57 +02:00
Randall Hauch
e8b06b0ec1 Merge pull request #144 from hchiorean/DBZ-3
DBZ-3 Implements a Debezium Connector for ingesting Postgresql changes via logical decoding
2017-01-11 13:32:09 -06:00
Ramesh Reddy
29a7043fe3 DBZ-178: Correcting error where error message is only logged in success scenarios in EmbeddedEngine 2017-01-11 09:39:47 -06:00
Horia Chiorean
737614a555 DBZ-3 Implements a connector for streaming changes from a Postgres database
The version of the DB server required for this to work is at least 9.4. To be able to stream logical changes, the code relies on enhancements to the JDBC driver which are not yet public. Therefore, the current codebase includes the sources for the JDBC driver.
The commit also updates the general DBZ build system for:
* custom checkstyle package exclusions - required by the Postgres driver the protobuf code for now
* adds support for debugging Surefire and Failsafe
2016-12-27 14:44:32 +02:00
Randall Hauch
5dceb05f69 DBZ-151 Additional changes to improve test framework and MySQL integration tests 2016-12-20 10:58:56 -06:00
Randall Hauch
a3bece4472 DBZ-151 Added new integration test framework for easily comparing output of connectors to expected results. 2016-12-20 09:18:09 -06:00
Randall Hauch
eedc4fba00 DBZ-163 Corrected assembly profile in build
The Travis-CI builds run the Maven build using the `assembly` profile, and this has been failing quite a bit lately.

The first problem appears to be that the Travis-CI environment recently changed to have port 3306 taken, which means that our build fails to start any Docker containers for MySQL that attempt to use this port. A simple fix is to use different ports for the assembly build.

However, trying to change the port numbers for some of the profiles caused a lot of problems, and to correct these required refactoring how the properties are set. The Docker Maven plugin is now configured with separate properties that are set once (depending upon the profile) to determine the port assignments of the various Docker containers. The Failsafe plugin executions then use these Maven properties when setting the system variables (e.g., `database.host`) needed in the integration tests. This appears to have worked, but it still is a bit fragile. For example, the assembly profile defines several Failsafe executions, and during this profile these should be the only executions run; however, if not all the properties are set properly, the build seems to also run the default Failsafe execution in addition to the other `assembly` profile executions. (I think properties can’t only be defined in the execution, but need to also be defined in the Failsafe configuration.)

The “alternative” MySQL Docker images were removed, since they basically should not provide any different behavior than the `mysql/mysql-server` images we normally used. The extra containers required a lot more resources to run and dramatically increased the complexity of the build.

A few other trivial changes were made.
2016-12-05 16:37:59 -06:00
Horia Chiorean
968cf62b23 DBZ-156 Adds better error handling to the EmbeddedEngine 2016-11-18 11:04:00 +02:00
Horia Chiorean
506457c13b DBZ-156 Updates EmbeddedEngine to better handle exceptional cases and provide more feedback during startup
It also updates  EmbeddedEngine to use the Kafka commit callbacks introduced after 0.10 and updates AbstractConnectorTest to better synchronize with the embedded engine
2016-11-17 19:18:07 +02:00
Randall Hauch
ea5f7983c7 DBZ-144 Corrected MySQL connector restart
Added tests to verify whether the connector is properly restarting in the binlog when previously the connector failed or stopped in the middle of a transaction. The tests showed that the connector is not able to properly start when using or not using GTIDs, since restarting from an arbitrary binlog event causes problems since the TABLE_MAP events for the affected tables are skipped.

The logic was changed significantly to record in the offsets the binlog coordinates at the start of the transaction, which should work whether or not GTIDs are used. Upon restart, the connector may have to re-read the events that were previously processed, but now the offset also includes the number of events that were previously processed so that these can be skipped upon restart.

This has an unforunate side effect since the offsets capture a transaction was completed only when it generates a source record for the subsequent transaction. This is because the connector generates source records (with their offsets) for the binlog events in the transaction before the transaction's commit is seen. And, since no additional source records are produced for the transaction commit, the recorded offsets will show that the prior transaction is complete and that all of the events in the subsequent transaction are to be skipped. Thus, upon restart the connector has to re-read (but ignore) all of the binlog events associated with the completed transaction. This shouldn’t be a problem, and will only slow restarts for very large transactions.
2016-11-09 08:11:41 -06:00
Randall Hauch
4de56fd657 Merge pull request #94 from hchiorean/DZB-header-fix
Fixes the DBZ header required by checkstyle
2016-08-24 14:28:43 -05:00
Randall Hauch
ce2b2db80c DBZ-99 Added support for MySQL connector to connect securely to MySQL
Changed the MySQL connector to have several new configuration properties for setting up the SSL key store and trust store (which can be used in place of System or JDK properties) used for MySQL secure connections, and another property to specify what kind of SSL connection be used.

Modified several integration tests to ensure all MySQL connections are made with `useSSL=false`.
2016-08-24 13:27:35 -05:00
Horia Chiorean
2732d26ff0 Fixes the DBZ header required by checkstyle
This commit removes an extra space character from the first blank line of the header
2016-08-24 13:41:15 +03:00
Randall Hauch
e86fb83459 [maven-release-plugin] prepare for next development iteration 2016-08-16 09:56:47 -05:00
Randall Hauch
ccdb0a1a63 [maven-release-plugin] prepare release v0.3.0 2016-08-16 09:56:47 -05:00
Horia Chiorean
ab24f013d1 DBZ-96 Removes some asserts on tables created by another test case 2016-08-08 14:25:38 +03:00
Chris Riccomini
265c2e8c88 Update README.md 2016-08-05 13:31:46 -07:00
Randall Hauch
6894e9c30d Merge pull request #78 from hchiorean/mysql-tests-fix
Fixes some more tests around date handling in the MySQL connector
2016-08-02 20:12:04 -05:00
Randall Hauch
8cb39eacf0 Reverted back to 0.3.0-SNAPSHOT, since the 0.3 candidate release was not acceptable. 2016-08-01 12:25:58 -05:00
Horia Chiorean
eaf295fbf0 Fixes some more tests around date handling in the MySQL connector 2016-07-29 08:57:47 +03:00
Randall Hauch
517272278d [maven-release-plugin] prepare for next development iteration 2016-07-25 17:50:31 -05:00
Randall Hauch
b89296e646 [maven-release-plugin] prepare release v0.3.0 2016-07-25 17:50:31 -05:00
Randall Hauch
447acb797d DBZ-62 Upgraded to Kafka and Kafka Connect 0.10.0.0
Upgraded from Kafka 0.9.0.1 to Kafka 0.10.0. The only required change was to override the `Connector.config()` method, which returns `null` or a `ConfigDef` instance that contains detailed metadata for each of the configuration fields, including supporting recommended values and marking fields as not visible (e.g., if they don't make sense given other configuration field values). This can be used by user interfaces to data-drive the configuration of a connector. Also, the default validation logic of the Connector implementations uses a `Validator` that is pretty restrictive in its functionality.

Debezium already had a fairly decent and simple `Configuration` framework. After several attempts to try and merge these concepts, reconciling the two validation mechanisms was very complicated and involved a lot of changes. It was easier to simply continue Debezium-specific validation and to override the `Connector.validate(...)` method to use Debezium's `Configuration`-based validation. Connector-based validation logic includes determining recommended values, so Debezium's `Field` class (used to define each configuration property) was enhanced with a new `Recommender` class that is similar to Kafka's.

Additional integration tests were added to verify that the `ConfigDef` result is acceptable and that the new connector validation logic works as expected, including getting recommended values for some fields (e.g., database names, table/collection names) from MySQL and MongoDB by connecting and dynamically reading the values. This was done in a way that remains backward compatible with the regular expression formats of these fields, but in a user interface that uses the `ConfigDef` mechanism the user can simply select the databases and table/collection identifiers.
2016-07-25 14:21:31 -05:00
Randall Hauch
12e7cfb8d3 DBZ-2 Created initial Maven module with a MongoDB connector
Added a new `debezium-connector-mongodb` module that defines a MongoDB connector. The MongoDB connector can capture and record the changes within a MongoDB replica set, or when seeded with addresses of the configuration server of a MongoDB sharded cluster, the connector captures the changes from the each replica set used as a shard. In the latter case, the connector even discovers the addition of or removal of shards.

The connector monitors each replica set using multiple tasks and, if needed, separate threads within each task. When a replica set is being monitored for the first time, the connector will perform an "initial sync" of that replica set's databases and collections. Once the initial sync has completed, the connector will then begin tailing the oplog of the replica set, starting at the exact point in time at which it started the initial sync. This equivalent to how MongoDB replication works.

The connector always uses the replica set's primary node to tail the oplog. If the replica set undergoes an election and different node becomes primary, the connector will immediately stop tailing the oplog, connect to the new primary, and start tailing the oplog using the new primary node. Likewise, if connector experiences any problems communicating with the replica set members, it will try to reconnect (using exponential backoff so as to not overwhelm the replica set) and continue tailing the oplog from where it last left off. In this way the connector is able to dynamically adjust to changes in replica set membership and to automatically handle communication failures.

The MongoDB oplog contains limited information, and in particular the events describing updates and deletes do not actually have the before or after state of the documents. Instead, the oplog events are all idempotent, so updates contain the effective changes that were made during an update, and deletes merely contain the deleted document identifier. Consequently, the connector is limited in the information it includes in its output events. Create and read events do contain the initial state, but the update contain only the changes (rather than the before and/or after states of the document) and delete events do not have the before state of the deleted document. All connector events, however, do contain the local system timestamp at which the event was processed and _source_ information detailing the origins of the event, including the replica set name, the MongoDB transaction timestamp of the event, and the transactions identifier among other things.

It is possible for MongoDB to lose commits in specific failure situations. For exmaple, if the primary applies a change and records it in its oplog before it then crashes unexpectedly, the secondary nodes may not have had a chance to read those changes from the primary's oplog before the primary crashed. If one such secondary is then elected as primary, it's oplog is missing the last changes that the old primary had recorded and no longer has those changes. In these cases where MongoDB loses changes recorded in a primary's oplog, it is possible that the MongoDB connector may or may not capture these lost changes.
2016-07-14 13:02:36 -05:00
Randall Hauch
d9cca5d254 DBZ-77 Corrected completion of offset snapshot mode
The snapshot mode within the offsets now are marked as complete with the last source record produced during the snapshot. This is the only sure way to update the offset.

Note that the `source` field shows the snapshot is in effect for _all_ records produced during the snapshot, including the very last one. This distinction w/r/t the offset was made possible due to recent changes for DBZ-73.

Previously, when the snapshot reader completed all generation of records, it then attempted to record an empty DDL statement. However, since this statement had no net effect on the schemas, no source record was produced and thus the offset's snapshot mode was never changed. Consequently, if the connector were stopped immediately after the snapshot completed but before other events could be read or produced, upon restart the connector would perform another snapshot.
2016-06-15 12:01:16 -05:00
Randall Hauch
6749518f66 [maven-release-plugin] prepare for next development iteration 2016-06-08 13:00:50 -05:00