diff --git a/src/main/java/org/lumijiez/Main.java b/src/main/java/org/lumijiez/Main.java index eccf0bb..ef94840 100644 --- a/src/main/java/org/lumijiez/Main.java +++ b/src/main/java/org/lumijiez/Main.java @@ -1,7 +1,6 @@ package org.lumijiez; import org.lumijiez.core.http.HttpServer; -import org.lumijiez.logging.Logger; public class Main { public static void main(String[] args) { diff --git a/src/main/java/org/lumijiez/core/http/HttpServer.java b/src/main/java/org/lumijiez/core/http/HttpServer.java index 8f9bcb9..fd90519 100644 --- a/src/main/java/org/lumijiez/core/http/HttpServer.java +++ b/src/main/java/org/lumijiez/core/http/HttpServer.java @@ -1,20 +1,29 @@ package org.lumijiez.core.http; import org.lumijiez.core.routing.Router; -import org.lumijiez.core.tcp.TcpServer; +import org.lumijiez.logging.Logger; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; +import java.net.ServerSocket; import java.net.Socket; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; -public class HttpServer extends TcpServer { +public class HttpServer { + private boolean running; + private final int port; + private ServerSocket serverSocket; + private final ExecutorService threadPool; private final Router router; public HttpServer(int port) { - super(port); + this.running = false; + this.port = port; this.router = new Router(); + this.threadPool = Executors.newCachedThreadPool(); } public void GET(String path, HttpHandler handler) { @@ -25,7 +34,33 @@ public class HttpServer extends TcpServer { router.addRoute("POST", path, handler); } - @Override + public void start() { + try { + serverSocket = new ServerSocket(port); + running = true; + + Logger.info("HTTP", "Server started on port " + port); + + while (running) { + try { + Socket clientSocket = serverSocket.accept(); + + Logger.info("HTTP", "Client connected " + clientSocket.getInetAddress()); + + threadPool.submit(() -> handleClient(clientSocket)); + } catch (IOException e) { + if (running) { + Logger.error("HTTP", "Error accepting client connection: " + e.getMessage()); + } + } + } + } catch (IOException e) { + Logger.error("HTTP", "Error starting server: " + e.getMessage()); + } finally { + stop(); + } + } + protected void handleClient(Socket clientSocket) { try (BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true)) { @@ -35,7 +70,24 @@ public class HttpServer extends TcpServer { router.handleRequest(request, response); } catch (IOException e) { - System.out.println("Error handling client: " + e.getMessage()); + Logger.error("HTTP", "Error handling client: " + e.getMessage()); } } + + public void stop() { + running = false; + if (serverSocket != null) { + try { + serverSocket.close(); + Logger.info("HTTP", "Server stopped"); + } catch (IOException e) { + Logger.error("HTTP", "Error stopping server: " + e.getMessage()); + } + } + threadPool.shutdownNow(); + } + + public boolean isRunning() { + return running; + } } \ No newline at end of file diff --git a/src/main/java/org/lumijiez/core/tcp/TcpServer.java b/src/main/java/org/lumijiez/core/tcp/TcpServer.java deleted file mode 100644 index 7529b09..0000000 --- a/src/main/java/org/lumijiez/core/tcp/TcpServer.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.lumijiez.core.tcp; -import org.lumijiez.logging.Logger; - -import java.io.IOException; -import java.net.ServerSocket; -import java.net.Socket; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -public abstract class TcpServer { - private final int port; - private boolean running; - private ServerSocket serverSocket; - private final ExecutorService threadPool; - - public TcpServer(int port) { - this.port = port; - this.running = false; - this.threadPool = Executors.newCachedThreadPool(); - } - - public void start() { - try { - serverSocket = new ServerSocket(port); - running = true; - System.out.println("Server started on port " + port); - - while (running) { - try { - Socket clientSocket = serverSocket.accept(); - - System.out.println("New client connected: " + clientSocket.getInetAddress()); - - threadPool.submit(() -> handleClient(clientSocket)); - } catch (IOException e) { - if (running) { - System.out.println("Error accepting client connection: " + e.getMessage()); - } - } - } - } catch (IOException e) { - System.out.println("Error starting server: " + e.getMessage()); - } finally { - stop(); - } - } - - protected abstract void handleClient(Socket clientSocket); - - public void stop() { - running = false; - if (serverSocket != null) { - try { - serverSocket.close(); - System.out.println("Server stopped."); - } catch (IOException e) { - System.out.println("Error stopping server: " + e.getMessage()); - } - } - threadPool.shutdownNow(); - } - - public boolean isRunning() { - return running; - } -} \ No newline at end of file diff --git a/src/main/java/org/lumijiez/logging/Logger.java b/src/main/java/org/lumijiez/logging/Logger.java index 6f60205..474f6a5 100644 --- a/src/main/java/org/lumijiez/logging/Logger.java +++ b/src/main/java/org/lumijiez/logging/Logger.java @@ -4,7 +4,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Logger { - private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); public enum LogLevel { DEBUG, INFO, WARN, ERROR @@ -25,7 +25,7 @@ public class Logger { public void log(LogLevel level, String source, String message) { if (level.ordinal() >= currentLogLevel.ordinal()) { String timestamp = LocalDateTime.now().format(formatter); - System.out.println("[" + timestamp + "] [" + level + "] [" + source + "] " + message); + System.out.println("[" + timestamp + "][" + level + "][" + source + "] " + message); } }