diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-05-19 14:24:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-19 14:24:29 +0200 |
commit | a9b7eb4521bbe2123ec221b6f52aa60f7abcc5a6 (patch) | |
tree | 4ab5c729203ad2b6d91ee95cdf021852bebf2352 | |
parent | c8eee5331f59fef5169fc893674466a75d5dbe4f (diff) | |
parent | 490ddcb94ad8f8fe748fab2e4f3479985af34f82 (diff) |
Merge pull request #22661 from vespa-engine/hmusum/support-rank-profiles-in-schemas-dir-and-in-subdirs
Support rank profile files in schemas/ and subdirs
-rw-r--r-- | config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java | 16 | ||||
-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.profile | 5 | ||||
-rw-r--r-- | config-model-api/abi-spec.json | 1 | ||||
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java | 1 |
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"; |