diff options
author | MariusArhaug <mariusarhaug@hotmail.com> | 2024-04-09 14:28:26 +0200 |
---|---|---|
committer | MariusArhaug <mariusarhaug@hotmail.com> | 2024-04-09 14:28:26 +0200 |
commit | 0959e56737c2accf6fbcd8638ea3de73941bd07e (patch) | |
tree | d0f73c8b26dafd165ba5acfd593e03a792c18ac8 /config-model | |
parent | 218205b80900f85167ec028e5cc55bbe98702dbd (diff) |
Update tests and fix creation of significanceModel
Diffstat (limited to 'config-model')
4 files changed, 48 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/SignificanceModelRegistry.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/SignificanceModelRegistry.java index fafa846d64d..eb3f63cdf10 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/SignificanceModelRegistry.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/SignificanceModelRegistry.java @@ -23,7 +23,7 @@ import static com.yahoo.vespa.model.container.xml.ModelIdResolver.SIGNIFICANCE_M */ public class SignificanceModelRegistry extends SimpleComponent implements SignificanceConfig.Producer { - private static final String CLASS = "com.yahoo.search.significance.DefaultSignificanceModelRegistry"; + private static final String CLASS = "com.yahoo.search.significance.impl.DefaultSignificanceModelRegistry"; private static final String BUNDLE = "linguistics"; private final List<SignificanceModelConfig> configList; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java index 400d86aa67a..18e40f6bd3e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java @@ -213,7 +213,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { addProcessing(deployState, spec, cluster, context); addSearch(deployState, spec, cluster, context); - addSignificance(deployState, spec, cluster); addDocproc(deployState, spec, cluster); addDocumentApi(deployState, spec, cluster, context); // NOTE: Must be done after addSearch @@ -767,6 +766,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { addSearchHandler(deployState, cluster, searchElement, context); validateAndAddConfiguredComponents(deployState, cluster, searchElement, "renderer", ContainerModelBuilder::validateRendererElement); + + addSignificance(deployState, searchElement, cluster); } private void addSignificance(DeployState deployState, Element spec, ApplicationContainerCluster cluster) { diff --git a/config-model/src/test/cfg/significance/services.xml b/config-model/src/test/cfg/significance/services.xml index 7a0679dc6c2..dacd5687c07 100644 --- a/config-model/src/test/cfg/significance/services.xml +++ b/config-model/src/test/cfg/significance/services.xml @@ -8,7 +8,7 @@ <container version="1.0"> <search> <significance> - <model language="en" model-id="idf-wiki-english"/> + <model language="en" model-id="idf-wiki-english" path="models/idf-english-wiki.json.zst"/> <model language="no" path="models/idf-norwegian-wiki.json.zst" /> <model language="ru" url="https://some/uri/blob.json" /> </significance> diff --git a/config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java index 9dc3c72ba64..c67ba6d6b67 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java @@ -1,13 +1,19 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.significance.test; +import com.yahoo.component.ComponentId; +import com.yahoo.config.InnerNode; +import com.yahoo.config.ModelNode; +import com.yahoo.config.ModelReference; +import com.yahoo.search.significance.config.SignificanceConfig; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.container.ApplicationContainerCluster; +import com.yahoo.vespa.model.container.component.SignificanceModelRegistry; import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithFilePkg; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.*; /** * @author MariusArhaug @@ -24,5 +30,42 @@ public class SignificanceModelTestCase { ApplicationContainerCluster containerCluster = vespaModel.getContainerClusters().get("container"); assertEquals(1, containerCluster.getContainers().size()); } + + @Test + void testSignificance() { + VespaModel vespaModel = createModel("src/test/cfg/significance"); + ApplicationContainerCluster containerCluster = vespaModel.getContainerClusters().get("container"); + var significanceConfig = assertSignificancePresent(containerCluster); + assertEquals(3, significanceConfig.model().size()); + assertEquals("en", significanceConfig.model().get(0).language()); + assertEquals("no", significanceConfig.model().get(1).language()); + assertEquals("ru", significanceConfig.model().get(2).language()); + + assertEquals("models/idf-norwegian-wiki.json.zst", modelReference(significanceConfig.model().get(1), "path").path().orElseThrow().value()); + assertEquals("https://some/uri/blob.json", modelReference(significanceConfig.model().get(2), "path").url().orElseThrow().value()); + + + } + + private SignificanceConfig assertSignificancePresent(ApplicationContainerCluster cluster) { + + var id = new ComponentId("com.yahoo.search.significance.impl.DefaultSignificanceModelRegistry"); + var significance = (SignificanceModelRegistry) cluster.getComponentsMap().get(id); + assertEquals("com.yahoo.search.significance.impl.DefaultSignificanceModelRegistry", significance.getClassId().getName()); + var cfgBuilder = new SignificanceConfig.Builder(); + significance.getConfig(cfgBuilder); + return cfgBuilder.build(); + } + + // Ugly hack to read underlying model reference from config instance + private static ModelReference modelReference(InnerNode cfg, String name) { + try { + var f = cfg.getClass().getDeclaredField(name); + f.setAccessible(true); + return ((ModelNode) f.get(cfg)).getModelReference(); + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new RuntimeException(e); + } + } } |