summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorMariusArhaug <mariusarhaug@hotmail.com>2024-04-09 14:28:26 +0200
committerMariusArhaug <mariusarhaug@hotmail.com>2024-04-09 14:28:26 +0200
commit0959e56737c2accf6fbcd8638ea3de73941bd07e (patch)
treed0f73c8b26dafd165ba5acfd593e03a792c18ac8 /config-model
parent218205b80900f85167ec028e5cc55bbe98702dbd (diff)
Update tests and fix creation of significanceModel
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/SignificanceModelRegistry.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java3
-rw-r--r--config-model/src/test/cfg/significance/services.xml2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/significance/test/SignificanceModelTestCase.java45
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);
+ }
+ }
}