summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/config
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-08-22 14:36:03 +0200
committerJon Bratseth <bratseth@oath.com>2018-08-22 14:36:03 +0200
commit4eb133b40206e20e3a70dae7aacec0f6b117e15d (patch)
tree0bb6fb1c306da10125efc5a5c0d6eec6deae0c22 /config-model/src/main/java/com/yahoo/config
parent7392f9fdbee5f0a52ac9c056376b659b32500c60 (diff)
Scope imported models to an entire application build
Diffstat (limited to 'config-model/src/main/java/com/yahoo/config')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java8
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java21
2 files changed, 23 insertions, 6 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
index ff6370f1738..574c25a2f84 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
@@ -1,7 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model.deploy;
-import com.google.common.collect.ImmutableMap;
import com.yahoo.component.Version;
import com.yahoo.component.Vtag;
import com.yahoo.config.application.api.ApplicationPackage;
@@ -22,8 +21,8 @@ import com.yahoo.config.provision.Zone;
import com.yahoo.io.reader.NamedReader;
import com.yahoo.searchdefinition.RankProfileRegistry;
import com.yahoo.searchdefinition.SearchBuilder;
+import com.yahoo.searchlib.rankingexpression.integration.ml.ImportedModels;
import com.yahoo.searchdefinition.parser.ParseException;
-import com.yahoo.searchlib.rankingexpression.integration.ml.ImportedModel;
import com.yahoo.vespa.config.ConfigDefinition;
import com.yahoo.vespa.config.ConfigDefinitionBuilder;
import com.yahoo.vespa.config.ConfigDefinitionKey;
@@ -67,7 +66,7 @@ public class DeployState implements ConfigDefinitionStore {
private final Zone zone;
private final QueryProfiles queryProfiles;
private final SemanticRules semanticRules;
- //private final ImmutableMap<String, ImportedModel> importedMlModels;
+ private final ImportedModels importedModels;
private final ValidationOverrides validationOverrides;
private final Version wantedNodeVespaVersion;
private final Instant now;
@@ -101,6 +100,7 @@ public class DeployState implements ConfigDefinitionStore {
this.zone = zone;
this.queryProfiles = queryProfiles; // TODO: Remove this by seeing how pagetemplates are propagated
this.semanticRules = semanticRules; // TODO: Remove this by seeing how pagetemplates are propagated
+ this.importedModels = new ImportedModels(applicationPackage.getFileReference(ApplicationPackage.MODELS_DIR));
this.validationOverrides = applicationPackage.getValidationOverrides().map(ValidationOverrides::fromXml).orElse(ValidationOverrides.empty);
this.wantedNodeVespaVersion = wantedNodeVespaVersion;
@@ -215,7 +215,7 @@ public class DeployState implements ConfigDefinitionStore {
public SemanticRules getSemanticRules() { return semanticRules; }
/** The (machine learned) models imported from the models/ directory, as an unmodifiable map indexed by model name */
- //public Map<String, ImportedModel> importedMlModels() { return importedMlModels; }
+ public ImportedModels getImportedModels() { return importedModels; }
public Version getWantedNodeVespaVersion() { return wantedNodeVespaVersion; }
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 0cfde3c655c..7404ae14a5d 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
@@ -32,6 +32,7 @@ public class MockApplicationPackage implements ApplicationPackage {
public static final String MUSIC_SEARCHDEFINITION = createSearchDefinition("music", "foo");
public static final String BOOK_SEARCHDEFINITION = createSearchDefinition("book", "bar");
+ private final File root;
private final String hostsS;
private final String servicesS;
private final List<String> searchDefinitions;
@@ -42,9 +43,11 @@ public class MockApplicationPackage implements ApplicationPackage {
private final QueryProfileRegistry queryProfileRegistry;
private final ApplicationMetaData applicationMetaData;
- protected MockApplicationPackage(String hosts, String services, List<String> searchDefinitions, String searchDefinitionDir,
+ protected MockApplicationPackage(File root, String hosts, String services, List<String> searchDefinitions,
+ String searchDefinitionDir,
String deploymentSpec, String validationOverrides, boolean failOnValidateXml,
String queryProfile, String queryProfileType) {
+ this.root = root;
this.hostsS = hosts;
this.servicesS = services;
this.searchDefinitions = searchDefinitions;
@@ -57,6 +60,9 @@ public class MockApplicationPackage implements ApplicationPackage {
applicationMetaData = new ApplicationMetaData("user", "dir", 0L, false, "application", "checksum", 0L, 0L);
}
+ /** Returns the root of this application package relative to the current dir */
+ protected File root() { return root; }
+
@Override
public String getApplicationName() {
return "mock application";
@@ -111,6 +117,11 @@ public class MockApplicationPackage implements ApplicationPackage {
}
@Override
+ public File getFileReference(Path path) {
+ return Path.fromString(root.toString()).append(path).toFile();
+ }
+
+ @Override
public String getHostSource() {
return "mock source";
}
@@ -163,6 +174,7 @@ public class MockApplicationPackage implements ApplicationPackage {
public static class Builder {
+ private File root = new File("nonexisting");
private String hosts = null;
private String services = null;
private List<String> searchDefinitions = Collections.emptyList();
@@ -176,6 +188,11 @@ public class MockApplicationPackage implements ApplicationPackage {
public Builder() {
}
+ public Builder withRoot(File root) {
+ this.root = root;
+ return this;
+ }
+
public Builder withEmptyHosts() {
return this.withHosts(emptyHosts);
}
@@ -235,7 +252,7 @@ public class MockApplicationPackage implements ApplicationPackage {
}
public ApplicationPackage build() {
- return new MockApplicationPackage(hosts, services, searchDefinitions, searchDefinitionDir,
+ return new MockApplicationPackage(root, hosts, services, searchDefinitions, searchDefinitionDir,
deploymentSpec, validationOverrides, failOnValidateXml,
queryProfile, queryProfileType);
}