summaryrefslogtreecommitdiffstats
path: root/configgen
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2022-07-05 10:39:42 +0200
committergjoranv <gv@verizonmedia.com>2022-07-05 10:39:42 +0200
commit8d7106d9e839a711008e169b14228c6366e2761e (patch)
tree2a9791596842a48884a27d723608ae178350b1b6 /configgen
parentf2802027f402d5b16f5fffb9cfc5a3d7f7401ab4 (diff)
Use a flag to enable warning(s) to System.err
- to avoid such warnings in the configserver log.
Diffstat (limited to 'configgen')
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/DefParser.java16
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java3
2 files changed, 16 insertions, 3 deletions
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 2ed0bc62d0b..cebb7ca8108 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java
@@ -18,8 +18,10 @@ public class DefParser {
public static final String DEFAULT_PACKAGE_PREFIX = "com.yahoo.";
static final Pattern commentPattern = Pattern.compile("^\\s*#+\\s*(.*?)\\s*$");
+
// TODO: Version is ignored, remove in Vespa 9
public static final Pattern versionPattern = Pattern.compile("^(version\\s*=\\s*)([0-9][0-9-]*)$");
+
// Namespace/package must start with a letter, since Java (Java language Spec, section 3.8) and C++ identifiers cannot start with a digit
public static final Pattern namespacePattern = getNamespacePattern("namespace");
public static final Pattern packagePattern = getNamespacePattern("package");
@@ -32,7 +34,7 @@ public class DefParser {
private final String name;
private InnerCNode root = null;
private NormalizedDefinition normalizedDefinition = null;
-
+ private boolean systemErrEnabled = false;
private String comment = "";
@@ -54,6 +56,10 @@ public class DefParser {
}
}
+ void enableSystemErr() {
+ systemErrEnabled = true;
+ }
+
// If name contains namespace, return just name
private String createName(String name) {
if (name.contains(".")) {
@@ -127,7 +133,7 @@ public class DefParser {
}
Matcher versionMatch = versionPattern.matcher(line);
if (versionMatch.matches()) {
- System.err.println("Warning: In config definition '" + name + "': version is deprecated and ignored, please remove, support will be removed in Vespa 9");
+ printSystemErr("Warning: In config definition '" + name + "': version is deprecated and ignored, please remove, support will be removed in Vespa 9");
return;
}
Matcher namespaceMatcher = namespacePattern.matcher(line);
@@ -222,7 +228,11 @@ public class DefParser {
}
- class DefParserException extends Exception {
+ private void printSystemErr(String s) {
+ if (systemErrEnabled) System.err.println(s);
+ }
+
+ static class DefParserException extends Exception {
DefParserException(String s, Throwable cause) {
super(s, cause);
}
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java b/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java
index 684dd62a9a2..04f7c90c9b9 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java
@@ -30,9 +30,12 @@ public class MakeConfig {
for (File specFile : properties.specFiles) {
String name = specFile.getName();
if (name.endsWith(".def")) name = name.substring(0, name.length() - 4);
+
DefParser parser = new DefParser(name, new FileReader(specFile));
+ parser.enableSystemErr();
InnerCNode configRoot = parser.getTree();
checkNamespaceAndPacakge(name, configRoot, isCpp(properties));
+
if (configRoot != null) {
MakeConfig mc = new MakeConfig(configRoot, parser.getNormalizedDefinition(), properties);
mc.buildClasses();