private void createStarter()

in tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/StarterGeneratorMojo.java [124:158]


    private void createStarter() throws MojoFailureException, IOException {
        getLog().info("Creating starter for " + componentName);
        File directory = new File(startersDir, "camel-" + componentName + "-starter");
        if (directory.exists()) {
            if (directory.isDirectory()) {
                throw new MojoFailureException("Directory already exists: " + directory);
            } else {
                throw new MojoFailureException("Can not create directory as a file already exists: " + directory);
            }
        }
        if (!directory.mkdirs()) {
            throw new MojoFailureException("Unable to create directory: " + directory);
        }
        Files.write(new File(directory, "pom.xml").toPath(),
                Files.lines(sourcePom.toPath())
                        .map(s -> s.replaceAll("%NAME%", componentName))
                        .collect(Collectors.toList()));
        Path parent = new File(startersDir, "pom.xml").toPath();
        List<String> lines = Files.readAllLines(parent);
        int modulesStart = -1, modulesEnd = -1;
        for (int i = 0; i < lines.size(); i++) {
            String s = lines.get(i);
            if (s.contains("<modules>"))
                modulesStart = i + 1;
            else if (s.contains("</modules>"))
                modulesEnd = i;
        }
        lines = concat(lines.subList(0, modulesStart).stream(),
                       Stream.concat(lines.subList(modulesStart, modulesEnd).stream(),
                                     Stream.of("    <module>camel-" + componentName + "-starter</module>"))
                             .sorted().distinct(),
                       lines.subList(modulesEnd, lines.size()).stream())
                           .collect(Collectors.toList());
        Files.write(parent, lines);
    }