Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -383,13 +383,13 @@ private String resolveExpansionProperties(Properties props, String value, String
finalReplacement = matcher.group(0); // Keep original
}
matcher.appendReplacement(sb, Matcher.quoteReplacement(finalReplacement));
log.info(String.format("Resolved environment variable \"%s\" in path \"%s\" to \"%s\"", varName, value, finalReplacement));
log.debug(String.format("Resolved environment variable \"%s\" in path \"%s\" to \"%s\"", varName, value, finalReplacement));
}
// 4. Finalize the string
matcher.appendTail(sb);
// Log the complete resolved value once, only when at least one variable was expanded
if (anyMatched) {
log.info(String.format("Resolved path \"%s\" to \"%s\"", value, sb));
log.debug(String.format("Resolved path \"%s\" to \"%s\"", value, sb));
}
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,12 @@ public class ExpansionVariableLogMessageTest {
@Rule
public TemporaryFolder tmp = new TemporaryFolder();

// Captures info() calls for assertion; all other methods delegate to TestLogger
// Captures debug() calls for assertion; all other methods delegate to TestLogger
private static class CapturingLogger extends TestLogger {
final List<String> infoMessages = new ArrayList<>();
final List<String> debugMessages = new ArrayList<>();

@Override
public void info(String msg) { infoMessages.add(msg); }
public void debug(String msg) { debugMessages.add(msg); }
}

// server.env is placed in serverDir because SERVER_CONFIG_DIR maps there, making it visible to processServerEnv()
Expand Down Expand Up @@ -75,10 +75,10 @@ public void testUnixStyleLogMessageFormat() throws Exception {

String expectedMsg = "Resolved environment variable \"BASE\" in path \"${BASE}_SUFFIX\" to \"TEST\"";
String expectedSummary = "Resolved path \"${BASE}_SUFFIX\" to \"TEST_SUFFIX\"";
assertTrue("Expected log message not found.\nActual info messages: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedMsg)));
assertTrue("Expected summary log message not found.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedSummary)));
assertTrue("Expected log message not found.\nActual debug messages: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedMsg)));
assertTrue("Expected summary log message not found.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedSummary)));
}

@Test
Expand All @@ -94,12 +94,12 @@ public void testUnixStyleMultipleVarsLogsBothVarNames() throws Exception {
String expectedMsg1 = "Resolved environment variable \"EXP_VAR\" in path \"${EXP_VAR}_${EXP_VAR2}\" to \"TEST\"";
String expectedMsg2 = "Resolved environment variable \"EXP_VAR2\" in path \"${EXP_VAR}_${EXP_VAR2}\" to \"UNIX\"";
String expectedSummary = "Resolved path \"${EXP_VAR}_${EXP_VAR2}\" to \"TEST_UNIX\"";
assertTrue("Expected first log message not found.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedMsg1)));
assertTrue("Expected second log message not found.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedMsg2)));
assertTrue("Expected summary log message not found.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedSummary)));
assertTrue("Expected first log message not found.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedMsg1)));
assertTrue("Expected second log message not found.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedMsg2)));
assertTrue("Expected summary log message not found.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedSummary)));
}

@Test
Expand All @@ -110,8 +110,8 @@ public void testNoExpansionReferenceNoLogEmitted() throws Exception {
String envContent = "PLAIN_VAR=just_a_value\n";
buildDoc(log, serverDir, envContent).processServerEnv();

assertTrue("No info log message should be emitted for plain values, but found: " + log.infoMessages,
log.infoMessages.isEmpty());
assertTrue("No variable resolution debug log message should be emitted for plain values, but found: " + log.debugMessages,
log.debugMessages.stream().noneMatch(m -> m.startsWith("Resolved environment variable") || m.startsWith("Resolved path")));
}

@Test
Expand All @@ -130,10 +130,10 @@ public void testWindowsStyleBackslashesPreservedInLog() throws Exception {
String expectedMsg = "Resolved environment variable \"IBM_JAVA_SEMERU_HOME\" in path \"!IBM_JAVA_SEMERU_HOME!\\jdk-21.0.10+7\" to \"C:\\MyData\\java\\ibm-semeru-certified\"";
// summary log: shows the full expression after all substitutions
String expectedSummary = "Resolved path \"!IBM_JAVA_SEMERU_HOME!\\jdk-21.0.10+7\" to \"C:\\MyData\\java\\ibm-semeru-certified\\jdk-21.0.10+7\"";
assertTrue("Log message with backslashes not found — backslashes may have been dropped.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedMsg)));
assertTrue("Expected summary log message not found.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedSummary)));
assertTrue("Log message with backslashes not found — backslashes may have been dropped.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedMsg)));
assertTrue("Expected summary log message not found.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedSummary)));
}

@Test
Expand All @@ -149,11 +149,11 @@ public void testWindowsStyleMultipleVarsOneLogPerExpression() throws Exception {
String expectedMsg1 = "Resolved environment variable \"EXP_VAR\" in path \"!EXP_VAR!_!EXP_VAR3!\" to \"TEST\"";
String expectedMsg2 = "Resolved environment variable \"EXP_VAR3\" in path \"!EXP_VAR!_!EXP_VAR3!\" to \"WINDOWS\"";
String expectedSummary = "Resolved path \"!EXP_VAR!_!EXP_VAR3!\" to \"TEST_WINDOWS\"";
assertTrue("Expected first log message not found.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedMsg1)));
assertTrue("Expected second log message not found.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedMsg2)));
assertTrue("Expected summary log message not found.\nActual: " + log.infoMessages,
log.infoMessages.stream().anyMatch(m -> m.equals(expectedSummary)));
assertTrue("Expected first log message not found.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedMsg1)));
assertTrue("Expected second log message not found.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedMsg2)));
assertTrue("Expected summary log message not found.\nActual: " + log.debugMessages,
log.debugMessages.stream().anyMatch(m -> m.equals(expectedSummary)));
}
}
Loading