in library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/headers/DuplicateNamingHeaders.java [55:90]
public void process(Exchange ex) throws InvalidPayloadException {
Map<String, Object> originalHeaders = ex.getMessage().getHeaders();
Map<String, Object> newHeaders = new HashMap<>();
for (Map.Entry<String, Object> entry : originalHeaders.entrySet()) {
String key = entry.getKey();
Object val = entry.getValue();
if (prefix != null && mode.equalsIgnoreCase("all")) {
if (key.startsWith(prefix)) {
String newKey = key.replaceFirst(prefix, renamingPrefix);
String subKey = newKey.substring(renamingPrefix.length());
String suffix = subKey.replaceAll(String.format("%s|%s|%s", "(?<=[A-Z])(?=[A-Z][a-z])",
"(?<=[^A-Z])(?=[A-Z])", "(?<=[A-Za-z])(?=[^A-Za-z])"), ".").toLowerCase();
newHeaders.put(renamingPrefix + suffix, val);
}
} else {
if (selectedHeaders != null && mode.equalsIgnoreCase("filtering")) {
List<String> headerList = Arrays.asList(selectedHeaders.split(","));
for (Iterator iterator = headerList.iterator(); iterator.hasNext();) {
String header = (String) iterator.next();
if (key.equalsIgnoreCase(header)) {
String newKey = key.replaceFirst(prefix, renamingPrefix);
String subKey = newKey.substring(renamingPrefix.length());
String suffix = subKey
.replaceAll(String.format("%s|%s|%s", "(?<=[A-Z])(?=[A-Z][a-z])",
"(?<=[^A-Z])(?=[A-Z])", "(?<=[A-Za-z])(?=[^A-Za-z])"), ".")
.toLowerCase();
newHeaders.put(renamingPrefix + suffix, val);
}
}
}
}
}
originalHeaders.putAll(newHeaders);
ex.getMessage().setHeaders(originalHeaders);
}