in tooling/camel-karaf-feature-maven-plugin/src/main/java/org/apache/camel/karaf/feature/maven/EnsureWrapBundleNameMojo.java [101:141]
private String insertHeaderIfNeeded(boolean dollarNeeded, String location, Map<String, String> headers) {
StringBuilder sb = new StringBuilder(location);
for (Map.Entry<String, String> entry : headers.entrySet()) {
if (location.contains(entry.getKey())) {
continue;
}
boolean hasChanged = false;
// insert before existing headers header
for (String header : HEADERS_AFTER_BUNDLE_NAME) {
// add Bundle-Version before
if (location.contains(header)) {
int versionHeaderStartIndex = location.indexOf(header);
if (dollarNeeded) {
// "amp;" is automatically added
dollarNeeded = false;
location = sb.insert(versionHeaderStartIndex, "$%s&".formatted(entry.getValue())).toString();
} else {
// "amp;" is automatically added
location = sb.insert(versionHeaderStartIndex, "%s&".formatted(entry.getValue())).toString();
}
hasChanged = true;
break;
}
}
if (hasChanged) {
//header already handled, go to next
continue;
}
// insert at the end
if (dollarNeeded) {
dollarNeeded = false;
location = sb.insert(location.length(), "$%s".formatted(entry.getValue())).toString();
} else {
// "amp;" is automatically added
location = sb.insert(location.length(), "&%s".formatted(entry.getValue())).toString();
}
}
return location;
}