All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
0.21.0 - 2020-06-08
- Potential deadlock when keepAlive is on (#321).
BinaryLogClient.LifecycleListener::onConnect()
order relative to keepAlive threadstart()
. Callingdisconnect()
insideonConnect()
is now guaranteed to terminate keepAlive thread (#213, 260).
A side effect of this change is that throwing RuntimeException insideonConnect()
will no longer prevent keepAlive thread from starting.
0.20.1 - 2019-05-12
mysql_native_password
auth support + SSL (Azure) (#274).
0.20.0 - 2019-04-20
mysql_native_password
auth support (Azure) (#272).
0.19.1 - 2019-03-28
TABLE_MAP
event data deserialization on MySQL 8 (#264).
0.19.0 - 2019-02-13
- MySQL 8.0.1+ table metadata support (#251).
connect
/disconnect
keepalive thread race condition (#260).
0.18.1 - 2019-02-04
- Checksum detection when custom FORMAT_DESCRIPTION deserializer is set (#258).
0.18.0 - 2019-01-21
BinaryLogClient
flag (useBinlogFilenamePositionInGtidMode
) to control initial (requested onconnect()
) binlog position when GtidSet is set (#254).
- Checksum detection (#256).
0.17.0 - 2019-01-07
- CRC32 checksum auto-detection (BinaryLogFileReader) (#160).
- GtidSet tracking (GtidSet update is delayed until XID/QUERY(COMMIT)/QUERY(ROLLBACK)) (#250).
- (potential) deadlock when calling disconnect() inside onDisconnect() (250).
0.16.1 - 2018-04-12
DATE_AND_TIME_AS_LONG_MICRO
handling regression (introduced in 0.15.0).
0.16.0 - 2018-04-12
EventDeserializer.CompatibilityMode.INVALID_DATE_AND_TIME_AS_MIN_VALUE
(#210).
0.15.0 - 2018-04-07
EventDeserializer.CompatibilityMode.INVALID_DATE_AND_TIME_AS_NEGATIVE_ONE
(#210).
0.14.0 - 2018-04-04
EventDeserializer.CompatibilityMode.INVALID_DATE_AND_TIME_AS_ZERO
(#210).
0.13.0 - 2017-06-04
- GtidSet to be more flexible when it comes down to UUIDSet|s manipulations (171).
0.12.2 - 2017-05-18
- Deserialization of JSON objects that contain empty keys (170).
0.12.1 - 2017-05-10
- List of event types (TRANSACTION_CONTEXT was missing) (167).
0.12.0 - 2017-03-31
- PREVIOUS_GTIDS deserializer (159).
0.11.0 - 2017-03-02
BinaryLogClient::gtidSetFallbackToPurged
(156).
0.10.1 - 2017-02-28
- HEARTBEAT tracking (118).
0.10.0 - 2017-02-28
BinaryLogClient::heartbeatInterval
(118). NOTE: While it's 0 (disabled) by default it's RECOMMENDED that you turn it on (regardless whether you use built-in keepAlive mechanism or not).
BinaryLogClient::connectTimeout
scope (connection will now be forcefully terminated ifLifecycleListener::onConnect
isn't reached withinBinaryLogClient::connectTimeout
fromBinaryLogClient::connect
).
0.9.2 - 2017-02-25
BinaryLogClient
hangs while trying to connect (154).
0.9.1 - 2017-02-21
- NPE in case of EOF (BinaryLogClient) (153).
0.9.0 - 2017-02-07
BinaryLogClient::connectTimeout
(3 seconds by default).
NOTE:BinaryLogClient::keepAliveConnectTimeout
has been deprecated and is going to be removed in 1.0.0.
0.8.1 - 2016-01-10
ArrayIndexOutOfBoundsException
while parsing JSON (145).
0.8.0 - 2016-01-04
- VIEW_CHANGE and XA_PREPARE
EventType
s.
0.7.4 - 2016-01-02
SSLMode.PREFERRED
handling (verification against the CA is no longer enforced) (#142).
NOTE: This change does NOT affectSSLMode.VERIFY_CA
/SSLMode.VERIFY_IDENTITY
.
0.7.3 - 2016-12-26
- Handling of DATE/DATETIME/TIMESTAMP "zero" value (e.g. '0000-00-00') when
CompatibilityMode.DATE_AND_TIME_AS_LONG_MICRO
is set (false by default).
0.7.2 - 2016-12-26
- Inconsistent microseconds deserialization (#138).
0.7.1 - 2016-12-25
- TIMESTAMP fsp deserialization regression introduced in 0.7.0.
0.7.0 - 2016-12-24
- TIME/DATETIME/TIMESTAMP microseconds precision support (#136).
0.6.0 - 2016-11-27
EventDeserializer
compatibility modes to mimic upcoming 1.0.0 event deserialization behavior (#131).
0.5.2 - 2016-11-19
- (JSON) deserialization of null/true/false/(u)int(16|32)/variable-length data types (#129).
0.5.1 - 2016-10-18
- ROWS_QUERY event deserialization (#124).
- JSON length determination.
- GTID sync (
GtidSet
is now updated beforeBinaryLogClient.EventListener
|s are notified).
0.5.0 - 2016-10-06
0.4.2 - 2016-09-20
- A race condition that could result in duplicate events to be emitted on reconnect (#113).
0.4.1 - 2016-08-31
- GTID "rollover".
- binlog position tracking (
binaryLogClient.binlogPosition
is no longer updated on TABLE_MAP so that in case of reconnect (using a different instance of client) table mapping (used by *RowsEventDataDeserializer|s) could be reconstructed before hitting *RowsEvent.
0.4.0 - 2016-08-15
- TLS support (#70).
0.3.3 - 2016-08-08
- INTVAR deserializer.
- Rudimentary support for GEOMETRY.
- Handling of DATE/DATETIME/TIMESTAMP's "zero" value (e.g. '0000-00-00').
0.3.2 - 2016-07-19
- Fractional seconds deserialization on MySQL 5.6.4+ (#103).
0.3.1 - 2016-01-15
- Broken "non blocking" mode backport from master.
0.3.0 - 2016-01-15
- Support for "non blocking" mode (equivalent to running
mysqlbinlog
without --stop-never)
- NPE if user attempts to read binary log 'within the logical event group' (#60).
0.2.4 - 2015-09-09
- Possible infinite loop in case of EOF in the middle of
ByteArrayInputStream::fill
.
0.2.3 - 2015-08-31
- Handling of packets exceeding 16mb in size.
0.2.2 - 2015-07-10
- TIMESTAMP_V2 deserialization (#46).
- Freeze during
BinaryLogClient.connect
in case of missingREPLICATION CLIENT
permission (#55).
0.2.1 - 2015-05-19
SocketFactory.createSocket
method signature by addingthrows SocketException
.
- Initial handshake error reporting (so that actual message received from the server wouldn't be lost).
- Risk of
BinaryLogClient
getting stuck while in "pre-close" state.
0.2.0 - 2015-05-01
- Support for COM_BINLOG_DUMP_GTID (
BinaryLogClient
::gtidSet) (#41). - Support for authentication via empty password (#39).
- Server error reporting (#37).
WARNING: If you are using exception message to identify specific server errors - you'll need to switch toServerException
::errorCode (as message no longer includes error code).
EventHeaderV4Deserializer
eventLength handling (#35).
0.1.3 - 2015-03-30
- Deserialization of
BitSet
s in little-endian (#34).
0.1.2 - 2015-02-17
- TABLE_MAP/ROTATE
EventDataDeserializer
s handling (#29).
0.1.1 - 2014-12-08
- EXT_WRITE_ROWS event data deserialization when binlog_row_image is set to 'minimal' (default is 'full') (#26).