<#function kafkaCacheBackupLoaderProfiles>
<#assign profiles = []>
<#if featureEnabled.createCacheLoader??>
<#assign profiles = profiles + ["kafka-cache-loader"]>
</#if>
<#if featureEnabled.createBackupLoader!false>
<#assign profiles = profiles + ["kafka-backup-loader"]>
</#if>
<#return profiles?join(", ")>
for the input following inputs :
"featureEnabled": {
"createCacheLoader": true
}
the code returns: kafka-cache-loader
"featureEnabled": {
}
the code returns : <an empty profiles array>
"featureEnabled": {
"createCacheLoader": false
}
the code returns : kafka-cache-loader
<an empty profiles array>
as createCacheLoader is false<#if (featureEnabled.createCacheLoader)??>
but the result is same as shown above.if we talk about the other expression: <#if featureEnabled.createBackupLoader!false>
code is working as expected i.e incase createBackupLoader
is false or null
it does not print kafka-backup-loader
. if true
it prints kafka-backup-loader
I think I am missing some concept here.
The featureEnabled.createCacheLoader??
expression just tells if createCacheLoader
(inside featureEnabled
, which must exist) is existing and non-null, and it doesn't matter what the value of it is. If you want it to be false
in effect if it's not there, then write featureEnabled.createCacheLoader!false
.
See also: https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_missing