diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java | 51 |
1 files changed, 34 insertions, 17 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 5822b1bca05..637bbe91e67 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 @@ -19,7 +19,7 @@ import com.yahoo.io.reader.NamedReader; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.search.query.profile.config.QueryProfileXMLReader; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.SchemaBuilder; +import com.yahoo.searchdefinition.ApplicationBuilder; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.config.ConfigDefinitionKey; import com.yahoo.config.application.api.ApplicationPackage; @@ -33,6 +33,7 @@ import java.io.InputStream; import java.io.Reader; import java.io.StringReader; import java.io.UncheckedIOException; +import java.nio.file.Files; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -95,8 +96,8 @@ public class MockApplicationPackage implements ApplicationPackage { /** Returns the root of this application package relative to the current dir */ protected File root() { return root; } + @SuppressWarnings("deprecation") // not redundant @Override - @SuppressWarnings("deprecation") // NOT redundant public String getApplicationName() { return "mock application"; } @@ -118,23 +119,26 @@ public class MockApplicationPackage implements ApplicationPackage { @Override public List<NamedReader> getSchemas() { ArrayList<NamedReader> readers = new ArrayList<>(); - SchemaBuilder schemaBuilder = new SchemaBuilder(this, - new MockFileRegistry(), - new BaseDeployLogger(), - new TestProperties(), - new RankProfileRegistry(), - queryProfileRegistry); - for (String sd : schemas) { - try { - String name = schemaBuilder.importString(sd); - readers.add(new NamedReader(name + ApplicationPackage.SD_NAME_SUFFIX, new StringReader(sd))); - } catch (ParseException e) { - throw new RuntimeException(e); - } - } + for (String sd : schemas) + readers.add(new NamedReader(extractSdName(sd) + ApplicationPackage.SD_NAME_SUFFIX, new StringReader(sd))); return readers; } + /** To avoid either double parsing or supplying a name explicitly */ + private String extractSdName(String sd) { + String s = sd.split("\n")[0]; + if (s.startsWith("schema")) + s = s.substring("schema".length()).trim(); + else if (s.startsWith("search")) + s = s.substring("search".length()).trim(); + else + throw new IllegalArgumentException("Expected the first line of a schema but got '" + sd + "'"); + int end = s.indexOf(' '); + if (end < 0) + end = s.indexOf('}'); + return s.substring(0, end).trim(); + } + @Override public Map<ConfigDefinitionKey, UnparsedConfigDefinition> getAllExistingConfigDefs() { return Collections.emptyMap(); @@ -142,7 +146,20 @@ public class MockApplicationPackage implements ApplicationPackage { @Override public List<NamedReader> getFiles(Path dir, String fileSuffix, boolean recurse) { - return new ArrayList<>(); + try { + File dirFile = new File(root, dir.getName()); + if ( ! dirFile.exists()) return List.of(); + if (recurse) throw new RuntimeException("Recurse not implemented"); + List<NamedReader> readers = new ArrayList<>(); + for (var i = Files.list(dirFile.toPath()).filter(p -> p.getFileName().toString().endsWith(fileSuffix)).iterator(); i.hasNext(); ) { + var file = i.next(); + readers.add(new NamedReader(file.toString(), IOUtils.createReader(file.toString()))); + } + return readers; + } + catch (IOException e) { + throw new RuntimeException(e); + } } @Override |