public void process()

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