11/*
2- * Copyright (c) 2020, 2024 Oracle and/or its affiliates.
2+ * Copyright (c) 2020, 2025 Oracle and/or its affiliates.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
@@ -45,6 +45,8 @@ public class JulMdcTest {
4545
4646 private static final String TEST_KEY = "test" ;
4747 private static final String TEST_VALUE = "value" ;
48+ private static final String TEST_SUPPLIED_KEY = "supplied_test" ;
49+ private static final String TEST_SUPPLIED_VALUE = "supplied_value" ;
4850
4951 @ Test
5052 public void testMdc () {
@@ -54,19 +56,22 @@ public void testMdc() {
5456 LogConfig .initClass ();
5557 OUTPUT_STREAM .reset ();
5658 HelidonMdc .set (TEST_KEY , TEST_VALUE );
59+ HelidonMdc .set (TEST_SUPPLIED_KEY , () -> TEST_SUPPLIED_VALUE );
5760 String message = "This is test logging message" ;
5861 String thread = Thread .currentThread ().toString ();
5962 String logMessage = logMessage (message );
60- assertThat (logMessage , endsWith (thread + ": " + message + " " + TEST_VALUE + System .lineSeparator ()));
63+ assertThat (logMessage , endsWith (thread + ": " + message + " " + TEST_VALUE + " " + TEST_SUPPLIED_VALUE + System .lineSeparator ()));
6164
6265 HelidonMdc .remove (TEST_KEY );
66+ HelidonMdc .remove (TEST_SUPPLIED_KEY );
6367 logMessage = logMessage (message );
64- assertThat (logMessage , endsWith (thread + ": " + message + " " + System .lineSeparator ()));
68+ assertThat (logMessage , endsWith (thread + ": " + message + " " + " " + System .lineSeparator ()));
6569
6670 HelidonMdc .set (TEST_KEY , TEST_VALUE );
71+ HelidonMdc .set (TEST_SUPPLIED_KEY , () -> TEST_SUPPLIED_VALUE );
6772 HelidonMdc .clear ();
6873 logMessage = logMessage (message );
69- assertThat (logMessage , endsWith (thread + ": " + message + " " + System .lineSeparator ()));
74+ assertThat (logMessage , endsWith (thread + ": " + message + " " + " " + System .lineSeparator ()));
7075 } finally {
7176 System .setOut (original );
7277 }
@@ -84,13 +89,14 @@ private String logMessage(String message) {
8489 @ Test
8590 public void testThreadPropagationWithContext () {
8691 HelidonMdc .set (TEST_KEY , TEST_VALUE );
92+ HelidonMdc .set (TEST_SUPPLIED_KEY , () -> TEST_SUPPLIED_VALUE );
8793 Context context = Context .create ();
8894 ExecutorService executor = Contexts .wrap (Executors .newFixedThreadPool (1 ));
8995
9096 Contexts .runInContext (context , () -> {
9197 try {
9298 String value = executor .submit (new TestCallable ()).get ();
93- assertThat (value , is (TEST_VALUE ));
99+ assertThat (value , is (TEST_VALUE + "/" + TEST_SUPPLIED_VALUE ));
94100 } catch (Exception e ) {
95101 throw new ExecutorException ("failed to execute" , e );
96102 }
@@ -100,11 +106,12 @@ public void testThreadPropagationWithContext() {
100106 @ Test
101107 public void testThreadPropagationWithoutContext () {
102108 HelidonMdc .set (TEST_KEY , TEST_VALUE );
109+ HelidonMdc .set (TEST_SUPPLIED_KEY , () -> TEST_SUPPLIED_VALUE );
103110 ExecutorService executor = Contexts .wrap (Executors .newFixedThreadPool (1 ));
104111
105112 try {
106113 String value = executor .submit (new TestCallable ()).get ();
107- assertThat (value , is (TEST_VALUE ));
114+ assertThat (value , is (TEST_VALUE + "/" + TEST_SUPPLIED_VALUE ));
108115 } catch (Exception e ) {
109116 throw new ExecutorException ("failed to execute" , e );
110117 }
@@ -114,7 +121,7 @@ private static final class TestCallable implements Callable<String> {
114121
115122 @ Override
116123 public String call () {
117- return JulMdc .get (TEST_KEY );
124+ return JulMdc .get (TEST_KEY ) + "/" + JulMdc . get ( TEST_SUPPLIED_KEY ) ;
118125 }
119126 }
120127
0 commit comments