You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Ewen Cheslack-Postava (JIRA)" <ji...@apache.org> on 2017/05/12 22:50:04 UTC

[jira] [Created] (KAFKA-5230) Recommended values for Connect transformations contain the wrong class name

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)