diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-09-09 13:52:14 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-09-09 13:52:14 +0200 |
commit | 01b61de4db4be59d86298d540aaa948c68185585 (patch) | |
tree | 29508a311bc414d7bd6b243e948fb06651fa6350 /config-application-package/src/main/java/com/yahoo/config/model/application/provider | |
parent | f78bc7ec2bbab76e5c9bec35d3a7ef3edcff9f40 (diff) |
Allow services.xml variants on application instance name
Diffstat (limited to 'config-application-package/src/main/java/com/yahoo/config/model/application/provider')
2 files changed, 57 insertions, 27 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java index cd13305c009..344035745f8 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/DeployData.java @@ -1,8 +1,13 @@ // Copyright 2017 Yahoo Holdings. 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.config.provision.ApplicationId; +import com.yahoo.config.provision.ApplicationName; +import com.yahoo.config.provision.InstanceName; +import com.yahoo.config.provision.TenantName; + /** - * A class for holding values generated or computed during deployment + * Data generated or computed during deployment * * @author hmusum */ @@ -11,8 +16,7 @@ public class DeployData { /** Which user deployed */ private final String deployedByUser; - /** Name of application given by user */ - private final String applicationName; + private final ApplicationId applicationId; /** The absolute path to the directory holding the application */ private final String deployedFromDir; @@ -27,6 +31,7 @@ public class DeployData { private final long generation; private final long currentlyActiveGeneration; + // TODO: Remove after September 2019 public DeployData(String deployedByUser, String deployedFromDir, String applicationName, @@ -34,39 +39,45 @@ public class DeployData { boolean internalRedeploy, Long generation, long currentlyActiveGeneration) { + this(deployedByUser, + deployedFromDir, + ApplicationId.from(TenantName.defaultName(), ApplicationName.from(applicationName), InstanceName.from("default")), + deployTimestamp, + internalRedeploy, + generation, currentlyActiveGeneration); + } + + public DeployData(String deployedByUser, + String deployedFromDir, + ApplicationId applicationId, + Long deployTimestamp, + boolean internalRedeploy, + Long generation, + long currentlyActiveGeneration) { this.deployedByUser = deployedByUser; this.deployedFromDir = deployedFromDir; - this.applicationName = applicationName; + this.applicationId = applicationId; this.deployTimestamp = deployTimestamp; this.internalRedeploy = internalRedeploy; this.generation = generation; this.currentlyActiveGeneration = currentlyActiveGeneration; } - public String getDeployedByUser() { - return deployedByUser; - } + public String getDeployedByUser() { return deployedByUser; } - public String getDeployedFromDir() { - return deployedFromDir; - } + public String getDeployedFromDir() { return deployedFromDir; } - public long getDeployTimestamp() { - return deployTimestamp; - } + public long getDeployTimestamp() { return deployTimestamp; } public boolean isInternalRedeploy() { return internalRedeploy; } - public long getGeneration() { - return generation; - } + public long getGeneration() { return generation; } - public long getCurrentlyActiveGeneration() { - return currentlyActiveGeneration; - } + public long getCurrentlyActiveGeneration() { return currentlyActiveGeneration; } - public String getApplicationName() { - return applicationName; - } + public ApplicationId getApplicationId() { return applicationId; } + + // TODO: remove after September 2019 + public String getApplicationName() { return applicationId.application().toString(); } } 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 b2a1507b424..2859d9f89fc 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 @@ -13,6 +13,10 @@ import com.yahoo.config.application.api.UnparsedConfigDefinition; import com.yahoo.config.codegen.DefParser; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.application.api.ApplicationPackage; +import com.yahoo.config.provision.ApplicationId; +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.path.Path; import com.yahoo.io.HexDump; @@ -117,7 +121,7 @@ public class FilesApplicationPackage implements ApplicationPackage { deployData.getDeployedFromDir(), deployData.getDeployTimestamp(), deployData.isInternalRedeploy(), - deployData.getApplicationName(), + deployData.getApplicationId(), computeCheckSum(appDir), deployData.getGeneration(), deployData.getCurrentlyActiveGeneration()); @@ -144,8 +148,10 @@ public class FilesApplicationPackage implements ApplicationPackage { this.metaData = metaData; } + @Override + @SuppressWarnings("deprecation") public String getApplicationName() { - return metaData.getApplicationName(); + return metaData.getApplicationId().application().value(); } @Override @@ -571,9 +577,18 @@ public class FilesApplicationPackage implements ApplicationPackage { } private static ApplicationMetaData readMetaData(File appDir) { - ApplicationMetaData defaultMetaData = new ApplicationMetaData(appDir, "n/a", "n/a", 0l, false, "", 0l, 0l); + ApplicationMetaData defaultMetaData = new ApplicationMetaData("n/a", + "n/a", + 0L, + false, + ApplicationId.from(TenantName.defaultName(), + ApplicationName.from(appDir.getName()), + InstanceName.defaultName()), + "", + 0L, + 0L); File metaFile = new File(appDir, META_FILE_NAME); - if (!metaFile.exists()) { + if ( ! metaFile.exists()) { return defaultMetaData; } try (FileReader reader = new FileReader(metaFile)) { @@ -663,7 +678,11 @@ public class FilesApplicationPackage implements ApplicationPackage { } private void preprocessXML(File destination, File inputXml, Zone zone) throws ParserConfigurationException, TransformerException, SAXException, IOException { - Document document = new XmlPreProcessor(appDir, inputXml, zone.environment(), zone.region()).run(); + 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)); |