Implements full stream assembly with strict correlation via: * requestId + tabId + pageId + frameId.
*/ -public final class ClientImpl extends ProtocolClient { +public final class ClientImpl extends ProtocolWebClient { private static final long MAX_STREAM_BYTES = 64L * 1024L * 1024L; // 64MB safety cap private static final int MAX_CONCURRENT_STREAMS = 256; @@ -159,7 +165,7 @@ public final class ClientImpl extends ProtocolClient { @Override public void serverConnectionFailed(Exception exception) { - getProtocolBridge().getLogger().exception("Failed to connect to server", exception); + getProtocolBridge().getProtocolValues().logger.exception("Failed to connect to server", exception); OACOptionPane.showMessageDialog( dialogParent, "Failed to connect to Server:\n" + exception.getMessage(), diff --git a/src/main/java/org/openautonomousconnection/webclient/Main.java b/src/main/java/org/openautonomousconnection/webclient/Main.java index 829db42..4dba7bb 100644 --- a/src/main/java/org/openautonomousconnection/webclient/Main.java +++ b/src/main/java/org/openautonomousconnection/webclient/Main.java @@ -54,8 +54,11 @@ public class Main { } static void main(String[] args) throws IOException, NoSuchFieldException, IllegalAccessException { + File logsFolder = new File("logs"); + if (!logsFolder.exists()) logsFolder.mkdir(); + eventManager = new EventManager(); - logger = new Logger(new File("logs", "client"), false, true); + logger = new Logger(logsFolder, false, true); addonLoader = new AddonLoader(eventManager, logger); settings = SettingsManager.load(); diff --git a/src/main/java/org/openautonomousconnection/webclient/lua/WebLogger.java b/src/main/java/org/openautonomousconnection/webclient/lua/WebLogger.java index c676666..c236828 100644 --- a/src/main/java/org/openautonomousconnection/webclient/lua/WebLogger.java +++ b/src/main/java/org/openautonomousconnection/webclient/lua/WebLogger.java @@ -15,26 +15,26 @@ public class WebLogger { } public void log(String string) { - client.getProtocolBridge().getLogger().log(host + ": " + string); + client.getProtocolBridge().getProtocolValues().logger.log(host + ": " + string); } public void info(String info) { - client.getProtocolBridge().getLogger().info(host + ": " + info); + client.getProtocolBridge().getProtocolValues().logger.info(host + ": " + info); } public void warn(String warn) { - client.getProtocolBridge().getLogger().warn(host + ": " + warn); + client.getProtocolBridge().getProtocolValues().logger.warn(host + ": " + warn); } public void error(String error) { - client.getProtocolBridge().getLogger().error(host + ": " + error); + client.getProtocolBridge().getProtocolValues().logger.error(host + ": " + error); } public void exception(String infoLine, Exception exception) { - client.getProtocolBridge().getLogger().exception(host + ": " + infoLine, exception); + client.getProtocolBridge().getProtocolValues().logger.exception(host + ": " + infoLine, exception); } public void debug(String debug) { - client.getProtocolBridge().getLogger().debug(host + ": " + debug); + client.getProtocolBridge().getProtocolValues().logger.debug(host + ": " + debug); } } diff --git a/src/main/java/org/openautonomousconnection/webclient/ui/BrowserUI.java b/src/main/java/org/openautonomousconnection/webclient/ui/BrowserUI.java index d4686b8..3681888 100644 --- a/src/main/java/org/openautonomousconnection/webclient/ui/BrowserUI.java +++ b/src/main/java/org/openautonomousconnection/webclient/ui/BrowserUI.java @@ -231,6 +231,8 @@ public class BrowserUI extends OACFrame { readyTab.loadUrl(normalized); })); + connectTabClient(key, client); + BrowserTab tab = new BrowserTab( key, normalized, @@ -275,42 +277,37 @@ public class BrowserUI extends OACFrame { cardLayout.show(pageHost, key); browser.addressField().setText(normalized); - - connectTabClient(key, client); } private void connectTabClient(String key, ClientImpl client) { try { - File logsFolder = new File("logs"); - if (!logsFolder.exists()) logsFolder.mkdir(); - ProtocolValues values = new ProtocolValues(); values.packetHandler = new PacketHandler(); values.eventManager = new EventManager(); values.ssl = settings.isSslEnabled(); - AddonLoader addonLoader = Main.getAddonLoader(); + values.logger = Main.getLogger(); + values.addonLoader = Main.getAddonLoader(); + values.protocolVersion = ProtocolVersion.PV_1_0_1_BETA; + AddonLoader addonLoader = values.addonLoader; ProtocolBridge bridge = new ProtocolBridge( client, - values, - ProtocolVersion.PV_1_0_1_BETA, - Main.getLogger(), - Main.getAddonLoader(), - client.getLibImpl() + client.getLibImpl(), + values ); protocolByKey.put(key, bridge); addonLoaderByKey.put(key, addonLoader); + File addonsFolder = new File("addons"); + if (!addonsFolder.exists()) addonsFolder.mkdir(); + addonLoader.loadAddonsFromDirectory(addonsFolder); + client.buildINSConnection(); bridge.getProtocolValues().eventManager.registerListener(client); InsEndpoint ep = Objects.requireNonNull(settings.getSelectedIns(), "selectedIns"); client.getClientINSConnection().connect(ep.host(), ep.port()); - - File addonsFolder = new File("addons"); - if (!addonsFolder.exists()) addonsFolder.mkdir(); - addonLoader.loadAddonsFromDirectory(addonsFolder); } catch (Exception e) { OACOptionPane.showMessageDialog( this,