private String insertHeaderIfNeeded()

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;
    }