summaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2018-01-22 22:36:25 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2018-01-22 22:36:25 +0100
commit3bf6d36ad2ef1997026737c7904df623925e6d45 (patch)
treedeb46596f02e8d6b4dbf0f4ad4fa9500e8873d48 /config-application-package
parent077a484b444b5a175d1f5d03d50a521eb8f64d46 (diff)
Correct path just once
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java17
1 files changed, 14 insertions, 3 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 3388261c798..391d284a325 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
@@ -59,6 +59,17 @@ import static com.yahoo.text.Lowercase.toLowerCase;
*/
public class FilesApplicationPackage implements ApplicationPackage {
+ /**
+ * The name of the subdirectory (below the original application package root)
+ * where a preprocessed version of this application package is stored.
+ * As it happens, the config model is first created with an application package in this subdirectory,
+ * and later used backed by an application package which is not in this subdirectory.
+ * To enable model code to correct for this, this constant must be publicly known.
+ *
+ * All of this stuff is Very Unfortunate and should be fixed. -Jon
+ */
+ public static final String preprocessed = ".preprocessed";
+
private static final Logger log = Logger.getLogger(FilesApplicationPackage.class.getName());
private static final String META_FILE_NAME = ".applicationMetaData";
@@ -86,7 +97,7 @@ public class FilesApplicationPackage implements ApplicationPackage {
* @return an Application package instance
*/
public static FilesApplicationPackage fromFile(File appDir, boolean includeSourceFiles) {
- return new Builder(appDir).preprocessedDir(new File(appDir, ".preprocessed"))
+ return new Builder(appDir).preprocessedDir(new File(appDir, preprocessed))
.includeSourceFiles(includeSourceFiles)
.build();
}
@@ -665,7 +676,7 @@ public class FilesApplicationPackage implements ApplicationPackage {
@Override
public ApplicationPackage preprocess(Zone zone, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException {
IOUtils.recursiveDeleteDir(preprocessedDir);
- IOUtils.copyDirectory(appDir, preprocessedDir, -1, (dir, name) -> ! name.equals(".preprocessed") &&
+ IOUtils.copyDirectory(appDir, preprocessedDir, -1, (dir, name) -> ! name.equals(preprocessed) &&
! name.equals(SERVICES) &&
! name.equals(HOSTS) &&
! name.equals(CONFIG_DEFINITIONS_DIR));
@@ -786,7 +797,7 @@ public class FilesApplicationPackage implements ApplicationPackage {
}
public FilesApplicationPackage build() {
- return new FilesApplicationPackage(appDir, preprocessedDir.orElse(new File(appDir, ".preprocessed")),
+ return new FilesApplicationPackage(appDir, preprocessedDir.orElse(new File(appDir, preprocessed)),
metaData.orElse(readMetaData(appDir)), includeSourceFiles);
}