### Question:
StyxServer extends AbstractService { public static void main(String[] args) { try { StyxServer styxServer = createStyxServer(args); getRuntime().addShutdownHook(new Thread(() -> styxServer.stopAsync().awaitTerminated())); styxServer.startAsync().awaitRunning(); } catch (SchemaValidationException cause) { LOG.error(cause.getMessage()); System.exit(2); } catch (Throwable cause) { LOG.error("Error in Styx server startup.", cause); System.exit(1); } } StyxServer(StyxServerComponents config);  StyxServer(StyxServerComponents components, Stopwatch stopwatch); static void main(String[] args); InetSocketAddress serverAddress(String name); InetSocketAddress proxyHttpAddress(); InetSocketAddress proxyHttpsAddress(); InetSocketAddress adminHttpAddress();  }### Answer:
@Test public void startsFromMain() { try { setProperty("STYX_HOME", fixturesHome()); StyxServer.main(new String[0]); eventually(() -> assertThat(log.log(), hasItem(loggingEvent(INFO, "Started Styx server in \\d+ ms")))); } finally { clearProperty("STYX_HOME"); } }