in tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootStarterMojo.java [132:191]
private void fixAdditionalDependencies(Document pom) throws Exception {
Properties properties = new Properties();
properties.load(getClass().getResourceAsStream("/spring-boot-fix-dependencies.properties"));
Set<String> deps = new TreeSet<>();
deps.addAll(csvToSet(properties.getProperty(getMainDepArtifactId())));
Set<String> globalProps = csvToSet(properties.getProperty("global"));
boolean inGlobal = false;
for (String gp : globalProps) {
String camelGav = getMainDepGroupId() + ":" + getMainDepArtifactId();
String camelSpringBootGav = project.getGroupId() + ":" + project.getArtifactId();
if (gp.equals(camelGav) || gp.equals(camelSpringBootGav)) {
inGlobal = true;
break;
}
}
if (!inGlobal) {
// add global properties for all modules not in global properties
deps.addAll(globalProps);
}
if (deps.size() > 0) {
getLog().debug("The following dependencies will be added to the starter: " + deps);
XPath xpath = XPathFactory.newInstance().newXPath();
Node dependencies = ((NodeList) xpath.compile("/project/dependencies").evaluate(pom, XPathConstants.NODESET)).item(0);
if (deps.size() > 0) {
dependencies.appendChild(pom.createComment(GENERATED_SECTION_START));
for (String dep : deps) {
Element dependency = pom.createElement("dependency");
dependencies.appendChild(dependency);
String[] comps = dep.split("\\:");
String groupIdStr = comps[0];
String artifactIdStr = comps[1];
String versionStr = comps.length > 2 ? comps[2] : null;
Element groupId = pom.createElement("groupId");
groupId.setTextContent(groupIdStr);
dependency.appendChild(groupId);
Element artifactId = pom.createElement("artifactId");
artifactId.setTextContent(artifactIdStr);
dependency.appendChild(artifactId);
if (versionStr != null) {
Element version = pom.createElement("version");
version.setTextContent(versionStr);
dependency.appendChild(version);
}
}
dependencies.appendChild(pom.createComment(GENERATED_SECTION_END));
}
}
}