From 1a500f7e1cff030288adb564641b641aaf7436db Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Fri, 25 Aug 2023 09:34:57 +0200 Subject: Print warning only when intended --- .../src/main/java/com/yahoo/config/codegen/DefLine.java | 13 ++++++++++++- .../src/main/java/com/yahoo/config/codegen/DefParser.java | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'configgen/src') diff --git a/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java b/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java index fc54f03ad8b..385c7f1979e 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java @@ -30,13 +30,20 @@ public class DefLine { private final static Pattern defaultNullPattern = Pattern.compile("^\\s*default\\s*=\\s*null"); + private final boolean systemErrEnabled; + public DefLine(String line) { + this(line, false); + } + + public DefLine(String line, boolean systemErrEnabled) { + this.systemErrEnabled = systemErrEnabled; StringBuilder sb = new StringBuilder(line); int parsed = parseNameType(sb); sb.delete(0, parsed); if (type.name.equals("file")) { // Note: 'file' is used internally and also there is no support for 'path' in C++, so cannot be removed yet - System.out.println("Warning: config type 'file' is deprecated, use 'path' instead"); + printSystemErr("Warning: config type 'file' is deprecated, use 'path' instead"); } if (type.name.equals("enum")) { parsed = parseEnum(sb); @@ -276,5 +283,9 @@ public class DefLine { } } + private void printSystemErr(String s) { + if (systemErrEnabled) System.err.println(s); + } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java b/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java index 4ba4e85e79c..eaf57c8eda8 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java @@ -150,7 +150,7 @@ public class DefParser { } // Only add lines that are not namespace or comment lines nd.addNormalizedLine(line); - DefLine defLine = new DefLine(line); + DefLine defLine = new DefLine(line, systemErrEnabled); root.setLeaf(root.getName() + "." + defLine.getName(), defLine, comment); comment = ""; } -- cgit v1.2.3