diff options
Diffstat (limited to 'config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java')
-rw-r--r-- | config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java | 15 |
1 files changed, 11 insertions, 4 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 5707206019f..f5ad1dce4e7 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 @@ -106,6 +106,8 @@ public class FilesApplicationPackage extends AbstractApplicationPackage { private final boolean includeSourceFiles; private final TransformerFactory transformerFactory; + private DeploymentSpec deploymentSpec = null; + /** Creates from a directory with source files included */ public static FilesApplicationPackage fromFile(File appDir) { return fromFile(appDir, false); @@ -580,6 +582,12 @@ public class FilesApplicationPackage extends AbstractApplicationPackage { IOUtils.writeFile(metaFile, metaData.asJsonBytes()); } + @Override + public DeploymentSpec getDeploymentSpec() { + if (deploymentSpec != null) return deploymentSpec; + return deploymentSpec = parseDeploymentSpec(false); + } + private void preprocessXML(File destination, File inputXml, Zone zone) throws IOException { if ( ! inputXml.exists()) return; try { @@ -589,10 +597,9 @@ public class FilesApplicationPackage extends AbstractApplicationPackage { instance, zone.environment(), zone.region(), - getDeployment().map(new DeploymentSpecXmlReader(false)::read) - .flatMap(spec -> spec.instance(instance)) - .map(DeploymentInstanceSpec::tags) - .orElse(Tags.empty())) + getDeploymentSpec().instance(instance) + .map(DeploymentInstanceSpec::tags) + .orElse(Tags.empty())) .run(); try (FileOutputStream outputStream = new FileOutputStream(destination)) { |