From 6256bc32d023ada43e8879e0c4d2227ae5066d5e Mon Sep 17 00:00:00 2001
From: Daniel <59575049+lumijiez@users.noreply.github.com>
Date: Wed, 23 Oct 2024 19:26:36 +0300
Subject: [PATCH] use HttpHandler functional interface instead of BiConsumer
---
.idea/uiDesigner.xml | 124 ++++++++++++++++++
src/main/java/org/lumijiez/Main.java | 20 +--
.../lumijiez/core/{ => http}/HttpHandler.java | 2 +-
.../lumijiez/core/{ => http}/HttpRequest.java | 2 +-
.../core/{ => http}/HttpResponse.java | 2 +-
.../lumijiez/core/{ => http}/HttpServer.java | 12 +-
.../lumijiez/core/{ => routing}/Route.java | 12 +-
.../lumijiez/core/{ => routing}/Router.java | 9 +-
.../lumijiez/core/{ => tcp}/TcpServer.java | 2 +-
9 files changed, 152 insertions(+), 33 deletions(-)
create mode 100644 .idea/uiDesigner.xml
rename src/main/java/org/lumijiez/core/{ => http}/HttpHandler.java (78%)
rename src/main/java/org/lumijiez/core/{ => http}/HttpRequest.java (96%)
rename src/main/java/org/lumijiez/core/{ => http}/HttpResponse.java (93%)
rename src/main/java/org/lumijiez/core/{ => http}/HttpServer.java (76%)
rename src/main/java/org/lumijiez/core/{ => routing}/Route.java (54%)
rename src/main/java/org/lumijiez/core/{ => routing}/Router.java (71%)
rename src/main/java/org/lumijiez/core/{ => tcp}/TcpServer.java (98%)
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/lumijiez/Main.java b/src/main/java/org/lumijiez/Main.java
index b38ef6b..4608954 100644
--- a/src/main/java/org/lumijiez/Main.java
+++ b/src/main/java/org/lumijiez/Main.java
@@ -1,25 +1,13 @@
package org.lumijiez;
-import org.lumijiez.core.HttpServer;
-
-import java.net.Socket;
+import org.lumijiez.core.http.HttpServer;
+import org.lumijiez.logging.Logger;
public class Main {
public static void main(String[] args) {
- TcpServerCallback callback = new TcpServerCallback() {
- @Override
- public String onClientMessage(String message, Socket clientSocket) {
- return "";
- }
+ Logger logger = new Logger(Logger.LogLevel.DEBUG);
- @Override
- public String onClientConnected(Socket clientSocket) {
- System.out.println("Client connected: " + clientSocket.getInetAddress());
- return "";
- }
- };
-
- HttpServer httpServer = new HttpServer(8080, callback);
+ HttpServer httpServer = new HttpServer(8080);
httpServer.GET("/hello", (req, res) -> {
res.sendResponse(200, "Hello, World!");
diff --git a/src/main/java/org/lumijiez/core/HttpHandler.java b/src/main/java/org/lumijiez/core/http/HttpHandler.java
similarity index 78%
rename from src/main/java/org/lumijiez/core/HttpHandler.java
rename to src/main/java/org/lumijiez/core/http/HttpHandler.java
index 35514fd..315f982 100644
--- a/src/main/java/org/lumijiez/core/HttpHandler.java
+++ b/src/main/java/org/lumijiez/core/http/HttpHandler.java
@@ -1,4 +1,4 @@
-package org.lumijiez.core;
+package org.lumijiez.core.http;
@FunctionalInterface
public interface HttpHandler {
diff --git a/src/main/java/org/lumijiez/core/HttpRequest.java b/src/main/java/org/lumijiez/core/http/HttpRequest.java
similarity index 96%
rename from src/main/java/org/lumijiez/core/HttpRequest.java
rename to src/main/java/org/lumijiez/core/http/HttpRequest.java
index bff82eb..c7da286 100644
--- a/src/main/java/org/lumijiez/core/HttpRequest.java
+++ b/src/main/java/org/lumijiez/core/http/HttpRequest.java
@@ -1,4 +1,4 @@
-package org.lumijiez.core;
+package org.lumijiez.core.http;
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/src/main/java/org/lumijiez/core/HttpResponse.java b/src/main/java/org/lumijiez/core/http/HttpResponse.java
similarity index 93%
rename from src/main/java/org/lumijiez/core/HttpResponse.java
rename to src/main/java/org/lumijiez/core/http/HttpResponse.java
index 9eb9ed0..d197c5a 100644
--- a/src/main/java/org/lumijiez/core/HttpResponse.java
+++ b/src/main/java/org/lumijiez/core/http/HttpResponse.java
@@ -1,4 +1,4 @@
-package org.lumijiez.core;
+package org.lumijiez.core.http;
import java.io.PrintWriter;
diff --git a/src/main/java/org/lumijiez/core/HttpServer.java b/src/main/java/org/lumijiez/core/http/HttpServer.java
similarity index 76%
rename from src/main/java/org/lumijiez/core/HttpServer.java
rename to src/main/java/org/lumijiez/core/http/HttpServer.java
index 99b5ce9..8f9bcb9 100644
--- a/src/main/java/org/lumijiez/core/HttpServer.java
+++ b/src/main/java/org/lumijiez/core/http/HttpServer.java
@@ -1,25 +1,27 @@
-package org.lumijiez.core;
+package org.lumijiez.core.http;
+
+import org.lumijiez.core.routing.Router;
+import org.lumijiez.core.tcp.TcpServer;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
-import java.util.function.BiConsumer;
public class HttpServer extends TcpServer {
private final Router router;
- public HttpServer(int port, TcpServerCallback callback) {
+ public HttpServer(int port) {
super(port);
this.router = new Router();
}
- public void GET(String path, BiConsumer handler) {
+ public void GET(String path, HttpHandler handler) {
router.addRoute("GET", path, handler);
}
- public void POST(String path, BiConsumer handler) {
+ public void POST(String path, HttpHandler handler) {
router.addRoute("POST", path, handler);
}
diff --git a/src/main/java/org/lumijiez/core/Route.java b/src/main/java/org/lumijiez/core/routing/Route.java
similarity index 54%
rename from src/main/java/org/lumijiez/core/Route.java
rename to src/main/java/org/lumijiez/core/routing/Route.java
index 7e4abd5..a7173b8 100644
--- a/src/main/java/org/lumijiez/core/Route.java
+++ b/src/main/java/org/lumijiez/core/routing/Route.java
@@ -1,13 +1,15 @@
-package org.lumijiez.core;
+package org.lumijiez.core.routing;
-import java.util.function.BiConsumer;
+import org.lumijiez.core.http.HttpHandler;
+import org.lumijiez.core.http.HttpRequest;
+import org.lumijiez.core.http.HttpResponse;
public class Route {
private final String path;
private final String method;
- private final BiConsumer handler;
+ private final HttpHandler handler;
- public Route(String method, String path, BiConsumer handler) {
+ public Route(String method, String path, HttpHandler handler) {
this.method = method;
this.path = path;
this.handler = handler;
@@ -22,6 +24,6 @@ public class Route {
}
public void handle(HttpRequest request, HttpResponse response) {
- handler.accept(request, response);
+ handler.handle(request, response);
}
}
diff --git a/src/main/java/org/lumijiez/core/Router.java b/src/main/java/org/lumijiez/core/routing/Router.java
similarity index 71%
rename from src/main/java/org/lumijiez/core/Router.java
rename to src/main/java/org/lumijiez/core/routing/Router.java
index 8d164c1..c9df2f8 100644
--- a/src/main/java/org/lumijiez/core/Router.java
+++ b/src/main/java/org/lumijiez/core/routing/Router.java
@@ -1,13 +1,16 @@
-package org.lumijiez.core;
+package org.lumijiez.core.routing;
+
+import org.lumijiez.core.http.HttpHandler;
+import org.lumijiez.core.http.HttpRequest;
+import org.lumijiez.core.http.HttpResponse;
import java.util.ArrayList;
import java.util.List;
-import java.util.function.BiConsumer;
public class Router {
private final List routes = new ArrayList<>();
- public void addRoute(String method, String path, BiConsumer handler) {
+ public void addRoute(String method, String path, HttpHandler handler) {
routes.add(new Route(method, path, handler));
}
diff --git a/src/main/java/org/lumijiez/core/TcpServer.java b/src/main/java/org/lumijiez/core/tcp/TcpServer.java
similarity index 98%
rename from src/main/java/org/lumijiez/core/TcpServer.java
rename to src/main/java/org/lumijiez/core/tcp/TcpServer.java
index 500ac29..5152670 100644
--- a/src/main/java/org/lumijiez/core/TcpServer.java
+++ b/src/main/java/org/lumijiez/core/tcp/TcpServer.java
@@ -1,4 +1,4 @@
-package org.lumijiez.core;
+package org.lumijiez.core.tcp;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;