summaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-05-19 13:34:59 +0200
committerHarald Musum <musum@yahooinc.com>2022-05-19 13:34:59 +0200
commit490ddcb94ad8f8fe748fab2e4f3479985af34f82 (patch)
treefcb924ae1eaa583eb5177930d38ff232f1ce3791 /config-application-package
parent0c1edc0e0acdaa09c7227141ac50bdb6eba078ca (diff)
Support rank profile files in schemas/ and subdirs
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java16
-rw-r--r--config-application-package/src/test/resources/app-with-deployment/schemas/default.profile (renamed from config-application-package/src/test/resources/app-with-deployment/schemas/music/default.profile)0
-rw-r--r--config-application-package/src/test/resources/app-with-deployment/schemas/music/in-subdir.profile5
3 files changed, 13 insertions, 8 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 793020ce104..9e72efab07b 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
@@ -788,11 +788,11 @@ public class FilesApplicationPackage extends AbstractApplicationPackage {
Map.entry(QUERY_PROFILE_TYPES_DIR, Set.of(".xml")),
Map.entry(Path.fromString(ROUTINGTABLES_DIR), Set.of(".xml")),
Map.entry(RULES_DIR, Set.of(RULES_NAME_SUFFIX)),
- // Note: Might have rank profiles in subdirs: schema-name]/[rank-profile].profile
- Map.entry(SCHEMAS_DIR, Set.of(SD_NAME_SUFFIX, RANKEXPRESSION_NAME_SUFFIX)),
+ // Note: Might have rank profiles in subdirs: [schema-name]/[rank-profile].profile
+ Map.entry(SCHEMAS_DIR, Set.of(SD_NAME_SUFFIX, RANKEXPRESSION_NAME_SUFFIX, RANKPROFILE_NAME_SUFFIX)),
Map.entry(Path.fromString(SEARCHCHAINS_DIR), Set.of(".xml")),
// Note: Might have rank profiles in subdirs: [schema-name]/[rank-profile].profile
- Map.entry(SEARCH_DEFINITIONS_DIR, Set.of(SD_NAME_SUFFIX, RANKEXPRESSION_NAME_SUFFIX)),
+ Map.entry(SEARCH_DEFINITIONS_DIR, Set.of(SD_NAME_SUFFIX, RANKEXPRESSION_NAME_SUFFIX, RANKPROFILE_NAME_SUFFIX)),
Map.entry(SECURITY_DIR, Set.of(".pem")));
}
@@ -812,8 +812,8 @@ public class FilesApplicationPackage extends AbstractApplicationPackage {
validExtensions.add(".gitignore");
// Special case, since subdirs in schemas/ can have any name
- if (isSubDirInSchemas(relativeDirectory))
- validExtensions.add(".profile");
+ if (isSchemasSubDir(relativeDirectory))
+ validExtensions.add(RANKPROFILE_NAME_SUFFIX);
else
validExtensions.addAll(validFileExtensions.entrySet().stream()
.filter(entry -> entry.getKey()
@@ -824,13 +824,13 @@ public class FilesApplicationPackage extends AbstractApplicationPackage {
return validExtensions;
}
- private boolean isSubDirInSchemas(java.nio.file.Path relativeDirectory) {
+ private boolean isSchemasSubDir(java.nio.file.Path relativeDirectory) {
java.nio.file.Path schemasPath = SCHEMAS_DIR.toFile().toPath().getName(0);
java.nio.file.Path searchDefinitionsPath = SEARCH_DEFINITIONS_DIR.toFile().toPath().getName(0);
- if (relativeDirectory.equals(schemasPath) ||relativeDirectory.equals(searchDefinitionsPath)) return false;
+ if (List.of(schemasPath, searchDefinitionsPath).contains(relativeDirectory)) return false;
return (relativeDirectory.startsWith(schemasPath + "/")
- || relativeDirectory.startsWith(SEARCH_DEFINITIONS_DIR.toFile().toPath().getName(0) + "/"));
+ || relativeDirectory.startsWith(searchDefinitionsPath + "/"));
}
}
diff --git a/config-application-package/src/test/resources/app-with-deployment/schemas/music/default.profile b/config-application-package/src/test/resources/app-with-deployment/schemas/default.profile
index a0ab4d8225e..a0ab4d8225e 100644
--- a/config-application-package/src/test/resources/app-with-deployment/schemas/music/default.profile
+++ b/config-application-package/src/test/resources/app-with-deployment/schemas/default.profile
diff --git a/config-application-package/src/test/resources/app-with-deployment/schemas/music/in-subdir.profile b/config-application-package/src/test/resources/app-with-deployment/schemas/music/in-subdir.profile
new file mode 100644
index 00000000000..be6a4449132
--- /dev/null
+++ b/config-application-package/src/test/resources/app-with-deployment/schemas/music/in-subdir.profile
@@ -0,0 +1,5 @@
+rank-profile in-subdir {
+ second-phase {
+ expression: fieldMatch(f)
+ }
+}