aboutsummaryrefslogtreecommitdiffstats
path: root/config-application-package/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-01-04 17:23:34 +0000
committerArne H Juul <arnej@yahooinc.com>2022-01-06 15:24:03 +0000
commitbba2f4139058e75526df4241b61176cbd7467696 (patch)
treed407ebac120950546d62f1eb80f9f60339b61c75 /config-application-package/src/main/java/com/yahoo
parent2c88a54c47539558ea77010fd523febe52cc954c (diff)
pick up "legacy" XML tags from services.xml
Diffstat (limited to 'config-application-package/src/main/java/com/yahoo')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/AbstractApplicationPackage.java44
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java3
2 files changed, 46 insertions, 1 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/AbstractApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/AbstractApplicationPackage.java
new file mode 100644
index 00000000000..c616784c7be
--- /dev/null
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/AbstractApplicationPackage.java
@@ -0,0 +1,44 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.config.model.application;
+
+import com.yahoo.config.application.api.ApplicationPackage;
+import com.yahoo.config.application.Xml;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * Common code for all implementations of ApplicationPackage
+ *
+ * @author arnej
+ */
+public abstract class AbstractApplicationPackage implements ApplicationPackage {
+
+ @Override
+ public Map<String,String> legacyOverrides() {
+ Map<String, String> result = new HashMap<>();
+ try {
+ Document services = Xml.getDocument(getServices());
+ NodeList legacyNodes = services.getElementsByTagName("legacy");
+ for (int i=0; i < legacyNodes.getLength(); i++) {
+ var flagNodes = legacyNodes.item(i).getChildNodes();
+ for (int j = 0; j < flagNodes.getLength(); ++j) {
+ var flagNode = flagNodes.item(j);
+ if (flagNode.getNodeType() == Node.ELEMENT_NODE) {
+ String key = flagNode.getNodeName();
+ String value = flagNode.getTextContent();
+ result.put(key, value);
+ }
+ }
+ }
+ } catch (Exception e) {
+ // nothing: This method does not validate that services.xml exists, or that it is valid xml.
+ }
+ return result;
+ }
+
+}
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
index 1223f438029..4cde4e7afaa 100644
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
@@ -18,6 +18,7 @@ import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.Zone;
+import com.yahoo.config.model.application.AbstractApplicationPackage;
import com.yahoo.io.HexDump;
import com.yahoo.io.IOUtils;
import com.yahoo.io.reader.NamedReader;
@@ -72,7 +73,7 @@ import static com.yahoo.text.Lowercase.toLowerCase;
*
* @author Vegard Havdal
*/
-public class FilesApplicationPackage implements ApplicationPackage {
+public class FilesApplicationPackage extends AbstractApplicationPackage {
/**
* The name of the subdirectory (below the original application package root)