in tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/CamelKafkaConnectorKameletUpdateMojo.java [560:638]
private void addConnectorOptions(String sanitizedName, ConnectorType ct, JavaClass javaClass, Method confMethod, String propertyQualifier, KameletPropertyModel kameletProperty,
List<CamelKafkaConnectorOptionModel> listOptions, Set<String> kameletRequiredProperties) {
String propertyName = kameletProperty.getName();
String regex = "([A-Z][a-z]+)";
String replacement = "$1_";
String propertyPrefix = "CAMEL_" + ct + "_" + sanitizedName.replace("-", "").toUpperCase() + "_" + propertyQualifier.toUpperCase() + "_"
+ StringUtils.capitalize(propertyName).replaceAll(regex, replacement).toUpperCase();
String propertyValue = "camel.kamelet." + name + "." + propertyName;
String confFieldName = propertyPrefix + "CONF";
javaClass.addField().setFinal(true).setPublic().setStatic(true).setName(confFieldName).setType(String.class).setStringInitializer(propertyValue);
String docFieldName = propertyPrefix + "DOC";
String docLiteralInitializer = kameletProperty.getDescription().replace("\n", " ");
if (kameletProperty.getExample() != null) {
docLiteralInitializer = docLiteralInitializer + " Example: " + kameletProperty.getExample().replace("\n", " ");
}
javaClass.addField().setFinal(true).setPublic().setStatic(true).setName(docFieldName).setType(String.class).setStringInitializer(docLiteralInitializer);
String defaultFieldName = propertyPrefix + "DEFAULT";
Class<?> defaultValueClass = PRIMITIVE_TYPES_TO_CLASS_MAP.getOrDefault(kameletProperty.getType(), String.class);
String type = defaultValueClass.getSimpleName().toLowerCase();
String defaultValueClassLiteralInitializer;
if (kameletProperty.getDefaultValue() == null) {
//Handling null default camel options values (that means there is no default value).
defaultValueClassLiteralInitializer = "null";
} else {
defaultValueClassLiteralInitializer = kameletProperty.getDefaultValue();
if (defaultValueClass.equals(String.class)) {
defaultValueClassLiteralInitializer = "\"" + defaultValueClassLiteralInitializer + "\"";
}
if (defaultValueClass.equals(Long.class) || defaultValueClass.equals(Integer.class) || defaultValueClass.equals(int.class)) {
if (type.equalsIgnoreCase("duration")) {
if (defaultValueClassLiteralInitializer.endsWith("ms")) {
defaultValueClassLiteralInitializer = StringUtils.removeEnd(defaultValueClassLiteralInitializer, "ms");
} else {
defaultValueClassLiteralInitializer = Long.toString(TimeUtils.toMilliSeconds(defaultValueClassLiteralInitializer));
}
}
if (defaultValueClass.equals(Long.class) && !defaultValueClassLiteralInitializer.endsWith("L")) {
defaultValueClassLiteralInitializer = defaultValueClassLiteralInitializer + "L";
}
}
if (defaultValueClass.equals(Float.class)) {
defaultValueClassLiteralInitializer = defaultValueClassLiteralInitializer + "F";
}
if (defaultValueClass.equals(Double.class)) {
defaultValueClassLiteralInitializer = defaultValueClassLiteralInitializer + "D";
}
}
javaClass.addField().setFinal(true).setPublic().setStatic(true).setName(defaultFieldName).setType(defaultValueClass)
.setLiteralInitializer(defaultValueClassLiteralInitializer);
String confType;
if ("password".equals(kameletProperty.getFormat())) {
confType = PRIMITIVE_TYPES_TO_KAFKA_CONFIG_DEF_MAP.getOrDefault(type, CONFIG_DEF_TYPE_PASSWORD);
} else {
confType = PRIMITIVE_TYPES_TO_KAFKA_CONFIG_DEF_MAP.getOrDefault(type, CONFIG_DEF_TYPE_STRING);
}
boolean isRequired = kameletRequiredProperties.contains(kameletProperty.getName());
String confPriority = isRequired ? CONFIG_DEF_IMPORTANCE_HIGH : CONFIG_DEF_IMPORTANCE_MEDIUM;
confMethod.setBody(confMethod.getBody() + "conf.define(" + confFieldName + ", " + confType + ", " + defaultFieldName + ", " + confPriority + ", " + docFieldName + ");\n");
CamelKafkaConnectorOptionModel optionModel = new CamelKafkaConnectorOptionModel();
optionModel.setName(propertyValue);
optionModel.setDescription(docLiteralInitializer);
optionModel.setPriority(StringUtils.removeStart(confPriority, CONFIG_DEF_IMPORTANCE_PREFIX));
optionModel.setDefaultValue(defaultValueClassLiteralInitializer.equals("null") ? null : defaultValueClassLiteralInitializer);
optionModel.setRequired(String.valueOf(isRequired));
//XXX: kamelets dose not support enum like properties type yet.
listOptions.add(optionModel);
}