in library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/headers/DeDuplicateNamingHeaders.java [55:90]
public void process(Exchange ex) throws InvalidPayloadException {
Map<String, Object> originalHeaders = ex.getMessage().getHeaders();
Map<String, Object> newHeaders = new HashMap<>();
Iterator<Map.Entry<String, Object>> iterator = originalHeaders.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
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.toUpperCase();
newHeaders.put(renamingPrefix + suffix, val);
iterator.remove();
}
} else {
if (selectedHeaders != null && mode.equalsIgnoreCase("filtering")) {
List<String> headerList = Arrays.asList(selectedHeaders.split(","));
for (Iterator iteratorHeader = headerList.iterator(); iteratorHeader.hasNext();) {
String header = (String) iteratorHeader.next();
if (key.equalsIgnoreCase(header)) {
String newKey = key.replaceFirst(prefix, renamingPrefix);
String subKey = newKey.substring(renamingPrefix.length());
String suffix = subKey.toUpperCase();
newHeaders.put(renamingPrefix + suffix, val);
iterator.remove();
}
}
}
}
}
originalHeaders.putAll(newHeaders);
ex.getMessage().setHeaders(originalHeaders);
}