Feat/es suport pk from key (#162)
* ElasticSearch Document Primary Key
The ES sink connector misses the feature of choosing the key from the Key or Header. No SMT would help move data from the Key into the Value payload so that the connector can work in the scenarios where the Key or a Header carries information to be used as part of the ElasticSearch document primary key.
The change refines the TransformAndExtractPK to take the Key and Headers. It adds tests that were missing for PrimaryKeyExtractor, JsonPayloadExtractor and TransformAndExtractPK
* Improve the code complexity
Co-authored-by: David Sloan <[email protected]>
* Improve the test for json payload to mix ing OptionValues and reduce the code required
Make the _key/_value/_header a constant.
* Avoid deseralising the key a json if there is not _key path in the primary keys list
* Enhances the functionality of PK path extraction by allowing the path to be specified as _key or nested paths like _key.fieldA.fieldB. This change broadens the scope of supported incoming types, ensuring compatibility with all Kafka Connect Struct types, as well as schemaless input. It provides more flexibility and robustness in handling diverse data formats for primary key extraction.
* Fix the unit tests and the handling of bytes/string
* Remove unused import
---------
Co-authored-by: stheppi <[email protected]>
Co-authored-by: David Sloan <[email protected]>