Package io.debezium.transforms
Class HeaderToValue<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
java.lang.Object
io.debezium.transforms.HeaderToValue<R>
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.apache.kafka.common.Configurable
,org.apache.kafka.connect.transforms.Transformation<R>
public class HeaderToValue<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
extends Object
implements org.apache.kafka.connect.transforms.Transformation<R>
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprivate static final int
private static final String
static final String
static final Field
static final String
static final Field
private final BoundedConcurrentHashMap<org.apache.kafka.connect.header.Headers,
org.apache.kafka.connect.header.Headers> private static final org.slf4j.Logger
private static final String
static final String
private HeaderToValue.Operation
static final String
static final Field
static final String
private final BoundedConcurrentHashMap<org.apache.kafka.connect.data.Schema,
org.apache.kafka.connect.data.Schema> -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprivate org.apache.kafka.connect.data.Schema
buildNewSchema
(String fieldName, org.apache.kafka.connect.data.Schema oldSchema, Map<String, org.apache.kafka.connect.header.Header> headerToProcess, List<String> nestedFields, int level) private org.apache.kafka.connect.data.Struct
buildUpdatedValue
(String fieldName, org.apache.kafka.connect.data.Struct originalValue, Map<String, org.apache.kafka.connect.header.Header> headerToProcess, org.apache.kafka.connect.data.Schema updatedSchema, List<String> nestedFields, int level) void
close()
org.apache.kafka.common.config.ConfigDef
config()
void
getFieldName
(String destinationFieldName, String fieldName, int level) private String
headersToString
(Map<?, ?> map) private static boolean
isChildrenOf
(String fieldName, int level, String[] nestedNames) private boolean
isContainedIn
(String fieldName, List<String> nestedFields) private static boolean
isRootField
(String fieldName, String[] nestedNames) private org.apache.kafka.connect.data.Schema
makeNewSchema
(org.apache.kafka.connect.data.Schema oldSchema, Map<String, org.apache.kafka.connect.header.Header> headerToProcess) private org.apache.kafka.connect.data.Struct
makeUpdatedValue
(org.apache.kafka.connect.data.Struct originalValue, Map<String, org.apache.kafka.connect.header.Header> headerToProcess, org.apache.kafka.connect.data.Schema updatedSchema) private org.apache.kafka.connect.header.Headers
removeHeaders
(org.apache.kafka.connect.header.Headers originalHeaders) private void
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
FIELDS_CONF
- See Also:
-
HEADERS_CONF
- See Also:
-
OPERATION_CONF
- See Also:
-
MOVE_OPERATION
- See Also:
-
COPY_OPERATION
- See Also:
-
CACHE_SIZE
private static final int CACHE_SIZE- See Also:
-
NESTING_SEPARATOR
- See Also:
-
ROOT_FIELD_NAME
- See Also:
-
HEADERS_FIELD
-
FIELDS_FIELD
-
OPERATION_FIELD
-
fields
-
headers
-
operation
-
schemaUpdateCache
private final BoundedConcurrentHashMap<org.apache.kafka.connect.data.Schema,org.apache.kafka.connect.data.Schema> schemaUpdateCache -
headersUpdateCache
private final BoundedConcurrentHashMap<org.apache.kafka.connect.header.Headers,org.apache.kafka.connect.header.Headers> headersUpdateCache
-
-
Constructor Details
-
HeaderToValue
public HeaderToValue()
-
-
Method Details
-
config
public org.apache.kafka.common.config.ConfigDef config() -
configure
- Specified by:
configure
in interfaceorg.apache.kafka.common.Configurable
-
validateConfiguration
private void validateConfiguration() -
apply
-
removeHeaders
private org.apache.kafka.connect.header.Headers removeHeaders(org.apache.kafka.connect.header.Headers originalHeaders) -
makeUpdatedValue
-
buildUpdatedValue
-
isContainedIn
-
makeNewSchema
-
buildNewSchema
-
getFieldName
-
isChildrenOf
-
isRootField
-
headersToString
-
close
public void close()
-