ConfigServerBootstrap extends AbstractComponent implements Runnable { StateMonitor.Status status() { return stateMonitor.status(); } @Inject  ConfigServerBootstrap(ApplicationRepository applicationRepository, RpcServer server,
                                 VersionState versionState, StateMonitor stateMonitor, VipStatus vipStatus);   ConfigServerBootstrap(ApplicationRepository applicationRepository, RpcServer server, VersionState versionState,
                          StateMonitor stateMonitor, VipStatus vipStatus, Mode mode, VipStatusMode vipStatusMode); private  ConfigServerBootstrap(ApplicationRepository applicationRepository, RpcServer server,
                                  VersionState versionState, StateMonitor stateMonitor, VipStatus vipStatus,
                                  Mode mode, RedeployingApplicationsFails exitIfRedeployingApplicationsFails,
                                  VipStatusMode vipStatusMode); @Override void deconstruct(); @Override void run(); void start();  }
@Test public void testBootstrapNonHostedOneConfigModel() throws Exception { ConfigserverConfig configserverConfig = createConfigserverConfigNonHosted(temporaryFolder); String vespaVersion = "1.2.3"; List<Host> hosts = createHosts(vespaVersion); Curator curator = new MockCurator(); DeployTester tester = new DeployTester.Builder() .modelFactory(DeployTester.createModelFactory(Version.fromString(vespaVersion))) .hostProvisioner(new InMemoryProvisioner(new Hosts(hosts), true)) .configserverConfig(configserverConfig) .zone(new Zone(Environment.dev, RegionName.defaultName())) .curator(curator) .build(); tester.deployApp("src/test/apps/app/", vespaVersion, Instant.now()); ApplicationId applicationId = tester.applicationId(); VersionState versionState = createVersionState(); assertTrue(versionState.isUpgraded()); curator.set(Path.fromString("/config/v2/tenants/" + applicationId.tenant().value() + "/sessions/2/version"), Utf8.toBytes("1.2.2")); RpcServer rpcServer = createRpcServer(configserverConfig); StateMonitor stateMonitor = createStateMonitor(); VipStatus vipStatus = createVipStatus(stateMonitor); ConfigServerBootstrap bootstrap = new ConfigServerBootstrap(tester.applicationRepository(), rpcServer, versionState, stateMonitor, vipStatus, BOOTSTRAP_IN_SEPARATE_THREAD, VIP_STATUS_PROGRAMMATICALLY); waitUntil(rpcServer::isRunning, "failed waiting for Rpc server running"); waitUntil(() -> bootstrap.status() == StateMonitor.Status.up, "failed waiting for status 'up'"); waitUntil(vipStatus::isInRotation, "failed waiting for server to be in rotation"); }