aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-05-19 11:18:29 +0200
committerGitHub <noreply@github.com>2022-05-19 11:18:29 +0200
commitf17c4fe7de4c55f5c4ee61897eab8c2f588d8405 (patch)
tree2e99e6f8fcb6fdec942b8b6003445cf156a8b67f /config-model/src/main/java/com
parent04423351dc3b6bab8088524bf6da59f303cd5411 (diff)
parent5ee6562771b322f21d5a54dfc65379793c339a14 (diff)
Merge pull request #22654 from vespa-engine/bratseth/rank-profile-subdirs
Allow rank profiles in subdirectories
Diffstat (limited to 'config-model/src/main/java/com')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java18
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/ApplicationBuilder.java3
2 files changed, 14 insertions, 7 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java b/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
index 6351232b789..8892de0a88d 100644
--- a/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
+++ b/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
@@ -145,15 +145,21 @@ public class MockApplicationPackage implements ApplicationPackage {
@Override
public List<NamedReader> getFiles(Path dir, String fileSuffix, boolean recurse) {
+ if (dir.elements().contains(ApplicationPackage.SEARCH_DEFINITIONS_DIR.getName()))
+ return List.of(); // No legacy paths
+ return getFiles(new File(root, dir.getName()), fileSuffix, recurse);
+ }
+
+ private List<NamedReader> getFiles(File dir, String fileSuffix, boolean recurse) {
try {
- if (dir.elements().contains(ApplicationPackage.SEARCH_DEFINITIONS_DIR.getName())) return List.of(); // No legacy paths
- File dirFile = new File(root, dir.getName());
- if ( ! dirFile.exists()) return List.of();
- if (recurse) throw new RuntimeException("Recurse not implemented");
+ if ( ! dir.exists()) return List.of();
List<NamedReader> readers = new ArrayList<>();
- for (var i = Files.list(dirFile.toPath()).filter(p -> p.getFileName().toString().endsWith(fileSuffix)).iterator(); i.hasNext(); ) {
+ for (var i = Files.list(dir.toPath()).iterator(); i.hasNext(); ) {
var file = i.next();
- readers.add(new NamedReader(file.toString(), IOUtils.createReader(file.toString())));
+ if (file.getFileName().toString().endsWith(fileSuffix))
+ readers.add(new NamedReader(file.toString(), IOUtils.createReader(file.toString())));
+ else if (recurse)
+ readers.addAll(getFiles(new File(dir, file.getFileName().toString()), fileSuffix, recurse));
}
return readers;
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/ApplicationBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/ApplicationBuilder.java
index 51c183a21d9..fe0044ecfa4 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/ApplicationBuilder.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/ApplicationBuilder.java
@@ -197,7 +197,8 @@ public class ApplicationBuilder {
}
Path rankProfilePath = ApplicationPackage.SCHEMAS_DIR.append(schemaName);
- for (NamedReader reader : applicationPackage.getFiles(rankProfilePath, ".profile")) {
+ for (NamedReader reader : applicationPackage.getFiles(rankProfilePath, ".profile", true)) {
+ System.out.println("Got " + reader);
mediator.addRankProfileFile(schemaName, reader);
}
}