in extensions/kamelet/deployment/src/main/java/org/apache/camel/quarkus/component/kamelet/deployment/KameletProcessor.java [156:200]
private Set<String> resolveKameletBeanClasses(List<String> kameletResources) {
Set<String> kameletBeanClasses = new HashSet<>();
for (String kameletResource : kameletResources) {
LOGGER.debugf("Processing kamelet resource %s", kameletResource);
try (InputStream stream = getKameletAsStream(kameletResource)) {
if (stream == null) {
continue;
}
// Parse out any #class: references from the YAML. Avoids having to instantiate a CamelContext or YAML parser
try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8))) {
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("#")) {
continue;
}
String beanClass = StringHelper.after(line, CLASS_PREFIX);
if (ObjectHelper.isNotEmpty(beanClass)) {
beanClass = StringHelper.removeQuotes(beanClass);
// Handle #class declarations that include constructor args
if (beanClass.contains("(")) {
beanClass = StringHelper.before(beanClass, "(");
}
// Ignore #class declarations with property placeholders
if (beanClass.contains("{{")) {
continue;
}
LOGGER.debugf("Discovered kamelet bean class %s", beanClass);
kameletBeanClasses.add(beanClass);
}
}
}
} catch (IOException e) {
LOGGER.debugf(e, "Failed processing kamelet resource %s", kameletResource);
}
}
return kameletBeanClasses;
}