diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-01-21 09:34:22 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-01-21 09:34:22 +0100 |
commit | d61469b07f7f4d2e4dfba7c6fa63ffea208d355b (patch) | |
tree | 5e0909b1b8e8ebd9a6d0663577edf4565c562450 /configserver | |
parent | 10dacf3766d3c27f8ed038a1c7dfb2ee53cc4e19 (diff) |
Move ModelFactoryRegistry out of GlobalComponentRegistry
Diffstat (limited to 'configserver')
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); } } |