protected void executeFeatures()

in tooling/camel-catalog-generator-karaf-maven-plugin/src/main/java/org/apache/camel/karaf/maven/PrepareCatalogKarafMojo.java [139:220]


    protected void executeFeatures(Set<String> features) throws MojoExecutionException, MojoFailureException {
        // lets use sorted set/maps
        Set<File> jsonFiles = new TreeSet<>();

        if (componentsDir != null && componentsDir.isDirectory()) {
            File[] files = componentsDir.listFiles();
            if (files != null) {
                for (File file : files) {
                    String name = stripExt(file);
                    if (features.contains("camel-" + name) || isCoreComponent(name)) {
                        jsonFiles.add(file);
                    }
                }
            }
        }

        // include paxlogging and eventadmin as regular components
        jsonFiles.add(new File(karafComponentsDir, "camel-eventadmin/target/classes/org/apache/camel/component/eventadmin/eventadmin.json"));
        jsonFiles.add(new File(karafComponentsDir, "camel-paxlogging/target/classes/org/apache/camel/component/paxlogging/paxlogging.json"));

        if (!jsonFiles.isEmpty()) {
            Path outDir = componentsOutDir.toPath();
            copyFiles(outDir, jsonFiles);
            generateJsonList(outDir, "../components.properties");
            getLog().info("Copying " + jsonFiles.size() + " Camel component json descriptors");
        }

        jsonFiles.clear();
        if (dataformatsDir != null && dataformatsDir.isDirectory()) {
            File[] files = dataformatsDir.listFiles();
            if (files != null) {
                for (File file : files) {
                    // all dataformats are supported on karaf
                    jsonFiles.add(file);
                }
            }
        }
        if (!jsonFiles.isEmpty()) {
            Path outDir = dataFormatsOutDir.toPath();
            copyFiles(outDir, jsonFiles);
            generateJsonList(outDir, "../dataformats.properties");
            getLog().info("Copying " + jsonFiles.size() + " Camel dataformat json descriptors");
        }

        jsonFiles.clear();
        if (languagesDir != null && languagesDir.isDirectory()) {
            File[] files = languagesDir.listFiles();
            if (files != null) {
                for (File file : files) {
                    // all languages are supported on karaf
                    jsonFiles.add(file);
                }
            }
        }
        if (!jsonFiles.isEmpty()) {
            Path outDir = languagesOutDir.toPath();
            copyFiles(outDir, jsonFiles);
            generateJsonList(outDir, "../languages.properties");
            getLog().info("Copying " + jsonFiles.size() + " Camel language json descriptors");
        }

        jsonFiles.clear();
        if (othersDir != null && othersDir.isDirectory()) {
            File[] files = othersDir.listFiles();
            if (files != null) {
                for (File file : files) {
                    if (features.contains("camel-" + stripExt(file))) {
                        jsonFiles.add(file);
                    }
                }
            }
        }
        // include others that are in camel-karaf only
        jsonFiles.add(new File(karafComponentsDir, "camel-blueprint/target/classes/blueprint.json"));
        jsonFiles.add(new File(karafComponentsDir, "camel-kura/target/classes/kura.json"));
        if (!jsonFiles.isEmpty()) {
            Path outDir = othersOutDir.toPath();
            copyFiles(outDir, jsonFiles);
            generateJsonList(outDir, "../others.properties");
            getLog().info("Copying " + jsonFiles.size() + " Camel other json descriptors");
        }
    }