All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.datamountaineer.streamreactor.connect.converters.source.JsonResilientConverter.scala Maven / Gradle / Ivy

package com.datamountaineer.streamreactor.connect.converters.source

import java.util

import org.apache.kafka.connect.data.Schema
import org.apache.kafka.connect.data.SchemaAndValue
import org.apache.kafka.connect.json.JsonConverter

/**
  * A Json converter built with resilience, meaning that malformed Json messages are now ignored
  */
class JsonResilientConverter extends JsonConverter {

  override def configure(configs: util.Map[String, _], isKey: Boolean) {
    super.configure(configs, isKey)
  }

  override def fromConnectData(topic: String, schema: Schema, value: Object): Array[Byte] = {
    try {
      super.fromConnectData(topic, schema, value)
    } catch {
      case t: Throwable =>
        t.printStackTrace()
        // Ignore exceptions
        null
    }
  }

  override def toConnectData(topic: String, value: Array[Byte]): SchemaAndValue = {
    try {
      super.toConnectData(topic, value)
    } catch {
      case t: Throwable =>
        t.printStackTrace()
        // Ignore exceptions
        SchemaAndValue.NULL
    }
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy