diff options
author | Bjørn Christian Seime <bjorn.christian@seime.no> | 2019-01-15 15:19:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-15 15:19:59 +0100 |
commit | c97d2a7fbde4e30749164e3f3cef947a9c20d5db (patch) | |
tree | d54348a1f9aa0bf861761277fca1b3a2b5e4bffd /configserver | |
parent | 7b210b2bda57003de6fff1dbe28348fe6685fa0c (diff) | |
parent | 87ca5c6c4159ae5a7e44417e6624bd2d0ecb073d (diff) |
Merge pull request #8141 from vespa-engine/bjorncs/jrt-transport-metrics-cfgserver
Bjorncs/jrt transport metrics cfgserver
Diffstat (limited to 'configserver')
22 files changed, 113 insertions, 47 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index 16244dd62f3..0161cc242f5 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -21,6 +21,7 @@ import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.container.jdisc.HttpResponse; +import com.yahoo.container.jdisc.jrt.JrtFactory; import com.yahoo.io.IOUtils; import com.yahoo.log.LogLevel; import com.yahoo.path.Path; @@ -101,20 +102,22 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye public ApplicationRepository(TenantRepository tenantRepository, HostProvisionerProvider hostProvisionerProvider, ConfigConvergenceChecker configConvergenceChecker, - HttpProxy httpProxy, + HttpProxy httpProxy, ConfigserverConfig configserverConfig, - Orchestrator orchestrator) { + Orchestrator orchestrator, + JrtFactory jrtFactory) { this(tenantRepository, hostProvisionerProvider.getHostProvisioner(), configConvergenceChecker, httpProxy, configserverConfig, orchestrator, - Clock.systemUTC(), new FileDistributionStatus()); + Clock.systemUTC(), new FileDistributionStatus(jrtFactory)); } // For testing public ApplicationRepository(TenantRepository tenantRepository, Provisioner hostProvisioner, Orchestrator orchestrator, - Clock clock) { - this(tenantRepository, hostProvisioner, orchestrator, clock, new ConfigserverConfig(new ConfigserverConfig.Builder())); + Clock clock, + JrtFactory jrtFactory) { + this(tenantRepository, hostProvisioner, orchestrator, clock, new ConfigserverConfig(new ConfigserverConfig.Builder()), jrtFactory); } // For testing @@ -122,9 +125,10 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye Provisioner hostProvisioner, Orchestrator orchestrator, Clock clock, - ConfigserverConfig configserverConfig) { + ConfigserverConfig configserverConfig, + JrtFactory jrtFactory) { this(tenantRepository, Optional.of(hostProvisioner), new ConfigConvergenceChecker(), new HttpProxy(new SimpleHttpFetcher()), - configserverConfig, orchestrator, clock, new FileDistributionStatus()); + configserverConfig, orchestrator, clock, new FileDistributionStatus(jrtFactory)); } private ApplicationRepository(TenantRepository tenantRepository, diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java index f37225a7e7b..08767467fe6 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java @@ -1,15 +1,16 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.application; +import com.google.inject.Inject; import com.yahoo.component.AbstractComponent; import com.yahoo.concurrent.DaemonThreadFactory; import com.yahoo.config.model.api.PortInfo; import com.yahoo.config.model.api.ServiceInfo; +import com.yahoo.container.jdisc.jrt.JrtFactory; import com.yahoo.jrt.Request; import com.yahoo.jrt.Spec; import com.yahoo.jrt.Supervisor; import com.yahoo.jrt.Target; -import com.yahoo.jrt.Transport; import com.yahoo.log.LogLevel; import com.yahoo.slime.Cursor; import com.yahoo.vespa.config.server.http.JSONResponse; @@ -39,7 +40,12 @@ public class FileDistributionStatus extends AbstractComponent { enum Status {UNKNOWN, FINISHED, IN_PROGRESS} private final ExecutorService rpcExecutor = Executors.newCachedThreadPool(new DaemonThreadFactory("filedistribution status")); - private final Supervisor supervisor = new Supervisor(new Transport()); + private final Supervisor supervisor; + + @Inject + public FileDistributionStatus(JrtFactory jrtFactory) { + this.supervisor = jrtFactory.createSupervisor(); + } public StatusAllHosts status(Application application, Duration timeout) { List<HostStatus> hostStatuses = new ArrayList<>(); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java index 16aaef048b5..44b103967d7 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java @@ -5,6 +5,7 @@ import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.FileReference; import com.yahoo.config.subscription.ConfigSourceSet; +import com.yahoo.container.jdisc.jrt.JrtFactory; import com.yahoo.jrt.Int32Value; import com.yahoo.jrt.Request; import com.yahoo.jrt.StringValue; @@ -73,13 +74,13 @@ public class FileServer { @SuppressWarnings("WeakerAccess") // Created by dependency injection @Inject - public FileServer(ConfigserverConfig configserverConfig) { - this(createConnectionPool(configserverConfig), new File(Defaults.getDefaults().underVespaHome(configserverConfig.fileReferencesDir()))); + public FileServer(ConfigserverConfig configserverConfig, JrtFactory jrtFactory) { + this(createConnectionPool(configserverConfig, jrtFactory), new File(Defaults.getDefaults().underVespaHome(configserverConfig.fileReferencesDir()))); } // For testing only - public FileServer(File rootDir) { - this(new EmptyConnectionPool(), rootDir); + public FileServer(File rootDir, JrtFactory jrtFactory) { + this(new EmptyConnectionPool(jrtFactory), rootDir); } private FileServer(ConnectionPool connectionPool, File rootDir) { @@ -196,18 +197,24 @@ public class FileServer { } // Connection pool with all config servers except this one (might be an empty pool if there is only one config server) - private static ConnectionPool createConnectionPool(ConfigserverConfig configserverConfig) { + private static ConnectionPool createConnectionPool(ConfigserverConfig configserverConfig, JrtFactory jrtFactory) { List<String> configServers = ConfigServerSpec.fromConfig(configserverConfig) .stream() .filter(spec -> !spec.getHostName().equals(HostName.getLocalhost())) .map(spec -> "tcp/" + spec.getHostName() + ":" + spec.getConfigServerPort()) .collect(Collectors.toList()); - return configServers.size() > 0 ? new JRTConnectionPool(new ConfigSourceSet(configServers)) : new EmptyConnectionPool(); + return configServers.size() > 0 ? new JRTConnectionPool(jrtFactory.createSupervisor(), new ConfigSourceSet(configServers)) : new EmptyConnectionPool(jrtFactory); } private static class EmptyConnectionPool implements ConnectionPool { + final JrtFactory jrtFactory; + + EmptyConnectionPool(JrtFactory jrtFactory) { + this.jrtFactory = jrtFactory; + } + @Override public void close() {} @@ -224,6 +231,6 @@ public class FileServer { public int getSize() { return 0; } @Override - public Supervisor getSupervisor() { return new Supervisor(new Transport()); } + public Supervisor getSupervisor() { return jrtFactory.createSupervisor(); } } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java index 1ce90fad465..0bc2c70d166 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java @@ -3,12 +3,13 @@ package com.yahoo.vespa.config.server.rpc; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; +import com.yahoo.component.Version; import com.yahoo.concurrent.ThreadFactoryFactory; import com.yahoo.config.FileReference; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.HostLivenessTracker; import com.yahoo.config.provision.TenantName; -import com.yahoo.component.Version; +import com.yahoo.container.jdisc.jrt.JrtFactory; import com.yahoo.jrt.Acceptor; import com.yahoo.jrt.DataValue; import com.yahoo.jrt.Int32Value; @@ -20,7 +21,6 @@ import com.yahoo.jrt.Spec; import com.yahoo.jrt.StringValue; import com.yahoo.jrt.Supervisor; import com.yahoo.jrt.Target; -import com.yahoo.jrt.Transport; import com.yahoo.log.LogLevel; import com.yahoo.vespa.config.ErrorCode; import com.yahoo.vespa.config.JRTMethods; @@ -28,14 +28,14 @@ import com.yahoo.vespa.config.protocol.ConfigResponse; import com.yahoo.vespa.config.protocol.JRTServerConfigRequest; import com.yahoo.vespa.config.protocol.JRTServerConfigRequestV3; import com.yahoo.vespa.config.protocol.Trace; +import com.yahoo.vespa.config.server.GetConfigContext; +import com.yahoo.vespa.config.server.ReloadListener; +import com.yahoo.vespa.config.server.RequestHandler; import com.yahoo.vespa.config.server.SuperModelRequestHandler; import com.yahoo.vespa.config.server.application.ApplicationSet; -import com.yahoo.vespa.config.server.GetConfigContext; import com.yahoo.vespa.config.server.filedistribution.FileServer; import com.yahoo.vespa.config.server.host.HostRegistries; import com.yahoo.vespa.config.server.host.HostRegistry; -import com.yahoo.vespa.config.server.ReloadListener; -import com.yahoo.vespa.config.server.RequestHandler; import com.yahoo.vespa.config.server.monitoring.MetricUpdater; import com.yahoo.vespa.config.server.monitoring.MetricUpdaterFactory; import com.yahoo.vespa.config.server.tenant.TenantHandlerProvider; @@ -80,7 +80,7 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener { private static final String THREADPOOL_NAME = "rpcserver worker pool"; private static final long SHUTDOWN_TIMEOUT = 60; - private final Supervisor supervisor = new Supervisor(new Transport()); + private final Supervisor supervisor; private Spec spec; private final boolean useRequestVersion; private final boolean hostedVespa; @@ -119,8 +119,10 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener { @Inject public RpcServer(ConfigserverConfig config, SuperModelRequestHandler superModelRequestHandler, MetricUpdaterFactory metrics, HostRegistries hostRegistries, - HostLivenessTracker hostLivenessTracker, FileServer fileServer) { + HostLivenessTracker hostLivenessTracker, FileServer fileServer, + JrtFactory jrtFactory) { this.superModelRequestHandler = superModelRequestHandler; + this.supervisor = jrtFactory.createSupervisor(); metricUpdaterFactory = metrics; supervisor.setMaxOutputBufferSize(config.maxoutputbuffersize()); this.metrics = metrics.getOrCreateMetricUpdater(Collections.emptyMap()); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java index 15bc3c1fb46..a38386b84a0 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java @@ -3,8 +3,8 @@ package com.yahoo.vespa.config.server.session; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; +import com.yahoo.container.jdisc.jrt.JrtFactory; import com.yahoo.jrt.Supervisor; -import com.yahoo.jrt.Transport; import com.yahoo.vespa.config.server.filedistribution.FileDistributionImpl; import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; @@ -19,11 +19,12 @@ import java.io.File; public class FileDistributionFactory { private final ConfigserverConfig configserverConfig; - private final Supervisor supervisor = new Supervisor(new Transport()); + private final Supervisor supervisor; @Inject - public FileDistributionFactory(ConfigserverConfig configserverConfig) { + public FileDistributionFactory(ConfigserverConfig configserverConfig, JrtFactory jrtFactory) { this.configserverConfig = configserverConfig; + this.supervisor = jrtFactory.createSupervisor(); } public FileDistributionProvider createProvider(File applicationPackage) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index 25239749db4..d11870bbc9d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -94,7 +94,7 @@ public class ApplicationRepositoryTest { tenantRepository.addTenant(tenant3); orchestrator = new OrchestratorMock(); provisioner = new SessionHandlerTest.MockProvisioner(); - applicationRepository = new ApplicationRepository(tenantRepository, provisioner, orchestrator, clock); + applicationRepository = new ApplicationRepository(tenantRepository, provisioner, orchestrator, clock, new SimpleJrtFactory()); timeoutBudget = new TimeoutBudget(clock, Duration.ofSeconds(60)); } @@ -210,7 +210,7 @@ public class ApplicationRepositoryTest { tenantRepository.addTenant(tenant1); Provisioner provisioner = new SessionHandlerTest.MockProvisioner(); - applicationRepository = new ApplicationRepository(tenantRepository, provisioner, orchestrator, clock); + applicationRepository = new ApplicationRepository(tenantRepository, provisioner, orchestrator, clock, new SimpleJrtFactory()); timeoutBudget = new TimeoutBudget(clock, Duration.ofSeconds(60)); // TODO: Deploy an app with a bundle or file that will be a file reference, too much missing in test setup to get this working now 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 b2e911c47a4..518ad836219 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 @@ -64,8 +64,9 @@ public class InjectedGlobalComponentRegistryTest { .configServerDBDir(temporaryFolder.newFolder("serverdb").getAbsolutePath()) .configDefinitionsDir(temporaryFolder.newFolder("configdefinitions").getAbsolutePath())); sessionPreparer = new SessionTest.MockSessionPreparer(); + SimpleJrtFactory jrtFactory = new SimpleJrtFactory(); rpcServer = new RpcServer(configserverConfig, null, Metrics.createTestMetrics(), - new HostRegistries(), new ConfigRequestHostLivenessTracker(), new FileServer(temporaryFolder.newFolder("filereferences"))); + new HostRegistries(), new ConfigRequestHostLivenessTracker(), new FileServer(temporaryFolder.newFolder("filereferences"), jrtFactory), jrtFactory); generationCounter = new SuperModelGenerationCounter(curator); defRepo = new StaticConfigDefinitionRepo(); permanentApplicationPackage = new PermanentApplicationPackage(configserverConfig); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/SimpleJrtFactory.java b/configserver/src/test/java/com/yahoo/vespa/config/server/SimpleJrtFactory.java new file mode 100644 index 00000000000..92555400dff --- /dev/null +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/SimpleJrtFactory.java @@ -0,0 +1,18 @@ +// Copyright 2018 Yahoo Holdings. 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.container.jdisc.jrt.JrtFactory; +import com.yahoo.jrt.Supervisor; +import com.yahoo.jrt.Transport; + +/** + * @author bjorncs + */ +public class SimpleJrtFactory implements JrtFactory { + + @Override + public Supervisor createSupervisor() { + return new Supervisor(new Transport()); + } + +} diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/application/FileDistributionStatusTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/application/FileDistributionStatusTest.java index 0c27066dd6b..87b85eab1a7 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/application/FileDistributionStatusTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/application/FileDistributionStatusTest.java @@ -10,6 +10,7 @@ import com.yahoo.component.Version; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.vespa.config.server.ServerCache; import com.yahoo.vespa.config.server.http.SessionHandlerTest; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.monitoring.MetricUpdater; import org.junit.Rule; import org.junit.Test; @@ -185,6 +186,7 @@ public class FileDistributionStatusTest { // host status per host to be returned in getHostStatus() MockStatus(Set<HostStatus> status) { + super(new SimpleJrtFactory()); status.forEach(s -> statuses.put(s.hostname(), s)); } 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 c96113b9462..8ad6638cdfd 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 @@ -31,6 +31,7 @@ import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.v2.PrepareResult; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.session.LocalSession; @@ -127,7 +128,8 @@ public class DeployTester { new ProvisionerAdapter(provisioner), new OrchestratorMock(), clock, - configserverConfig); + configserverConfig, + new SimpleJrtFactory()); } public Tenant tenant() { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java index 43f5d135e45..a2fe391d4e1 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.filedistribution; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.io.IOUtils; import com.yahoo.net.HostName; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.filedistribution.FileReferenceData; import org.junit.Before; import org.junit.Rule; @@ -31,7 +32,7 @@ public class FileServerTest { @Before public void setup() throws IOException { File rootDir = new File(temporaryFolder.newFolder("fileserver-root").getAbsolutePath()); - fileServer = new FileServer(rootDir); + fileServer = new FileServer(rootDir, new SimpleJrtFactory()); } @Test @@ -96,7 +97,7 @@ public class FileServerTest { private FileServer createFileServer(ConfigserverConfig.Builder configBuilder) throws IOException { File fileReferencesDir = temporaryFolder.newFolder(); configBuilder.fileReferencesDir(fileReferencesDir.getAbsolutePath()); - return new FileServer(new ConfigserverConfig(configBuilder)); + return new FileServer(new ConfigserverConfig(configBuilder), new SimpleJrtFactory()); } private static class FileReceiver implements FileServer.Receiver { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java index b0bb3bf244f..61e2b04539e 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java @@ -12,6 +12,7 @@ import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.ContentHandlerTestBase; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.session.Session; import com.yahoo.vespa.config.server.tenant.Tenant; import com.yahoo.vespa.config.server.tenant.TenantBuilder; @@ -68,7 +69,8 @@ public class ApplicationContentHandlerTest extends ContentHandlerTestBase { new ApplicationRepository(tenantRepository, new MockProvisioner(), new OrchestratorMock(), - clock)); + clock, + new SimpleJrtFactory())); pathPrefix = createPath(idTenant1, Zone.defaultZone()); baseUrl = baseServer + pathPrefix; } 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 2c84e2d8ad4..b14db906c86 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 @@ -21,6 +21,7 @@ import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; import com.yahoo.vespa.config.server.http.StaticResponse; import com.yahoo.vespa.config.server.http.SessionHandlerTest; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.Tenant; @@ -78,7 +79,8 @@ public class ApplicationHandlerTest { applicationRepository = new ApplicationRepository(tenantRepository, provisioner, orchestrator, - Clock.systemUTC()); + Clock.systemUTC(), + new SimpleJrtFactory()); listApplicationsHandler = new ListApplicationsHandler(ListApplicationsHandler.testOnlyContext(), tenantRepository, Zone.defaultZone()); @@ -165,7 +167,8 @@ public class ApplicationHandlerTest { new ConfigConvergenceChecker(stateApiFactory), mockHttpProxy, new ConfigserverConfig(new ConfigserverConfig.Builder()), - new OrchestratorMock()); + new OrchestratorMock(), + new SimpleJrtFactory()); ApplicationHandler mockHandler = createApplicationHandler(applicationRepository); when(mockHttpProxy.get(any(), eq(host), eq("container-clustercontroller"), eq("clustercontroller-status/v1/clusterName1"))) .thenReturn(new StaticResponse(200, "text/html", "<html>...</html>")); 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 d606b898496..8a21ee51a02 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 @@ -32,6 +32,7 @@ import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; import com.yahoo.vespa.config.server.http.SessionHandler; import com.yahoo.vespa.config.server.http.SessionHandlerTest; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.session.LocalSession; import com.yahoo.vespa.config.server.session.LocalSessionRepo; @@ -364,7 +365,8 @@ public class SessionActiveHandlerTest extends SessionHandlerTest { new ApplicationRepository(tenantRepository, hostProvisioner, new OrchestratorMock(), - clock), + clock, + new SimpleJrtFactory()), tenantRepository, Zone.defaultZone()); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java index 42b3fadc0de..75105e5e338 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java @@ -13,6 +13,7 @@ import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.ContentHandlerTestBase; import com.yahoo.vespa.config.server.http.SessionHandlerTest; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.tenant.TenantBuilder; import com.yahoo.vespa.config.server.tenant.TenantRepository; import org.apache.commons.io.FileUtils; @@ -173,7 +174,7 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { new ApplicationRepository(tenantRepository, new SessionHandlerTest.MockProvisioner(), new OrchestratorMock(), - clock), + clock, new SimpleJrtFactory()), tenantRepository); } } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java index 803a87ada1c..52f2b099828 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java @@ -15,6 +15,7 @@ import com.yahoo.vespa.config.server.http.CompressedApplicationInputStreamTest; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; import com.yahoo.vespa.config.server.http.SessionHandlerTest; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.session.LocalSessionRepo; import com.yahoo.vespa.config.server.tenant.TenantBuilder; import com.yahoo.vespa.config.server.tenant.TenantRepository; @@ -229,7 +230,8 @@ public class SessionCreateHandlerTest extends SessionHandlerTest { new ApplicationRepository(tenantRepository, new SessionHandlerTest.MockProvisioner(), new OrchestratorMock(), - clock), + clock, + new SimpleJrtFactory()), tenantRepository, componentRegistry.getConfigserverConfig()); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java index 64beacfc12a..caaa5d1d74d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java @@ -28,6 +28,7 @@ import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; import com.yahoo.vespa.config.server.configchange.MockRefeedAction; import com.yahoo.vespa.config.server.configchange.MockRestartAction; import com.yahoo.vespa.config.server.http.*; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.session.*; import com.yahoo.vespa.config.server.tenant.TenantBuilder; import com.yahoo.vespa.config.server.tenant.TenantRepository; @@ -386,7 +387,8 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { new ApplicationRepository(tenantRepository, new MockProvisioner(), new OrchestratorMock(), - clock), + clock, + new SimpleJrtFactory()), tenantRepository, componentRegistry.getConfigserverConfig()); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java index 6effa3359b1..e0f8b225a4a 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java @@ -17,6 +17,7 @@ import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.http.SessionResponse; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.tenant.Tenant; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.curator.mock.MockCurator; @@ -42,7 +43,8 @@ public class TenantHandlerTest { new ApplicationRepository(tenantRepository, new SessionHandlerTest.MockProvisioner(), new OrchestratorMock(), - Clock.systemUTC()); + Clock.systemUTC(), + new SimpleJrtFactory()); handler = new TenantHandler(TenantHandler.testOnlyContext(), tenantRepository, applicationRepository); } 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 659baf5a184..c4e7e4d34e1 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 @@ -6,6 +6,7 @@ import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.SessionHandlerTest; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.curator.mock.MockCurator; @@ -25,7 +26,8 @@ class MaintainerTester { applicationRepository = new ApplicationRepository(tenantRepository, new SessionHandlerTest.MockProvisioner(), new OrchestratorMock(), - Clock.systemUTC()); + Clock.systemUTC(), + new SimpleJrtFactory()); } Curator curator() { return curator; } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpc.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpc.java index 0f8bfa5068c..f771a5499da 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpc.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpc.java @@ -4,12 +4,14 @@ package com.yahoo.vespa.config.server.rpc; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.provision.TenantName; import com.yahoo.component.Version; +import com.yahoo.container.jdisc.jrt.JrtFactory; import com.yahoo.vespa.config.protocol.ConfigResponse; import com.yahoo.vespa.config.protocol.JRTServerConfigRequest; import com.yahoo.vespa.config.server.GetConfigContext; import com.yahoo.vespa.config.server.filedistribution.FileServer; import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker; import com.yahoo.vespa.config.server.host.HostRegistries; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.tenant.MockTenantProvider; @@ -36,16 +38,16 @@ public class MockRpc extends RpcServer { public volatile JRTServerConfigRequest latestRequest = null; - public MockRpc(int port, boolean createDefaultTenant, boolean pretendToHaveLoadedAnyApplication, File tempDir) { - super(createConfig(port), null, Metrics.createTestMetrics(), - new HostRegistries(), new ConfigRequestHostLivenessTracker(), new FileServer(tempDir)); + public MockRpc(int port, boolean createDefaultTenant, boolean pretendToHaveLoadedAnyApplication, File tempDir, JrtFactory jrtFactory) { + super(createConfig(port), null, Metrics.createTestMetrics(), + new HostRegistries(), new ConfigRequestHostLivenessTracker(), new FileServer(tempDir, jrtFactory), jrtFactory); if (createDefaultTenant) { onTenantCreate(TenantName.from("default"), new MockTenantProvider(pretendToHaveLoadedAnyApplication)); } } public MockRpc(int port, boolean createDefaultTenant, File tempDir) { - this(port, createDefaultTenant, true, tempDir); + this(port, createDefaultTenant, true, tempDir, new SimpleJrtFactory()); } public MockRpc(int port, File tempDir) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java index 3849fc899de..733e414823d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java @@ -15,6 +15,7 @@ import com.yahoo.vespa.config.server.*; import com.yahoo.vespa.config.server.filedistribution.FileServer; import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker; import com.yahoo.vespa.config.server.host.HostRegistries; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.tenant.MockTenantProvider; import com.yahoo.vespa.config.server.tenant.TenantHandlerProvider; @@ -82,6 +83,7 @@ public class RpcTester implements AutoCloseable { void createAndStartRpcServer() throws IOException { ConfigserverConfig configserverConfig = new ConfigserverConfig(new ConfigserverConfig.Builder()); + SimpleJrtFactory jrtFactory = new SimpleJrtFactory(); rpcServer = new RpcServer(new ConfigserverConfig(new ConfigserverConfig.Builder() .rpcport(port) .numRpcThreads(1) @@ -93,7 +95,8 @@ public class RpcTester implements AutoCloseable { emptyNodeFlavors(), generationCounter)), Metrics.createTestMetrics(), new HostRegistries(), - hostLivenessTracker, new FileServer(temporaryFolder.newFolder())); + hostLivenessTracker, new FileServer(temporaryFolder.newFolder(), jrtFactory), + jrtFactory); rpcServer.onTenantCreate(TenantName.from("default"), tenantProvider); t = new Thread(rpcServer); t.start(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java index e1874c622c2..dc734ac789c 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.session; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionProvider; +import com.yahoo.vespa.config.server.SimpleJrtFactory; import java.io.File; @@ -15,7 +16,7 @@ public class MockFileDistributionFactory extends FileDistributionFactory { public final MockFileDistributionProvider mockFileDistributionProvider; public MockFileDistributionFactory(ConfigserverConfig configserverConfig) { - super(configserverConfig); + super(configserverConfig, new SimpleJrtFactory()); mockFileDistributionProvider = new MockFileDistributionProvider(new File(configserverConfig.fileReferencesDir())); } |