summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-01-21 09:34:22 +0100
committerHarald Musum <musum@verizonmedia.com>2021-01-21 09:34:22 +0100
commitd61469b07f7f4d2e4dfba7c6fa63ffea208d355b (patch)
tree5e0909b1b8e8ebd9a6d0663577edf4565c562450
parent10dacf3766d3c27f8ed038a1c7dfb2ee53cc4e19 (diff)
Move ModelFactoryRegistry out of GlobalComponentRegistry
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java9
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java19
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java9
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java17
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java12
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java23
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java2
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java6
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.java9
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java5
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java5
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java5
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java29
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java6
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java19
17 files changed, 83 insertions, 101 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java
index c3707407de6..29a8cf37b4e 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java
@@ -2,11 +2,8 @@
package com.yahoo.vespa.config.server;
import com.yahoo.config.model.api.ConfigDefinitionRepo;
-import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import com.yahoo.vespa.config.server.tenant.TenantListener;
-import java.time.Clock;
-
/**
* Interface representing all global config server components used within the config server.
*
@@ -17,5 +14,4 @@ public interface GlobalComponentRegistry {
TenantListener getTenantListener();
ReloadListener getReloadListener();
ConfigDefinitionRepo getStaticConfigDefinitionRepo();
- ModelFactoryRegistry getModelFactoryRegistry();
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java
index 35343ac5072..7cf3cf9112c 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java
@@ -3,7 +3,6 @@ package com.yahoo.vespa.config.server;
import com.google.inject.Inject;
import com.yahoo.config.model.api.ConfigDefinitionRepo;
-import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import com.yahoo.vespa.config.server.rpc.RpcServer;
import com.yahoo.vespa.config.server.tenant.TenantListener;
@@ -14,16 +13,12 @@ import com.yahoo.vespa.config.server.tenant.TenantListener;
*/
public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry {
- private final ModelFactoryRegistry modelFactoryRegistry;
private final RpcServer rpcServer;
private final ConfigDefinitionRepo staticConfigDefinitionRepo;
@SuppressWarnings("WeakerAccess")
@Inject
- public InjectedGlobalComponentRegistry(ModelFactoryRegistry modelFactoryRegistry,
- RpcServer rpcServer,
- ConfigDefinitionRepo staticConfigDefinitionRepo) {
- this.modelFactoryRegistry = modelFactoryRegistry;
+ public InjectedGlobalComponentRegistry(RpcServer rpcServer, ConfigDefinitionRepo staticConfigDefinitionRepo) {
this.rpcServer = rpcServer;
this.staticConfigDefinitionRepo = staticConfigDefinitionRepo;
}
@@ -34,7 +29,5 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry
public ReloadListener getReloadListener() { return rpcServer; }
@Override
public ConfigDefinitionRepo getStaticConfigDefinitionRepo() { return staticConfigDefinitionRepo; }
- @Override
- public ModelFactoryRegistry getModelFactoryRegistry() { return modelFactoryRegistry; }
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java
index b260b1673f6..d2de843303e 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java
@@ -13,6 +13,7 @@ import com.yahoo.slime.SlimeUtils;
import com.yahoo.vespa.config.server.GlobalComponentRegistry;
import com.yahoo.vespa.config.server.http.HttpHandler;
import com.yahoo.vespa.config.server.http.JSONResponse;
+import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import static com.yahoo.jdisc.http.HttpResponse.Status.OK;
@@ -23,24 +24,24 @@ import static com.yahoo.jdisc.http.HttpResponse.Status.OK;
*/
public class StatusHandler extends HttpHandler {
- private final GlobalComponentRegistry componentRegistry;
+ private final ModelFactoryRegistry modelFactoryRegistry;
private final ConfigserverConfig configserverConfig;
@Inject
- public StatusHandler(Context ctx, GlobalComponentRegistry componentRegistry, ConfigserverConfig configserverConfig) {
+ public StatusHandler(Context ctx, ModelFactoryRegistry modelFactoryRegistry, ConfigserverConfig configserverConfig) {
super(ctx);
- this.componentRegistry = componentRegistry;
+ this.modelFactoryRegistry = modelFactoryRegistry;
this.configserverConfig = configserverConfig;
}
@Override
public HttpResponse handleGET(HttpRequest req) {
- return new StatusResponse(OK, componentRegistry, configserverConfig);
+ return new StatusResponse(OK, modelFactoryRegistry, configserverConfig);
}
private static class StatusResponse extends JSONResponse {
- StatusResponse(int status, GlobalComponentRegistry componentRegistry, ConfigserverConfig configserverConfig) {
+ StatusResponse(int status, ModelFactoryRegistry modelFactoryRegistry, ConfigserverConfig configserverConfig) {
super(status);
Cursor configCursor = object.setObject("configserverConfig");
@@ -48,10 +49,10 @@ public class StatusHandler extends HttpHandler {
configCursor);
Cursor modelVersionsCursor = object.setArray("modelVersions");
- componentRegistry.getModelFactoryRegistry().getFactories().stream()
- .map(ModelFactory::version)
- .map(Version::toFullString)
- .forEach(modelVersionsCursor::addString);
+ modelFactoryRegistry.getFactories().stream()
+ .map(ModelFactory::version)
+ .map(Version::toFullString)
+ .forEach(modelVersionsCursor::addString);
}
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
index 3d58c66204f..fddac70101f 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
@@ -75,8 +75,9 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> {
SecretStore secretStore,
HostProvisionerProvider hostProvisionerProvider,
ConfigserverConfig configserverConfig,
- Zone zone) {
- super(globalComponentRegistry.getModelFactoryRegistry(),
+ Zone zone,
+ ModelFactoryRegistry modelFactoryRegistry) {
+ super(modelFactoryRegistry,
configserverConfig,
zone,
hostProvisionerProvider);
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java
index 90499507ebc..fd2596839e8 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java
@@ -31,6 +31,7 @@ import com.yahoo.vespa.config.server.configchange.ConfigChangeActions;
import com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs;
import com.yahoo.vespa.config.server.filedistribution.FileDirectory;
import com.yahoo.vespa.config.server.modelfactory.ActivatedModelsBuilder;
+import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import com.yahoo.vespa.config.server.monitoring.MetricUpdater;
import com.yahoo.vespa.config.server.monitoring.Metrics;
import com.yahoo.vespa.config.server.provision.HostProvisionerProvider;
@@ -108,6 +109,7 @@ public class SessionRepository {
private final ConfigserverConfig configserverConfig;
private final ConfigServerDB configServerDB;
private final Zone zone;
+ private final ModelFactoryRegistry modelFactoryRegistry;
public SessionRepository(TenantName tenantName,
GlobalComponentRegistry componentRegistry,
@@ -124,7 +126,8 @@ public class SessionRepository {
ConfigserverConfig configserverConfig,
ConfigServerDB configServerDB,
Zone zone,
- Clock clock) {
+ Clock clock,
+ ModelFactoryRegistry modelFactoryRegistry) {
this.tenantName = tenantName;
this.componentRegistry = componentRegistry;
this.configCurator = ConfigCurator.create(curator);
@@ -146,6 +149,7 @@ public class SessionRepository {
this.configserverConfig = configserverConfig;
this.configServerDB = configServerDB;
this.zone = zone;
+ this.modelFactoryRegistry = modelFactoryRegistry;
loadSessions(); // Needs to be done before creating cache below
this.directoryCache = curator.createDirectoryCache(sessionsPath.getAbsolute(), false, false, zkCacheExecutor);
@@ -473,7 +477,8 @@ public class SessionRepository {
secretStore,
hostProvisionerProvider,
configserverConfig,
- zone);
+ zone,
+ modelFactoryRegistry);
// Read hosts allocated on the config server instance which created this
SettableOptional<AllocatedHosts> allocatedHosts = new SettableOptional<>(applicationPackage.getAllocatedHosts());
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
index b4e8fbad2ee..0aaa4ff3bce 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
@@ -21,6 +21,7 @@ import com.yahoo.vespa.config.server.application.TenantApplications;
import com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs;
import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory;
import com.yahoo.vespa.config.server.host.HostRegistry;
+import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import com.yahoo.vespa.config.server.monitoring.MetricUpdater;
import com.yahoo.vespa.config.server.monitoring.Metrics;
import com.yahoo.vespa.config.server.provision.HostProvisionerProvider;
@@ -105,6 +106,7 @@ public class TenantRepository {
private final ConfigServerDB configServerDB;
private final Zone zone;
private final Clock clock;
+ private final ModelFactoryRegistry modelFactoryRegistry;
private final ExecutorService bootstrapExecutor;
private final ScheduledExecutorService checkForRemovedApplicationsService =
new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory("check for removed applications"));
@@ -125,7 +127,8 @@ public class TenantRepository {
HostProvisionerProvider hostProvisionerProvider,
ConfigserverConfig configserverConfig,
ConfigServerDB configServerDB,
- Zone zone) {
+ Zone zone,
+ ModelFactoryRegistry modelFactoryRegistry) {
this(componentRegistry,
hostRegistry,
curator,
@@ -139,7 +142,8 @@ public class TenantRepository {
configserverConfig,
configServerDB,
zone,
- Clock.systemUTC());
+ Clock.systemUTC(),
+ modelFactoryRegistry);
}
public TenantRepository(GlobalComponentRegistry componentRegistry,
@@ -155,7 +159,8 @@ public class TenantRepository {
ConfigserverConfig configserverConfig,
ConfigServerDB configServerDB,
Zone zone,
- Clock clock) {
+ Clock clock,
+ ModelFactoryRegistry modelFactoryRegistry) {
this.componentRegistry = componentRegistry;
this.hostRegistry = hostRegistry;
this.configserverConfig = configserverConfig;
@@ -174,6 +179,7 @@ public class TenantRepository {
this.configServerDB = configServerDB;
this.zone = zone;
this.clock = clock;
+ this.modelFactoryRegistry = modelFactoryRegistry;
curator.framework().getConnectionStateListenable().addListener(this::stateChanged);
@@ -302,7 +308,7 @@ public class TenantRepository {
new TenantFileSystemDirs(configServerDB, tenantName),
clock);
PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage(configserverConfig);
- SessionPreparer sessionPreparer = new SessionPreparer(componentRegistry.getModelFactoryRegistry(),
+ SessionPreparer sessionPreparer = new SessionPreparer(modelFactoryRegistry,
fileDistributionFactory,
hostProvisionerProvider,
permanentApplicationPackage,
@@ -327,7 +333,8 @@ public class TenantRepository {
configserverConfig,
configServerDB,
zone,
- clock);
+ clock,
+ modelFactoryRegistry);
log.log(Level.INFO, "Adding tenant '" + tenantName + "'" + ", created " + created);
Tenant tenant = new Tenant(tenantName, sessionRepository, applicationRepo, applicationRepo, created);
notifyNewTenant(tenant);
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java
index d5eac29f81d..96097decb5b 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java
@@ -2,24 +2,20 @@
package com.yahoo.vespa.config.server;
import com.yahoo.cloud.config.ConfigserverConfig;
-import com.yahoo.config.model.NullConfigModelRegistry;
import com.yahoo.config.model.api.ConfigDefinitionRepo;
import com.yahoo.vespa.config.server.filedistribution.FileServer;
import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker;
import com.yahoo.vespa.config.server.host.HostRegistry;
-import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import com.yahoo.vespa.config.server.monitoring.Metrics;
import com.yahoo.vespa.config.server.rpc.RpcRequestHandlerProvider;
import com.yahoo.vespa.config.server.rpc.RpcServer;
import com.yahoo.vespa.config.server.rpc.security.NoopRpcAuthorizer;
-import com.yahoo.vespa.model.VespaModelFactory;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import java.io.IOException;
-import java.util.List;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
@@ -32,14 +28,12 @@ public class InjectedGlobalComponentRegistryTest {
private RpcServer rpcServer;
private ConfigDefinitionRepo defRepo;
private GlobalComponentRegistry globalComponentRegistry;
- private ModelFactoryRegistry modelFactoryRegistry;
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
@Before
public void setupRegistry() throws IOException {
- modelFactoryRegistry = new ModelFactoryRegistry(List.of(new VespaModelFactory(new NullConfigModelRegistry())));
ConfigserverConfig configserverConfig = new ConfigserverConfig(
new ConfigserverConfig.Builder()
.configServerDBDir(temporaryFolder.newFolder("serverdb").getAbsolutePath())
@@ -50,15 +44,11 @@ public class InjectedGlobalComponentRegistryTest {
new FileServer(temporaryFolder.newFolder("filereferences")),
new NoopRpcAuthorizer(), new RpcRequestHandlerProvider());
defRepo = new StaticConfigDefinitionRepo();
- globalComponentRegistry =
- new InjectedGlobalComponentRegistry(modelFactoryRegistry,
- rpcServer,
- defRepo);
+ globalComponentRegistry = new InjectedGlobalComponentRegistry(rpcServer, defRepo);
}
@Test
public void testThatAllComponentsAreSetup() {
- assertThat(globalComponentRegistry.getModelFactoryRegistry(), is(modelFactoryRegistry));
assertThat(globalComponentRegistry.getReloadListener().hashCode(), is(rpcServer.hashCode()));
assertThat(globalComponentRegistry.getTenantListener().hashCode(), is(rpcServer.hashCode()));
assertThat(globalComponentRegistry.getStaticConfigDefinitionRepo(), is(defRepo));
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java
index 01739657695..346856d7502 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java
@@ -1,15 +1,10 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server;
-import com.yahoo.config.model.NullConfigModelRegistry;
import com.yahoo.config.model.api.ConfigDefinitionRepo;
import com.yahoo.vespa.config.server.application.TenantApplicationsTest;
-import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import com.yahoo.vespa.config.server.tenant.MockTenantListener;
import com.yahoo.vespa.config.server.tenant.TenantListener;
-import com.yahoo.vespa.model.VespaModelFactory;
-
-import java.util.Collections;
/**
* @author Ulf Lilleengen
@@ -19,28 +14,19 @@ public class TestComponentRegistry implements GlobalComponentRegistry {
private final ConfigDefinitionRepo defRepo;
private final ReloadListener reloadListener;
private final TenantListener tenantListener;
- private final ModelFactoryRegistry modelFactoryRegistry;
- private TestComponentRegistry(ModelFactoryRegistry modelFactoryRegistry,
- ConfigDefinitionRepo defRepo,
+ private TestComponentRegistry(ConfigDefinitionRepo defRepo,
ReloadListener reloadListener,
TenantListener tenantListener) {
this.reloadListener = reloadListener;
this.tenantListener = tenantListener;
this.defRepo = defRepo;
- this.modelFactoryRegistry = modelFactoryRegistry;
}
public static class Builder {
private ConfigDefinitionRepo defRepo = new StaticConfigDefinitionRepo();
private ReloadListener reloadListener = new TenantApplicationsTest.MockReloadListener();
private final MockTenantListener tenantListener = new MockTenantListener();
- private ModelFactoryRegistry modelFactoryRegistry = new ModelFactoryRegistry(Collections.singletonList(new VespaModelFactory(new NullConfigModelRegistry())));
-
- public Builder modelFactoryRegistry(ModelFactoryRegistry modelFactoryRegistry) {
- this.modelFactoryRegistry = modelFactoryRegistry;
- return this;
- }
public Builder reloadListener(ReloadListener reloadListener) {
this.reloadListener = reloadListener;
@@ -53,10 +39,7 @@ public class TestComponentRegistry implements GlobalComponentRegistry {
}
public TestComponentRegistry build() {
- return new TestComponentRegistry(modelFactoryRegistry,
- defRepo,
- reloadListener,
- tenantListener);
+ return new TestComponentRegistry(defRepo, reloadListener, tenantListener);
}
}
@@ -66,7 +49,5 @@ public class TestComponentRegistry implements GlobalComponentRegistry {
public ReloadListener getReloadListener() { return reloadListener; }
@Override
public ConfigDefinitionRepo getStaticConfigDefinitionRepo() { return defRepo; }
- @Override
- public ModelFactoryRegistry getModelFactoryRegistry() { return modelFactoryRegistry; }
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java
index e1b79f50eb9..d44a037e71e 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java
@@ -76,7 +76,6 @@ public class TenantApplicationsTest {
.configDefinitionsDir(tempFolder.newFolder("configdefinitions").getAbsolutePath())
.build();
componentRegistry = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(createRegistry())
.reloadListener(listener)
.build();
HostRegistry hostRegistry = new HostRegistry();
@@ -84,6 +83,7 @@ public class TenantApplicationsTest {
.withComponentRegistry(componentRegistry)
.withConfigserverConfig(configserverConfig)
.withCurator(curator)
+ .withModelFactoryRegistry(createRegistry())
.build();
tenantRepository.addTenant(TenantRepository.HOSTED_VESPA_TENANT);
tenantRepository.addTenant(tenantName);
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java
index f2475e44c75..c1c2867285d 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java
@@ -283,16 +283,16 @@ public class DeployTester {
List<ModelFactory> modelFactories = Optional.ofNullable(this.modelFactories)
.orElseGet(() -> List.of(createModelFactory(clock)));
- TestComponentRegistry.Builder testComponentRegistryBuilder = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories));
+ TestComponentRegistry.Builder testComponentRegistryBuilder = new TestComponentRegistry.Builder();
TestTenantRepository.Builder builder = new TestTenantRepository.Builder()
.withClock(clock)
.withComponentRegistry(testComponentRegistryBuilder.build())
.withConfigserverConfig(configserverConfig)
.withCurator(curator)
- .withMetrics(Optional.ofNullable(metrics).orElse(Metrics.createTestMetrics()))
.withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig))
+ .withMetrics(Optional.ofNullable(metrics).orElse(Metrics.createTestMetrics()))
+ .withModelFactoryRegistry((new ModelFactoryRegistry(modelFactories)))
.withZone(zone);
if (configserverConfig.hostedVespa()) builder.withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, true));
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.java
index 1389100ed22..22bf582668e 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.java
@@ -4,13 +4,16 @@ package com.yahoo.vespa.config.server.http.status;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yahoo.cloud.config.ConfigserverConfig;
+import com.yahoo.config.model.NullConfigModelRegistry;
import com.yahoo.container.jdisc.HttpRequest;
import com.yahoo.container.jdisc.HttpResponse;
-import com.yahoo.vespa.config.server.TestComponentRegistry;
import com.yahoo.vespa.config.server.http.SessionHandlerTest;
+import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
+import com.yahoo.vespa.model.VespaModelFactory;
import org.junit.Test;
import java.io.IOException;
+import java.util.List;
import static com.yahoo.jdisc.http.HttpRequest.Method.GET;
import static org.junit.Assert.assertEquals;
@@ -24,9 +27,9 @@ public class StatusHandlerTest {
@Test
public void require_that_handler_works() throws IOException {
- TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder().build();
+ ModelFactoryRegistry modelFactoryRegistry = new ModelFactoryRegistry(List.of(new VespaModelFactory(new NullConfigModelRegistry())));
ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder().build();
- StatusHandler handler = new StatusHandler(StatusHandler.testOnlyContext(), componentRegistry, configserverConfig);
+ StatusHandler handler = new StatusHandler(StatusHandler.testOnlyContext(), modelFactoryRegistry, configserverConfig);
HttpResponse response = handler.handle(HttpRequest.createTestRequest("/status", GET));
JsonNode jsonNode = mapper.readTree(SessionHandlerTest.getRenderedString(response));
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java
index b4240abd230..bc6ee90a9a7 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java
@@ -109,9 +109,7 @@ public class ApplicationHandlerTest {
.configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath())
.fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath())
.build();
- TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories))
- .build();
+ TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder().build();
provisioner = new MockProvisioner();
tenantRepository = new TestTenantRepository.Builder()
.withClock(clock)
@@ -119,6 +117,7 @@ public class ApplicationHandlerTest {
.withConfigserverConfig(configserverConfig)
.withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig))
.withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, false))
+ .withModelFactoryRegistry(new ModelFactoryRegistry(modelFactories))
.build();
tenantRepository.addTenant(mytenantName);
orchestrator = new OrchestratorMock();
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
index 850b7fccada..c782a8d2555 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
@@ -75,12 +75,11 @@ public class SessionActiveHandlerTest {
.configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath())
.fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath())
.build();
- TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(new ModelFactoryRegistry(List.of((modelFactory))))
- .build();
+ TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder().build();
TenantRepository tenantRepository = new TestTenantRepository.Builder()
.withComponentRegistry(componentRegistry)
.withConfigserverConfig(configserverConfig)
+ .withModelFactoryRegistry(new ModelFactoryRegistry(List.of((modelFactory))))
.build();
tenantRepository.addTenant(tenantName);
applicationRepository = new ApplicationRepository.Builder()
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java
index dcc3285d1b4..af26f2287c1 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java
@@ -41,14 +41,13 @@ class MaintainerTester {
.configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath())
.fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath())
.build();
- GlobalComponentRegistry componentRegistry = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(new ModelFactoryRegistry(List.of(new DeployTester.CountingModelFactory(clock))))
- .build();
+ GlobalComponentRegistry componentRegistry = new TestComponentRegistry.Builder().build();
tenantRepository = new TestTenantRepository.Builder()
.withClock(clock)
.withComponentRegistry(componentRegistry)
.withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, true))
.withConfigserverConfig(configserverConfig)
+ .withModelFactoryRegistry(new ModelFactoryRegistry(List.of(new DeployTester.CountingModelFactory(clock))))
.build();
applicationRepository = new ApplicationRepository.Builder()
.withTenantRepository(tenantRepository)
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java
index ed81012339d..cafd9fba167 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.session;
import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.component.Version;
import com.yahoo.config.application.api.ApplicationPackage;
+import com.yahoo.config.model.NullConfigModelRegistry;
import com.yahoo.config.model.api.Model;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.api.ModelCreateResult;
@@ -32,6 +33,7 @@ import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.flags.FlagSource;
import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.model.VespaModel;
+import com.yahoo.vespa.model.VespaModelFactory;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
@@ -73,14 +75,10 @@ public class SessionRepositoryTest {
public TemporaryFolder temporaryFolder = new TemporaryFolder();
public void setup() throws Exception {
- setup(new InMemoryFlagSource());
+ setup(new InMemoryFlagSource(), new ModelFactoryRegistry(List.of(new VespaModelFactory(new NullConfigModelRegistry()))));
}
- private void setup(FlagSource flagSource) throws Exception {
- setup(flagSource, new TestComponentRegistry.Builder());
- }
-
- private void setup(FlagSource flagSource, TestComponentRegistry.Builder componentRegistryBuilder) throws Exception {
+ private void setup(FlagSource flagSource, ModelFactoryRegistry modelFactoryRegistry) throws Exception {
curator = new MockCurator();
File configserverDbDir = temporaryFolder.newFolder().getAbsoluteFile();
ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder()
@@ -89,12 +87,13 @@ public class SessionRepositoryTest {
.fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath())
.sessionLifetime(5)
.build();
- GlobalComponentRegistry globalComponentRegistry = componentRegistryBuilder.build();
+ GlobalComponentRegistry globalComponentRegistry = new TestComponentRegistry.Builder().build();
tenantRepository = new TestTenantRepository.Builder()
.withComponentRegistry(globalComponentRegistry)
.withConfigserverConfig(configserverConfig)
.withCurator(curator)
.withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig))
+ .withModelFactoryRegistry(modelFactoryRegistry)
.build();
tenantRepository.addTenant(SessionRepositoryTest.tenantName);
applicationRepository = new ApplicationRepository.Builder()
@@ -196,9 +195,7 @@ public class SessionRepositoryTest {
okFactory.vespaVersion = new Version(1, 1, 0);
okFactory.throwOnLoad = false;
- TestComponentRegistry.Builder registryBuilder = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(new ModelFactoryRegistry(List.of(okFactory, failingFactory)));
- setup(new InMemoryFlagSource(), registryBuilder);
+ setup(new InMemoryFlagSource(), new ModelFactoryRegistry(List.of(okFactory, failingFactory)));
deploy();
}
@@ -214,9 +211,7 @@ public class SessionRepositoryTest {
okFactory.vespaVersion = new Version(2, 0, 0);
okFactory.throwOnLoad = false;
- TestComponentRegistry.Builder registryBuilder = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(new ModelFactoryRegistry(List.of(okFactory, failingFactory)));
- setup(new InMemoryFlagSource(), registryBuilder);
+ setup(new InMemoryFlagSource(), new ModelFactoryRegistry(List.of(okFactory, failingFactory)));
deploy();
}
@@ -231,9 +226,7 @@ public class SessionRepositoryTest {
okFactory.vespaVersion = new Version(2, 0, 0);
okFactory.throwErrorOnLoad = false;
- TestComponentRegistry.Builder registryBuilder = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(new ModelFactoryRegistry(List.of(okFactory, failingFactory)));
- setup(new InMemoryFlagSource(), registryBuilder);
+ setup(new InMemoryFlagSource(), new ModelFactoryRegistry(List.of(okFactory, failingFactory)));
File testApp = new File("src/test/apps/app-major-version-2");
deploy(applicationId, testApp);
@@ -251,9 +244,7 @@ public class SessionRepositoryTest {
okFactory.vespaVersion = new Version(1, 0, 0);
okFactory.throwErrorOnLoad = false;
- TestComponentRegistry.Builder registryBuilder = new TestComponentRegistry.Builder()
- .modelFactoryRegistry(new ModelFactoryRegistry(List.of(okFactory, failingFactory)));
- setup(new InMemoryFlagSource(), registryBuilder);
+ setup(new InMemoryFlagSource(), new ModelFactoryRegistry(List.of(okFactory, failingFactory)));
File testApp = new File("src/test/apps/app-major-version-2");
deploy(applicationId, testApp);
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java
index 88c5ea4786b..8c5b366609e 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java
@@ -5,6 +5,7 @@ import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.component.Version;
import com.yahoo.concurrent.InThreadExecutorService;
import com.yahoo.concurrent.StripedExecutor;
+import com.yahoo.config.model.NullConfigModelRegistry;
import com.yahoo.config.model.test.MockApplicationPackage;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationName;
@@ -23,6 +24,7 @@ import com.yahoo.vespa.config.server.application.TenantApplications;
import com.yahoo.vespa.config.server.application.TenantApplicationsTest;
import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory;
import com.yahoo.vespa.config.server.host.HostRegistry;
+import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import com.yahoo.vespa.config.server.monitoring.MetricUpdater;
import com.yahoo.vespa.config.server.monitoring.Metrics;
import com.yahoo.vespa.config.server.provision.HostProvisionerProvider;
@@ -30,6 +32,7 @@ import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.model.VespaModel;
+import com.yahoo.vespa.model.VespaModelFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -222,7 +225,8 @@ public class TenantRepositoryTest {
configserverConfig,
new ConfigServerDB(configserverConfig),
Zone.defaultZone(),
- Clock.systemUTC());
+ Clock.systemUTC(),
+ new ModelFactoryRegistry(List.of(new VespaModelFactory(new NullConfigModelRegistry()))));
}
@Override
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java
index 927e3050cec..873c09f797b 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java
@@ -4,20 +4,24 @@ package com.yahoo.vespa.config.server.tenant;
import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.concurrent.InThreadExecutorService;
import com.yahoo.concurrent.StripedExecutor;
+import com.yahoo.config.model.NullConfigModelRegistry;
import com.yahoo.config.provision.Zone;
import com.yahoo.vespa.config.server.ConfigServerDB;
import com.yahoo.vespa.config.server.GlobalComponentRegistry;
import com.yahoo.vespa.config.server.MockSecretStore;
import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory;
import com.yahoo.vespa.config.server.host.HostRegistry;
+import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry;
import com.yahoo.vespa.config.server.monitoring.Metrics;
import com.yahoo.vespa.config.server.provision.HostProvisionerProvider;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.flags.FlagSource;
import com.yahoo.vespa.flags.InMemoryFlagSource;
+import com.yahoo.vespa.model.VespaModelFactory;
import java.time.Clock;
+import java.util.List;
/**
*
@@ -34,7 +38,8 @@ public class TestTenantRepository extends TenantRepository {
HostProvisionerProvider hostProvisionerProvider,
ConfigserverConfig configserverConfig,
Zone zone,
- Clock clock) {
+ Clock clock,
+ ModelFactoryRegistry modelFactoryRegistry) {
super(componentRegistry,
hostRegistry,
curator,
@@ -48,7 +53,8 @@ public class TestTenantRepository extends TenantRepository {
configserverConfig,
new ConfigServerDB(configserverConfig),
zone,
- clock);
+ clock,
+ modelFactoryRegistry);
}
public static class Builder {
@@ -61,6 +67,7 @@ public class TestTenantRepository extends TenantRepository {
FileDistributionFactory fileDistributionFactory = null;
FlagSource flagSource = new InMemoryFlagSource();
HostProvisionerProvider hostProvisionerProvider = HostProvisionerProvider.empty();
+ ModelFactoryRegistry modelFactoryRegistry = new ModelFactoryRegistry(List.of(new VespaModelFactory(new NullConfigModelRegistry())));
ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder().build();
Zone zone = Zone.defaultZone();
@@ -94,6 +101,11 @@ public class TestTenantRepository extends TenantRepository {
return this;
}
+ public Builder withModelFactoryRegistry(ModelFactoryRegistry modelFactoryRegistry) {
+ this.modelFactoryRegistry = modelFactoryRegistry;
+ return this;
+ }
+
public Builder withFileDistributionFactory(FileDistributionFactory fileDistributionFactory) {
this.fileDistributionFactory = fileDistributionFactory;
return this;
@@ -126,7 +138,8 @@ public class TestTenantRepository extends TenantRepository {
hostProvisionerProvider,
configserverConfig,
zone,
- clock);
+ clock,
+ modelFactoryRegistry);
}
}