Migrating from Version 3.x

      +
      Tools and information for upgrading your connector configuration.

      In version 4.x the names of the config properties have changed to follow a consistent naming convention. Some default values have changed to provide a better out-of-box experience for new users.

      The Java API for customizing the connector’s behavior has also changed in a way that is not backwards compatible. If you have written a custom SourceHandler or Filter component, some minor changes are required for it to work with the new version of the connector.

      Configuration Properties

      A shell script called migrate-config-3-to-4.sh is available to assist with updating a version 3.x config file. You can find this script in the etc directory of the connector distribution archive, or you can download it from GitHub.

      The following tables show how the config properties changed between 3.x and 4.x.

      Table 1. Properties used by both Source and Sink
      Name in 3.x Name in 4.x Notes

      connection.cluster_address

      couchbase.seed.nodes

      couchbase.network

      couchbase.network

      connection.bucket

      couchbase.bucket

      connection.username

      couchbase.username

      connection.password

      couchbase.password

      connection.timeout.ms

      couchbase.bootstrap.timeout

      Now specified as qualified duration; 10 seconds would be: 10s

      connection.ssl.enabled

      couchbase.enable.tls

      connection.ssl.keystore.password

      couchbase.trust.store.password

      connection.ssl.keystore.location

      couchbase.trust.store.path

      couchbase.log_redaction

      couchbase.log.redaction

      couchbase.forceIPv4

      (removed)

      Table 2. Source properties
      Name in 3.x Name in 4.x Notes

      topic.name

      couchbase.topic

      Now a format string that supports placeholders "${bucket}", "${scope}", and "${collection}". Now defaults to ${bucket}.${scope}.${collection}

      use_snapshots

      (removed)

      dcp.message.converter.class

      couchbase.source.handler

      No longer has a default value.

      event.filter.class

      couchbase.event.filter

      batch.size.max

      couchbase.batch.size.max

      compat.connector_name_in_offsets

      couchbase.connector.name.in.offsets

      Deprecated. Only set this to true if you have previously deployed the connector to production with this set to true.

      couchbase.stream_from

      couchbase.stream.from

      couchbase.log_redaction

      couchbase.log.redaction

      couchbase.compression

      couchbase.compression

      couchbase.persistence_polling_interval

      couchbase.persistence.polling.interval

      couchbase.flow_control_buffer

      couchbase.flow.control.buffer

      Table 3. Sink properties
      Name in 3.x Name in 4.x Notes

      couchbase.document.id

      couchbase.document.id

      couchbase.remove.document.id

      couchbase.remove.document.id

      couchbase.durability.persist_to

      couchbase.persist.to

      couchbase.durability.replicate_to

      couchbase.replicate.to

      couchbase.subdocument.path

      couchbase.subdocument.path

      couchbase.document.mode

      couchbase.document.mode

      couchbase.subdocument.operation

      couchbase.subdocument.operation

      couchbase.n1ql.operation

      couchbase.n1ql.operation

      UPSERT is no longer a valid value. Now defaults to UPDATE.

      couchbase.n1ql.where_fields

      couchbase.n1ql.where.fields

      couchbase.subdocument.create_path

      couchbase.subdocument.create.path

      couchbase.subdocument.create_document

      couchbase.create.document

      couchbase.document.expiration

      couchbase.document.expiration

      Java API

      A summary of how the connector’s Java extension points have changed.

      Filter

      The Filter interface now accepts a DocumentEvent instead of a ByteBuf.

      SourceHandler

      SourceHandler is now an interface instead of an abstract class.

      The handle(SourceHandlerParams) method now returns a SourceRecordBuilder instead of a CouchbaseSourceRecord.

      DocumentEvent

      The rawDcpEvent() method has been removed.

      To determine the type of the event, call type().

      To get details of mutation events, call mutationMetadata().

      To get the document content as a byte array, call content().

      The vBucket() method is renamed partition().

      The vBucketUuid() method is renamed partitionUuid().