diff --git a/pom.xml b/pom.xml index 9428677..0f6cd1d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.openautonomousconnection WebServer - 1.0.0-BETA.1.1 + 1.0.0-BETA.1.2 Open Autonomous Connection https://open-autonomous-connection.org/ @@ -112,7 +112,7 @@ org.openautonomousconnection Protocol - 1.0.0-BETA.5.2 + 1.0.0-BETA.5.4 org.projectlombok diff --git a/src/main/java/org/openautonomousconnection/webserver/Main.java b/src/main/java/org/openautonomousconnection/webserver/Main.java index 74f8a13..7ac0351 100644 --- a/src/main/java/org/openautonomousconnection/webserver/Main.java +++ b/src/main/java/org/openautonomousconnection/webserver/Main.java @@ -9,7 +9,9 @@ import lombok.Getter; import org.openautonomousconnection.protocol.ProtocolBridge; import org.openautonomousconnection.protocol.ProtocolSettings; import org.openautonomousconnection.protocol.side.ins.ProtocolINSServer; +import org.openautonomousconnection.protocol.side.web.WebServerConfig; import org.openautonomousconnection.protocol.versions.ProtocolVersion; +import org.openautonomousconnection.protocol.versions.v1_0_0.classic.handlers.builtin.WebClassic; import javax.annotation.processing.Generated; import java.io.File; @@ -29,9 +31,15 @@ public class Main { settings.eventManager = new EventManager(); settings.port = 9824; - protocolBridge = new ProtocolBridge(new WebServer(new File("config.properties"), + // TODO: Refactoring with port in Protocol-Project + WebServerConfig serverConfig = new WebServerConfig(new File("config.properties")); + settings.port = serverConfig.getPort(); + + protocolBridge = new ProtocolBridge(new WebServer(serverConfig, new File("auth.ini"), new File("rules.ini")), settings, ProtocolVersion.PV_1_0_0_BETA, new File("logs")); + protocolBridge.setClassicHandlerWebServer(new WebClassic(protocolBridge)); + protocolBridge.getProtocolServer().getPipelineServer().start(); commandManager = new CommandManager(protocolBridge.getProtocolSettings().eventManager); Scanner scanner = new Scanner(System.in); diff --git a/src/main/java/org/openautonomousconnection/webserver/WebServer.java b/src/main/java/org/openautonomousconnection/webserver/WebServer.java index f8ab427..b997e0a 100644 --- a/src/main/java/org/openautonomousconnection/webserver/WebServer.java +++ b/src/main/java/org/openautonomousconnection/webserver/WebServer.java @@ -2,8 +2,14 @@ package org.openautonomousconnection.webserver; import org.openautonomousconnection.protocol.annotations.ProtocolInfo; import org.openautonomousconnection.protocol.packets.v1_0_0.beta.*; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebRequestPacket; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebResponsePacket; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.stream.WebStreamChunkPacket; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.stream.WebStreamEndPacket; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.stream.WebStreamStartPacket; import org.openautonomousconnection.protocol.side.web.ConnectedWebClient; import org.openautonomousconnection.protocol.side.web.ProtocolWebServer; +import org.openautonomousconnection.protocol.side.web.WebServerConfig; import org.openautonomousconnection.protocol.side.web.managers.RuleManager; import org.openautonomousconnection.protocol.side.web.managers.SessionManager; import org.openautonomousconnection.protocol.versions.ProtocolVersion; @@ -20,9 +26,8 @@ public final class WebServer extends ProtocolWebServer { private static final int STREAM_CHUNK_SIZE = 64 * 1024; private static final long STREAM_THRESHOLD = 2L * 1024 * 1024; - public WebServer(File configFile, File authFile, File rulesFile) throws Exception { - super(configFile, authFile, rulesFile); - Main.getProtocolBridge().getProtocolSettings().port = getConfigurationManager().getInt("port.webserver"); + public WebServer(WebServerConfig config, File authFile, File rulesFile) throws Exception { + super(config, authFile, rulesFile); } @Override @@ -69,10 +74,10 @@ public final class WebServer extends ProtocolWebServer { return new WebResponsePacket(200, contentType, Map.of(), data); } - private void streamFile(ConnectedWebClient client, File file, String contentType) throws IOException { + private void streamFile(ConnectedWebClient client, File file, String contentType) throws IOException, ClassNotFoundException { long total = file.length(); - client.streamStart(new WebStreamStartPacket(200, contentType, Map.of("name", file.getName()), total)); + client.getPipelineConnection().sendPacket(new WebStreamStartPacket(200, contentType, Map.of("name", file.getName()), total)); try (InputStream in = new BufferedInputStream(new FileInputStream(file))) { byte[] buf = new byte[STREAM_CHUNK_SIZE]; @@ -80,10 +85,10 @@ public final class WebServer extends ProtocolWebServer { int r; while ((r = in.read(buf)) != -1) { byte[] chunk = (r == buf.length) ? buf : Arrays.copyOf(buf, r); - client.streamChunk(new WebStreamChunkPacket(seq++, chunk)); + client.getPipelineConnection().sendPacket(new WebStreamChunkPacket(seq++, chunk)); } } - client.streamEnd(new WebStreamEndPacket(true)); + client.getPipelineConnection().sendPacket(new WebStreamEndPacket(true)); } } diff --git a/src/main/java/org/openautonomousconnection/webserver/api/WebPage.java b/src/main/java/org/openautonomousconnection/webserver/api/WebPage.java index 6f8d0bb..ef68d80 100644 --- a/src/main/java/org/openautonomousconnection/webserver/api/WebPage.java +++ b/src/main/java/org/openautonomousconnection/webserver/api/WebPage.java @@ -1,6 +1,6 @@ package org.openautonomousconnection.webserver.api; -import org.openautonomousconnection.protocol.packets.v1_0_0.beta.WebResponsePacket; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebResponsePacket; /** * Server-side Java page (PHP alternative). diff --git a/src/main/java/org/openautonomousconnection/webserver/api/WebPageContext.java b/src/main/java/org/openautonomousconnection/webserver/api/WebPageContext.java index 1957b52..587126d 100644 --- a/src/main/java/org/openautonomousconnection/webserver/api/WebPageContext.java +++ b/src/main/java/org/openautonomousconnection/webserver/api/WebPageContext.java @@ -1,6 +1,6 @@ package org.openautonomousconnection.webserver.api; -import org.openautonomousconnection.protocol.packets.v1_0_0.beta.WebRequestPacket; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebRequestPacket; import org.openautonomousconnection.protocol.side.web.ConnectedWebClient; import org.openautonomousconnection.protocol.side.web.ProtocolWebServer; diff --git a/src/main/java/org/openautonomousconnection/webserver/runtime/JavaPageDispatcher.java b/src/main/java/org/openautonomousconnection/webserver/runtime/JavaPageDispatcher.java index 0d865c9..1dc654c 100644 --- a/src/main/java/org/openautonomousconnection/webserver/runtime/JavaPageDispatcher.java +++ b/src/main/java/org/openautonomousconnection/webserver/runtime/JavaPageDispatcher.java @@ -1,7 +1,7 @@ package org.openautonomousconnection.webserver.runtime; -import org.openautonomousconnection.protocol.packets.v1_0_0.beta.WebRequestPacket; -import org.openautonomousconnection.protocol.packets.v1_0_0.beta.WebResponsePacket; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebRequestPacket; +import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebResponsePacket; import org.openautonomousconnection.protocol.side.web.ConnectedWebClient; import org.openautonomousconnection.protocol.side.web.ProtocolWebServer; import org.openautonomousconnection.webserver.api.WebPage;