summaryrefslogtreecommitdiffstats
path: root/configgen
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-12-01 12:15:05 +0100
committerJon Bratseth <bratseth@gmail.com>2020-12-01 12:15:05 +0100
commitb8c148b381ac33f22af00feefc8b49282cc7305f (patch)
tree88c1c2fc060b9fc00260e19eb717d8854afd5d08 /configgen
parentc63b36b1e661da04889abaccd01fd2a6c4ed783f (diff)
Revert "Merge pull request #15552 from vespa-engine/revert-15550-bratseth/apply-on-restart-take-8"
This reverts commit 916492da87189ff9a07e39b22c64f2e1e31ff53a, reversing changes made to 3e5cf1de4c336c2e8d4f3a380dc242f402cb6dea.
Diffstat (limited to 'configgen')
-rw-r--r--configgen/CMakeLists.txt2
-rw-r--r--configgen/pom.xml32
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java42
-rw-r--r--configgen/src/test/resources/allfeatures.reference14
4 files changed, 72 insertions, 18 deletions
diff --git a/configgen/CMakeLists.txt b/configgen/CMakeLists.txt
new file mode 100644
index 00000000000..107037f8008
--- /dev/null
+++ b/configgen/CMakeLists.txt
@@ -0,0 +1,2 @@
+# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+install_java_artifact(configgen)
diff --git a/configgen/pom.xml b/configgen/pom.xml
index 7d316061a99..a335e345234 100644
--- a/configgen/pom.xml
+++ b/configgen/pom.xml
@@ -52,6 +52,38 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
</plugin>
+ <plugin>
+ <!-- Add headers making this an OSGi bundle (cannot use bundle plugin as this is needed at bootstrap).
+ This is needed because the model of config definitions is part of codegen but needed by modules
+ doing generic access over config.
+ -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <configuration>
+ <finalName>${project.artifactId}</finalName>
+ <transformers>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+ <manifestEntries>
+ <Export-Package>com.yahoo.config.codegen</Export-Package>
+ <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
+ <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+ <Bundle-Version>7.0.0</Bundle-Version>
+ <Bundle-Name>${project.artifactId}</Bundle-Name>
+ <Bundle-Vendor>Yahoo!</Bundle-Vendor>
+ <Bundle-ClassPath>.</Bundle-ClassPath>
+ </manifestEntries>
+ </transformer>
+ </transformers>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java b/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
index b3c4d0c5ff8..2ebe7ad03bf 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
@@ -44,7 +44,7 @@ public class BuilderGenerator {
}
private static String getSpecialRootBuilderCode(InnerCNode node) {
- return (node.getParent() == null) ? "\n" + getDispatchCode() + "\n" : "";
+ return (node.getParent() == null) ? "\n" + getRootDeclarations() + "\n" : "";
}
private static String getBuildMethod(InnerCNode node) {
@@ -53,26 +53,36 @@ public class BuilderGenerator {
"}\n";
}
- private static String getDispatchCode() {
+ private static String getRootDeclarations() {
// Use full path to @Override, as users are free to define an inner node called
// 'override'. (summarymap.def does)
// The generated inner 'Override' class would otherwise be mistaken for the
// annotation.
- return "@java.lang.Override\n" + //
- "public final boolean dispatchGetConfig(ConfigInstance.Producer producer) {\n" + //
- " if (producer instanceof Producer) {\n" + //
- " ((Producer)producer).getConfig(this);\n" + //
- " return true;\n" + //
+ return "private boolean _applyOnRestart = false;\n" +
+ "\n" +
+ "@java.lang.Override\n" +
+ "public final boolean dispatchGetConfig(ConfigInstance.Producer producer) {\n" +
+ " if (producer instanceof Producer) {\n" +
+ " ((Producer)producer).getConfig(this);\n" +
+ " return true;\n" +
" }\n" + //
- " return false;\n" + //
- "}\n" + //
- "\n" + //
- "@java.lang.Override\n" + //
- "public final String getDefMd5() { return CONFIG_DEF_MD5; }\n" + //
- "@java.lang.Override\n" + //
- "public final String getDefName() { return CONFIG_DEF_NAME; }\n" + //
- "@java.lang.Override\n" + //
- "public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }";
+ " return false;\n" +
+ "}\n" +
+ "\n" +
+ "@java.lang.Override\n" +
+ "public final String getDefMd5() { return CONFIG_DEF_MD5; }\n" +
+ "\n" +
+ "@java.lang.Override\n" +
+ "public final String getDefName() { return CONFIG_DEF_NAME; }\n" +
+ "\n" +
+ "@java.lang.Override\n" +
+ "public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }\n" +
+ "\n" +
+ "@java.lang.Override\n" +
+ "public final boolean getApplyOnRestart() { return _applyOnRestart; }\n" +
+ "\n" +
+ "@java.lang.Override\n" +
+ "public final void setApplyOnRestart(boolean applyOnRestart) { _applyOnRestart = applyOnRestart; }";
}
private static String getUninitializedScalars(InnerCNode node) {
diff --git a/configgen/src/test/resources/allfeatures.reference b/configgen/src/test/resources/allfeatures.reference
index b84f01f380b..2008bbf6b52 100644
--- a/configgen/src/test/resources/allfeatures.reference
+++ b/configgen/src/test/resources/allfeatures.reference
@@ -601,6 +601,8 @@ public final class AllfeaturesConfig extends ConfigInstance {
return this;
}
+ private boolean _applyOnRestart = false;
+
@java.lang.Override
public final boolean dispatchGetConfig(ConfigInstance.Producer producer) {
if (producer instanceof Producer) {
@@ -611,12 +613,20 @@ public final class AllfeaturesConfig extends ConfigInstance {
}
@java.lang.Override
- public final String getDefMd5() { return CONFIG_DEF_MD5; }
+ public final String getDefMd5() { return CONFIG_DEF_MD5; }
+
@java.lang.Override
- public final String getDefName() { return CONFIG_DEF_NAME; }
+ public final String getDefName() { return CONFIG_DEF_NAME; }
+
@java.lang.Override
public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }
+ @java.lang.Override
+ public final boolean getApplyOnRestart() { return _applyOnRestart; }
+
+ @java.lang.Override
+ public final void setApplyOnRestart(boolean applyOnRestart) { _applyOnRestart = applyOnRestart; }
+
public AllfeaturesConfig build() {
return new AllfeaturesConfig(this);
}