From 79f4cb5be4a6719d0b11cd39c3f44af2849903b8 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Tue, 17 Mar 2020 11:41:59 +0100 Subject: Revert "Merge pull request #12565 from vespa-engine/revert-12563-bratseth/search-to-schema" This reverts commit ea5fe1bf8c0d389a3964d2e5c490994920d21a4e, reversing changes made to 7e92c3852e893d09f0aa821e04e4e9dbe83b4ab2. --- .../config/model/deploy/ConfigDefinitionStore.java | 1 - .../com/yahoo/config/model/deploy/DeployState.java | 31 +++----- .../config/model/deploy/SearchDocumentModel.java | 21 +++-- .../config/model/test/MockApplicationPackage.java | 40 +++++----- .../DocumentReferenceResolver.java | 4 +- .../searchdefinition/ImportedFieldsEnumerator.java | 16 ++-- .../java/com/yahoo/searchdefinition/Search.java | 4 +- .../ComplexAttributeFieldsValidator.java | 2 +- .../validation/RankingConstantsValidator.java | 4 +- .../validation/SearchDataTypeValidator.java | 8 +- .../model/container/search/ContainerSearch.java | 3 +- .../search/searchchain/LocalProvider.java | 2 +- .../vespa/model/content/ContentSearchCluster.java | 26 +++---- .../vespa/model/search/AbstractSearchCluster.java | 17 ++--- .../vespa/model/search/IndexedSearchCluster.java | 5 +- .../com/yahoo/vespa/model/search/NamedSchema.java | 47 ++++++++++++ .../model/search/SchemaDefinitionXMLHandler.java | 31 ++++++++ .../yahoo/vespa/model/search/SearchCluster.java | 6 +- .../yahoo/vespa/model/search/SearchDefinition.java | 46 ----------- .../model/search/SearchDefinitionXMLHandler.java | 31 -------- .../vespa/model/search/StreamingSearchCluster.java | 2 +- config-model/src/main/javacc/SDParser.jj | 32 ++++---- config-model/src/test/examples/simple.sd | 2 +- .../yahoo/config/model/ApplicationDeployTest.java | 44 ++++++----- .../config/model/ApplicationPackageTester.java | 6 +- .../document/test/SDDocumentTypeTestCase.java | 4 +- .../com/yahoo/document/test/SDFieldTestCase.java | 4 +- .../com/yahoo/searchdefinition/ArraysTestCase.java | 2 +- .../ArraysWeightedSetsTestCase.java | 2 +- .../AttributeSettingsTestCase.java | 2 +- .../yahoo/searchdefinition/CommentTestCase.java | 2 +- .../FieldOfTypeDocumentTestCase.java | 2 +- .../IncorrectRankingExpressionFileRefTestCase.java | 2 +- .../IncorrectSummaryTypesTestCase.java | 2 +- .../searchdefinition/IndexSettingsTestCase.java | 2 +- .../searchdefinition/IndexingParsingTestCase.java | 2 +- .../MultipleSummariesTestCase.java | 2 +- .../searchdefinition/NameFieldCheckTestCase.java | 2 +- .../yahoo/searchdefinition/OutsideTestCase.java | 2 +- .../searchdefinition/RankProfileTestCase.java | 2 +- .../searchdefinition/RankPropertiesTestCase.java | 2 +- .../RankingExpressionConstantsTestCase.java | 2 +- .../RankingExpressionInliningTestCase.java | 2 +- .../RankingExpressionShadowingTestCase.java | 2 +- .../RankingExpressionValidationTestCase.java | 2 +- .../ReservedWordsAsFieldNamesTestCase.java | 2 +- .../searchdefinition/SchemaParsingTestCase.java | 89 ++++++++++++++++++++++ .../com/yahoo/searchdefinition/SchemaTestCase.java | 75 ++++++++++++++++++ .../searchdefinition/SearchDefinitionTestCase.java | 75 ------------------ .../SearchDefinitionsParsingTestCase.java | 89 ---------------------- .../searchdefinition/SearchImporterTestCase.java | 3 +- .../searchdefinition/StemmingSettingTestCase.java | 2 +- .../com/yahoo/searchdefinition/StructTestCase.java | 2 +- .../derived/AbstractExportingTestCase.java | 4 +- .../derived/AttributeListTestCase.java | 4 +- .../searchdefinition/derived/CasingTestCase.java | 4 +- .../searchdefinition/derived/DeriverTestCase.java | 4 +- .../derived/EmptyRankProfileTestCase.java | 4 +- .../derived/NativeRankTypeDefinitionsTestCase.java | 4 +- .../derived/SearchOrdererTestCase.java | 46 ++++++----- .../derived/SummaryMapTestCase.java | 2 +- .../searchdefinition/derived/SummaryTestCase.java | 4 +- .../derived/TypeConversionTestCase.java | 4 +- .../processing/AttributesExactMatchTestCase.java | 4 +- .../processing/BoldingTestCase.java | 4 +- .../processing/ImplicitSearchFieldsTestCase.java | 4 +- .../processing/ImplicitStructTypesTestCase.java | 4 +- .../processing/ImplicitSummaryFieldsTestCase.java | 4 +- .../processing/IndexingScriptRewriterTestCase.java | 4 +- .../processing/IntegerIndex2AttributeTestCase.java | 4 +- .../searchdefinition/processing/NGramTestCase.java | 4 +- .../processing/RankModifierTestCase.java | 4 +- .../processing/RankPropertyVariablesTestCase.java | 4 +- .../processing/RankingExpressionsTestCase.java | 2 +- .../SummaryFieldsMustHaveValidSourceTestCase.java | 4 +- .../processing/TensorTransformTestCase.java | 4 +- .../processing/WeightedSetSummaryToTestCase.java | 4 +- .../AbstractReferenceFieldTestCase.java | 4 +- .../DocumentModelBuilderTestCase.java | 4 +- .../model/admin/ClusterControllerTestCase.java | 4 +- .../application/validation/ValidationTester.java | 2 +- .../change/ConfigValueChangeValidatorTest.java | 4 +- .../IndexedSearchClusterChangeValidatorTest.java | 12 +-- .../StreamingSearchClusterChangeValidatorTest.java | 12 +-- .../change/search/ContentClusterFixture.java | 4 +- .../model/builder/xml/dom/ContentBuilderTest.java | 8 +- .../model/container/xml/SearchBuilderTest.java | 2 +- .../vespa/model/content/ContentClusterTest.java | 20 ++--- .../model/content/ContentSearchClusterTest.java | 33 ++++---- .../yahoo/vespa/model/content/DistributorTest.java | 2 +- .../vespa/model/content/GenericConfigTest.java | 2 +- .../com/yahoo/vespa/model/content/IndexedTest.java | 8 +- .../content/IndexingAndDocprocRoutingTest.java | 4 +- .../vespa/model/content/StorageContentTest.java | 2 +- .../vespa/model/content/cluster/ClusterTest.java | 2 +- .../content/utils/ApplicationPackageBuilder.java | 8 +- .../model/content/utils/ContentClusterUtils.java | 30 ++++---- .../vespa/model/content/utils/SchemaBuilder.java | 48 ++++++++++++ .../content/utils/SearchDefinitionBuilder.java | 48 ------------ .../search/test/DocumentDatabaseTestCase.java | 16 ++-- .../vespa/model/search/test/SearchClusterTest.java | 2 +- .../model/test/utils/ApplicationPackageUtils.java | 8 +- .../test/utils/VespaModelCreatorWithMockPkg.java | 4 +- 103 files changed, 621 insertions(+), 618 deletions(-) create mode 100644 config-model/src/main/java/com/yahoo/vespa/model/search/NamedSchema.java create mode 100644 config-model/src/main/java/com/yahoo/vespa/model/search/SchemaDefinitionXMLHandler.java delete mode 100644 config-model/src/main/java/com/yahoo/vespa/model/search/SearchDefinition.java delete mode 100644 config-model/src/main/java/com/yahoo/vespa/model/search/SearchDefinitionXMLHandler.java create mode 100644 config-model/src/test/java/com/yahoo/searchdefinition/SchemaParsingTestCase.java create mode 100644 config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java delete mode 100644 config-model/src/test/java/com/yahoo/searchdefinition/SearchDefinitionTestCase.java delete mode 100644 config-model/src/test/java/com/yahoo/searchdefinition/SearchDefinitionsParsingTestCase.java create mode 100644 config-model/src/test/java/com/yahoo/vespa/model/content/utils/SchemaBuilder.java delete mode 100644 config-model/src/test/java/com/yahoo/vespa/model/content/utils/SearchDefinitionBuilder.java (limited to 'config-model') diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/ConfigDefinitionStore.java b/config-model/src/main/java/com/yahoo/config/model/deploy/ConfigDefinitionStore.java index 140cb3001a0..b9ad830090c 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/ConfigDefinitionStore.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/ConfigDefinitionStore.java @@ -8,7 +8,6 @@ import java.util.Optional; /** * @author Ulf Lilleengen - * @since 5.1 */ public interface ConfigDefinitionStore { 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 074b19d7238..01809faa2f6 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 @@ -36,9 +36,8 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; import com.yahoo.vespa.model.container.search.QueryProfilesBuilder; import com.yahoo.vespa.model.container.search.SemanticRuleBuilder; import com.yahoo.vespa.model.container.search.SemanticRules; -import com.yahoo.vespa.model.search.SearchDefinition; +import com.yahoo.vespa.model.search.NamedSchema; -import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.Reader; @@ -62,7 +61,7 @@ public class DeployState implements ConfigDefinitionStore { private final DeployLogger logger; private final FileRegistry fileRegistry; private final DocumentModel documentModel; - private final List searchDefinitions; + private final List schemas; private final ApplicationPackage applicationPackage; private final Optional configDefinitionRepo; private final Optional permanentApplicationPackage; @@ -122,7 +121,7 @@ public class DeployState implements ConfigDefinitionStore { this.previousModel = previousModel; this.accessLoggingEnabledByDefault = accessLoggingEnabledByDefault; this.provisioner = hostProvisioner.orElse(getDefaultModelHostProvisioner(applicationPackage)); - this.searchDefinitions = searchDocumentModel.getSearchDefinitions(); + this.schemas = searchDocumentModel.getSchemas(); this.documentModel = searchDocumentModel.getDocumentModel(); this.permanentApplicationPackage = permanentApplicationPackage; this.configDefinitionRepo = configDefinitionRepo; @@ -209,8 +208,8 @@ public class DeployState implements ConfigDefinitionStore { return applicationPackage; } - public List getSearchDefinitions() { - return searchDefinitions; + public List getSchemas() { + return schemas; } public DocumentModel getDocumentModel() { @@ -427,20 +426,18 @@ public class DeployState implements ConfigDefinitionStore { for (NamedReader reader : readers) { try { String readerName = reader.getName(); - String searchName = builder.importReader(reader, readerName, logger); + String topLevelName = builder.importReader(reader, readerName, logger); String sdName = stripSuffix(readerName, ApplicationPackage.SD_NAME_SUFFIX); - names.put(searchName, sdName); - if ( ! sdName.equals(searchName)) { - throw new IllegalArgumentException("Search definition file name ('" + sdName + "') and name of " + - "search element ('" + searchName + + names.put(topLevelName, sdName); + if ( ! sdName.equals(topLevelName)) { + throw new IllegalArgumentException("Schema definition file name ('" + sdName + "') and name of " + + "top level element ('" + topLevelName + "') are not equal for file '" + readerName + "'"); } } catch (ParseException e) { - throw new IllegalArgumentException("Could not parse search definition file '" + - getSearchDefinitionRelativePath(reader.getName()) + "': " + e.getMessage(), e); + throw new IllegalArgumentException("Could not parse sd file '" + reader.getName(), e); } catch (IOException e) { - throw new IllegalArgumentException("Could not read search definition file '" + - getSearchDefinitionRelativePath(reader.getName()) + "': " + e.getMessage(), e); + throw new IllegalArgumentException("Could not read sd file '" + reader.getName(), e); } finally { closeIgnoreException(reader.getReader()); } @@ -449,10 +446,6 @@ public class DeployState implements ConfigDefinitionStore { return SearchDocumentModel.fromBuilderAndNames(builder, names); } - private String getSearchDefinitionRelativePath(String name) { - return ApplicationPackage.SEARCH_DEFINITIONS_DIR + File.separator + name; - } - private static String stripSuffix(String nodeName, String postfix) { assert (nodeName.endsWith(postfix)); return nodeName.substring(0, nodeName.length() - postfix.length()); diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/SearchDocumentModel.java b/config-model/src/main/java/com/yahoo/config/model/deploy/SearchDocumentModel.java index cdd4f6f8e8a..9b9729dddb3 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/SearchDocumentModel.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/SearchDocumentModel.java @@ -3,7 +3,7 @@ package com.yahoo.config.model.deploy; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.vespa.documentmodel.DocumentModel; -import com.yahoo.vespa.model.search.SearchDefinition; +import com.yahoo.vespa.model.search.NamedSchema; import java.util.ArrayList; import java.util.List; @@ -13,16 +13,15 @@ import java.util.Map; * Internal helper class to retrieve document model and search definitions. * * @author Ulf Lilleengen - * @since 5.1 */ public class SearchDocumentModel { private final DocumentModel documentModel; - private final List searchDefinitions; + private final List schemas; - public SearchDocumentModel(DocumentModel documentModel, List searchDefinitions) { + public SearchDocumentModel(DocumentModel documentModel, List schemas) { this.documentModel = documentModel; - this.searchDefinitions = searchDefinitions; + this.schemas = schemas; } @@ -30,22 +29,22 @@ public class SearchDocumentModel { return documentModel; } - public List getSearchDefinitions() { - return searchDefinitions; + public List getSchemas() { + return schemas; } public static SearchDocumentModel fromBuilderAndNames(SearchBuilder builder, Map names) { - List ret = new ArrayList<>(); + List ret = new ArrayList<>(); for (com.yahoo.searchdefinition.Search search : builder.getSearchList()) { - ret.add(new SearchDefinition(names.get(search.getName()), search)); + ret.add(new NamedSchema(names.get(search.getName()), search)); } return new SearchDocumentModel(builder.getModel(), ret); } public static SearchDocumentModel fromBuilder(SearchBuilder builder) { - List ret = new ArrayList<>(); + List ret = new ArrayList<>(); for (com.yahoo.searchdefinition.Search search : builder.getSearchList()) { - ret.add(new SearchDefinition(search.getName(), search)); + ret.add(new NamedSchema(search.getName(), search)); } return new SearchDocumentModel(builder.getModel(), ret); } 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 eb61bda83a6..10649df88e1 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 @@ -55,23 +55,23 @@ public class MockApplicationPackage implements ApplicationPackage { private final File root; private final String hostsS; private final String servicesS; - private final List searchDefinitions; - private final String searchDefinitionDir; + private final List schemas; + private final String schemaDir; private final Optional deploymentSpec; private final Optional validationOverrides; private final boolean failOnValidateXml; private final QueryProfileRegistry queryProfileRegistry; private final ApplicationMetaData applicationMetaData; - protected MockApplicationPackage(File root, String hosts, String services, List searchDefinitions, - String searchDefinitionDir, + protected MockApplicationPackage(File root, String hosts, String services, List schemas, + String schemaDir, String deploymentSpec, String validationOverrides, boolean failOnValidateXml, String queryProfile, String queryProfileType) { this.root = root; this.hostsS = hosts; this.servicesS = services; - this.searchDefinitions = searchDefinitions; - this.searchDefinitionDir = searchDefinitionDir; + this.schemas = schemas; + this.schemaDir = schemaDir; this.deploymentSpec = Optional.ofNullable(deploymentSpec); this.validationOverrides = Optional.ofNullable(validationOverrides); this.failOnValidateXml = failOnValidateXml; @@ -108,7 +108,7 @@ public class MockApplicationPackage implements ApplicationPackage { @Override public Reader getHosts() { - if (hostsS==null) return null; + if (hostsS == null) return null; return new StringReader(hostsS); } @@ -118,7 +118,7 @@ public class MockApplicationPackage implements ApplicationPackage { SearchBuilder searchBuilder = new SearchBuilder(this, new RankProfileRegistry(), queryProfileRegistry); - for (String sd : searchDefinitions) { + for (String sd : schemas) { try { String name = searchBuilder.importString(sd); readers.add(new NamedReader(name + ApplicationPackage.SD_NAME_SUFFIX, new StringReader(sd))); @@ -184,7 +184,7 @@ public class MockApplicationPackage implements ApplicationPackage { @Override public Reader getRankingExpression(String name) { - File expressionFile = new File(searchDefinitionDir, name); + File expressionFile = new File(schemaDir, name); try { return IOUtils.createReader(expressionFile, "utf-8"); } @@ -200,9 +200,9 @@ public class MockApplicationPackage implements ApplicationPackage { public static ApplicationPackage fromSearchDefinitionDirectory(String dir) { return new MockApplicationPackage.Builder() - .withEmptyHosts() - .withEmptyServices() - .withSearchDefinitionDir(dir).build(); + .withEmptyHosts() + .withEmptyServices() + .withSchemaDir(dir).build(); } public static class Builder { @@ -210,8 +210,8 @@ public class MockApplicationPackage implements ApplicationPackage { private File root = new File("nonexisting"); private String hosts = null; private String services = null; - private List searchDefinitions = Collections.emptyList(); - private String searchDefinitionDir = null; + private List schemas = Collections.emptyList(); + private String schemaDir = null; private String deploymentSpec = null; private String validationOverrides = null; private boolean failOnValidateXml = false; @@ -245,17 +245,17 @@ public class MockApplicationPackage implements ApplicationPackage { } public Builder withSearchDefinition(String searchDefinition) { - this.searchDefinitions = Collections.singletonList(searchDefinition); + this.schemas = Collections.singletonList(searchDefinition); return this; } - public Builder withSearchDefinitions(List searchDefinition) { - this.searchDefinitions = Collections.unmodifiableList(searchDefinition); + public Builder withSchemas(List searchDefinition) { + this.schemas = Collections.unmodifiableList(searchDefinition); return this; } - public Builder withSearchDefinitionDir(String searchDefinitionDir) { - this.searchDefinitionDir = searchDefinitionDir; + public Builder withSchemaDir(String schemaDir) { + this.schemaDir = schemaDir; return this; } @@ -285,7 +285,7 @@ public class MockApplicationPackage implements ApplicationPackage { } public ApplicationPackage build() { - return new MockApplicationPackage(root, hosts, services, searchDefinitions, searchDefinitionDir, + return new MockApplicationPackage(root, hosts, services, schemas, schemaDir, deploymentSpec, validationOverrides, failOnValidateXml, queryProfile, queryProfileType); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java index 14f8a0a9d37..0d0da71bd0f 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java @@ -25,8 +25,8 @@ public class DocumentReferenceResolver { private final Map searchMapping; - public DocumentReferenceResolver(List searchDefinitions) { - this.searchMapping = createDocumentNameToSearchMapping(searchDefinitions); + public DocumentReferenceResolver(List schemas) { + this.searchMapping = createDocumentNameToSearchMapping(schemas); } public void resolveReferences(SDDocumentType documentType) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/ImportedFieldsEnumerator.java b/config-model/src/main/java/com/yahoo/searchdefinition/ImportedFieldsEnumerator.java index ee4fc41f2f9..25cdd1e08cd 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/ImportedFieldsEnumerator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/ImportedFieldsEnumerator.java @@ -2,9 +2,7 @@ package com.yahoo.searchdefinition; import com.yahoo.searchdefinition.document.SDDocumentType; -import com.yahoo.searchdefinition.document.TemporaryImportedFields; -import java.util.Collections; import java.util.List; /** @@ -13,17 +11,17 @@ import java.util.List; */ public class ImportedFieldsEnumerator { - private final List searchDefinitions; + private final List schemas; - public ImportedFieldsEnumerator(List searchDefinitions) { - this.searchDefinitions = searchDefinitions; + public ImportedFieldsEnumerator(List schemas) { + this.schemas = schemas; } public void enumerateImportedFields(SDDocumentType documentType) { - var search = this.searchDefinitions.stream() - .filter(s -> s.getDocument() != null) - .filter(s -> s.getDocument().getName().equals(documentType.getName())) - .findFirst(); + var search = this.schemas.stream() + .filter(s -> s.getDocument() != null) + .filter(s -> s.getDocument().getName().equals(documentType.getName())) + .findFirst(); if (search.isEmpty()) { return; // No imported fields present. } 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 f90a7e4f6cd..0ab8a2308a4 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java @@ -288,7 +288,7 @@ public class Search implements ImmutableSearch { /** * Adds an extra field of this search definition not contained in a document * - * @param field to add to the searchdefinitions list of external fields. + * @param field to add to the schemas list of external fields */ public void addExtraField(SDField field) { if (fields.containsKey(field.getName())) { @@ -383,7 +383,7 @@ public class Search implements ImmutableSearch { * Consolidates a set of index settings for the same index into one * * @param indices The list of indexes to consolidate. - * @return The consolidated index + * @return the consolidated index */ private Index consolidateIndices(List indices) { Index first = indices.get(0); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexAttributeFieldsValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexAttributeFieldsValidator.java index f9762ce58fa..43c1a88b0a1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexAttributeFieldsValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexAttributeFieldsValidator.java @@ -33,7 +33,7 @@ public class ComplexAttributeFieldsValidator extends Validator { continue; } SearchCluster searchCluster = (SearchCluster) cluster; - for (AbstractSearchCluster.SearchDefinitionSpec spec : searchCluster.getLocalSDS()) { + for (AbstractSearchCluster.SchemaSpec spec : searchCluster.getLocalSDS()) { validateComplexFields(searchCluster.getClusterName(), spec.getSearchDefinition().getSearch()); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidator.java index 907418ea9f0..9568ea5c27c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankingConstantsValidator.java @@ -9,7 +9,7 @@ import com.yahoo.path.Path; import com.yahoo.searchdefinition.RankingConstant; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.application.validation.ConstantTensorJsonValidator.InvalidConstantTensor; -import com.yahoo.vespa.model.search.SearchDefinition; +import com.yahoo.vespa.model.search.NamedSchema; import java.io.FileNotFoundException; @@ -47,7 +47,7 @@ public class RankingConstantsValidator extends Validator { ApplicationPackage applicationPackage = deployState.getApplicationPackage(); ExceptionMessageCollector exceptionMessageCollector = new ExceptionMessageCollector("Invalid constant tensor file(s):"); - for (SearchDefinition sd : deployState.getSearchDefinitions()) { + for (NamedSchema sd : deployState.getSchemas()) { for (RankingConstant rc : sd.getSearch().rankingConstants().asMap().values()) { try { validateRankingConstant(rc, applicationPackage); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidator.java index 85ba75639eb..031ce0dbdd4 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidator.java @@ -15,7 +15,7 @@ import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.search.AbstractSearchCluster; -import com.yahoo.vespa.model.search.SearchDefinition; +import com.yahoo.vespa.model.search.NamedSchema; import java.util.List; @@ -34,7 +34,7 @@ public class SearchDataTypeValidator extends Validator { if (cluster.isStreaming()) { continue; } - for (AbstractSearchCluster.SearchDefinitionSpec spec : cluster.getLocalSDS()) { + for (AbstractSearchCluster.SchemaSpec spec : cluster.getLocalSDS()) { SDDocumentType docType = spec.getSearchDefinition().getSearch().getDocument(); if (docType == null) { continue; @@ -44,7 +44,7 @@ public class SearchDataTypeValidator extends Validator { } } - private void validateDocument(AbstractSearchCluster cluster, SearchDefinition def, SDDocumentType doc) { + private void validateDocument(AbstractSearchCluster cluster, NamedSchema def, SDDocumentType doc) { for (SDDocumentType child : doc.getTypes()) { validateDocument(cluster, def, child); } @@ -84,7 +84,7 @@ public class SearchDataTypeValidator extends Validator { } } - private void disallowIndexingOfMaps(AbstractSearchCluster cluster, SearchDefinition def, Field field) { + private void disallowIndexingOfMaps(AbstractSearchCluster cluster, NamedSchema def, Field field) { DataType fieldType = field.getDataType(); if ((fieldType instanceof MapDataType) && (((SDField) field).doesIndexing())) { throw new IllegalArgumentException("Field type '" + fieldType.getName() + "' cannot be indexed for search " + diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java index fa5fa4bd227..4c4b1ca7f82 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java @@ -8,7 +8,6 @@ import com.yahoo.search.pagetemplates.PageTemplatesConfig; import com.yahoo.search.query.profile.config.QueryProfilesConfig; import com.yahoo.vespa.configdefinition.IlscriptsConfig; import com.yahoo.vespa.model.container.ApplicationContainerCluster; -import com.yahoo.vespa.model.container.component.Component; import com.yahoo.vespa.model.container.component.ContainerSubsystem; import com.yahoo.vespa.model.container.search.searchchain.LocalProvider; import com.yahoo.vespa.model.container.search.searchchain.SearchChains; @@ -132,7 +131,7 @@ public class ContainerSearch extends ContainerSubsystem AbstractSearchCluster sys = findClusterWithId(searchClusters, i); QrSearchersConfig.Searchcluster.Builder scB = new QrSearchersConfig.Searchcluster.Builder(). name(sys.getClusterName()); - for (AbstractSearchCluster.SearchDefinitionSpec spec : sys.getLocalSDS()) { + for (AbstractSearchCluster.SchemaSpec spec : sys.getLocalSDS()) { scB.searchdef(spec.getSearchDefinition().getName()); } scB.rankprofiles(new QrSearchersConfig.Searchcluster.Rankprofiles.Builder().configid(sys.getConfigId())); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java index e05b2d27e09..4ecc666a9f2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java @@ -118,7 +118,7 @@ public class LocalProvider extends Provider implements public List getDocumentTypes() { List documentTypes = new ArrayList<>(); - for (AbstractSearchCluster.SearchDefinitionSpec spec : searchCluster.getLocalSDS()) { + for (AbstractSearchCluster.SchemaSpec spec : searchCluster.getLocalSDS()) { documentTypes.add(spec.getSearchDefinition().getSearch().getDocument().getName()); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java index fa822df652f..fcaba66ef69 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java @@ -16,8 +16,8 @@ import com.yahoo.vespa.model.search.AbstractSearchCluster; import com.yahoo.vespa.model.search.IndexedSearchCluster; import com.yahoo.vespa.model.search.NodeSpec; import com.yahoo.vespa.model.search.SearchCluster; -import com.yahoo.vespa.model.search.SearchDefinition; -import com.yahoo.vespa.model.search.SearchDefinitionXMLHandler; +import com.yahoo.vespa.model.search.NamedSchema; +import com.yahoo.vespa.model.search.SchemaDefinitionXMLHandler; import com.yahoo.vespa.model.search.SearchNode; import com.yahoo.vespa.model.search.StreamingSearchCluster; import com.yahoo.vespa.model.search.TransactionLogServer; @@ -136,7 +136,7 @@ public class ContentSearchCluster extends AbstractConfigProducer implements Prot private void buildIndexedSearchCluster(DeployState deployState, ModelElement clusterElem, String clusterName, ContentSearchCluster search) { - List indexedDefs = getIndexedSearchDefinitions(clusterElem); + List indexedDefs = getIndexedSchemas(clusterElem); if (!indexedDefs.isEmpty()) { IndexedSearchCluster isc = new IndexedSearchCluster(search, clusterName, 0, deployState); isc.setRoutingSelector(clusterElem.childAsString("documents.selection")); @@ -150,7 +150,7 @@ public class ContentSearchCluster extends AbstractConfigProducer implements Prot } } - private List getIndexedSearchDefinitions(ModelElement clusterElem) { + private List getIndexedSchemas(ModelElement clusterElem) { List indexedDefs = new ArrayList<>(); ModelElement docElem = clusterElem.child("documents"); if (docElem == null) { @@ -188,28 +188,28 @@ public class ContentSearchCluster extends AbstractConfigProducer implements Prot } private void addSearchCluster(DeployState deployState, SearchCluster cluster, Double queryTimeout, List documentDefs) { - addSearchDefinitions(deployState, documentDefs, cluster); + addSchemas(deployState, documentDefs, cluster); if (queryTimeout != null) { cluster.setQueryTimeout(queryTimeout); } cluster.defaultDocumentsConfig(); - cluster.deriveSearchDefinitions(deployState); + cluster.deriveSchemas(deployState); addCluster(cluster); } - private void addSearchDefinitions(DeployState deployState, List searchDefs, AbstractSearchCluster sc) { + private void addSchemas(DeployState deployState, List searchDefs, AbstractSearchCluster sc) { for (ModelElement e : searchDefs) { - SearchDefinitionXMLHandler searchDefinitionXMLHandler = new SearchDefinitionXMLHandler(e); - SearchDefinition searchDefinition = - searchDefinitionXMLHandler.getResponsibleSearchDefinition(deployState.getSearchDefinitions()); + SchemaDefinitionXMLHandler schemaDefinitionXMLHandler = new SchemaDefinitionXMLHandler(e); + NamedSchema searchDefinition = + schemaDefinitionXMLHandler.getResponsibleSearchDefinition(deployState.getSchemas()); if (searchDefinition == null) throw new RuntimeException("Search definition parsing error or file does not exist: '" + - searchDefinitionXMLHandler.getName() + "'"); + schemaDefinitionXMLHandler.getName() + "'"); // TODO: remove explicit building of user configs when the complete content model is built using builders. - sc.getLocalSDS().add(new AbstractSearchCluster.SearchDefinitionSpec(searchDefinition, - UserConfigBuilder.build(e.getXml(), deployState, deployState.getDeployLogger()))); + sc.getLocalSDS().add(new AbstractSearchCluster.SchemaSpec(searchDefinition, + UserConfigBuilder.build(e.getXml(), deployState, deployState.getDeployLogger()))); //need to get the document names from this sdfile sc.addDocumentNames(searchDefinition); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java index 8a88e720bed..fe6c6c52e2d 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java @@ -29,7 +29,7 @@ public abstract class AbstractSearchCluster extends AbstractConfigProducer protected int index; private Double visibilityDelay = 0.0; private List documentNames = new ArrayList<>(); - private List localSDS = new LinkedList<>(); + private List localSDS = new LinkedList<>(); public AbstractSearchCluster(AbstractConfigProducer parent, String clusterName, int index) { super(parent, "cluster." + clusterName); @@ -38,11 +38,11 @@ public abstract class AbstractSearchCluster extends AbstractConfigProducer } public void prepareToDistributeFiles(List backends) { - for (SearchDefinitionSpec sds : localSDS) + for (SchemaSpec sds : localSDS) sds.getSearchDefinition().getSearch().rankingConstants().sendTo(backends); } - public void addDocumentNames(SearchDefinition searchDefinition) { + public void addDocumentNames(NamedSchema searchDefinition) { String dName = searchDefinition.getSearch().getDocument().getDocumentName().getName(); documentNames.add(dName); } @@ -50,7 +50,7 @@ public abstract class AbstractSearchCluster extends AbstractConfigProducer /** Returns a List with document names used in this search cluster */ public List getDocumentNames() { return documentNames; } - public List getLocalSDS() { + public List getLocalSDS() { return localSDS; } @@ -107,18 +107,17 @@ public abstract class AbstractSearchCluster extends AbstractConfigProducer } } - public static final class SearchDefinitionSpec { + public static final class SchemaSpec { - private final SearchDefinition searchDefinition; + private final NamedSchema searchDefinition; private final UserConfigRepo userConfigRepo; - public SearchDefinitionSpec(SearchDefinition searchDefinition, - UserConfigRepo userConfigRepo) { + public SchemaSpec(NamedSchema searchDefinition, UserConfigRepo userConfigRepo) { this.searchDefinition = searchDefinition; this.userConfigRepo = userConfigRepo; } - public SearchDefinition getSearchDefinition() { + public NamedSchema getSearchDefinition() { return searchDefinition; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java index 3c45b29b1e2..9746c50450e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java @@ -195,9 +195,10 @@ public class IndexedSearchCluster extends SearchCluster routingSelector = sb.toString(); } } + @Override - protected void deriveAllSearchDefinitions(List localSearches, DeployState deployState) { - for (SearchDefinitionSpec spec : localSearches) { + protected void deriveAllSchemas(List localSearches, DeployState deployState) { + for (SchemaSpec spec : localSearches) { com.yahoo.searchdefinition.Search search = spec.getSearchDefinition().getSearch(); if ( ! (search instanceof DocumentOnlySearch)) { DocumentDatabase db = new DocumentDatabase(this, search.getName(), diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/NamedSchema.java b/config-model/src/main/java/com/yahoo/vespa/model/search/NamedSchema.java new file mode 100644 index 00000000000..ba81073709e --- /dev/null +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/NamedSchema.java @@ -0,0 +1,47 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.model.search; + +import com.yahoo.searchdefinition.Search; + +import java.util.Collection; + +/** + * @author Tony Vaagenes + */ +// TODO: This class is quite pointless +public class NamedSchema { + + private final Search search; + private final String name; + + public static final String fileNameSuffix = ".sd"; + + public Search getSearch() { + return search; + } + + public String getName() { + return name; + } + + public NamedSchema(String name, Search search) { + this.name = name; + this.search = search; + } + + //Find search definition from a collection with the name specified + public static NamedSchema findByName(String schemaName, Collection schemas) { + for (NamedSchema candidate : schemas) { + if (candidate.getName().equals(schemaName) ) + return candidate; + } + + return null; + } + + // Used by admin interface + public String getFilename() { + return getName() + fileNameSuffix; + } + +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SchemaDefinitionXMLHandler.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SchemaDefinitionXMLHandler.java new file mode 100644 index 00000000000..b505b5e681c --- /dev/null +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SchemaDefinitionXMLHandler.java @@ -0,0 +1,31 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.model.search; + +import com.yahoo.vespa.model.builder.xml.dom.ModelElement; + +import java.io.Serializable; +import java.util.List; + +/** + * Represents a single schema file. + * + * @author arnej27959 + */ +public class SchemaDefinitionXMLHandler implements Serializable { + + private String sdName; + + public SchemaDefinitionXMLHandler(ModelElement elem) { + sdName = elem.stringAttribute("name"); + if (sdName == null) { + sdName = elem.stringAttribute("type"); + } + } + + public String getName() { return sdName; } + + public NamedSchema getResponsibleSearchDefinition(List schemas) { + return NamedSchema.findByName(getName(), schemas ); + } + +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java index 321564bfec1..0139e949c7a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java @@ -41,8 +41,8 @@ public abstract class SearchCluster extends AbstractSearchCluster * Also stores the document names contained in the search * definitions. */ - public void deriveSearchDefinitions(DeployState deployState) { - deriveAllSearchDefinitions(getLocalSDS(), deployState); + public void deriveSchemas(DeployState deployState) { + deriveAllSchemas(getLocalSDS(), deployState); } @Override @@ -132,7 +132,7 @@ public abstract class SearchCluster extends AbstractSearchCluster return false; } - protected abstract void deriveAllSearchDefinitions(List localSearches, DeployState deployState); + protected abstract void deriveAllSchemas(List localSearches, DeployState deployState); public abstract void defaultDocumentsConfig(); public abstract DerivedConfiguration getSdConfig(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchDefinition.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchDefinition.java deleted file mode 100644 index 860f89792e2..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchDefinition.java +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.search; - -import com.yahoo.searchdefinition.Search; - -import java.util.Collection; - -/** - * @author Tony Vaagenes - */ -public class SearchDefinition { - - private final Search search; - private final String name; - - public static final String fileNameSuffix = ".sd"; - - public Search getSearch() { - return search; - } - - public String getName() { - return name; - } - - public SearchDefinition(String name, Search search) { - this.name = name; - this.search = search; - } - - //Find search definition from a collection with the name specified - public static SearchDefinition findByName(final String searchDefinitionName, Collection searchDefinitions) { - for (SearchDefinition candidate : searchDefinitions) { - if (candidate.getName().equals(searchDefinitionName) ) - return candidate; - } - - return null; - } - - // Used by admin interface - public String getFilename() { - return getName() + fileNameSuffix; - } - -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchDefinitionXMLHandler.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchDefinitionXMLHandler.java deleted file mode 100644 index 1054253e3f0..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchDefinitionXMLHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.search; - -import com.yahoo.vespa.model.builder.xml.dom.ModelElement; - -import java.io.Serializable; -import java.util.List; - -/** - * Represents a single searchdefinition file. - * - * @author arnej27959 - */ -public class SearchDefinitionXMLHandler implements Serializable { - - private String sdName; - - public SearchDefinitionXMLHandler(ModelElement elem) { - sdName = elem.stringAttribute("name"); - if (sdName == null) { - sdName = elem.stringAttribute("type"); - } - } - - public String getName() { return sdName; } - - public SearchDefinition getResponsibleSearchDefinition(List searchDefinitions) { - return SearchDefinition.findByName( getName(), searchDefinitions ); - } - -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java index d668adea116..28e7b3eb37a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java @@ -91,7 +91,7 @@ public class StreamingSearchCluster extends SearchCluster implements } @Override - protected void deriveAllSearchDefinitions(List local, DeployState deployState) { + protected void deriveAllSchemas(List local, DeployState deployState) { if (local.size() == 1) { deriveSingleSearchDefinition(local.get(0).getSearchDefinition().getSearch(), deployState); } else if (local.size() > 1){ diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj index 0cfd13f2a9c..2ee0d870d0e 100644 --- a/config-model/src/main/javacc/SDParser.jj +++ b/config-model/src/main/javacc/SDParser.jj @@ -197,6 +197,7 @@ TOKEN : < NL: "\n" > | < ANNOTATION: "annotation" > | < ANNOTATIONREFERENCE: "annotationreference" > +| < SCHEMA: "schema" > | < SEARCH: "search" > | < DIVERSITY: "diversity" > | < MIN_GROUPS: "min-groups" > @@ -403,38 +404,38 @@ Search search(DocumentTypeManager docMan, String dir) : Search search; } { - ()* (search = rootSearch(dir) | search = rootDocument(dir)) + ()* (search = rootSchema(dir) | search = rootDocument(dir)) { return search; } } /** - * This rule consumes a proper search block. This and rootDocument() are the only rules that should ever consume + * This rule consumes a proper schema block. This and rootDocument() are the only rules that should ever consume * trailing newline tokens. * - * @param dir The directory containing the file being parsed. - * @return The search definition object. + * @param dir the directory containing the file being parsed. + * @return the schema definition object. */ -Search rootSearch(String dir) : +Search rootSchema(String dir) : { String name; Search search; } { - ( name = identifier() { search = new Search(name, app); + ( ( | ) name = identifier() { search = new Search(name, app); rankProfileRegistry.add(new DefaultRankProfile(search, rankProfileRegistry)); rankProfileRegistry.add(new UnrankedRankProfile(search, rankProfileRegistry));} - lbrace() (rootSearchItem(search) ()*)* ()* ) + lbrace() (rootSchemaItem(search) ()*)* ()* ) { return search; } } /** - * Consumes an element of a search block. This and rootSearch() are the only rules that should ever consume + * Consumes an element of a schema block. This and rootSearch() are the only rules that should ever consume * trailing newline tokens. * * @param search The search object to modify. * @return Null. */ -Object rootSearchItem(Search search) : { } +Object rootSchemaItem(Search search) : { } { ( document(search) | documentSummary(search) @@ -452,10 +453,10 @@ Object rootSearchItem(Search search) : { } } /** - * Consumes a search definition that contains only documents to be used for inheritance, etc. + * Consumes a schema definition that contains only documents to be used for inheritance, etc. * - * @param dir The directory containing the file being parsed. - * @return The search definition object. + * @param dir the directory containing the file being parsed. + * @return the schema definition object. */ Search rootDocument(String dir) : { @@ -481,7 +482,7 @@ Object rootDocumentItem(Search search) : { } /** * Consumes a use-document statement. This currently does nothing. * - * @param search The search object to modify. + * @param search the search object to modify. */ void useDocument(Search search) : { } { @@ -491,7 +492,7 @@ void useDocument(Search search) : { } /** * Consumes a document element. The name defaults to the search's name, but may be set. * - * @param search The search object to add content to. + * @param search the search object to add content to. */ void document(Search search) : { @@ -510,7 +511,7 @@ void document(Search search) : /** * Consumes a document element, explicitly named * - * @param search The search object to add content to. + * @param search the search object to add content to. */ void namedDocument(Search search) : { @@ -2617,6 +2618,7 @@ String identifier() : { } | | | + | | | | diff --git a/config-model/src/test/examples/simple.sd b/config-model/src/test/examples/simple.sd index e61b64dc0ed..a8c801b1421 100644 --- a/config-model/src/test/examples/simple.sd +++ b/config-model/src/test/examples/simple.sd @@ -3,7 +3,7 @@ # You can get a reasonable configuration by only configuring # a document # ...this has become less and less simple over time actually -search simple { +schema simple { document simple { diff --git a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java index cb1577417b4..fe82f2406f2 100644 --- a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java @@ -20,7 +20,7 @@ import com.yahoo.searchdefinition.DocumentOnlySearch; import com.yahoo.vespa.config.ConfigDefinition; import com.yahoo.vespa.config.ConfigDefinitionKey; import com.yahoo.vespa.model.VespaModel; -import com.yahoo.vespa.model.search.SearchDefinition; +import com.yahoo.vespa.model.search.NamedSchema; import org.junit.After; import org.junit.Rule; import org.junit.Test; @@ -31,7 +31,6 @@ import java.io.File; import java.io.IOException; import java.io.Reader; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -60,9 +59,9 @@ public class ApplicationDeployTest { public void testVespaModel() throws SAXException, IOException { ApplicationPackageTester tester = ApplicationPackageTester.create(TESTDIR + "app1"); VespaModel model = new VespaModel(tester.app()); - List searchDefinitions = tester.getSearchDefinitions(); - assertEquals(searchDefinitions.size(), 5); - for (SearchDefinition searchDefinition : searchDefinitions) { + List schemas = tester.getSchemas(); + assertEquals(schemas.size(), 5); + for (NamedSchema searchDefinition : schemas) { Search s = searchDefinition.getSearch(); switch (s.getName()) { case "music": @@ -72,21 +71,18 @@ public class ApplicationDeployTest { break; case "product": assertTrue(s instanceof DocumentOnlySearch); - assertEquals(s.getDocument().getField("title").getDataType(), DataType.STRING); + assertEquals(DataType.STRING, s.getDocument().getField("title").getDataType()); break; default: fail(); } } - File[] truth = new File[]{new File(TESTSDDIR + "laptop.sd"), - new File(TESTSDDIR + "music.sd"), - new File(TESTSDDIR + "pc.sd"), - new File(TESTSDDIR + "product.sd"), - new File(TESTSDDIR + "sock.sd")}; - Arrays.sort(truth); - List appSdFiles = tester.app().getSearchDefinitionFiles(); - Collections.sort(appSdFiles); - assertEquals(appSdFiles, Arrays.asList(truth)); + assertEquals(Set.of(new File(TESTSDDIR + "laptop.sd"), + new File(TESTSDDIR + "music.sd"), + new File(TESTSDDIR + "pc.sd"), + new File(TESTSDDIR + "product.sd"), + new File(TESTSDDIR + "sock.sd")), + new HashSet<>(tester.app().getSearchDefinitionFiles())); List components = tester.app().getComponents(); assertEquals(1, components.size()); @@ -103,7 +99,7 @@ public class ApplicationDeployTest { // Check that getFilename works ArrayList sdFileNames = new ArrayList<>(); - for (SearchDefinition sd : searchDefinitions) + for (NamedSchema sd : schemas) sdFileNames.add(sd.getFilename()); Collections.sort(sdFileNames); assertEquals("laptop.sd", sdFileNames.get(0)); @@ -190,11 +186,11 @@ public class ApplicationDeployTest { File tmpDir = tmpFolder.getRoot(); IOUtils.copyDirectory(new File(TESTDIR, "app1"), tmpDir); ApplicationPackageTester tester = ApplicationPackageTester.create(tmpDir.getAbsolutePath()); - assertEquals(5, tester.getSearchDefinitions().size()); - File sdDir = new File(tmpDir, "searchdefinitions"); + assertEquals(5, tester.getSchemas().size()); + File sdDir = new File(tmpDir, "schemas"); File sd = new File(sdDir, "testfoo.sd"); IOUtils.writeFile(sd, "search testfoo { document testfoo { field bar type string { } } }", false); - assertEquals(6, tester.getSearchDefinitions().size()); + assertEquals(6, tester.getSchemas().size()); } @Test @@ -300,6 +296,16 @@ public class ApplicationDeployTest { @Test public void testGetJarEntryName() { + JarEntry e = new JarEntry("/schemas/foo.sd"); + assertEquals(ApplicationPackage.getFileName(e), "foo.sd"); + e = new JarEntry("bar"); + assertEquals(ApplicationPackage.getFileName(e), "bar"); + e = new JarEntry(""); + assertEquals(ApplicationPackage.getFileName(e), ""); + } + + @Test + public void testGetJarEntryNameForLegacyPath() { JarEntry e = new JarEntry("/searchdefinitions/foo.sd"); assertEquals(ApplicationPackage.getFileName(e), "foo.sd"); e = new JarEntry("bar"); diff --git a/config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java b/config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java index 87b6efa83d6..8e7d5aadb36 100644 --- a/config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java +++ b/config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java @@ -5,7 +5,7 @@ import com.yahoo.component.Version; import com.yahoo.config.model.application.provider.ApplicationPackageXmlFilesValidator; import com.yahoo.config.model.application.provider.FilesApplicationPackage; import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.vespa.model.search.SearchDefinition; +import com.yahoo.vespa.model.search.NamedSchema; import java.io.File; import java.io.IOException; @@ -39,8 +39,8 @@ public class ApplicationPackageTester { public FilesApplicationPackage app() { return applicationPackage; } - public List getSearchDefinitions() { - return new DeployState.Builder().applicationPackage(app()).build().getSearchDefinitions(); + public List getSchemas() { + return new DeployState.Builder().applicationPackage(app()).build().getSchemas(); } public static ApplicationPackageTester create(String applicationPackageDir) { diff --git a/config-model/src/test/java/com/yahoo/document/test/SDDocumentTypeTestCase.java b/config-model/src/test/java/com/yahoo/document/test/SDDocumentTypeTestCase.java index 94602d5201a..127c121197b 100644 --- a/config-model/src/test/java/com/yahoo/document/test/SDDocumentTypeTestCase.java +++ b/config-model/src/test/java/com/yahoo/document/test/SDDocumentTypeTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.document.test; import com.yahoo.document.DataType; import com.yahoo.document.DataTypeName; import com.yahoo.documentmodel.VespaDocumentType; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import org.junit.Test; @@ -17,7 +17,7 @@ import static org.junit.Assert.*; * @author Thomas Gundersen * @author bratseth */ -public class SDDocumentTypeTestCase extends SearchDefinitionTestCase { +public class SDDocumentTypeTestCase extends SchemaTestCase { // Verify that we can register and retrieve fields. @Test diff --git a/config-model/src/test/java/com/yahoo/document/test/SDFieldTestCase.java b/config-model/src/test/java/com/yahoo/document/test/SDFieldTestCase.java index 7dcbd92655b..b3109c3c2e4 100644 --- a/config-model/src/test/java/com/yahoo/document/test/SDFieldTestCase.java +++ b/config-model/src/test/java/com/yahoo/document/test/SDFieldTestCase.java @@ -2,7 +2,7 @@ package com.yahoo.document.test; import com.yahoo.document.DataType; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; import org.junit.Test; @@ -11,7 +11,7 @@ import static org.junit.Assert.fail; /** * @author Thomas Gundersen */ -public class SDFieldTestCase extends SearchDefinitionTestCase { +public class SDFieldTestCase extends SchemaTestCase { @Test public void testIdSettingConflict() { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/ArraysTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/ArraysTestCase.java index 846166ae93c..6a40778c9c4 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/ArraysTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/ArraysTestCase.java @@ -18,7 +18,7 @@ import static org.junit.Assert.assertTrue; * * @author bratseth */ -public class ArraysTestCase extends SearchDefinitionTestCase { +public class ArraysTestCase extends SchemaTestCase { @Test public void testArrayImporting() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/ArraysWeightedSetsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/ArraysWeightedSetsTestCase.java index cfd02c22b89..af1e061b7fa 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/ArraysWeightedSetsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/ArraysWeightedSetsTestCase.java @@ -16,7 +16,7 @@ import static org.junit.Assert.assertTrue; * * @author Einar M R Rosenvinge */ -public class ArraysWeightedSetsTestCase extends SearchDefinitionTestCase { +public class ArraysWeightedSetsTestCase extends SchemaTestCase { @Test public void testArrayWeightedSetsImporting() throws java.io.IOException, com.yahoo.searchdefinition.parser.ParseException { Search search = SearchBuilder.buildFromFile("src/test/examples/arraysweightedsets.sd"); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/AttributeSettingsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/AttributeSettingsTestCase.java index 084cbcfdfc0..83cad4cf266 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/AttributeSettingsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/AttributeSettingsTestCase.java @@ -25,7 +25,7 @@ import static org.junit.Assert.*; * * @author bratseth */ -public class AttributeSettingsTestCase extends SearchDefinitionTestCase { +public class AttributeSettingsTestCase extends SchemaTestCase { @Rule public final ExpectedException exceptionRule = ExpectedException.none(); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java index 8ccb1ed969a..3bb464c5fa5 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java @@ -14,7 +14,7 @@ import static org.junit.Assert.assertEquals; * * @author bratseth */ -public class CommentTestCase extends SearchDefinitionTestCase { +public class CommentTestCase extends SchemaTestCase { @Test public void testComments() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/FieldOfTypeDocumentTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/FieldOfTypeDocumentTestCase.java index be3bae05c5b..1c7b3e19663 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/FieldOfTypeDocumentTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/FieldOfTypeDocumentTestCase.java @@ -19,7 +19,7 @@ import static org.junit.Assert.assertSame; /** * @author Einar M R Rosenvinge */ -public class FieldOfTypeDocumentTestCase extends SearchDefinitionTestCase { +public class FieldOfTypeDocumentTestCase extends SchemaTestCase { @Test public void testDocument() throws IOException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectRankingExpressionFileRefTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectRankingExpressionFileRefTestCase.java index 519828497fe..4453f327bb4 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectRankingExpressionFileRefTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectRankingExpressionFileRefTestCase.java @@ -18,7 +18,7 @@ import static org.junit.Assert.fail; /** * @author bratseth */ -public class IncorrectRankingExpressionFileRefTestCase extends SearchDefinitionTestCase { +public class IncorrectRankingExpressionFileRefTestCase extends SchemaTestCase { @Test public void testIncorrectRef() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectSummaryTypesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectSummaryTypesTestCase.java index c145c0e5634..91ab5e2b5df 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectSummaryTypesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectSummaryTypesTestCase.java @@ -11,7 +11,7 @@ import static org.junit.Assert.fail; * * @author bratseth */ -public class IncorrectSummaryTypesTestCase extends SearchDefinitionTestCase { +public class IncorrectSummaryTypesTestCase extends SchemaTestCase { @Test public void testImportingIncorrect() throws ParseException { try { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/IndexSettingsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/IndexSettingsTestCase.java index 2cfb542d06b..f992d5ee0ba 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/IndexSettingsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/IndexSettingsTestCase.java @@ -15,7 +15,7 @@ import static org.junit.Assert.assertEquals; * * @author bratseth */ -public class IndexSettingsTestCase extends SearchDefinitionTestCase { +public class IndexSettingsTestCase extends SchemaTestCase { @Test public void testStemmingSettings() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/IndexingParsingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/IndexingParsingTestCase.java index 21ba3a5e80a..70119ad42f9 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/IndexingParsingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/IndexingParsingTestCase.java @@ -11,7 +11,7 @@ import static org.junit.Assert.assertNotNull; * * @author frodelu */ -public class IndexingParsingTestCase extends SearchDefinitionTestCase { +public class IndexingParsingTestCase extends SchemaTestCase { @Test public void requireThatIndexingExpressionsCanBeParsed() throws Exception { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/MultipleSummariesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/MultipleSummariesTestCase.java index df9f5778614..5721dbf06e8 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/MultipleSummariesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/MultipleSummariesTestCase.java @@ -11,7 +11,7 @@ import java.io.IOException; * * @author bratseth */ -public class MultipleSummariesTestCase extends SearchDefinitionTestCase { +public class MultipleSummariesTestCase extends SchemaTestCase { @Test public void testArrayImporting() throws IOException, ParseException { SearchBuilder.buildFromFile("src/test/examples/multiplesummaries.sd"); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/NameFieldCheckTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/NameFieldCheckTestCase.java index d2360453976..47b6905c677 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/NameFieldCheckTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/NameFieldCheckTestCase.java @@ -14,7 +14,7 @@ import static org.junit.Assert.fail; * * @author Lars Christian Jensen */ -public class NameFieldCheckTestCase extends SearchDefinitionTestCase { +public class NameFieldCheckTestCase extends SchemaTestCase { @Test public void testNameField() { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/OutsideTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/OutsideTestCase.java index 5ac37bf0a3a..64527e7f7a5 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/OutsideTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/OutsideTestCase.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertTrue; * * @author bratseth */ -public class OutsideTestCase extends SearchDefinitionTestCase { +public class OutsideTestCase extends SchemaTestCase { @Test public void testOutsideIndex() throws IOException, ParseException { 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 5ba508e3ef3..e2f2c1fd407 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java @@ -34,7 +34,7 @@ import static org.junit.Assert.assertTrue; * * @author bratseth */ -public class RankProfileTestCase extends SearchDefinitionTestCase { +public class RankProfileTestCase extends SchemaTestCase { @Test public void testRankProfileInheritance() { 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 f4666f7fb3b..3fe2861de0c 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertEquals; /** * @author bratseth */ -public class RankPropertiesTestCase extends SearchDefinitionTestCase { +public class RankPropertiesTestCase extends SchemaTestCase { @Test public void testRankPropertyInheritance() throws ParseException { 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 51508414205..d84d967a184 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java @@ -17,7 +17,7 @@ import static org.junit.Assert.*; /** * @author bratseth */ -public class RankingExpressionConstantsTestCase extends SearchDefinitionTestCase { +public class RankingExpressionConstantsTestCase extends SchemaTestCase { @Test public void testConstants() throws ParseException { 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 58e62353e5c..e0679eb5175 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java @@ -17,7 +17,7 @@ import static org.junit.Assert.assertTrue; /** * @author bratseth */ -public class RankingExpressionInliningTestCase extends SearchDefinitionTestCase { +public class RankingExpressionInliningTestCase extends SchemaTestCase { @Test public void testFunctionInliningPreserveArithmeticOrdering() throws ParseException { 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 3d842be129f..5c1134f928c 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java @@ -19,7 +19,7 @@ import static org.junit.Assert.assertEquals; /** * @author lesters */ -public class RankingExpressionShadowingTestCase extends SearchDefinitionTestCase { +public class RankingExpressionShadowingTestCase extends SchemaTestCase { @Test public void testBasicFunctionShadowing() throws ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionValidationTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionValidationTestCase.java index c5027af2a0c..c1fe5e42dfa 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionValidationTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionValidationTestCase.java @@ -15,7 +15,7 @@ import static org.junit.Assert.fail; /** * @author bratseth */ -public class RankingExpressionValidationTestCase extends SearchDefinitionTestCase { +public class RankingExpressionValidationTestCase extends SchemaTestCase { @Test public void testInvalidExpressionProducesException() throws ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/ReservedWordsAsFieldNamesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/ReservedWordsAsFieldNamesTestCase.java index 5a5fc1cc312..1a939d71937 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/ReservedWordsAsFieldNamesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/ReservedWordsAsFieldNamesTestCase.java @@ -11,7 +11,7 @@ import static org.junit.Assert.assertNotNull; /** * @author bratseth */ -public class ReservedWordsAsFieldNamesTestCase extends SearchDefinitionTestCase { +public class ReservedWordsAsFieldNamesTestCase extends SchemaTestCase { @Test public void testIt() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SchemaParsingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaParsingTestCase.java new file mode 100644 index 00000000000..0ae39b7f8b6 --- /dev/null +++ b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaParsingTestCase.java @@ -0,0 +1,89 @@ +// 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 java.io.IOException; + +import com.yahoo.searchdefinition.parser.ParseException; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Tests that search definitions are parsed correctly and that correct line number is reported in + * error message. + * + * @author hmusum + */ +public class SchemaParsingTestCase extends SchemaTestCase { + + @Test + public void requireThatIndexingExpressionsCanBeParsed() throws Exception { + assertNotNull(SearchBuilder.buildFromFile("src/test/examples/simple.sd")); + } + + @Test + public void requireThatParseExceptionPositionIsCorrect() throws Exception { + try { + SearchBuilder.buildFromFile("src/test/examples/invalid_sd_construct.sd"); + } catch (ParseException e) { + if ( ! e.getMessage().contains("at line 5, column 36.")) { + throw e; + } + } + } + + @Test + public void requireThatParserHandlesLexicalError() throws Exception { + try { + SearchBuilder.buildFromFile("src/test/examples/invalid_sd_lexical_error.sd"); + } catch (ParseException e) { + if (!e.getMessage().contains("at line 7, column 27.")) { + throw e; + } + } + } + + @Test + public void requireErrorWhenJunkAfterSearchBlock() throws IOException, ParseException { + try { + SearchBuilder.buildFromFile("src/test/examples/invalid_sd_junk_at_end.sd"); + fail("Illegal junk at end of SD passed"); + } catch (ParseException e) { + if (!e.getMessage().contains("at line 10, column 1")) { + throw e; + } + } + } + + @Test + public void requireErrorWhenMissingClosingSearchBracket() throws IOException, ParseException { + try { + SearchBuilder.buildFromFile("src/test/examples/invalid_sd_no_closing_bracket.sd"); + fail("SD without closing bracket passed"); + } catch (ParseException e) { + if (!e.getMessage().contains("Encountered \"\" at line 8, column 1")) { + throw e; + } + } + } + + @Test + public void illegalSearchDefinitionName() throws IOException, ParseException { + try { + SearchBuilder.buildFromFile("src/test/examples/invalid-name.sd"); + fail("Name with dash passed"); + } catch (ParseException e) { + if ( ! e.getMessage().contains("invalid-name")) { + throw e; + } + } + } + + // TODO: Remove in Vespa 8 + @Test + public void requireThatParserHandlesHeadAndBody() throws IOException, ParseException { + assertNotNull(SearchBuilder.buildFromFile("src/test/examples/header_body.sd")); + } + +} diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java new file mode 100644 index 00000000000..7f3ea7d14bc --- /dev/null +++ b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java @@ -0,0 +1,75 @@ +// 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.io.IOUtils; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; + +import static helpers.CompareConfigTestHelper.assertSerializedConfigEquals; +import static helpers.CompareConfigTestHelper.assertSerializedConfigFileEquals; + +public abstract class SchemaTestCase { + + protected static void assertConfigFile(String filename, String cfg) throws IOException { + assertSerializedConfigFileEquals(filename, cfg); + } + + protected static void assertConfigFiles(String expectedFile, String cfgFile, boolean updateOnAssert) throws IOException { + try { + assertSerializedConfigEquals(readAndCensorIndexes(expectedFile), readAndCensorIndexes(cfgFile)); + } catch (AssertionError e) { + if (updateOnAssert) { + BufferedWriter writer = IOUtils.createWriter(expectedFile, false); + writer.write(readAndCensorIndexes(cfgFile)); + writer.newLine(); + writer.flush(); + writer.close(); + System.err.println(e.getMessage() + " [not equal files: >>>"+expectedFile+"<<< and >>>"+cfgFile+"<<< in assertConfigFiles]"); + return; + } + throw new AssertionError(e.getMessage() + " [not equal files: >>>"+expectedFile+"<<< and >>>"+cfgFile+"<<< in assertConfigFiles]", e); + } + } + /** + * This is to avoid having to keep those pesky array index numbers in the config format up to date + * as new entries are added and removed. + */ + private static String readAndCensorIndexes(String file) throws IOException { + StringBuilder b = new StringBuilder(); + try (BufferedReader r = IOUtils.createReader(file)) { + int character; + boolean lastWasNewline = false; + boolean inBrackets = false; + while (-1 != (character = r.read())) { + // skip empty lines + if (character == '\n') { + if (lastWasNewline) continue; + lastWasNewline = true; + } + else { + lastWasNewline = false; + } + + // skip quoted strings + if (character == '"') { + b.appendCodePoint(character); + while (-1 != (character = r.read()) && character != '"') { + b.appendCodePoint(character); + } + } + + // skip bracket content + if (character == ']') + inBrackets = false; + if (! inBrackets) + b.appendCodePoint(character); + if (character == '[') + inBrackets = true; + } + } + return b.toString(); + } + +} diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SearchDefinitionTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SearchDefinitionTestCase.java deleted file mode 100644 index ba6da8792fa..00000000000 --- a/config-model/src/test/java/com/yahoo/searchdefinition/SearchDefinitionTestCase.java +++ /dev/null @@ -1,75 +0,0 @@ -// 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.io.IOUtils; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; - -import static helpers.CompareConfigTestHelper.assertSerializedConfigEquals; -import static helpers.CompareConfigTestHelper.assertSerializedConfigFileEquals; - -public abstract class SearchDefinitionTestCase { - - protected static void assertConfigFile(String filename, String cfg) throws IOException { - assertSerializedConfigFileEquals(filename, cfg); - } - - protected static void assertConfigFiles(String expectedFile, String cfgFile, boolean updateOnAssert) throws IOException { - try { - assertSerializedConfigEquals(readAndCensorIndexes(expectedFile), readAndCensorIndexes(cfgFile)); - } catch (AssertionError e) { - if (updateOnAssert) { - BufferedWriter writer = IOUtils.createWriter(expectedFile, false); - writer.write(readAndCensorIndexes(cfgFile)); - writer.newLine(); - writer.flush(); - writer.close(); - System.err.println(e.getMessage() + " [not equal files: >>>"+expectedFile+"<<< and >>>"+cfgFile+"<<< in assertConfigFiles]"); - return; - } - throw new AssertionError(e.getMessage() + " [not equal files: >>>"+expectedFile+"<<< and >>>"+cfgFile+"<<< in assertConfigFiles]", e); - } - } - /** - * This is to avoid having to keep those pesky array index numbers in the config format up to date - * as new entries are added and removed. - */ - private static String readAndCensorIndexes(String file) throws IOException { - StringBuilder b = new StringBuilder(); - try (BufferedReader r = IOUtils.createReader(file)) { - int character; - boolean lastWasNewline = false; - boolean inBrackets = false; - while (-1 != (character = r.read())) { - // skip empty lines - if (character == '\n') { - if (lastWasNewline) continue; - lastWasNewline = true; - } - else { - lastWasNewline = false; - } - - // skip quoted strings - if (character == '"') { - b.appendCodePoint(character); - while (-1 != (character = r.read()) && character != '"') { - b.appendCodePoint(character); - } - } - - // skip bracket content - if (character == ']') - inBrackets = false; - if (! inBrackets) - b.appendCodePoint(character); - if (character == '[') - inBrackets = true; - } - } - return b.toString(); - } - -} diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SearchDefinitionsParsingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SearchDefinitionsParsingTestCase.java deleted file mode 100644 index fd4bb393c49..00000000000 --- a/config-model/src/test/java/com/yahoo/searchdefinition/SearchDefinitionsParsingTestCase.java +++ /dev/null @@ -1,89 +0,0 @@ -// 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 java.io.IOException; - -import com.yahoo.searchdefinition.parser.ParseException; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Tests that search definitions are parsed correctly and that correct line number is reported in - * error message. - * - * @author hmusum - */ -public class SearchDefinitionsParsingTestCase extends SearchDefinitionTestCase { - - @Test - public void requireThatIndexingExpressionsCanBeParsed() throws Exception { - assertNotNull(SearchBuilder.buildFromFile("src/test/examples/simple.sd")); - } - - @Test - public void requireThatParseExceptionPositionIsCorrect() throws Exception { - try { - SearchBuilder.buildFromFile("src/test/examples/invalid_sd_construct.sd"); - } catch (ParseException e) { - if ( ! e.getMessage().contains("at line 5, column 36.")) { - throw e; - } - } - } - - @Test - public void requireThatParserHandlesLexicalError() throws Exception { - try { - SearchBuilder.buildFromFile("src/test/examples/invalid_sd_lexical_error.sd"); - } catch (ParseException e) { - if (!e.getMessage().contains("at line 7, column 27.")) { - throw e; - } - } - } - - @Test - public void requireErrorWhenJunkAfterSearchBlock() throws IOException, ParseException { - try { - SearchBuilder.buildFromFile("src/test/examples/invalid_sd_junk_at_end.sd"); - fail("Illegal junk at end of SD passed"); - } catch (ParseException e) { - if (!e.getMessage().contains("at line 10, column 1")) { - throw e; - } - } - } - - @Test - public void requireErrorWhenMissingClosingSearchBracket() throws IOException, ParseException { - try { - SearchBuilder.buildFromFile("src/test/examples/invalid_sd_no_closing_bracket.sd"); - fail("SD without closing bracket passed"); - } catch (ParseException e) { - if (!e.getMessage().contains("Encountered \"\" at line 8, column 1")) { - throw e; - } - } - } - - @Test - public void illegalSearchDefinitionName() throws IOException, ParseException { - try { - SearchBuilder.buildFromFile("src/test/examples/invalid-name.sd"); - fail("Name with dash passed"); - } catch (ParseException e) { - if ( ! e.getMessage().contains("invalid-name")) { - throw e; - } - } - } - - // TODO: Remove in Vespa 8 - @Test - public void requireThatParserHandlesHeadAndBody() throws IOException, ParseException { - assertNotNull(SearchBuilder.buildFromFile("src/test/examples/header_body.sd")); - } - -} diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java index 66ff1877994..018703153ac 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java @@ -3,7 +3,6 @@ package com.yahoo.searchdefinition; import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.document.DataType; -import com.yahoo.document.Document; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.RankType; @@ -31,7 +30,7 @@ import static org.junit.Assert.fail; * * @author bratseth */ -public class SearchImporterTestCase extends SearchDefinitionTestCase { +public class SearchImporterTestCase extends SchemaTestCase { @Test @SuppressWarnings("deprecation") diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java index 9b27d338ced..e5b8ec85d75 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java @@ -16,7 +16,7 @@ import static org.junit.Assert.assertNull; * * @author bratseth */ -public class StemmingSettingTestCase extends SearchDefinitionTestCase { +public class StemmingSettingTestCase extends SchemaTestCase { @Test public void testStemmingSettings() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/StructTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/StructTestCase.java index 001ad64e2da..77df5b391dc 100755 --- a/config-model/src/test/java/com/yahoo/searchdefinition/StructTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/StructTestCase.java @@ -14,7 +14,7 @@ import static org.junit.Assert.fail; * * @author bratseth */ -public class StructTestCase extends SearchDefinitionTestCase { +public class StructTestCase extends SchemaTestCase { @Test public void testStruct() throws IOException { 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 7e0eb01f611..a345cabe909 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 @@ -7,7 +7,7 @@ import com.yahoo.document.DocumenttypesConfig; import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import ai.vespa.rankingexpression.importer.configmodelview.ImportedMlModels; import com.yahoo.vespa.configmodel.producers.DocumentManager; @@ -21,7 +21,7 @@ import java.io.IOException; * * @author bratseth */ -public abstract class AbstractExportingTestCase extends SearchDefinitionTestCase { +public abstract class AbstractExportingTestCase extends SchemaTestCase { private static final String tempDir = "temp/"; private static final String searchDefRoot = "src/test/derived/"; diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java index 79ec3027c20..80a92a5b5ec 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -20,7 +20,7 @@ import static org.junit.Assert.assertFalse; * * @author bratseth */ -public class AttributeListTestCase extends SearchDefinitionTestCase { +public class AttributeListTestCase extends SchemaTestCase { @Test public void testDeriving() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/CasingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/CasingTestCase.java index b47a268d95a..07762fc6937 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/CasingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/CasingTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -16,7 +16,7 @@ import static org.junit.Assert.assertEquals; * * @author vegardh */ -public class CasingTestCase extends SearchDefinitionTestCase { +public class CasingTestCase extends SchemaTestCase { @Test public void testCasing() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/DeriverTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/DeriverTestCase.java index 1209da6d64b..8b09a4efd57 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/DeriverTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/DeriverTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.document.DataType; import com.yahoo.document.DocumentTypeManager; import com.yahoo.document.config.DocumentmanagerConfig; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import org.junit.Test; import java.util.List; @@ -16,7 +16,7 @@ import static org.junit.Assert.assertEquals; * * @author bratseth */ -public class DeriverTestCase extends SearchDefinitionTestCase { +public class DeriverTestCase extends SchemaTestCase { @Test public void testDeriveDocManager() { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java index aaac1631722..47862a2611b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java @@ -6,7 +6,7 @@ import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import ai.vespa.rankingexpression.importer.configmodelview.ImportedMlModels; @@ -17,7 +17,7 @@ import org.junit.Test; * * @author bratseth */ -public class EmptyRankProfileTestCase extends SearchDefinitionTestCase { +public class EmptyRankProfileTestCase extends SchemaTestCase { @Test public void testDeriving() { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/NativeRankTypeDefinitionsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/NativeRankTypeDefinitionsTestCase.java index c8ba5168e1c..69c247b94d4 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/NativeRankTypeDefinitionsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/NativeRankTypeDefinitionsTestCase.java @@ -1,7 +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.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.RankType; import org.junit.Test; @@ -14,7 +14,7 @@ import static org.junit.Assert.*; * * @author geirst */ -public class NativeRankTypeDefinitionsTestCase extends SearchDefinitionTestCase { +public class NativeRankTypeDefinitionsTestCase extends SchemaTestCase { @Test public void testTables() { assertEquals(NativeTable.Type.FIRST_OCCURRENCE.getName(), "firstOccurrenceTable"); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SearchOrdererTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SearchOrdererTestCase.java index b770024ebf1..0c677456a87 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SearchOrdererTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SearchOrdererTestCase.java @@ -6,7 +6,7 @@ import com.yahoo.document.TemporaryStructuredDataType; import com.yahoo.searchdefinition.DocumentReference; import com.yahoo.searchdefinition.DocumentReferences; import com.yahoo.searchdefinition.Search; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.TemporarySDField; @@ -26,47 +26,47 @@ import static org.junit.Assert.assertEquals; * @author bratseth * @author bjorncs */ -public class SearchOrdererTestCase extends SearchDefinitionTestCase { +public class SearchOrdererTestCase extends SchemaTestCase { - private static Map createSearchDefinitions() { - Map searchDefinitions = new HashMap<>(); + private static Map createSchemas() { + Map schemas = new HashMap<>(); - Search grandParent = createSearchDefinition("grandParent", searchDefinitions); + Search grandParent = createSchema("grandParent", schemas); - Search mother = createSearchDefinition("mother", searchDefinitions); + Search mother = createSchema("mother", schemas); inherit(mother, grandParent); - Search father = createSearchDefinition("father", searchDefinitions); + Search father = createSchema("father", schemas); inherit(father, grandParent); createDocumentReference(father, mother, "wife_ref"); - Search daugther = createSearchDefinition("daughter", searchDefinitions); + Search daugther = createSchema("daughter", schemas); inherit(daugther, father); inherit(daugther, mother); - Search son = createSearchDefinition("son", searchDefinitions); + Search son = createSchema("son", schemas); inherit(son, father); inherit(son, mother); - Search product = createSearchDefinition("product", searchDefinitions); + Search product = createSchema("product", schemas); - Search pc = createSearchDefinition("pc", searchDefinitions); + Search pc = createSchema("pc", schemas); inherit(pc, product); - Search pcAccessory = createSearchDefinition("accessory-pc", searchDefinitions); + Search pcAccessory = createSchema("accessory-pc", schemas); inherit(pcAccessory, product); createDocumentReference(pcAccessory, pc, "pc_ref"); - createSearchDefinition("alone", searchDefinitions); + createSchema("alone", schemas); - return searchDefinitions; + return schemas; } - private static Search createSearchDefinition(String name, Map searchDefinitions) { + private static Search createSchema(String name, Map schemas) { Search search = new Search(name, null); SDDocumentType document = new SDDocumentType(name); document.setDocumentReferences(new DocumentReferences(emptyMap())); search.addDocument(document); - searchDefinitions.put(search.getName(), search); + schemas.put(search.getName(), search); return search; } @@ -75,13 +75,13 @@ public class SearchOrdererTestCase extends SearchDefinitionTestCase { } private static void assertOrder(List expectedSearchOrder, List inputNames) { - Map searchDefinitions = createSearchDefinitions(); - List inputSearchDefinitions = inputNames.stream() - .map(searchDefinitions::get) + Map schemas = createSchemas(); + List inputSchemas = inputNames.stream() + .map(schemas::get) .map(Objects::requireNonNull) .collect(toList()); List actualSearchOrder = new SearchOrderer() - .order(inputSearchDefinitions) + .order(inputSchemas) .stream() .map(Search::getName) .collect(toList()); @@ -104,31 +104,37 @@ public class SearchOrdererTestCase extends SearchDefinitionTestCase { assertOrder(Arrays.asList("alone", "grandParent", "mother", "father", "daughter", "product", "pc", "son"), Arrays.asList("grandParent", "mother", "father", "daughter", "son", "product", "pc", "alone")); } + @Test public void testOneLevelReordering() { assertOrder(Arrays.asList("alone", "grandParent", "mother", "father", "daughter", "product", "pc", "son"), Arrays.asList("grandParent", "daughter", "son", "mother", "father", "pc", "product", "alone")); } + @Test public void testMultiLevelReordering() { assertOrder(Arrays.asList("alone", "grandParent", "mother", "father", "daughter", "product", "pc", "son"), Arrays.asList("daughter", "son", "mother", "father", "grandParent", "pc", "product", "alone")); } + @Test public void testAloneIsKeptInPlaceWithMultiLevelReordering() { assertOrder(Arrays.asList("alone", "grandParent", "mother", "father", "daughter", "product", "pc", "son"), Arrays.asList("alone", "daughter", "son", "mother", "father", "grandParent", "pc", "product")); } + @Test public void testPartialMultiLevelReordering() { assertOrder(Arrays.asList("alone", "grandParent", "mother", "father", "daughter", "product", "pc", "son"), Arrays.asList("daughter", "grandParent", "mother", "son", "father", "product", "pc", "alone")); } + @Test public void testMultilevelReorderingAccrossHierarchies() { assertOrder(Arrays.asList("alone", "grandParent", "mother", "father", "daughter", "product", "pc", "son"), Arrays.asList("daughter", "pc", "son", "mother", "grandParent", "father", "product", "alone")); } + @Test public void referees_are_ordered_before_referrer() { assertOrder(Arrays.asList("alone", "grandParent", "mother", "father", "daughter", "product", "pc", "accessory-pc", "son"), diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java index f85f9994e04..07d7405b1db 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java @@ -25,7 +25,7 @@ import static org.junit.Assert.assertTrue; * * @author bratseth */ -public class SummaryMapTestCase extends SearchDefinitionTestCase { +public class SummaryMapTestCase extends SchemaTestCase { @Test public void testDeriving() throws IOException, ParseException { Search search = SearchBuilder.buildFromFile("src/test/examples/simple.sd"); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java index b82620b1cf5..afbc9f52f6b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -20,7 +20,7 @@ import static org.junit.Assert.assertNull; * * @author bratseth */ -public class SummaryTestCase extends SearchDefinitionTestCase { +public class SummaryTestCase extends SchemaTestCase { @Test public void testDeriving() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java index 24575df8c91..c03e915aa8b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java @@ -6,7 +6,7 @@ import com.yahoo.document.DataType; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.processing.Processing; @@ -20,7 +20,7 @@ import static org.junit.Assert.assertFalse; * * @author bratseth */ -public class TypeConversionTestCase extends SearchDefinitionTestCase { +public class TypeConversionTestCase extends SchemaTestCase { /** Tests that exact-string stuff is not spilled over to the default index */ @Test diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributesExactMatchTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributesExactMatchTestCase.java index 7236ccbc117..35ce4dff730 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributesExactMatchTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributesExactMatchTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -17,7 +17,7 @@ import static org.junit.Assert.assertFalse; * @author vegardh * */ -public class AttributesExactMatchTestCase extends SearchDefinitionTestCase { +public class AttributesExactMatchTestCase extends SchemaTestCase { @Test public void testAttributesExactMatch() throws IOException, ParseException { Search search = SearchBuilder.buildFromFile("src/test/examples/attributesexactmatch.sd"); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/BoldingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/BoldingTestCase.java index ac3ba1d98d9..9a4357c5d65 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/BoldingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/BoldingTestCase.java @@ -5,7 +5,7 @@ import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.model.container.search.QueryProfiles; import org.junit.Test; @@ -18,7 +18,7 @@ import static org.junit.Assert.fail; /** * @author Mathias Mølster Lidal */ -public class BoldingTestCase extends SearchDefinitionTestCase { +public class BoldingTestCase extends SchemaTestCase { @Test public void testBoldingNonString() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSearchFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSearchFieldsTestCase.java index 620cee49ac4..809ccdb3a3a 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSearchFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSearchFieldsTestCase.java @@ -6,7 +6,7 @@ import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.derived.DerivedConfiguration; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.parser.ParseException; @@ -18,7 +18,7 @@ import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -public class ImplicitSearchFieldsTestCase extends SearchDefinitionTestCase { +public class ImplicitSearchFieldsTestCase extends SchemaTestCase { @Test public void testRequireThatExtraFieldsAreIncluded() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitStructTypesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitStructTypesTestCase.java index f2d81414b5a..c9ea57c5b9b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitStructTypesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitStructTypesTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.document.*; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.parser.ParseException; @@ -13,7 +13,7 @@ import org.junit.Test; import java.io.IOException; import static org.junit.Assert.*; -public class ImplicitStructTypesTestCase extends SearchDefinitionTestCase { +public class ImplicitStructTypesTestCase extends SchemaTestCase { @Test public void testRequireThatImplicitStructsAreCreated() throws IOException, ParseException { Search search = SearchBuilder.buildFromFile("src/test/examples/nextgen/toggleon.sd"); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFieldsTestCase.java index 7acbf67772a..ae00e4f3079 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFieldsTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.documentmodel.DocumentSummary; import org.junit.Test; @@ -13,7 +13,7 @@ import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -public class ImplicitSummaryFieldsTestCase extends SearchDefinitionTestCase { +public class ImplicitSummaryFieldsTestCase extends SchemaTestCase { @Test public void testRequireThatImplicitFieldsAreCreated() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java index d313c2391fd..7863c544b60 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java @@ -7,7 +7,7 @@ import com.yahoo.searchdefinition.Index; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.BooleanIndexDefinition; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; @@ -28,7 +28,7 @@ import static org.junit.Assert.assertEquals; /** * @author Simon Thoresen Hult */ -public class IndexingScriptRewriterTestCase extends SearchDefinitionTestCase { +public class IndexingScriptRewriterTestCase extends SchemaTestCase { @Test public void testSetLanguageRewriting() { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IntegerIndex2AttributeTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IntegerIndex2AttributeTestCase.java index cac50354dc2..fcf1c39f5b4 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IntegerIndex2AttributeTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IntegerIndex2AttributeTestCase.java @@ -5,7 +5,7 @@ import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -20,7 +20,7 @@ import static org.junit.Assert.assertTrue; /** * @author baldersheim */ -public class IntegerIndex2AttributeTestCase extends SearchDefinitionTestCase { +public class IntegerIndex2AttributeTestCase extends SchemaTestCase { @Test public void testIntegerIndex2Attribute() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java index 385d1df90ad..c792d3bf40b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; @@ -21,7 +21,7 @@ import static org.junit.Assert.fail; /** * @author bratseth */ -public class NGramTestCase extends SearchDefinitionTestCase { +public class NGramTestCase extends SchemaTestCase { @Test public void testNGram() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankModifierTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankModifierTestCase.java index 0d6334a5223..4ab56f809c9 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankModifierTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankModifierTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -14,7 +14,7 @@ import java.io.IOException; * @author vegardh * */ -public class RankModifierTestCase extends SearchDefinitionTestCase { +public class RankModifierTestCase extends SchemaTestCase { @Test public void testLiteral() throws IOException, ParseException { Search search = SearchBuilder.buildFromFile("src/test/examples/rankmodifier/literal.sd"); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankPropertyVariablesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankPropertyVariablesTestCase.java index d740884d3e5..502fc4472bc 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankPropertyVariablesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankPropertyVariablesTestCase.java @@ -7,7 +7,7 @@ import com.yahoo.searchdefinition.RankProfile.RankProperty; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -16,7 +16,7 @@ import java.util.List; import static org.junit.Assert.fail; -public class RankPropertyVariablesTestCase extends SearchDefinitionTestCase { +public class RankPropertyVariablesTestCase extends SchemaTestCase { @Test public void testRankPropVariables() throws IOException, ParseException { 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 96fa59a77cc..b3eda9b7e13 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 @@ -19,7 +19,7 @@ import java.util.Map; import static org.junit.Assert.assertEquals; -public class RankingExpressionsTestCase extends SearchDefinitionTestCase { +public class RankingExpressionsTestCase extends SchemaTestCase { @Test public void testFunctions() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSourceTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSourceTestCase.java index dbcfc8c202d..ca8744a07bb 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSourceTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSourceTestCase.java @@ -6,7 +6,7 @@ import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.model.container.search.QueryProfiles; import org.junit.Test; @@ -16,7 +16,7 @@ import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; -public class SummaryFieldsMustHaveValidSourceTestCase extends SearchDefinitionTestCase { +public class SummaryFieldsMustHaveValidSourceTestCase extends SchemaTestCase { @Test public void requireThatInvalidSourceIsCaught() throws IOException, ParseException { 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 f90320ad686..8308b638497 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 @@ -13,7 +13,7 @@ import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.derived.AttributeFields; import com.yahoo.searchdefinition.derived.RawRankProfile; import com.yahoo.searchdefinition.parser.ParseException; @@ -25,7 +25,7 @@ import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; -public class TensorTransformTestCase extends SearchDefinitionTestCase { +public class TensorTransformTestCase extends SchemaTestCase { @Test public void requireThatNormalMaxAndMinAreNotReplaced() throws ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/WeightedSetSummaryToTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/WeightedSetSummaryToTestCase.java index ef6bc57223d..957b5c55889 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/WeightedSetSummaryToTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/WeightedSetSummaryToTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -12,7 +12,7 @@ import java.io.IOException; import static org.junit.Assert.assertNotNull; /** @author bratseth */ -public class WeightedSetSummaryToTestCase extends SearchDefinitionTestCase { +public class WeightedSetSummaryToTestCase extends SchemaTestCase { @Test public void testRequireThatImplicitFieldsAreCreated() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/vespa/documentmodel/AbstractReferenceFieldTestCase.java b/config-model/src/test/java/com/yahoo/vespa/documentmodel/AbstractReferenceFieldTestCase.java index d0ee0523489..9144ad411b2 100644 --- a/config-model/src/test/java/com/yahoo/vespa/documentmodel/AbstractReferenceFieldTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/documentmodel/AbstractReferenceFieldTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.documentmodel; import com.yahoo.document.DocumenttypesConfig; import com.yahoo.document.config.DocumentmanagerConfig; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.vespa.configmodel.producers.DocumentManager; import com.yahoo.vespa.configmodel.producers.DocumentTypes; @@ -12,7 +12,7 @@ import java.io.IOException; /** * Utility functions for testing generated configs for reference/imported fields. */ -public abstract class AbstractReferenceFieldTestCase extends SearchDefinitionTestCase { +public abstract class AbstractReferenceFieldTestCase extends SchemaTestCase { private static String TEST_FOLDER = "src/test/configmodel/types/references/"; diff --git a/config-model/src/test/java/com/yahoo/vespa/documentmodel/DocumentModelBuilderTestCase.java b/config-model/src/test/java/com/yahoo/vespa/documentmodel/DocumentModelBuilderTestCase.java index f5034d0530b..91152648b10 100644 --- a/config-model/src/test/java/com/yahoo/vespa/documentmodel/DocumentModelBuilderTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/documentmodel/DocumentModelBuilderTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.vespa.documentmodel; import com.yahoo.document.DocumenttypesConfig; import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.searchdefinition.SearchBuilder; -import com.yahoo.searchdefinition.SearchDefinitionTestCase; +import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.configmodel.producers.DocumentManager; import com.yahoo.vespa.configmodel.producers.DocumentTypes; @@ -13,7 +13,7 @@ import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -public class DocumentModelBuilderTestCase extends SearchDefinitionTestCase { +public class DocumentModelBuilderTestCase extends SchemaTestCase { @Test public void testDocumentManagerSimple() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java index cd67e432b8f..4b23a7e2e71 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java @@ -52,7 +52,7 @@ public class ClusterControllerTestCase extends DomBuilderTest { @Before public void setup() { - sds = ApplicationPackageUtils.generateSearchDefinitions("type1", "type2"); + sds = ApplicationPackageUtils.generateSchemas("type1", "type2"); } @Test @@ -457,7 +457,7 @@ public class ClusterControllerTestCase extends DomBuilderTest { private VespaModel createVespaModel(String servicesXml, boolean isHosted) throws IOException, SAXException { ApplicationPackage applicationPackage = new MockApplicationPackage.Builder() .withServices(servicesXml) - .withSearchDefinitions(sds) + .withSchemas(sds) .build(); // Need to create VespaModel to make deploy properties have effect DeployLogger logger = new DeployLoggerStub(); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java index f7b6d7b25e1..09e4b377085 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java @@ -65,7 +65,7 @@ public class ValidationTester { Instant now = LocalDate.parse("2000-01-01", DateTimeFormatter.ISO_DATE).atStartOfDay().atZone(ZoneOffset.UTC).toInstant(); ApplicationPackage newApp = new MockApplicationPackage.Builder() .withServices(services) - .withSearchDefinitions(ImmutableList.of(MUSIC_SEARCHDEFINITION, BOOK_SEARCHDEFINITION)) + .withSchemas(ImmutableList.of(MUSIC_SEARCHDEFINITION, BOOK_SEARCHDEFINITION)) .withValidationOverrides(validationOverrides) .build(); VespaModelCreatorWithMockPkg newModelCreator = new VespaModelCreatorWithMockPkg(newApp); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java index bb209e58e24..81b7f870a10 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java @@ -201,7 +201,7 @@ public class ConfigValueChangeValidatorTest { " \n" + " \n" + "", - createSearchDefinitions(docTypes) + createSchemas(docTypes) ).create(); } @@ -213,7 +213,7 @@ public class ConfigValueChangeValidatorTest { ""; } - private static List createSearchDefinitions(List docTypes) { + private static List createSchemas(List docTypes) { return docTypes.stream() .map(type -> "search " + type + " { document " + type + " { } }") .collect(Collectors.toList()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java index 43ad1bc0e8a..80127ac6854 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java @@ -7,7 +7,7 @@ import com.yahoo.vespa.model.VespaModel; import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.vespa.model.content.utils.ApplicationPackageBuilder; import com.yahoo.vespa.model.content.utils.ContentClusterBuilder; -import com.yahoo.vespa.model.content.utils.SearchDefinitionBuilder; +import com.yahoo.vespa.model.content.utils.SchemaBuilder; import org.junit.Test; import java.time.Instant; @@ -41,7 +41,7 @@ public class IndexedSearchClusterChangeValidatorTest { public static VespaModel newOneDocModel(String sdContent) { return new ApplicationPackageBuilder(). addCluster(new ContentClusterBuilder().name("foo").docTypes("d1")). - addSearchDefinition(new SearchDefinitionBuilder(). + addSchemas(new SchemaBuilder(). name("d1").content(sdContent).build()).buildCreator().create(); } @@ -52,9 +52,9 @@ public class IndexedSearchClusterChangeValidatorTest { public static VespaModel newTwoDocModel(String d1Content, String d2Content) { return new ApplicationPackageBuilder(). addCluster(new ContentClusterBuilder().name("foo").docTypes("d1", "d2")). - addSearchDefinition(new SearchDefinitionBuilder(). + addSchemas(new SchemaBuilder(). name("d1").content(d1Content).build()). - addSearchDefinition(new SearchDefinitionBuilder(). + addSchemas(new SchemaBuilder(). name("d2").content(d2Content).build()). buildCreator().create(); } @@ -67,9 +67,9 @@ public class IndexedSearchClusterChangeValidatorTest { return new ApplicationPackageBuilder(). addCluster(new ContentClusterBuilder().name("foo").docTypes("d1")). addCluster(new ContentClusterBuilder().name("bar").docTypes("d2")). - addSearchDefinition(new SearchDefinitionBuilder(). + addSchemas(new SchemaBuilder(). name("d1").content(d1Content).build()). - addSearchDefinition(new SearchDefinitionBuilder(). + addSchemas(new SchemaBuilder(). name("d2").content(d2Content).build()). buildCreator().create(); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java index c5fee3efa99..8edbc964bfb 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java @@ -8,7 +8,7 @@ import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.vespa.model.content.utils.ApplicationPackageBuilder; import com.yahoo.vespa.model.content.utils.ContentClusterBuilder; import com.yahoo.vespa.model.content.utils.DocType; -import com.yahoo.vespa.model.content.utils.SearchDefinitionBuilder; +import com.yahoo.vespa.model.content.utils.SchemaBuilder; import org.junit.Test; import java.time.Instant; @@ -40,7 +40,7 @@ public class StreamingSearchClusterChangeValidatorTest { public static VespaModel createOneDocModel(String sdContent) { return new ApplicationPackageBuilder() .addCluster(new ContentClusterBuilder().name("foo").docTypes(Arrays.asList(DocType.streaming("d1")))) - .addSearchDefinition(new SearchDefinitionBuilder().name("d1").content(sdContent).build()) + .addSchemas(new SchemaBuilder().name("d1").content(sdContent).build()) .buildCreator().create(); } @@ -51,8 +51,8 @@ public class StreamingSearchClusterChangeValidatorTest { public static VespaModel createTwoDocModel(String d1Content, String d2Content) { return new ApplicationPackageBuilder() .addCluster(new ContentClusterBuilder().name("foo").docTypes(Arrays.asList(DocType.streaming("d1"), DocType.streaming("d2")))) - .addSearchDefinition(new SearchDefinitionBuilder().name("d1").content(d1Content).build()) - .addSearchDefinition(new SearchDefinitionBuilder().name("d2").content(d2Content).build()) + .addSchemas(new SchemaBuilder().name("d1").content(d1Content).build()) + .addSchemas(new SchemaBuilder().name("d2").content(d2Content).build()) .buildCreator().create(); } @@ -64,8 +64,8 @@ public class StreamingSearchClusterChangeValidatorTest { return new ApplicationPackageBuilder() .addCluster(new ContentClusterBuilder().name("foo").docTypes(Arrays.asList(DocType.streaming("d1")))) .addCluster(new ContentClusterBuilder().name("bar").docTypes(Arrays.asList(DocType.streaming("d2")))) - .addSearchDefinition(new SearchDefinitionBuilder().name("d1").content(d1Content).build()) - .addSearchDefinition(new SearchDefinitionBuilder().name("d2").content(d2Content).build()) + .addSchemas(new SchemaBuilder().name("d1").content(d1Content).build()) + .addSchemas(new SchemaBuilder().name("d2").content(d2Content).build()) .buildCreator().create(); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/ContentClusterFixture.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/ContentClusterFixture.java index 3827da08679..20ff9afd530 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/ContentClusterFixture.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/ContentClusterFixture.java @@ -6,7 +6,7 @@ import com.yahoo.vespa.model.application.validation.change.VespaConfigChangeActi import com.yahoo.vespa.model.content.cluster.ContentCluster; import com.yahoo.vespa.model.content.utils.ContentClusterBuilder; import com.yahoo.vespa.model.content.utils.ContentClusterUtils; -import com.yahoo.vespa.model.content.utils.SearchDefinitionBuilder; +import com.yahoo.vespa.model.content.utils.SchemaBuilder; import com.yahoo.vespa.model.search.DocumentDatabase; import java.util.Arrays; @@ -34,7 +34,7 @@ public abstract class ContentClusterFixture { private static ContentCluster createCluster(String sdContent) throws Exception { return new ContentClusterBuilder().build( ContentClusterUtils.createMockRoot( - Arrays.asList(new SearchDefinitionBuilder().content(sdContent).build()))); + Arrays.asList(new SchemaBuilder().content(sdContent).build()))); } protected DocumentDatabase currentDb() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java index 31a2a6496d7..b4fe4175707 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java @@ -236,8 +236,8 @@ public class ContentBuilderTest extends DomBuilderTest { } @Test - public void requireThatContentStreamingHandlesMultipleSearchDefinitions() { - final String musicClusterId = "music-cluster-id"; + public void requireThatContentStreamingHandlesMultipleSchemas() { + String musicClusterId = "music-cluster-id"; ContentCluster cluster = createContentWithBooksToo( "" + @@ -825,8 +825,8 @@ public class ContentBuilderTest extends DomBuilderTest { VespaModel m = new VespaModelCreatorWithMockPkg(new MockApplicationPackage.Builder() .withHosts(getHosts()) .withServices(combined) - .withSearchDefinitions(Arrays.asList(MockApplicationPackage.MUSIC_SEARCHDEFINITION, - MockApplicationPackage.BOOK_SEARCHDEFINITION)) + .withSchemas(Arrays.asList(MockApplicationPackage.MUSIC_SEARCHDEFINITION, + MockApplicationPackage.BOOK_SEARCHDEFINITION)) .build()) .create(); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/SearchBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/SearchBuilderTest.java index 1f0b0188681..ac915d8a939 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/SearchBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/SearchBuilderTest.java @@ -190,7 +190,7 @@ public class SearchBuilderTest extends ContainerModelBuilderTestBase { private VespaModel getVespaModelWithMusic(String hosts, String services) { - return new VespaModelCreatorWithMockPkg(hosts, services, ApplicationPackageUtils.generateSearchDefinitions("music")).create(); + return new VespaModelCreatorWithMockPkg(hosts, services, ApplicationPackageUtils.generateSchemas("music")).create(); } private String hostsXml() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java index 305bcc1d7d5..b08cc92d20c 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java @@ -26,7 +26,7 @@ import com.yahoo.vespa.model.content.cluster.ContentCluster; import com.yahoo.vespa.model.content.engines.ProtonEngine; import com.yahoo.vespa.model.content.utils.ContentClusterBuilder; import com.yahoo.vespa.model.content.utils.ContentClusterUtils; -import com.yahoo.vespa.model.content.utils.SearchDefinitionBuilder; +import com.yahoo.vespa.model.content.utils.SchemaBuilder; import com.yahoo.vespa.model.routing.DocumentProtocol; import com.yahoo.vespa.model.routing.Routing; import com.yahoo.vespa.model.test.utils.ApplicationPackageUtils; @@ -218,7 +218,7 @@ public class ContentClusterTest extends ContentBaseTest { "\n" + ""; - List sds = ApplicationPackageUtils.generateSearchDefinitions("type1", "type2"); + List sds = ApplicationPackageUtils.generateSchemas("type1", "type2"); VespaModel model = (new VespaModelCreatorWithMockPkg(null, xml, sds)).create(); assertEquals(2, model.getContentClusters().get("bar").getDocumentDefinitions().size()); ContainerCluster cluster = model.getAdmin().getClusterControllers(); @@ -259,7 +259,7 @@ public class ContentClusterTest extends ContentBaseTest { " "; DeployState.Builder deployStateBuilder = new DeployState.Builder().properties(properties); - List sds = ApplicationPackageUtils.generateSearchDefinitions("type1"); + List sds = ApplicationPackageUtils.generateSchemas("type1"); return (new VespaModelCreatorWithMockPkg(null, services, sds)).create(deployStateBuilder); } @Test @@ -301,7 +301,7 @@ public class ContentClusterTest extends ContentBaseTest { "\n" + ""; - List sds = ApplicationPackageUtils.generateSearchDefinitions("type1", "type2"); + List sds = ApplicationPackageUtils.generateSchemas("type1", "type2"); VespaModel model = new VespaModelCreatorWithMockPkg(getHosts(), xml, sds).create(); assertTrue(model.getContentClusters().get("bar").getPersistence() instanceof ProtonEngine.Factory); @@ -340,7 +340,7 @@ public class ContentClusterTest extends ContentBaseTest { " \n" + "\n"; - List sds = ApplicationPackageUtils.generateSearchDefinitions("type1", "type2"); + List sds = ApplicationPackageUtils.generateSchemas("type1", "type2"); try{ new VespaModelCreatorWithMockPkg(getHosts(), xml, sds).create(); assertTrue("Deploying without redundancy should fail", false); @@ -697,7 +697,7 @@ public class ContentClusterTest extends ContentBaseTest { ""; - List sds = ApplicationPackageUtils.generateSearchDefinitions("type1", "type2"); + List sds = ApplicationPackageUtils.generateSchemas("type1", "type2"); VespaModel model = new VespaModelCreatorWithMockPkg(getHosts(), xml, sds).create(); { @@ -818,7 +818,7 @@ public class ContentClusterTest extends ContentBaseTest { " " + ""; - List sds = ApplicationPackageUtils.generateSearchDefinitions("true"); + List sds = ApplicationPackageUtils.generateSchemas("true"); new VespaModelCreatorWithMockPkg(null, xml, sds).create(); } @@ -865,7 +865,7 @@ public class ContentClusterTest extends ContentBaseTest { " " + "" + ""; - List sds = ApplicationPackageUtils.generateSearchDefinitions("bunnies", "hares", "rabbits"); + List sds = ApplicationPackageUtils.generateSchemas("bunnies", "hares", "rabbits"); return new VespaModelCreatorWithMockPkg(getHosts(), xml, sds).create(); } @@ -912,8 +912,8 @@ public class ContentClusterTest extends ContentBaseTest { DeployState.Builder deployStateBuilder = new DeployState.Builder() .zone(zone) .properties(new TestProperties().setHostedVespa(true)); - List searchDefinitions = SearchDefinitionBuilder.createSearchDefinitions("test"); - MockRoot root = ContentClusterUtils.createMockRoot(searchDefinitions, deployStateBuilder); + List schemas = SchemaBuilder.createSchemas("test"); + MockRoot root = ContentClusterUtils.createMockRoot(schemas, deployStateBuilder); ContentCluster cluster = ContentClusterUtils.createCluster(clusterXml, root); root.freezeModelTopology(); cluster.validate(); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java index 98fa179b219..3415044b088 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java @@ -8,7 +8,7 @@ import com.yahoo.vespa.config.search.core.ProtonConfig; import com.yahoo.vespa.model.content.cluster.ContentCluster; import com.yahoo.vespa.model.content.utils.ContentClusterBuilder; import com.yahoo.vespa.model.content.utils.DocType; -import com.yahoo.vespa.model.content.utils.SearchDefinitionBuilder; +import com.yahoo.vespa.model.content.utils.SchemaBuilder; import org.junit.Test; import java.util.ArrayList; @@ -17,7 +17,7 @@ import java.util.List; import static com.yahoo.config.model.test.TestUtil.joinLines; import static com.yahoo.vespa.model.content.utils.ContentClusterUtils.createCluster; -import static com.yahoo.vespa.model.content.utils.SearchDefinitionBuilder.createSearchDefinitions; +import static com.yahoo.vespa.model.content.utils.SchemaBuilder.createSchemas; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -38,7 +38,7 @@ public class ContentSearchClusterTest { private static ContentCluster createClusterWithTwoDocumentType() throws Exception { return createCluster(new ContentClusterBuilder().docTypes("foo", "bar").getXml(), - createSearchDefinitions("foo", "bar")); + createSchemas("foo", "bar")); } private static ContentCluster createClusterWithGlobalType() throws Exception { @@ -55,7 +55,7 @@ public class ContentSearchClusterTest { "", "")); String clusterXml = builder.getXml(); - return createCluster(clusterXml, createSearchDefinitions(docTypes)); + return createCluster(clusterXml, createSchemas(docTypes)); } private static ContentClusterBuilder createClusterBuilderWithGlobalType() { @@ -127,18 +127,19 @@ public class ContentSearchClusterTest { } private static ContentCluster createClusterWithThreeDocumentTypes() throws Exception { - List searchDefinitions = new ArrayList<>(); - searchDefinitions.add(new SearchDefinitionBuilder().name("a") - .content(joinLines("field ref_to_b type reference { indexing: attribute }", - "field ref_to_c type reference { indexing: attribute }")).build()); - searchDefinitions.add(new SearchDefinitionBuilder().name("b") - .content("field ref_to_c type reference { indexing: attribute }").build()); - searchDefinitions.add(new SearchDefinitionBuilder().name("c").build()); - return createCluster(new ContentClusterBuilder().docTypes(Arrays.asList( - DocType.index("a"), - DocType.indexGlobal("b"), - DocType.indexGlobal("c"))).getXml(), - searchDefinitions); + List schemas = new ArrayList<>(); + schemas.add(new SchemaBuilder().name("a") + .content(joinLines("field ref_to_b type reference { indexing: attribute }", + "field ref_to_c type reference { indexing: attribute }")) + .build()); + schemas.add(new SchemaBuilder().name("b") + .content("field ref_to_c type reference { indexing: attribute }") + .build()); + schemas.add(new SchemaBuilder().name("c").build()); + return createCluster(new ContentClusterBuilder().docTypes(List.of(DocType.index("a"), + DocType.indexGlobal("b"), + DocType.indexGlobal("c"))).getXml(), + schemas); } private static BucketspacesConfig getBucketspacesConfig(ContentCluster cluster) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/DistributorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/DistributorTest.java index f36ef6c3ba3..365dc74274d 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/DistributorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/DistributorTest.java @@ -24,7 +24,7 @@ public class DistributorTest { ContentCluster parseCluster(String xml) { try { - List searchDefs = ApplicationPackageUtils.generateSearchDefinitions("music", "movies", "bunnies"); + List searchDefs = ApplicationPackageUtils.generateSchemas("music", "movies", "bunnies"); MockRoot root = ContentClusterUtils.createMockRoot(searchDefs); return ContentClusterUtils.createCluster(xml, root); } catch (Exception e) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java index 992edf6b1bb..51d0afc1f93 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java @@ -50,7 +50,7 @@ public class GenericConfigTest { @Before public void getVespaModel() { - model = (new VespaModelCreatorWithMockPkg(ContentBaseTest.getHosts(), servicesXml(), ApplicationPackageUtils.generateSearchDefinitions("type1"))).create(); + model = (new VespaModelCreatorWithMockPkg(ContentBaseTest.getHosts(), servicesXml(), ApplicationPackageUtils.generateSchemas("type1"))).create(); } @Test diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java index ecf8f100288..504c3d9ba9c 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java @@ -112,12 +112,12 @@ public class IndexedTest extends ContentBaseTest { } private VespaModelCreatorWithMockPkg getIndexedVespaModelCreator() { - List sds = ApplicationPackageUtils.generateSearchDefinitions("type1", "type2", "type3"); + List sds = ApplicationPackageUtils.generateSchemas("type1", "type2", "type3"); return new VespaModelCreatorWithMockPkg(getHosts(), createProtonIndexedVespaServices(Arrays.asList("type1", "type2", "type3")), sds); } private VespaModel getStreamingVespaModel() { - List sds = ApplicationPackageUtils.generateSearchDefinitions("type1"); + List sds = ApplicationPackageUtils.generateSchemas("type1"); return new VespaModelCreatorWithMockPkg(getHosts(), createProtonStreamingVespaServices(Arrays.asList("type1")), sds).create(); } @@ -229,7 +229,7 @@ public class IndexedTest extends ContentBaseTest { " \n" + " "; - List sds = ApplicationPackageUtils.generateSearchDefinitions("docstorebench"); + List sds = ApplicationPackageUtils.generateSchemas("docstorebench"); VespaModel model = new VespaModelCreatorWithMockPkg(getHosts(), services, sds).create(); ProtonConfig.Builder pb = new ProtonConfig.Builder(); model.getConfig(pb, "docstore/search/cluster.docstore/0"); @@ -252,7 +252,7 @@ public class IndexedTest extends ContentBaseTest { " " + ""; - List sds = ApplicationPackageUtils.generateSearchDefinitions("index_me", "store_me"); + List sds = ApplicationPackageUtils.generateSchemas("index_me", "store_me"); VespaModel model = new VespaModelCreatorWithMockPkg(getHosts(), services, sds).create(); ProtonConfig.Builder pb = new ProtonConfig.Builder(); model.getConfig(pb, "docstore/search/cluster.docstore/0"); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexingAndDocprocRoutingTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexingAndDocprocRoutingTest.java index 55d070d7247..177b86c953e 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexingAndDocprocRoutingTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexingAndDocprocRoutingTest.java @@ -164,7 +164,7 @@ public class IndexingAndDocprocRoutingTest extends ContentBaseTest { " \n" + "\n"; - List sds = ApplicationPackageUtils.generateSearchDefinitions("music", "title", "artist"); + List sds = ApplicationPackageUtils.generateSchemas("music", "title", "artist"); VespaModel model = new VespaModelCreatorWithMockPkg(getHosts(), services, sds).create(); assertIndexing(model, new DocprocClusterSpec("dokprok")); @@ -448,7 +448,7 @@ public class IndexingAndDocprocRoutingTest extends ContentBaseTest { } private VespaModel getIndexedSearchVespaModel(String xml) { - List sds = ApplicationPackageUtils.generateSearchDefinitions("music", "album", "artist"); + List sds = ApplicationPackageUtils.generateSchemas("music", "album", "artist"); return new VespaModelCreatorWithMockPkg(getHosts(), xml, sds).create(); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java index c0ddd49069d..e099476ebb6 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java @@ -49,7 +49,7 @@ public class StorageContentTest extends ContentBaseTest { } private VespaModel getStorageVespaModel(String cluster1docs, String cluster2docs) { - List sds = ApplicationPackageUtils.generateSearchDefinitions("type1", "type2", "type3"); + List sds = ApplicationPackageUtils.generateSchemas("type1", "type2", "type3"); return new VespaModelCreatorWithMockPkg(getHosts(), createStorageVespaServices(cluster1docs, cluster2docs), sds).create(); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/ClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/ClusterTest.java index 62221c206fd..852844fe451 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/ClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/ClusterTest.java @@ -176,7 +176,7 @@ public class ClusterTest { " ", " ", "")) - .withSearchDefinitions(ApplicationPackageUtils.generateSearchDefinition("my_document")) + .withSchemas(ApplicationPackageUtils.generateSearchDefinition("my_document")) .build(); List contents = new TestDriver().buildModel(app).getConfigModels(Content.class); assertEquals(1, contents.size()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ApplicationPackageBuilder.java b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ApplicationPackageBuilder.java index 1b7f3e9b14d..5fc213fad1d 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ApplicationPackageBuilder.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ApplicationPackageBuilder.java @@ -14,7 +14,7 @@ import java.util.List; public class ApplicationPackageBuilder { private List contentClusters = new ArrayList<>(); - private List searchDefinitions = new ArrayList<>(); + private List schemas = new ArrayList<>(); public ApplicationPackageBuilder() { } @@ -24,13 +24,13 @@ public class ApplicationPackageBuilder { return this; } - public ApplicationPackageBuilder addSearchDefinition(String searchDefinition) { - searchDefinitions.add(searchDefinition); + public ApplicationPackageBuilder addSchemas(String schemas) { + this.schemas.add(schemas); return this; } public VespaModelCreatorWithMockPkg buildCreator() { - return new VespaModelCreatorWithMockPkg(null, getServices(), searchDefinitions); + return new VespaModelCreatorWithMockPkg(null, getServices(), schemas); } private String getServices() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java index 62d2bc51830..db9153fcf23 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java @@ -30,31 +30,31 @@ import java.util.Optional; public class ContentClusterUtils { public static MockRoot createMockRoot(String[] hosts) { - return createMockRoot(hosts, SearchDefinitionBuilder.createSearchDefinitions("test")); + return createMockRoot(hosts, SchemaBuilder.createSchemas("test")); } - private static MockRoot createMockRoot(HostProvisioner provisioner, List searchDefinitions) { - return createMockRoot(provisioner, searchDefinitions, new DeployState.Builder()); + private static MockRoot createMockRoot(HostProvisioner provisioner, List schemas) { + return createMockRoot(provisioner, schemas, new DeployState.Builder()); } - private static MockRoot createMockRoot(HostProvisioner provisioner, List searchDefinitions, DeployState.Builder deployStateBuilder) { - ApplicationPackage applicationPackage = new MockApplicationPackage.Builder().withSearchDefinitions(searchDefinitions).build(); + private static MockRoot createMockRoot(HostProvisioner provisioner, List schemas, DeployState.Builder deployStateBuilder) { + ApplicationPackage applicationPackage = new MockApplicationPackage.Builder().withSchemas(schemas).build(); DeployState deployState = deployStateBuilder.applicationPackage(applicationPackage) .modelHostProvisioner(provisioner) .build(); return new MockRoot("", deployState); } - public static MockRoot createMockRoot(String[] hosts, List searchDefinitions) { - return createMockRoot(new InMemoryProvisioner(true, hosts), searchDefinitions); + public static MockRoot createMockRoot(String[] hosts, List schemas) { + return createMockRoot(new InMemoryProvisioner(true, hosts), schemas); } - public static MockRoot createMockRoot(List searchDefinitions) { - return createMockRoot(new SingleNodeProvisioner(), searchDefinitions); + public static MockRoot createMockRoot(List schemas) { + return createMockRoot(new SingleNodeProvisioner(), schemas); } - public static MockRoot createMockRoot(List searchDefinitions, DeployState.Builder deployStateBuilder) { - return createMockRoot(new SingleNodeProvisioner(), searchDefinitions, deployStateBuilder); + public static MockRoot createMockRoot(List schemas, DeployState.Builder deployStateBuilder) { + return createMockRoot(new SingleNodeProvisioner(), schemas, deployStateBuilder); } public static ContentCluster createCluster(String clusterXml, MockRoot root) { @@ -63,13 +63,13 @@ public class ContentClusterUtils { new FileDistributionConfigProducer(root, new MockFileRegistry(), null), root.getDeployState().isHosted()); ConfigModelContext context = ConfigModelContext.create(null, root.getDeployState(), - null,null, root, null); + null,null, root, null); return new ContentCluster.Builder(admin).build(Collections.emptyList(), context, doc.getDocumentElement()); } - public static ContentCluster createCluster(String clusterXml, List searchDefinitions) throws Exception { - MockRoot root = createMockRoot(searchDefinitions); + public static ContentCluster createCluster(String clusterXml, List schemas) throws Exception { + MockRoot root = createMockRoot(schemas); ContentCluster cluster = createCluster(clusterXml, root); root.freezeModelTopology(); cluster.validate(); @@ -77,7 +77,7 @@ public class ContentClusterUtils { } public static ContentCluster createCluster(String clusterXml) throws Exception { - return createCluster(clusterXml, SearchDefinitionBuilder.createSearchDefinitions("test")); + return createCluster(clusterXml, SchemaBuilder.createSchemas("test")); } public static String createClusterXml(String groupXml, int redundancy, int searchableCopies) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/SchemaBuilder.java b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/SchemaBuilder.java new file mode 100644 index 00000000000..c18dac17064 --- /dev/null +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/SchemaBuilder.java @@ -0,0 +1,48 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.model.content.utils; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import static com.yahoo.config.model.test.TestUtil.joinLines; + +/** + * Class for building a search definition (used for testing only). + * + * @author geirst + */ +public class SchemaBuilder { + + private String name = "test"; + private String content = ""; + + public SchemaBuilder() { + } + + public SchemaBuilder name(String name) { + this.name = name; + return this; + } + + public SchemaBuilder content(String content) { + this.content = content; + return this; + } + + public String build() { + return joinLines("search " + name + " {", + " document " + name + " {", + content, + " }", + "}"); + } + + public static List createSchemas(String ... docTypes) { + return Arrays.asList(docTypes) + .stream() + .map(type -> new SchemaBuilder().name(type).build()) + .collect(Collectors.toList()); + } + +} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/SearchDefinitionBuilder.java b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/SearchDefinitionBuilder.java deleted file mode 100644 index c622bcfaec5..00000000000 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/SearchDefinitionBuilder.java +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.content.utils; - -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -import static com.yahoo.config.model.test.TestUtil.joinLines; - -/** - * Class for building a search definition (used for testing only). - * - * @author geirst - */ -public class SearchDefinitionBuilder { - - private String name = "test"; - private String content = ""; - - public SearchDefinitionBuilder() { - } - - public SearchDefinitionBuilder name(String name) { - this.name = name; - return this; - } - - public SearchDefinitionBuilder content(String content) { - this.content = content; - return this; - } - - public String build() { - return joinLines("search " + name + " {", - " document " + name + " {", - content, - " }", - "}"); - } - - public static List createSearchDefinitions(String ... docTypes) { - return Arrays.asList(docTypes) - .stream() - .map(type -> new SearchDefinitionBuilder().name(type).build()) - .collect(Collectors.toList()); - } - -} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java index 177e741937d..97417f5a522 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java @@ -90,7 +90,7 @@ public class DocumentDatabaseTestCase { private void assertSingleSD(String mode) { final List sds = Arrays.asList("type1"); VespaModel model = new VespaModelCreatorWithMockPkg(vespaHosts, createVespaServices(sds, mode), - ApplicationPackageUtils.generateSearchDefinitions(sds)).create(); + ApplicationPackageUtils.generateSchemas(sds)).create(); IndexedSearchCluster indexedSearchCluster = (IndexedSearchCluster)model.getSearchClusters().get(0); ContentSearchCluster contentSearchCluster = model.getContentClusters().get("test").getSearch(); assertEquals(1, indexedSearchCluster.getDocumentDbs().size()); @@ -111,7 +111,7 @@ public class DocumentDatabaseTestCase { sds.add(nameAndMode.getType()); } return new VespaModelCreatorWithMockPkg(vespaHosts, createVespaServicesXml(nameAndModes, xmlTuning), - ApplicationPackageUtils.generateSearchDefinitions(sds)).create(); + ApplicationPackageUtils.generateSchemas(sds)).create(); } @Test @@ -211,10 +211,10 @@ public class DocumentDatabaseTestCase { } @Test - public void requireThatWeCanHaveMultipleSearchDefinitions() { - final List sds = Arrays.asList("type1", "type2", "type3"); + public void testMultipleSchemas() { + List sds = List.of("type1", "type2", "type3"); VespaModel model = new VespaModelCreatorWithMockPkg(vespaHosts, createVespaServices(sds, "index"), - ApplicationPackageUtils.generateSearchDefinitions(sds)).create(); + ApplicationPackageUtils.generateSchemas(sds)).create(); IndexedSearchCluster indexedSearchCluster = (IndexedSearchCluster)model.getSearchClusters().get(0); ContentSearchCluster contentSearchCluster = model.getContentClusters().get("test").getSearch(); String type1Id = "test/search/cluster.test/type1"; @@ -264,7 +264,7 @@ public class DocumentDatabaseTestCase { public void requireThatRelevantConfigIsAvailableForClusterSearcher() { final List sds = Arrays.asList("type1", "type2"); VespaModel model = new VespaModelCreatorWithMockPkg(vespaHosts, createVespaServices(sds, "index"), - ApplicationPackageUtils.generateSearchDefinitions(sds)).create(); + ApplicationPackageUtils.generateSchemas(sds)).create(); String searcherId = "container/searchchains/chain/test/component/com.yahoo.prelude.cluster.ClusterSearcher"; { // documentdb-info config @@ -325,7 +325,7 @@ public class DocumentDatabaseTestCase { private void assertDocumentDBConfigAvailableForStreaming(String mode) { final List sds = Arrays.asList("type"); VespaModel model = new VespaModelCreatorWithMockPkg(vespaHosts, createVespaServices(sds, mode), - ApplicationPackageUtils.generateSearchDefinitions(sds)).create(); + ApplicationPackageUtils.generateSchemas(sds)).create(); DocumentdbInfoConfig dcfg = model.getConfig(DocumentdbInfoConfig.class, "test/search/cluster.test.type"); assertEquals(1, dcfg.documentdb().size()); @@ -343,7 +343,7 @@ public class DocumentDatabaseTestCase { List documentDBConfigIds, Map> expectedAttributesMap) { VespaModel model = new VespaModelCreatorWithMockPkg(vespaHosts, createVespaServices(sds, mode), - ApplicationPackageUtils.generateSearchDefinitions(sds)).create(); + ApplicationPackageUtils.generateSchemas(sds)).create(); ContentSearchCluster contentSearchCluster = model.getContentClusters().get("test").getSearch(); ProtonConfig proton = getProtonCfg(contentSearchCluster); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchClusterTest.java index 70e307e1748..ea4b3db5ebb 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchClusterTest.java @@ -127,7 +127,7 @@ public class SearchClusterTest { " " + ""; - VespaModel model = new VespaModelCreatorWithMockPkg(vespaHosts, services, ApplicationPackageUtils.generateSearchDefinitions("music")).create(); + VespaModel model = new VespaModelCreatorWithMockPkg(vespaHosts, services, ApplicationPackageUtils.generateSchemas("music")).create(); ContainerCluster containerCluster1 = (ContainerCluster)model.getConfigProducer("j1").get(); assertFalse(containerCluster1.getSearch().getChains().localProviders().isEmpty()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/ApplicationPackageUtils.java b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/ApplicationPackageUtils.java index ee6fc60ba46..df62a3bff07 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/ApplicationPackageUtils.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/ApplicationPackageUtils.java @@ -44,14 +44,14 @@ public class ApplicationPackageUtils { } public static List generateSearchDefinition(String name) { - return generateSearchDefinitions(name); + return generateSchemas(name); } - public static List generateSearchDefinitions(String ... sdNames) { - return generateSearchDefinitions(Arrays.asList(sdNames)); + public static List generateSchemas(String ... sdNames) { + return generateSchemas(Arrays.asList(sdNames)); } - public static List generateSearchDefinitions(List sdNames) { + public static List generateSchemas(List sdNames) { List sds = new ArrayList<>(); int i = 0; for (String sdName : sdNames) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java index 814ec008285..70ce588bec1 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java @@ -31,8 +31,8 @@ public class VespaModelCreatorWithMockPkg { this(new MockApplicationPackage.Builder().withHosts(hosts).withServices(services).build()); } - public VespaModelCreatorWithMockPkg(String hosts, String services, List searchDefinitions) { - this(new MockApplicationPackage.Builder().withHosts(hosts).withServices(services).withSearchDefinitions(searchDefinitions).build()); + public VespaModelCreatorWithMockPkg(String hosts, String services, List schemas) { + this(new MockApplicationPackage.Builder().withHosts(hosts).withServices(services).withSchemas(schemas).build()); } public VespaModelCreatorWithMockPkg(ApplicationPackage appPkg) { -- cgit v1.2.3