LauncherLifecycleManager implements LifecycleManager { @Override public SlotLifecycleState start(Deployment deployment) { updateNodeConfig(deployment); Command command = createCommand("start", deployment, launcherTimeout); try { command.execute(executor); return RUNNING; } catch (CommandFailedException e) { log.error("ENVIRONMENT:\n %s", Joiner.on("\n ").withKeyValueSeparator("=").join(command.getEnvironment())); throw new RuntimeException("start failed: " + e.getMessage()); } } @Inject  LauncherLifecycleManager(AgentConfig config, NodeInfo nodeInfo, HttpServerInfo httpServerInfo);  LauncherLifecycleManager(String environment,
            InetAddress internalIp,
            String externalAddress,
            InetAddress bindIp,
            Duration launcherTimeout,
            Duration launcherStopTimeout,
            URI serviceInventoryUri); @Override SlotLifecycleState status(Deployment deployment); @Override SlotLifecycleState start(Deployment deployment); @Override SlotLifecycleState restart(Deployment deployment); @Override SlotLifecycleState stop(Deployment deployment); @Override SlotLifecycleState kill(Deployment deployment); @Override void updateNodeConfig(Deployment deployment);  }
@Test public void testNodeConfigAfterStart() throws IOException { assertEquals(manager.start(appleDeployment), RUNNING); verifyNodeConfig(appleDeployment); }