summaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorAndreas Eriksen <andreer@yahooinc.com>2022-08-05 15:43:35 +0200
committerGitHub <noreply@github.com>2022-08-05 15:43:35 +0200
commit1d89c41ce6ecdb56a29317984086740b8ac008d4 (patch)
tree1191399656cb231fc14beeaf99b3667d44d21d9a /config-application-package
parente2806962df2fe6b8e9fa4fe73cd210a901f441d0 (diff)
warn on use of deprecated xml features (#23583)
* warn on use of deprecated xml features * ignore zip extraction issues for tests
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/application/ValidationProcessor.java18
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java4
2 files changed, 21 insertions, 1 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/application/ValidationProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/ValidationProcessor.java
new file mode 100644
index 00000000000..5f430f70584
--- /dev/null
+++ b/config-application-package/src/main/java/com/yahoo/config/application/ValidationProcessor.java
@@ -0,0 +1,18 @@
+package com.yahoo.config.application;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+
+import javax.xml.transform.TransformerException;
+import java.io.IOException;
+
+public class ValidationProcessor implements PreProcessor {
+
+ @Override
+ public Document process(Document input) throws IOException, TransformerException {
+ NodeList includeitems = input.getElementsByTagNameNS("http://www.w3.org/2001/XInclude", "*");
+ if (includeitems.getLength() > 0)
+ throw new UnsupportedOperationException("XInclude not supported, use preprocess:include instead");
+ return input;
+ }
+} \ No newline at end of file
diff --git a/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
index 640cc7bcfa7..ba68894c9f9 100644
--- a/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
+++ b/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
@@ -5,6 +5,7 @@ import com.yahoo.config.application.FileSystemWrapper.FileWrapper;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.RegionName;
+import com.yahoo.text.XML;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -57,7 +58,7 @@ public class XmlPreProcessor {
}
public Document run() throws ParserConfigurationException, IOException, SAXException, TransformerException {
- DocumentBuilder docBuilder = Xml.getPreprocessDocumentBuilder();
+ DocumentBuilder docBuilder = XML.getDocumentBuilder();
Document document = docBuilder.parse(new InputSource(xmlInput));
return execute(document);
}
@@ -74,6 +75,7 @@ public class XmlPreProcessor {
chain.add(new IncludeProcessor(applicationDir));
chain.add(new OverrideProcessor(instance, environment, region));
chain.add(new PropertiesProcessor());
+ chain.add(new ValidationProcessor()); // must be last in chain
return chain;
}