aboutsummaryrefslogtreecommitdiffstats
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
parent0c1edc0e0acdaa09c7227141ac50bdb6eba078ca (diff)
Support rank profile files in schemas/ and subdirs
-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
-rw-r--r--config-model-api/abi-spec.json1
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java1
5 files changed, 15 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)
+ }
+}
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index 847defb92db..13988d81e86 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -156,6 +156,7 @@
"public static final com.yahoo.path.Path SECURITY_DIR",
"public static final java.lang.String SD_NAME_SUFFIX",
"public static final java.lang.String RANKEXPRESSION_NAME_SUFFIX",
+ "public static final java.lang.String RANKPROFILE_NAME_SUFFIX",
"public static final java.lang.String RULES_NAME_SUFFIX",
"public static final java.lang.String EXT_DIR",
"public static final java.lang.String PERMANENT_SERVICES"
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
index 18d40025af7..0600a31e9c5 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java
@@ -67,6 +67,7 @@ public interface ApplicationPackage {
String SD_NAME_SUFFIX = ".sd";
String RANKEXPRESSION_NAME_SUFFIX = ".expression";
+ String RANKPROFILE_NAME_SUFFIX = ".profile";
String RULES_NAME_SUFFIX = ".sr";
String EXT_DIR = "ext";