aboutsummaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-10-30 08:10:14 +0100
committerHarald Musum <musum@verizonmedia.com>2020-10-30 08:10:14 +0100
commitb77c3579a9d0216fda679a84adcc0e9c1757ba2c (patch)
tree295a494ba216fda22014605ffb54e5af35eecdff /config-application-package
parent6b10fcfe98b9dbcfb80974224006e0cd6d73536f (diff)
Log more when preprocessing fails
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java30
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java5
2 files changed, 18 insertions, 17 deletions
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 6aa8f8bf1a1..1bdedc503bf 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
@@ -1,4 +1,4 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model.application.provider;
import com.yahoo.component.Version;
@@ -601,28 +601,32 @@ public class FilesApplicationPackage implements ApplicationPackage {
return searchDefinitionContents();
}
- private void preprocessXML(File destination, File inputXml, Zone zone) throws ParserConfigurationException, TransformerException, SAXException, IOException {
- Document document = new XmlPreProcessor(appDir,
- inputXml,
- metaData.getApplicationId().instance(),
- zone.environment(),
- zone.region()).run();
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
- try (FileOutputStream outputStream = new FileOutputStream(destination)) {
- transformer.transform(new DOMSource(document), new StreamResult(outputStream));
+ private void preprocessXML(File destination, File inputXml, Zone zone) throws IOException {
+ if ( ! inputXml.exists()) return;
+ try {
+ Document document = new XmlPreProcessor(appDir,
+ inputXml,
+ metaData.getApplicationId().instance(),
+ zone.environment(),
+ zone.region()).run();
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ try (FileOutputStream outputStream = new FileOutputStream(destination)) {
+ transformer.transform(new DOMSource(document), new StreamResult(outputStream));
+ }
+ } catch (TransformerException |ParserConfigurationException | SAXException e) {
+ throw new RuntimeException("Error preprocessing " + inputXml.getAbsolutePath() + ": " + e.getMessage(), e);
}
}
@Override
- public ApplicationPackage preprocess(Zone zone, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException {
+ public ApplicationPackage preprocess(Zone zone, DeployLogger logger) throws IOException {
IOUtils.recursiveDeleteDir(preprocessedDir);
IOUtils.copyDirectory(appDir, preprocessedDir, -1, (dir, name) -> ! name.equals(preprocessed) &&
! name.equals(SERVICES) &&
! name.equals(HOSTS) &&
! name.equals(CONFIG_DEFINITIONS_DIR));
preprocessXML(new File(preprocessedDir, SERVICES), getServicesFile(), zone);
- if (getHostsFile().exists())
- preprocessXML(new File(preprocessedDir, HOSTS), getHostsFile(), zone);
+ preprocessXML(new File(preprocessedDir, HOSTS), getHostsFile(), zone);
FilesApplicationPackage preprocessed = FilesApplicationPackage.fromFile(preprocessedDir, includeSourceFiles);
preprocessed.copyUserDefsIntoApplication();
return preprocessed;
diff --git a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java
index be4d8fdab25..dcc75fff540 100644
--- a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java
+++ b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java
@@ -10,10 +10,7 @@ import com.yahoo.io.IOUtils;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
-import org.xml.sax.SAXException;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
@@ -32,7 +29,7 @@ public class FilesApplicationPackageTest {
public TemporaryFolder temporaryFolder = new TemporaryFolder();
@Test
- public void testPreprocessing() throws IOException, TransformerException, ParserConfigurationException, SAXException {
+ public void testPreprocessing() throws IOException {
File appDir = temporaryFolder.newFolder();
IOUtils.copyDirectory(new File("src/test/resources/multienvapp"), appDir);
assertTrue(new File(appDir, "services.xml").exists());