[
https://issues.apache.org/jira/browse/CAMEL-16604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17342581#comment-17342581
]
Claus Ibsen commented on CAMEL-16604:
-------------------------------------
Okay so ideally the kamelet spec should have a way to define something as
optional when you specify the parameter, eg
clientId:
title: Client Id
description: The client id is a user-specified string sent in each request to
help trace calls.
type: string
optional: true
Without that information, then there is no way to know this in advanced,
without having to "guess from the route template DSL code, which is not ideal.
eg when you have the template coded in java, kotlin etc, then its not just a
blurb of text like yaml/xml which you can do an ugly regexp to check for
{{?xxx}} to see if the parameter is only used as optional in the DSL.
> camel-kamelet - YAML DSL: Specify an option as optional results in a
> mandatory option
> -------------------------------------------------------------------------------------
>
> Key: CAMEL-16604
> URL: https://issues.apache.org/jira/browse/CAMEL-16604
> Project: Camel
> Issue Type: Bug
> Components: camel-kamelet
> Reporter: Andrea Cosentino
> Priority: Major
> Fix For: 3.10.0
>
>
> If you have something like:
> {code:java}
> apiVersion: camel.apache.org/v1alpha1
> kind: Kamelet
> metadata:
> name: kafka-not-secured-source
> annotations:
> camel.apache.org/kamelet.icon:
> "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MDAgNTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8ZyBpZD0iWE1MSURfMV8iPg0KCTxwYXRoIGlkPSJYTUxJRF85XyIgZD0iTTMxNC44LDI2OS43Yy0xNC4yLDAtMjcsNi4zLTM1LjcsMTYuMkwyNTYuOCwyNzBjMi40LTYuNSwzLjctMTMuNiwzLjctMjAuOWMwLTcuMi0xLjMtMTQuMS0zLjYtMjAuNg0KCQlsMjIuMy0xNS43YzguNyw5LjksMjEuNCwxNi4xLDM1LjYsMTYuMWMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNnMtMjEuMy00Ny42LTQ3LjYtNDcuNnMtNDcuNiwyMS4zLTQ3LjYsNDcuNg0KCQljMCw0LjcsMC43LDkuMiwyLDEzLjVsLTIyLjMsMTUuN2MtOS4zLTExLjYtMjIuOC0xOS42LTM4LjEtMjIuMXYtMjYuOWMyMS42LTQuNSwzNy44LTIzLjcsMzcuOC00Ni42YzAtMjYuMi0yMS4zLTQ3LjYtNDcuNi00Ny42DQoJCWMtMjYuMiwwLTQ3LjYsMjEuMy00Ny42LDQ3LjZjMCwyMi42LDE1LjgsNDEuNSwzNi45LDQ2LjN2MjcuM2MtMjguOCw1LjEtNTAuOCwzMC4yLTUwLjgsNjAuNWMwLDMwLjQsMjIuMiw1NS43LDUxLjIsNjAuNXYyOC44DQoJCWMtMjEuMyw0LjctMzcuNCwyMy43LTM3LjQsNDYuNGMwLDI2LjIsMjEuMyw0Ny42LDQ3LjYsNDcuNmMyNi4yLDAsNDcuNi0yMS4zLDQ3LjYtNDcuNmMwLTIyLjctMTYtNDEuOC0zNy40LTQ2LjR2LTI4LjgNCgkJYzE1LTIuNSwyOC4yLTEwLjQsMzcuNC0yMS44bDIyLjUsMTUuOWMtMS4yLDQuMy0xLjksOC43LTEuOSwxMy40YzAsMjYuMiwyMS4zLDQ3LjYsNDcuNiw0Ny42czQ3LjYtMjEuMyw0Ny42LTQ3LjYNCgkJQzM2Mi40LDI5MSwzNDEuMSwyNjkuNywzMTQuOCwyNjkuN3ogTTMxNC44LDE1OC40YzEyLjcsMCwyMy4xLDEwLjQsMjMuMSwyMy4xYzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xcy0yMy4xLTEwLjQtMjMuMS0yMy4xDQoJCUMyOTEuOCwxNjguOCwzMDIuMSwxNTguNCwzMTQuOCwxNTguNHogTTE3NiwxMTUuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMWMxMi43LDAsMjMuMSwxMC40LDIzLjEsMjMuMQ0KCQljMCwxMi43LTEwLjMsMjMuMS0yMy4xLDIzLjFDMTg2LjMsMTM4LjIsMTc2LDEyNy44LDE3NiwxMTUuMXogTTIyMi4xLDM4NC45YzAsMTIuNy0xMC4zLDIzLjEtMjMuMSwyMy4xDQoJCWMtMTIuNywwLTIzLjEtMTAuNC0yMy4xLTIzLjFjMC0xMi43LDEwLjMtMjMuMSwyMy4xLTIzLjFDMjExLjgsMzYxLjgsMjIyLjEsMzcyLjIsMjIyLjEsMzg0Ljl6IE0xOTkuMSwyODEuMw0KCQljLTE3LjcsMC0zMi4yLTE0LjQtMzIuMi0zMi4yYzAtMTcuNywxNC40LTMyLjIsMzIuMi0zMi4yYzE3LjcsMCwzMi4yLDE0LjQsMzIuMiwzMi4yQzIzMS4yLDI2Ni45LDIxNi44LDI4MS4zLDE5OS4xLDI4MS4zeg0KCQkgTTMxNC44LDM0MC4zYy0xMi43LDAtMjMuMS0xMC40LTIzLjEtMjMuMWMwLTEyLjcsMTAuMy0yMy4xLDIzLjEtMjMuMXMyMy4xLDEwLjQsMjMuMSwyMy4xQzMzNy45LDMzMCwzMjcuNSwzNDAuMywzMTQuOCwzNDAuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K"
> camel.apache.org/provider: "Apache Software Foundation"
> camel.apache.org/kamelet.group: "Kafka"
> labels:
> camel.apache.org/kamelet.type: "source"
> spec:
> definition:
> title: "Kafka Not Secured Source"
> description: |-
> Receive data from Kafka topics on an insecure broker.
> required:
> - topic
> - brokers
> type: object
> properties:
> topic:
> title: Topic Names
> description: Comma separated list of Kafka topic names
> type: string
> brokers:
> title: Brokers
> description: Comma separated list of Kafka Broker URLs
> type: string
> autoCommitEnable:
> title: Auto Commit Enable
> description: If true, periodically commit to ZooKeeper the offset of
> messages already fetched by the consumer
> type: boolean
> default: true
> x-descriptors:
> - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
> allowManualCommit:
> title: Allow Manual Commit
> description: Whether to allow doing manual commits
> type: boolean
> default: false
> x-descriptors:
> - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
> pollOnError:
> title: Poll On Error Behavior
> description: What to do if kafka threw an exception while polling for new
> messages. There are 5 enums and the value can be one of DISCARD,
> ERROR_HANDLER, RECONNECT, RETRY, STOP
> type: string
> default: "ERROR_HANDLER"
> autoOffsetReset:
> title: Auto Offset Reset
> description: What to do when there is no initial offset. There are 3 enums
> and the value can be one of latest, earliest, none
> type: string
> default: "latest"
> clientId:
> title: Client Id
> description: The client id is a user-specified string sent in each request
> to help trace calls.
> type: string
> dependencies:
> - "camel:kafka"
> - "camel:kamelet"
> flow:
> from:
> uri: "kafka:{{topic}}"
> parameters:
> brokers: "{{brokers}}"
> autoCommitEnable: "{{autoCommitEnable}}"
> allowManualCommit: "{{allowManualCommit}}"
> pollOnError: "{{pollOnError}}"
> autoOffsetReset: "{{autoOffsetReset}}"
> clientId: "{{?clientId}}"
> steps:
> - to: "kamelet:sink"
> {code}
> If I don't specify the clientId I shouldn't have any kind of problem, but as
> result I'm getting:
> [1] 2021-05-11 12:02:16,329 ERROR [io.qua.run.Application] (main) Failed to
> start application (with profile prod): java.lang.IllegalArgumentException:
> Route template kafka-not-secured-source the following mandatory parameters
> must be provided: clientId
--
This message was sent by Atlassian Jira
(v8.3.4#803005)