summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2020-11-12 14:51:47 +0100
committerGitHub <noreply@github.com>2020-11-12 14:51:47 +0100
commit18cac1930b6abf1e6535307bfd13da2dec6c2fd8 (patch)
tree1910d56a5c377dc91eadfb4690b134c27ca418c9
parent152d8f57d0d62506c83894907ca3c2e1fc56dfd6 (diff)
parenta93e4b804a578a8fd7b0f990b161e488026f8eb9 (diff)
Merge pull request #15316 from vespa-engine/hmusum/create-transformerfactory-once
Create transformer factory only once
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java12
1 files changed, 7 insertions, 5 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 9c68fb95cce..ffc975d8668 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
@@ -34,7 +34,6 @@ import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
@@ -98,6 +97,7 @@ public class FilesApplicationPackage implements ApplicationPackage {
private final List<String> userIncludeDirs = new ArrayList<>();
private final ApplicationMetaData metaData;
private final boolean includeSourceFiles;
+ private final TransformerFactory transformerFactory;
/** Creates from a directory with source files included */
public static FilesApplicationPackage fromFile(File appDir) {
@@ -160,6 +160,7 @@ public class FilesApplicationPackage implements ApplicationPackage {
configDefsDir = new File(appDir, ApplicationPackage.CONFIG_DEFINITIONS_DIR);
addUserIncludeDirs();
this.metaData = metaData;
+ transformerFactory = TransformerFactory.newInstance();
}
@Override
@@ -591,12 +592,13 @@ public class FilesApplicationPackage implements ApplicationPackage {
inputXml,
metaData.getApplicationId().instance(),
zone.environment(),
- zone.region()).run();
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ zone.region())
+ .run();
+
try (FileOutputStream outputStream = new FileOutputStream(destination)) {
- transformer.transform(new DOMSource(document), new StreamResult(outputStream));
+ transformerFactory.newTransformer().transform(new DOMSource(document), new StreamResult(outputStream));
}
- } catch (TransformerException |ParserConfigurationException | SAXException e) {
+ } catch (TransformerException | ParserConfigurationException | SAXException e) {
// TODO: 2020-11-09, debugging what seems like missing or empty file while preprocessing. Remove afterwards
if (inputXml.canRead()) {
log.log(Level.WARNING, "Error preprocessing " + inputXml.getAbsolutePath() + ", file content: " + IOUtils.readFile(inputXml));