Source:
public BinlogConnectorReplicator( SchemaStore schemaStore, AbstractProducer producer, AbstractBootstrapper bootstrapper, MaxwellMysqlConfig mysqlConfig, Long replicaServerID, String maxwellSchemaDatabaseName, Metrics metrics, Position start, boolean stopOnEOF, String clientID, HeartbeatNotifier heartbeatNotifier ) { super(clientID, bootstrapper, maxwellSchemaDatabaseName, producer, metrics, start, heartbeatNotifier); this.schemaStore = schemaStore; transactionExecutionTime = metrics.getRegistry().histogram(metrics.metricName("transaction", "execution_time")); transactionRowCount = metrics.getRegistry().histogram(metrics.metricName("transaction", "row_count")); this.client = new BinaryLogClient(mysqlConfig.host, mysqlConfig.port, mysqlConfig.user, mysqlConfig.password); SSLMode binlogSslMode = mysqlConfig.sslMode; this.client.setSSLMode(binlogSslMode); BinlogPosition startBinlog = start.getBinlogPosition(); if (startBinlog.getGtidSetStr() != null) { String gtidStr = startBinlog.getGtidSetStr(); LOGGER.info("Setting initial gtid to: " + gtidStr); this.client.setGtidSet(gtidStr); } else { LOGGER.info("Setting initial binlog pos to: " + startBinlog.getFile() + ":" + startBinlog.getOffset()); this.client.setBinlogFilename(startBinlog.getFile()); this.client.setBinlogPosition(startBinlog.getOffset()); } EventDeserializer eventDeserializer = new EventDeserializer(); eventDeserializer.setCompatibilityMode(EventDeserializer.CompatibilityMode.DATE_AND_TIME_AS_LONG_MICRO, EventDeserializer.CompatibilityMode.CHAR_AND_BINARY_AS_BYTE_ARRAY); this.client.setEventDeserializer(eventDeserializer); this.binlogEventListener = new BinlogConnectorEventListener(client, queue, metrics); this.binlogLifecycleListener = new BinlogConnectorLifecycleListener(); this.client.setBlocking(!stopOnEOF); this.client.registerEventListener(binlogEventListener); this.client.registerLifecycleListener(binlogLifecycleListener); this.client.setServerId(replicaServerID.intValue()); this.stopOnEOF = stopOnEOF; }

Target:
public BinlogConnectorReplicator( SchemaStore schemaStore, AbstractProducer producer, AbstractBootstrapper bootstrapper, MaxwellMysqlConfig mysqlConfig, Long replicaServerID, String maxwellSchemaDatabaseName, Metrics metrics, Position start, boolean stopOnEOF, String clientID, HeartbeatNotifier heartbeatNotifier ) { super(clientID, bootstrapper, maxwellSchemaDatabaseName, producer, metrics, start, heartbeatNotifier); this.schemaStore = schemaStore; transactionExecutionTime = metrics.getRegistry().histogram(metrics.metricName("transaction", "execution_time")); transactionRowCount = metrics.getRegistry().histogram(metrics.metricName("transaction", "row_count")); this.client = new BinaryLogClient(mysqlConfig.host, mysqlConfig.port, mysqlConfig.user, mysqlConfig.password); this.client.setSSLMode(mysqlConfig.sslMode); BinlogPosition startBinlog = start.getBinlogPosition(); if (startBinlog.getGtidSetStr() != null) { String gtidStr = startBinlog.getGtidSetStr(); LOGGER.info("Setting initial gtid to: " + gtidStr); this.client.setGtidSet(gtidStr); } else { LOGGER.info("Setting initial binlog pos to: " + startBinlog.getFile() + ":" + startBinlog.getOffset()); this.client.setBinlogFilename(startBinlog.getFile()); this.client.setBinlogPosition(startBinlog.getOffset()); } EventDeserializer eventDeserializer = new EventDeserializer(); eventDeserializer.setCompatibilityMode(EventDeserializer.CompatibilityMode.DATE_AND_TIME_AS_LONG_MICRO, EventDeserializer.CompatibilityMode.CHAR_AND_BINARY_AS_BYTE_ARRAY); this.client.setEventDeserializer(eventDeserializer); this.binlogEventListener = new BinlogConnectorEventListener(client, queue, metrics); this.binlogLifecycleListener = new BinlogConnectorLifecycleListener(); this.client.setBlocking(!stopOnEOF); this.client.registerEventListener(binlogEventListener); this.client.registerLifecycleListener(binlogLifecycleListener); this.client.setServerId(replicaServerID.intValue()); this.stopOnEOF = stopOnEOF; }