KaotoIO / kaoto

The UI of the Kaoto project
https://kaoto.io
Apache License 2.0
29 stars 23 forks source link

Camel 4.8 - List of supported functions in the simple language #1320

Open davsclaus opened 3 weeks ago

davsclaus commented 3 weeks ago

Please describe the feature that you want to propose

https://issues.apache.org/jira/browse/CAMEL-20569

In simple.json there is a new functions that list all the functions you can do on simple. Here is a snippet for the prettyBody function

    "prettyBody": { "index": 1, "kind": "function", "displayName": "Pretty Body", "group": "function", "label": "function", "required": false, "javaType": "String", "prefix": "${", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Converts the body to a String, and attempts to pretty print if JSon or XML; otherwise the body is returned as the String value.", "suffix": "}" },

One more aspect is that some functions allow to do "OGNL" ala groovy, where you use DOT method DOT method to call sub methods. If the function allows this then ognl: true would be in the json file.

For example the body function allows this so you can do

 ${body.customer.address.country}

Also notice I added prefix and suffix in the json so you know that the function requires to have this - ie ${body} vs body

davsclaus commented 3 weeks ago

The simple.json is part of the camel-catalog JAR.

davsclaus commented 3 weeks ago

Kaoto can maybe in the future make some code assistance for this, so when you edit in the form, and use have selected simple as language, and then have some kind of code assistance popup, or type completion assistance, so if you type ${CURSOR_HERE and then it can list all the functions. And if you type ${bCURSOR_HERE then it list all functions starting with b ... and so on.

The simple language is used a lot in Camel so having some better tolling assistance would be great.

lhein commented 3 weeks ago

Great addition!