diff --git a/src/main/java/net/uiqui/embedhttp/HttpServer.java b/src/main/java/net/uiqui/embedhttp/HttpServer.java index 5f691fb..fe17356 100644 --- a/src/main/java/net/uiqui/embedhttp/HttpServer.java +++ b/src/main/java/net/uiqui/embedhttp/HttpServer.java @@ -31,6 +31,7 @@ public interface HttpServer { /** * Retrieves the port on which the server is running. + * If the server is not running, this method will return -1. * * @return The port number. */ diff --git a/src/main/java/net/uiqui/embedhttp/server/ServerInstance.java b/src/main/java/net/uiqui/embedhttp/server/ServerInstance.java index bde63c2..f2e34e8 100644 --- a/src/main/java/net/uiqui/embedhttp/server/ServerInstance.java +++ b/src/main/java/net/uiqui/embedhttp/server/ServerInstance.java @@ -92,6 +92,6 @@ protected String serverLogMessage(String message, Object... args) { ? String.format(message, args) : message; - return String.format("Server(%d): %s", port, finalMessage); + return String.format("Instance(%d): %s", port, finalMessage); } } \ No newline at end of file diff --git a/src/main/java/net/uiqui/embedhttp/server/io/IOServer.java b/src/main/java/net/uiqui/embedhttp/server/io/IOServer.java index a63d75b..c3b6cc4 100644 --- a/src/main/java/net/uiqui/embedhttp/server/io/IOServer.java +++ b/src/main/java/net/uiqui/embedhttp/server/io/IOServer.java @@ -26,7 +26,8 @@ public IOServer(int port, int backlog) { @Override public void listenAndServe(Router router) { - try (var serverSocket = new ServerSocket(port, backlog)) { + try (var serverSocket = new ServerSocket(port, backlog); + var executorService = Executors.newVirtualThreadPerTaskExecutor()) { instancePort.set(serverSocket.getLocalPort()); serverSocket.setSoTimeout(SO_TIMEOUT); @@ -37,10 +38,8 @@ public void listenAndServe(Router router) { stateMachine.setState(ServerState.RUNNING); logger.log(INFO, () -> serverLogMessage("Started on port %d", serverSocket.getLocalPort())); - try (var executorService = Executors.newVirtualThreadPerTaskExecutor()) { - while (stateMachine.getCurrentState() == ServerState.RUNNING) { - acceptAndProcess(serverSocket, executorService, requestProcessor); - } + while (stateMachine.getCurrentState() == ServerState.RUNNING) { + acceptAndProcess(serverSocket, executorService, requestProcessor); } } catch (Exception e) { logger.log(ERROR, () -> serverLogMessage("Error starting server"), e); diff --git a/src/test/java/net/uiqui/embedhttp/server/ServerInstanceTest.java b/src/test/java/net/uiqui/embedhttp/server/ServerInstanceTest.java index 78cd889..2618ab1 100644 --- a/src/test/java/net/uiqui/embedhttp/server/ServerInstanceTest.java +++ b/src/test/java/net/uiqui/embedhttp/server/ServerInstanceTest.java @@ -15,7 +15,7 @@ void testServerMessageWithoutParameters() { // when var result = classUnderTest.serverLogMessage(message); // then - assertThat(result).isEqualTo("Server(0): test"); + assertThat(result).isEqualTo("Instance(0): test"); } @Test @@ -27,6 +27,6 @@ void testServerMessageWithParameters() { // when var result = classUnderTest.serverLogMessage(message, params1, params2); // then - assertThat(result).isEqualTo("Server(0): test param1 10"); + assertThat(result).isEqualTo("Instance(0): test param1 10"); } }