in tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/BomDependenciesGeneratorMojo.java [177:288]
private List<Dependency> enhance(List<Dependency> dependencyList) throws IOException {
List<Dependency> outDependencies = new ArrayList<>();
DependencyMatcher inclusions = new DependencyMatcher(dependencies.getIncludes());
DependencyMatcher exclusions = new DependencyMatcher(dependencies.getExcludes());
for (Dependency dep : dependencyList) {
boolean accept = inclusions.matches(dep) && !exclusions.matches(dep)
&& !(dep.getGroupId().equals("org.apache.camel.springboot")
&& dep.getArtifactId().startsWith("camel-") && dep.getArtifactId().endsWith("-starter"));
getLog().debug(dep + (accept ? " included in the BOM" : " excluded from BOM"));
if (dep.getArtifactId().startsWith("camel-") && dep.getArtifactId().endsWith("-parent")) {
dep.setType("pom");
}
// skip test-jars
boolean testJar = dep.getType() != null && dep.getType().equals("test-jar");
boolean sourcesJar = dep.getClassifier() != null && dep.getClassifier().equals("sources");
if (accept) {
if (testJar) {
getLog().debug(dep + " test-jar excluded from BOM");
} else if (sourcesJar) {
getLog().debug(dep + " source-jar excluded from BOM");
} else {
outDependencies.add(dep);
}
} else {
// lets log a WARN if some Camel JARs was excluded
if (dep.getGroupId().startsWith("org.apache.camel")) {
getLog().warn(dep + " excluded from BOM");
}
}
}
Files.list(startersDir.toPath()).filter(Files::isDirectory)
// must have a pom.xml to be active
.filter(d -> {
File pom = new File(d.toFile(), "pom.xml");
return pom.isFile() && pom.exists();
}).map(dir -> {
Dependency dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId(dir.getFileName().toString());
dep.setVersion("${project.version}");
return dep;
}).forEach(outDependencies::add);
// include core starters
Dependency dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-spring-boot-engine-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-spring-boot-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-spring-boot-xml-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
// include dsl starters
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-cli-connector-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-componentdsl-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-dsl-modeline-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-endpointdsl-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-java-joor-dsl-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-xml-io-dsl-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-xml-jaxb-dsl-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
dep = new Dependency();
dep.setGroupId("org.apache.camel.springboot");
dep.setArtifactId("camel-yaml-dsl-starter");
dep.setVersion("${project.version}");
outDependencies.add(dep);
outDependencies.sort(Comparator.comparing(d -> (d.getGroupId() + ":" + d.getArtifactId())));
return outDependencies;
}