diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-16 22:00:00 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-16 22:04:10 +0200 |
commit | b2d406adae56331b5bd226e25f30f07d5b8614c8 (patch) | |
tree | 302ca67760548622836a6ef1248bfba7db1f8a42 /config-model | |
parent | 249377274b11826daffe0ae8c2bf3424e758dadb (diff) |
Wire in the FileRegistry explicit and separately. Not via FileDistributor.
Only wireing in, no semantic changes.
Diffstat (limited to 'config-model')
25 files changed, 136 insertions, 85 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java index dd66861f2ce..220599b6d1c 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java @@ -458,7 +458,7 @@ public class DeployState implements ConfigDefinitionStore { ValidationParameters validationParameters) { Collection<NamedReader> readers = applicationPackage.getSchemas(); Map<String, String> names = new LinkedHashMap<>(); - SearchBuilder builder = new SearchBuilder(applicationPackage, logger, properties, rankProfileRegistry, queryProfiles.getRegistry()); + SearchBuilder builder = new SearchBuilder(applicationPackage, fileRegistry, logger, properties, rankProfileRegistry, queryProfiles.getRegistry()); for (NamedReader reader : readers) { try { String readerName = reader.getName(); 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 411a37bb70a..22ca2fc7632 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 @@ -7,6 +7,7 @@ import com.yahoo.config.application.api.UnparsedConfigDefinition; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.component.Version; import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ApplicationName; @@ -118,6 +119,7 @@ public class MockApplicationPackage implements ApplicationPackage { public List<NamedReader> getSchemas() { ArrayList<NamedReader> readers = new ArrayList<>(); SearchBuilder searchBuilder = new SearchBuilder(this, + new MockFileRegistry(), new BaseDeployLogger(), new TestProperties(), new RankProfileRegistry(), diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java index a6c01c7f6de..c9b645bbd3b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java @@ -3,6 +3,7 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.model.api.ModelContext; import com.yahoo.searchdefinition.document.SDDocumentType; @@ -14,8 +15,8 @@ import com.yahoo.searchdefinition.document.SDDocumentType; */ public class DocumentOnlySearch extends Search { - public DocumentOnlySearch(ApplicationPackage applicationPackage, DeployLogger deployLogger, ModelContext.Properties properties) { - super(applicationPackage, deployLogger, properties); + public DocumentOnlySearch(ApplicationPackage applicationPackage, FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties) { + super(applicationPackage, fileRegistry, deployLogger, properties); } @Override diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Index.java b/config-model/src/main/java/com/yahoo/searchdefinition/Index.java index 212b985f7f1..8beab6709ef 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Index.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Index.java @@ -10,7 +10,6 @@ import java.io.Serializable; import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashSet; -import java.util.Locale; import java.util.Objects; import java.util.Optional; import java.util.Set; @@ -27,7 +26,7 @@ public class Index implements Cloneable, Serializable { public enum Type { VESPA("vespa"); - private String name; + private final String name; Type(String name) { this.name = name; } public String getName() { return name; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/LargeRankExpressions.java b/config-model/src/main/java/com/yahoo/searchdefinition/LargeRankExpressions.java index 6fadcb39d11..518221aac96 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/LargeRankExpressions.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/LargeRankExpressions.java @@ -1,5 +1,6 @@ package com.yahoo.searchdefinition; +import com.yahoo.config.application.api.FileRegistry; import com.yahoo.vespa.model.AbstractService; import java.util.Collection; @@ -9,6 +10,11 @@ import java.util.Map; public class LargeRankExpressions { private final Map<String, RankExpressionBody> expressions = new HashMap<>(); + private final FileRegistry fileRegistry; + + public LargeRankExpressions(FileRegistry fileRegistry) { + this.fileRegistry = fileRegistry; + } public void add(RankExpressionBody expression) { expression.validate(); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java index c89f6f09b77..973ac6655cc 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java @@ -3,6 +3,7 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.config.model.deploy.TestProperties; @@ -82,7 +83,7 @@ public class Search implements ImmutableSearch { private final Map<String, DocumentSummary> summaries = new LinkedHashMap<>(); /** External rank expression files of this */ - private final LargeRankExpressions largeRankExpressions = new LargeRankExpressions(); + private final LargeRankExpressions largeRankExpressions; /** Ranking constants of this */ private final RankingConstants rankingConstants = new RankingConstants(); @@ -99,7 +100,7 @@ public class Search implements ImmutableSearch { /** Testing only */ public Search(String name) { - this(name, null, new BaseDeployLogger(), new TestProperties()); + this(name, null, null, new BaseDeployLogger(), new TestProperties()); } /** * Creates a proper search definition @@ -107,20 +108,21 @@ public class Search implements ImmutableSearch { * @param name of the the searchdefinition * @param applicationPackage the application containing this */ - public Search(String name, ApplicationPackage applicationPackage, DeployLogger deployLogger, ModelContext.Properties properties) { - this(applicationPackage, deployLogger, properties, false); + public Search(String name, ApplicationPackage applicationPackage, FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties) { + this(applicationPackage, fileRegistry, deployLogger, properties, false); this.name = name; } - protected Search(ApplicationPackage applicationPackage, DeployLogger deployLogger, ModelContext.Properties properties) { - this(applicationPackage, deployLogger, properties, true); + protected Search(ApplicationPackage applicationPackage, FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties) { + this(applicationPackage, fileRegistry, deployLogger, properties, true); } - private Search(ApplicationPackage applicationPackage, DeployLogger deployLogger, ModelContext.Properties properties, boolean documentsOnly) { + private Search(ApplicationPackage applicationPackage, FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties, boolean documentsOnly) { this.applicationPackage = applicationPackage; this.deployLogger = deployLogger; this.properties = properties; this.documentsOnly = documentsOnly; + largeRankExpressions = new LargeRankExpressions(fileRegistry); } protected void setName(String name) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java index 537613d3b43..625c584f79a 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java @@ -3,8 +3,10 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.document.DocumentTypeManager; @@ -47,6 +49,7 @@ public class SearchBuilder { private final ApplicationPackage app; private final RankProfileRegistry rankProfileRegistry; private final QueryProfileRegistry queryProfileRegistry; + private final FileRegistry fileRegistry; private final DeployLogger deployLogger; private final ModelContext.Properties properties; /** True to build the document aspect only, skipping instantiation of rank profiles */ @@ -72,17 +75,17 @@ public class SearchBuilder { /** Used for generating documents for typed access to document fields in Java */ public SearchBuilder(boolean documentsOnly) { - this(MockApplicationPackage.createEmpty(), new BaseDeployLogger(), new TestProperties(), new RankProfileRegistry(), new QueryProfileRegistry(), documentsOnly); + this(MockApplicationPackage.createEmpty(), new MockFileRegistry(), new BaseDeployLogger(), new TestProperties(), new RankProfileRegistry(), new QueryProfileRegistry(), documentsOnly); } /** For testing only */ public SearchBuilder(ApplicationPackage app, DeployLogger deployLogger) { - this(app, deployLogger, new TestProperties(), new RankProfileRegistry(), new QueryProfileRegistry()); + this(app, new MockFileRegistry(), deployLogger, new TestProperties(), new RankProfileRegistry(), new QueryProfileRegistry()); } /** For testing only */ public SearchBuilder(ApplicationPackage app, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry) { - this(app, deployLogger, new TestProperties(), rankProfileRegistry, new QueryProfileRegistry()); + this(app, new MockFileRegistry(), deployLogger, new TestProperties(), rankProfileRegistry, new QueryProfileRegistry()); } /** For testing only */ @@ -92,17 +95,19 @@ public class SearchBuilder { /** For testing only */ public SearchBuilder(RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfileRegistry) { - this(MockApplicationPackage.createEmpty(), new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfileRegistry); + this(MockApplicationPackage.createEmpty(), new MockFileRegistry(), new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfileRegistry); } public SearchBuilder(ApplicationPackage app, + FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfileRegistry) { - this(app, deployLogger, properties, rankProfileRegistry, queryProfileRegistry, false); + this(app, fileRegistry, deployLogger, properties, rankProfileRegistry, queryProfileRegistry, false); } private SearchBuilder(ApplicationPackage app, + FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties, RankProfileRegistry rankProfileRegistry, @@ -111,6 +116,7 @@ public class SearchBuilder { this.app = app; this.rankProfileRegistry = rankProfileRegistry; this.queryProfileRegistry = queryProfileRegistry; + this.fileRegistry = fileRegistry; this.deployLogger = deployLogger; this.properties = properties; this.documentsOnly = documentsOnly; @@ -160,7 +166,7 @@ public class SearchBuilder { private String importString(String str, String searchDefDir) throws ParseException { SimpleCharStream stream = new SimpleCharStream(str); try { - return importRawSearch(new SDParser(stream, deployLogger, properties, app, rankProfileRegistry, documentsOnly) + return importRawSearch(new SDParser(stream, fileRegistry, deployLogger, properties, app, rankProfileRegistry, documentsOnly) .search(docTypeMgr, searchDefDir)); } catch (TokenMgrException e) { throw new ParseException("Unknown symbol: " + e.getMessage()); @@ -347,7 +353,7 @@ public class SearchBuilder { } private static SearchBuilder createFromFiles(Collection<String> fileNames, DeployLogger logger) throws IOException, ParseException { - return createFromFiles(fileNames, logger, new TestProperties(), new RankProfileRegistry(), new QueryProfileRegistry()); + return createFromFiles(fileNames, new MockFileRegistry(), logger, new TestProperties(), new RankProfileRegistry(), new QueryProfileRegistry()); } /** @@ -365,7 +371,7 @@ public class SearchBuilder { RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryprofileRegistry) throws IOException, ParseException { - return createFromFiles(Collections.singletonList(fileName), deployLogger, new TestProperties(), + return createFromFiles(Collections.singletonList(fileName), new MockFileRegistry(), deployLogger, new TestProperties(), rankProfileRegistry, queryprofileRegistry); } @@ -373,12 +379,14 @@ public class SearchBuilder { * Convenience factory methdd to create a SearchBuilder from multiple SD files.. */ private static SearchBuilder createFromFiles(Collection<String> fileNames, + FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryprofileRegistry) throws IOException, ParseException { SearchBuilder builder = new SearchBuilder(MockApplicationPackage.createEmpty(), + fileRegistry, deployLogger, properties, rankProfileRegistry, @@ -390,30 +398,34 @@ public class SearchBuilder { return builder; } - public static SearchBuilder createFromDirectory(String dir, DeployLogger logger, ModelContext.Properties properties) throws IOException, ParseException { - return createFromDirectory(dir, logger, properties, new RankProfileRegistry()); + public static SearchBuilder createFromDirectory(String dir, FileRegistry fileRegistry, DeployLogger logger, ModelContext.Properties properties) throws IOException, ParseException { + return createFromDirectory(dir, fileRegistry, logger, properties, new RankProfileRegistry()); } public static SearchBuilder createFromDirectory(String dir, + FileRegistry fileRegistry, DeployLogger logger, ModelContext.Properties properties, RankProfileRegistry rankProfileRegistry) throws IOException, ParseException { - return createFromDirectory(dir, logger, properties, rankProfileRegistry, createQueryProfileRegistryFromDirectory(dir)); + return createFromDirectory(dir, fileRegistry, logger, properties, rankProfileRegistry, createQueryProfileRegistryFromDirectory(dir)); } private static SearchBuilder createFromDirectory(String dir, + FileRegistry fileRegistry, DeployLogger logger, ModelContext.Properties properties, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfileRegistry) throws IOException, ParseException { - return createFromDirectory(dir, MockApplicationPackage.fromSearchDefinitionDirectory(dir), logger, properties, rankProfileRegistry, queryProfileRegistry); + return createFromDirectory(dir, MockApplicationPackage.fromSearchDefinitionDirectory(dir), fileRegistry, logger, properties, rankProfileRegistry, queryProfileRegistry); } private static SearchBuilder createFromDirectory(String dir, ApplicationPackage applicationPackage, + FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfileRegistry) throws IOException, ParseException { SearchBuilder builder = new SearchBuilder(applicationPackage, + fileRegistry, deployLogger, properties, rankProfileRegistry, diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java index 1796a4cba17..a9a04fccf5d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java @@ -3,6 +3,7 @@ package com.yahoo.searchdefinition.derived; import ai.vespa.rankingexpression.importer.configmodelview.ImportedMlModels; import com.yahoo.config.model.api.ModelContext; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.OnnxModel; import com.yahoo.searchdefinition.OnnxModels; @@ -41,7 +42,7 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ private RankProfileList() { rankingConstants = new RankingConstants(); - largeRankExpressions = new LargeRankExpressions(); + largeRankExpressions = new LargeRankExpressions(new MockFileRegistry()); onnxModels = new OnnxModels(); dryRunOnnxOnSetup = true; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java index 508d011d18f..fee73a03ae6 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java @@ -67,14 +67,6 @@ public class RawRankProfile implements RankProfilesConfig.Producer { attributeFields, deployProperties).derive(largeExpressions)); } - /** - * Only for testing - */ - public RawRankProfile(RankProfile rankProfile, QueryProfileRegistry queryProfiles, ImportedMlModels importedModels, - AttributeFields attributeFields) { - this(rankProfile, new LargeRankExpressions(), queryProfiles, importedModels, attributeFields, new TestProperties()); - } - private Compressor.Compression compress(List<Pair<String, String>> properties) { StringBuilder b = new StringBuilder(); for (Pair<String, String> property : properties) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java index 1c87fced55f..7b8c7ef6421 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java @@ -12,6 +12,7 @@ import com.yahoo.config.FileReference; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.application.api.ValidationId; import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.config.model.ApplicationConfigProducerRoot; @@ -127,7 +128,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri private final RankingConstants rankingConstants = new RankingConstants(); /** External rank expression files of this */ - private final LargeRankExpressions largeRankExpressions = new LargeRankExpressions(); + private final LargeRankExpressions largeRankExpressions; /** The validation overrides of this. This is never null. */ private final ValidationOverrides validationOverrides; @@ -172,6 +173,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri throws IOException, SAXException { super("vespamodel"); this.version = deployState.getVespaVersion(); + largeRankExpressions = new LargeRankExpressions(deployState.getFileRegistry()); this.validationOverrides = deployState.validationOverrides(); configModelRegistry = new VespaConfigModelRegistry(configModelRegistry); VespaModelBuilder builder = new VespaDomBuilder(); diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj index 229c139e9a8..f51c441cdd4 100644 --- a/config-model/src/main/javacc/SDParser.jj +++ b/config-model/src/main/javacc/SDParser.jj @@ -55,6 +55,7 @@ import com.yahoo.vespa.documentmodel.SummaryTransform; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.model.api.ModelContext; import com.yahoo.language.Linguistics; import com.yahoo.language.simple.SimpleLinguistics; @@ -75,6 +76,7 @@ public class SDParser { private DocumentTypeManager docMan = null; private ApplicationPackage app; + private FileRegistry fileRegistry; private DeployLogger deployLogger; private ModelContext.Properties properties; private RankProfileRegistry rankProfileRegistry; @@ -86,12 +88,14 @@ public class SDParser { * @param documentsOnly true to only parse the document aspect of a search definition (e.g skip rank profiles) */ public SDParser(SimpleCharStream stream, + FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties, ApplicationPackage applicationPackage, RankProfileRegistry rankProfileRegistry, boolean documentsOnly) { this(stream); + this.fileRegistry = fileRegistry; this.deployLogger = deployLogger; this.properties = properties; this.app = applicationPackage; @@ -430,7 +434,7 @@ Search rootSchema(String dir) : Search search; } { - ( ( <SCHEMA> | <SEARCH> ) name = identifier() { search = new Search(name, app, deployLogger, properties); + ( ( <SCHEMA> | <SEARCH> ) name = identifier() { search = new Search(name, app, fileRegistry,deployLogger, properties); rankProfileRegistry.add(new DefaultRankProfile(search, rankProfileRegistry)); rankProfileRegistry.add(new UnrankedRankProfile(search, rankProfileRegistry));} lbrace() (rootSchemaItem(search) (<NL>)*)* <RBRACE> (<NL>)* <EOF>) @@ -471,7 +475,7 @@ Object rootSchemaItem(Search search) : { } */ Search rootDocument(String dir) : { - Search search = new DocumentOnlySearch(app, deployLogger, properties); + Search search = new DocumentOnlySearch(app, fileRegistry, deployLogger, properties); } { ( (rootDocumentItem(search) (<NL>)*)*<EOF> ) diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java index d5ef3779493..b4f4608facf 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java @@ -5,6 +5,7 @@ import com.yahoo.collections.Pair; import com.yahoo.component.ComponentId; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.document.DataType; import com.yahoo.search.query.profile.QueryProfileRegistry; @@ -102,7 +103,7 @@ public class RankProfileTestCase extends SchemaTestCase { assertEquals(8, rankProfile.getNumThreadsPerSearch()); assertEquals(70, rankProfile.getMinHitsPerThread()); assertEquals(1200, rankProfile.getNumSearchPartitions()); - RawRankProfile rawRankProfile = new RawRankProfile(rankProfile, new LargeRankExpressions(), new QueryProfileRegistry(), + RawRankProfile rawRankProfile = new RawRankProfile(rankProfile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), attributeFields, deployProperties); if (expectedTermwiseLimit != null) { assertTrue(findProperty(rawRankProfile.configProperties(), "vespa.matching.termwise_limit").isPresent()); @@ -158,8 +159,12 @@ public class RankProfileTestCase extends SchemaTestCase { } } + private static RawRankProfile createRawRankProfile(RankProfile profile, Search search) { + return new RawRankProfile(profile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(search), new TestProperties()); + } + private static void assertAttributeTypeSettings(RankProfile profile, Search search) { - RawRankProfile rawProfile = new RawRankProfile(profile, new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(search)); + RawRankProfile rawProfile = createRawRankProfile(profile, search); assertEquals("tensor(x[10])", findProperty(rawProfile.configProperties(), "vespa.type.attribute.a").get()); assertEquals("tensor(y{})", findProperty(rawProfile.configProperties(), "vespa.type.attribute.b").get()); assertEquals("tensor(x[5])", findProperty(rawProfile.configProperties(), "vespa.type.attribute.c").get()); @@ -201,7 +206,7 @@ public class RankProfileTestCase extends SchemaTestCase { } private static void assertQueryFeatureTypeSettings(RankProfile profile, Search search) { - RawRankProfile rawProfile = new RawRankProfile(profile, new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(search)); + RawRankProfile rawProfile =createRawRankProfile(profile, search); assertEquals("tensor(x[10])", findProperty(rawProfile.configProperties(), "vespa.type.query.tensor1").get()); assertEquals("tensor(y{})", findProperty(rawProfile.configProperties(), "vespa.type.query.tensor2").get()); assertFalse(findProperty(rawProfile.configProperties(), "vespa.type.query.tensor3").isPresent()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java index 4bfe3db066c..9d49e9d9b20 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java @@ -1,6 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition; +import com.yahoo.config.model.application.provider.MockFileRegistry; +import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.derived.AttributeFields; import com.yahoo.searchdefinition.derived.RawRankProfile; @@ -55,7 +57,7 @@ public class RankPropertiesTestCase extends SchemaTestCase { assertEquals("query(a) = 1500", parent.getRankProperties().get(0).toString()); // Check derived model - RawRankProfile rawParent = new RawRankProfile(parent, new QueryProfileRegistry(), new ImportedMlModels(), attributeFields); + RawRankProfile rawParent = new RawRankProfile(parent, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), attributeFields, new TestProperties()); assertEquals("(query(a), 1500)", rawParent.configProperties().get(0).toString()); } @@ -66,9 +68,11 @@ public class RankPropertiesTestCase extends SchemaTestCase { // Check derived model RawRankProfile rawChild = new RawRankProfile(rankProfileRegistry.get(search, "child"), + new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), - attributeFields); + attributeFields, + new TestProperties()); assertEquals("(query(a), 2000)", rawChild.configProperties().get(0).toString()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java index abf27ef643e..cf858918e0c 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java @@ -2,6 +2,8 @@ package com.yahoo.searchdefinition; import com.yahoo.collections.Pair; +import com.yahoo.config.model.application.provider.MockFileRegistry; +import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; import ai.vespa.rankingexpression.importer.configmodelview.ImportedMlModels; import com.yahoo.yolean.Exceptions; @@ -77,9 +79,11 @@ public class RankingExpressionConstantsTestCase extends SchemaTestCase { assertEquals("16.6", child2.getFirstPhaseRanking().getRoot().toString()); assertEquals("foo: 14.0", child2.getFunctions().get("foo").function().getBody().toString()); List<Pair<String, String>> rankProperties = new RawRankProfile(child2, - queryProfileRegistry, - new ImportedMlModels(), - new AttributeFields(s)).configProperties(); + new LargeRankExpressions(new MockFileRegistry()), + queryProfileRegistry, + new ImportedMlModels(), + new AttributeFields(s), + new TestProperties()).configProperties(); assertEquals("(rankingExpression(foo).rankingScript, 14.0)", rankProperties.get(0).toString()); assertEquals("(rankingExpression(firstphase).rankingScript, 16.6)", rankProperties.get(2).toString()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java index e0679eb5175..d7143281977 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java @@ -2,6 +2,8 @@ package com.yahoo.searchdefinition; import com.yahoo.collections.Pair; +import com.yahoo.config.model.application.provider.MockFileRegistry; +import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.derived.AttributeFields; import com.yahoo.searchdefinition.derived.RawRankProfile; @@ -209,7 +211,7 @@ public class RankingExpressionInliningTestCase extends SchemaTestCase { private String getRankingExpression(String name, RankProfile rankProfile, Search search) { Optional<String> rankExpression = - new RawRankProfile(rankProfile, new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(search)) + new RawRankProfile(rankProfile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(search), new TestProperties()) .configProperties() .stream() .filter(r -> r.getFirst().equals("rankingExpression(" + name + ").rankingScript")) diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java index d665b7f20f0..f8e99c643ae 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java @@ -2,6 +2,8 @@ package com.yahoo.searchdefinition; import com.yahoo.collections.Pair; +import com.yahoo.config.model.application.provider.MockFileRegistry; +import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfile; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.search.query.profile.types.FieldDescription; @@ -46,10 +48,7 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { builder.build(); Search s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); - List<Pair<String, String>> testRankProperties = new RawRankProfile(test, - new QueryProfileRegistry(), - new ImportedMlModels(), - new AttributeFields(s)).configProperties(); + List<Pair<String, String>> testRankProperties = createRawRankProfile(test, new QueryProfileRegistry(), s).configProperties(); assertEquals("(rankingExpression(sin@).rankingScript, 2 * 2)", censorBindingHash(testRankProperties.get(0).toString())); assertEquals("(rankingExpression(sin).rankingScript, x * x)", @@ -90,10 +89,7 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { builder.build(); Search s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); - List<Pair<String, String>> testRankProperties = new RawRankProfile(test, - new QueryProfileRegistry(), - new ImportedMlModels(), - new AttributeFields(s)).configProperties(); + List<Pair<String, String>> testRankProperties = createRawRankProfile(test, new QueryProfileRegistry(), s).configProperties(); assertEquals("(rankingExpression(tan@).rankingScript, 2 * 2)", censorBindingHash(testRankProperties.get(0).toString())); assertEquals("(rankingExpression(cos@).rankingScript, rankingExpression(tan@))", @@ -139,10 +135,7 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { builder.build(); Search s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); - List<Pair<String, String>> testRankProperties = new RawRankProfile(test, - new QueryProfileRegistry(), - new ImportedMlModels(), - new AttributeFields(s)).configProperties(); + List<Pair<String, String>> testRankProperties = createRawRankProfile(test, new QueryProfileRegistry(), s).configProperties(); assertEquals("(rankingExpression(sin@).rankingScript, 4.0 * 4.0)", censorBindingHash(testRankProperties.get(0).toString())); assertEquals("(rankingExpression(sin@).rankingScript, cos(5.0) * cos(5.0))", @@ -203,10 +196,7 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { builder.build(); Search s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(queryProfiles, new ImportedMlModels()); - List<Pair<String, String>> testRankProperties = new RawRankProfile(test, - queryProfiles, - new ImportedMlModels(), - new AttributeFields(s)).configProperties(); + List<Pair<String, String>> testRankProperties = createRawRankProfile(test, queryProfiles, s).configProperties(); assertEquals("(rankingExpression(autogenerated_ranking_feature@).rankingScript, reduce(query(q) * constant(W_hidden), sum, input) + constant(b_input))", censorBindingHash(testRankProperties.get(0).toString())); assertEquals("(rankingExpression(relu@).rankingScript, max(1.0,rankingExpression(autogenerated_ranking_feature@)))", @@ -223,6 +213,15 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { testRankProperties.get(8).toString()); } + private static RawRankProfile createRawRankProfile(RankProfile profile, QueryProfileRegistry queryProfiles, Search search) { + return new RawRankProfile(profile, + new LargeRankExpressions(new MockFileRegistry()), + queryProfiles, + new ImportedMlModels(), + new AttributeFields(search), + new TestProperties()); + } + private QueryProfileRegistry queryProfileWith(String field, String type) { QueryProfileType queryProfileType = new QueryProfileType("root"); queryProfileType.addField(new FieldDescription(field, type)); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java index 1a43b4d81e5..95137e2a080 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java @@ -2,6 +2,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.document.DocumenttypesConfig; import com.yahoo.document.config.DocumentmanagerConfig; @@ -34,7 +35,7 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase { toDir.mkdirs(); deleteContent(toDir); - SearchBuilder builder = SearchBuilder.createFromDirectory(searchDefRoot + dirName + "/", logger, properties); + SearchBuilder builder = SearchBuilder.createFromDirectory(searchDefRoot + dirName + "/", new MockFileRegistry(), logger, properties); return derive(dirName, searchDefinitionName, properties, builder, logger); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/VsmFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/VsmFieldsTestCase.java index e59f221d2a3..caac65384f6 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/VsmFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/VsmFieldsTestCase.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.document.ReferenceDataType; @@ -21,7 +22,7 @@ public class VsmFieldsTestCase { @Test public void reference_type_field_is_unsearchable() { - Search search = new Search("test", MockApplicationPackage.createEmpty(), new TestableDeployLogger(), new TestProperties()); + Search search = new Search("test", MockApplicationPackage.createEmpty(), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); search.addDocument(new SDDocumentType("test")); SDField refField = new TemporarySDField("ref_field", ReferenceDataType.createWithInferredId(TemporaryStructuredDataType.create("parent_type"))); refField.parseIndexingScript("{ summary }"); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java index 1f267334d28..c12448c9466 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.document.DataType; @@ -45,15 +46,19 @@ public class AddAttributeTransformToSummaryOfImportedFieldsTest { assertEquals(SummaryTransform.ATTRIBUTE, actualTransform); } + private static Search createSearch(String documentType) { + return new Search(documentType, MockApplicationPackage.createEmpty(), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); + } + private static Search createSearchWithDocument(String documentName) { - Search search = new Search(documentName, MockApplicationPackage.createEmpty(), new TestableDeployLogger(), new TestProperties()); + Search search = createSearch(documentName); SDDocumentType document = new SDDocumentType(documentName, search); search.addDocument(document); return search; } private static ImportedFields createSingleImportedField(String fieldName) { - Search targetSearch = new Search("target_doc", MockApplicationPackage.createEmpty(), new TestableDeployLogger(), new TestProperties()); + Search targetSearch = createSearch("target_doc"); SDField targetField = new SDField("target_field", DataType.INT); DocumentReference documentReference = new DocumentReference(new Field("reference_field"), targetSearch); ImportedField importedField = new ImportedSimpleField(fieldName, documentReference, targetField); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ParentChildSearchModel.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ParentChildSearchModel.java index 50a037d81c1..4b9f6d3aafd 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ParentChildSearchModel.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ParentChildSearchModel.java @@ -3,6 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.google.common.collect.ImmutableMap; import com.yahoo.config.application.api.ApplicationPackage; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.document.DataType; @@ -31,7 +32,7 @@ public class ParentChildSearchModel { } protected Search createSearch(String name) { - Search result = new Search(name, app, new TestableDeployLogger(), new TestProperties()); + Search result = new Search(name, app, new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); result.addDocument(new SDDocumentType(name)); return result; } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankProfileSearchFixture.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankProfileSearchFixture.java index 56cc87cadc4..010b33597f3 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankProfileSearchFixture.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankProfileSearchFixture.java @@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableList; import com.yahoo.config.application.api.ApplicationPackage; import ai.vespa.rankingexpression.importer.configmodelview.MlModelImporter; import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.path.Path; @@ -38,10 +39,10 @@ class RankProfileSearchFixture { new OnnxImporter(), new LightGBMImporter(), new XGBoostImporter()); - private RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); + private final RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); private final QueryProfileRegistry queryProfileRegistry; - private Search search; - private Map<String, RankProfile> compiledRankProfiles = new HashMap<>(); + private final Search search; + private final Map<String, RankProfile> compiledRankProfiles = new HashMap<>(); public RankProfileRegistry getRankProfileRegistry() { return rankProfileRegistry; @@ -64,7 +65,7 @@ class RankProfileSearchFixture { String rankProfiles, String constant, String field) throws ParseException { this.queryProfileRegistry = queryProfileRegistry; - SearchBuilder builder = new SearchBuilder(applicationpackage, new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfileRegistry); + SearchBuilder builder = new SearchBuilder(applicationpackage, new MockFileRegistry(), new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfileRegistry); String sdContent = "search test {\n" + " " + (constant != null ? constant : "") + "\n" + " document test {\n" + diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithTransformerTokensTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithTransformerTokensTestCase.java index e285d796882..450f77a08ef 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithTransformerTokensTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithTransformerTokensTestCase.java @@ -2,6 +2,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.search.query.profile.QueryProfileRegistry; @@ -86,7 +87,7 @@ public class RankingExpressionWithTransformerTokensTestCase { " document test {}\n" + " rank-profile my_profile inherits default {}\n" + "}"; - SearchBuilder searchBuilder = new SearchBuilder(application, new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfileRegistry); + SearchBuilder searchBuilder = new SearchBuilder(application, new MockFileRegistry(), new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfileRegistry); searchBuilder.importString(sdContent); searchBuilder.build(); Search search = searchBuilder.getSearch(); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java index 021d2931414..9dd569a2f64 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java @@ -2,9 +2,9 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.collections.Pair; -import com.yahoo.config.FileReference; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.LargeRankExpressions; @@ -19,7 +19,6 @@ import com.yahoo.searchdefinition.derived.RawRankProfile; import com.yahoo.searchdefinition.derived.TestableDeployLogger; import com.yahoo.searchdefinition.parser.ParseException; import ai.vespa.rankingexpression.importer.configmodelview.ImportedMlModels; -import com.yahoo.vespa.config.search.core.RankingExpressionsConfig; import org.junit.Test; import java.io.IOException; @@ -30,14 +29,15 @@ import static org.junit.Assert.assertEquals; public class RankingExpressionsTestCase extends SchemaTestCase { + private static Search createSearch(String dir, ModelContext.Properties deployProperties, RankProfileRegistry rankProfileRegistry) throws IOException, ParseException { + return SearchBuilder.createFromDirectory(dir, new MockFileRegistry(), new TestableDeployLogger(), deployProperties, rankProfileRegistry).getSearch(); + } + @Test public void testFunctions() throws IOException, ParseException { ModelContext.Properties deployProperties = new TestProperties().useExternalRankExpression(true); RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); - Search search = SearchBuilder.createFromDirectory("src/test/examples/rankingexpressionfunction", - new TestableDeployLogger(), - deployProperties, - rankProfileRegistry).getSearch(); + Search search = createSearch("src/test/examples/rankingexpressionfunction", deployProperties, rankProfileRegistry); RankProfile functionsRankProfile = rankProfileRegistry.get(search, "macros"); Map<String, RankProfile.RankingExpressionFunction> functions = functionsRankProfile.getFunctions(); assertEquals(2, functions.get("titlematch$").function().arguments().size()); @@ -50,7 +50,7 @@ public class RankingExpressionsTestCase extends SchemaTestCase { functions.get("artistmatch").function().getBody().getRoot().toString()); assertEquals(0, functions.get("artistmatch").function().arguments().size()); - RawRankProfile rawRankProfile = new RawRankProfile(functionsRankProfile, new LargeRankExpressions(), new QueryProfileRegistry(), + RawRankProfile rawRankProfile = new RawRankProfile(functionsRankProfile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(search), deployProperties); List<Pair<String, String>> rankProperties = rawRankProfile.configProperties(); assertEquals(6, rankProperties.size()); @@ -74,10 +74,7 @@ public class RankingExpressionsTestCase extends SchemaTestCase { @Test(expected = IllegalArgumentException.class) public void testThatIncludingFileInSubdirFails() throws IOException, ParseException { RankProfileRegistry registry = new RankProfileRegistry(); - Search search = SearchBuilder.createFromDirectory("src/test/examples/rankingexpressioninfile", - new TestableDeployLogger(), - new TestProperties(), - registry).getSearch(); + Search search = createSearch("src/test/examples/rankingexpressioninfile", new TestProperties(), registry); new DerivedConfiguration(search, new BaseDeployLogger(), new TestProperties(), registry, new QueryProfileRegistry(), new ImportedMlModels()); // rank profile parsing happens during deriving } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/TensorTransformTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/TensorTransformTestCase.java index 6ab74ef2eae..dd5bcebe7f5 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/TensorTransformTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/TensorTransformTestCase.java @@ -4,11 +4,14 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.collections.Pair; import com.yahoo.component.ComponentId; import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.model.application.provider.MockFileRegistry; +import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.search.query.profile.types.FieldDescription; import com.yahoo.search.query.profile.types.FieldType; import com.yahoo.search.query.profile.types.QueryProfileType; import com.yahoo.search.query.profile.types.QueryProfileTypeRegistry; +import com.yahoo.searchdefinition.LargeRankExpressions; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; @@ -199,9 +202,10 @@ public class TensorTransformTestCase extends SchemaTestCase { Search s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(queryProfiles, new ImportedMlModels()); List<Pair<String, String>> testRankProperties = new RawRankProfile(test, + new LargeRankExpressions(new MockFileRegistry()), queryProfiles, new ImportedMlModels(), - new AttributeFields(s)).configProperties(); + new AttributeFields(s), new TestProperties()).configProperties(); return testRankProperties; } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java index f490b6d8de1..fb0e67f07a3 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; +import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.document.DataType; @@ -46,15 +47,19 @@ public class ValidateFieldTypesTest { validator.process(true, false); } + private static Search createSearch(String documentType) { + return new Search(documentType, MockApplicationPackage.createEmpty(), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); + } + private static Search createSearchWithDocument(String documentName) { - Search search = new Search(documentName, MockApplicationPackage.createEmpty(), new TestableDeployLogger(), new TestProperties()); + Search search = createSearch(documentName); SDDocumentType document = new SDDocumentType(documentName, search); search.addDocument(document); return search; } private static ImportedFields createSingleImportedField(String fieldName, DataType dataType) { - Search targetSearch = new Search("target_doc", MockApplicationPackage.createEmpty(), new TestableDeployLogger(), new TestProperties()); + Search targetSearch = createSearch("target_doc"); SDField targetField = new SDField("target_field", dataType); DocumentReference documentReference = new DocumentReference(new Field("reference_field"), targetSearch); ImportedField importedField = new ImportedSimpleField(fieldName, documentReference, targetField); |