private Set resolveKameletBeanClasses()

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;
    }