Ewen Cheslack-Postava created KAFKA-5230:
--------------------------------------------
Summary: Recommended values for Connect transformations contain
the wrong class name
Key: KAFKA-5230
URL: https://issues.apache.org/jira/browse/KAFKA-5230
Project: Kafka
Issue Type: Bug
Components: KafkaConnect
Affects Versions: 0.10.2.1, 0.10.2.0
Reporter: Ewen Cheslack-Postava
If you try to validate a connector config with a transformation, it includes
suggested values for that config:
{code}
curl
'http://localhost:8083/connector-plugins/org.apache.kafka.connect.file.FileStreamSourceConnector/config/validate'
-X PUT -H 'Content-Type: application/json' -H 'Accept: */*' --data-binary
'{"connector.class":"org.apache.kafka.connect.file.FileStreamSourceConnector","name":"blah-blah","transforms":"something","file":"/tmp/blah.what","topic":"test-topic","tasks.max":1}'
{code}
However, some of those recommendations do not contain the correct value:
{code}
{
"definition": {
"name": "transforms.something.type",
"type": "CLASS",
"required": true,
"default_value": null,
"importance": "HIGH",
"documentation": "Class for the 'something' transformation.",
"group": "Transforms: something",
"width": "LONG",
"display_name": "Transformation type for something",
"dependents": [],
"order": 0
},
"value": {
"name": "transforms.something.type",
"value": null,
"recommended_values": [
"org.apache.kafka.connect.transforms.ExtractField.Key",
"org.apache.kafka.connect.transforms.ExtractField.Value",
"org.apache.kafka.connect.transforms.HoistField.Key",
"org.apache.kafka.connect.transforms.HoistField.Value",
"org.apache.kafka.connect.transforms.InsertField.Key",
"org.apache.kafka.connect.transforms.InsertField.Value",
"org.apache.kafka.connect.transforms.MaskField.Key",
"org.apache.kafka.connect.transforms.MaskField.Value",
"org.apache.kafka.connect.transforms.RegexRouter",
"org.apache.kafka.connect.transforms.ReplaceField.Key",
"org.apache.kafka.connect.transforms.ReplaceField.Value",
"org.apache.kafka.connect.transforms.SetSchemaMetadata.Key",
"org.apache.kafka.connect.transforms.SetSchemaMetadata.Value",
"org.apache.kafka.connect.transforms.TimestampRouter",
"org.apache.kafka.connect.transforms.ValueToKey"
],
"errors": [
"Missing required configuration \"transforms.something.type\" which
has no default value.",
"Invalid value null for configuration transforms.something.type: Not
a Transformation"
],
"visible": true
}
{code}
In particular, nested classes for Key and Value transformations are being
returned as, e.g.
org.apache.kafka.connect.transforms.ReplaceField.Key
instead of
org.apache.kafka.connect.transforms.ReplaceField$Key
It seems this is the difference between the canonical and regular name.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)