This is an automated email from the ASF dual-hosted git repository. pcongiusti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 9cbf57524457df8f558f68280dd5df93a1f941b9 Author: Pasquale Congiusti <[email protected]> AuthorDate: Thu Sep 25 09:10:56 2025 +0200 feat(components): mdc all headers/properties --- .../main/java/org/apache/camel/mdc/MDCService.java | 37 +++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/components/camel-mdc/src/main/java/org/apache/camel/mdc/MDCService.java b/components/camel-mdc/src/main/java/org/apache/camel/mdc/MDCService.java index eaf890f93cf..bd38d6a9a16 100644 --- a/components/camel-mdc/src/main/java/org/apache/camel/mdc/MDCService.java +++ b/components/camel-mdc/src/main/java/org/apache/camel/mdc/MDCService.java @@ -93,6 +93,12 @@ public class MDCService extends ServiceSupport implements CamelMDCService { camelContext.getCamelContextExtension().addLogListener(new TracingLogListener()); } + @Override + protected void doStart() throws Exception { + super.doStart(); + LOG.info("Mapped Diagnostic Context (MDC) enabled"); + } + private final class TracingLogListener implements LogListener { @Override @@ -101,12 +107,18 @@ public class MDCService extends ServiceSupport implements CamelMDCService { // Default values prepareMDC(exchange); if (getCustomHeaders() != null) { - // User headers values - userSelectedHeadersMDC(exchange); + if (getCustomHeaders().equals("*")){ + allHeadersMDC(exchange); + } else { + userSelectedHeadersMDC(exchange); + } } if (getCustomProperties() != null) { - // User headers values - userSelectedPropertiesMDC(exchange); + if (getCustomProperties().equals("*")){ + allPropertiesMDC(exchange); + } else { + userSelectedPropertiesMDC(exchange); + } } } catch (Exception t) { // This exception is ignored @@ -149,6 +161,14 @@ public class MDCService extends ServiceSupport implements CamelMDCService { } } } + // Include all available headers + private void allHeadersMDC(Exchange exchange) { + for (String header : exchange.getIn().getHeaders().keySet()) { + if (exchange.getIn().getHeader(header) != null) { + MDC.put(header, exchange.getIn().getHeader(header, String.class)); + } + } + } // Include those properties selected by the user private void userSelectedPropertiesMDC(Exchange exchange) { @@ -158,6 +178,15 @@ public class MDCService extends ServiceSupport implements CamelMDCService { } } } + + // Include all available properties + private void allPropertiesMDC(Exchange exchange) { + for (String property : exchange.getAllProperties().keySet()) { + if (exchange.getProperty(property) != null) { + MDC.put(property, exchange.getProperty(property, String.class)); + } + } + } } }
