Bug fix
This commit is contained in:
@@ -40,6 +40,7 @@ import org.openautonomousconnection.protocol.versions.v1_0_0.beta.ProtocolWebSer
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
@@ -53,18 +54,6 @@ public final class ProtocolBridge {
|
||||
@Getter
|
||||
private final ProtocolValues protocolValues;
|
||||
|
||||
/**
|
||||
* The protocol version for the current connection
|
||||
*/
|
||||
@Getter
|
||||
private final ProtocolVersion protocolVersion;
|
||||
|
||||
/**
|
||||
* The logger instance for logging events and errors
|
||||
*/
|
||||
@Getter
|
||||
private Logger logger;
|
||||
|
||||
/**
|
||||
* The protocol side instances
|
||||
*/
|
||||
@@ -78,27 +67,17 @@ public final class ProtocolBridge {
|
||||
@Getter
|
||||
private ProtocolCustomServer protocolServer;
|
||||
|
||||
@Getter
|
||||
private AddonLoader addonLoader;
|
||||
|
||||
/**
|
||||
* Initialize the ProtocolBridge instance for the client side
|
||||
*
|
||||
* @param protocolServer The ProtocolCustomServer instance
|
||||
* @param protocolValues The ProtocolSettings instance
|
||||
* @param protocolVersion The ProtocolVersion instance
|
||||
* @param logger The logger
|
||||
* @param addonLoader The Addon loader to load custom extensions
|
||||
* @throws Exception if an error occurs while initializing the ProtocolBridge
|
||||
*/
|
||||
public ProtocolBridge(ProtocolCustomServer protocolServer, ProtocolValues protocolValues, ProtocolVersion protocolVersion,
|
||||
Logger logger, AddonLoader addonLoader) throws Exception {
|
||||
public ProtocolBridge(ProtocolCustomServer protocolServer, ProtocolValues protocolValues) throws Exception {
|
||||
// Assign the parameters to the class fields
|
||||
this.protocolServer = protocolServer;
|
||||
this.protocolValues = protocolValues;
|
||||
this.protocolVersion = protocolVersion;
|
||||
this.logger = logger;
|
||||
this.addonLoader = addonLoader;
|
||||
|
||||
if (protocolServer instanceof ProtocolINSServer)
|
||||
protocolServer.attachBridge(this, null, false, ClientAuthMode.NONE);
|
||||
@@ -118,20 +97,14 @@ public final class ProtocolBridge {
|
||||
*
|
||||
* @param protocolClient The ProtocolClient instance
|
||||
* @param protocolValues The ProtocolSettings instance
|
||||
* @param protocolVersion The ProtocolVersion instance
|
||||
* @param logger The logger
|
||||
* @param addonLoader The Addon loader to load custom extensions
|
||||
* @throws Exception if an error occurs while initializing the ProtocolBridge
|
||||
*/
|
||||
@ProtocolInfo(protocolSide = ProtocolVersion.ProtocolSide.CLIENT)
|
||||
public ProtocolBridge(ProtocolClient protocolClient, ProtocolValues protocolValues, ProtocolVersion protocolVersion,
|
||||
Logger logger, AddonLoader addonLoader, LibClientImpl_v1_0_1_B libClientImpl) throws Exception {
|
||||
public ProtocolBridge(ProtocolClient protocolClient, LibClientImpl_v1_0_1_B libClientImpl,
|
||||
ProtocolValues protocolValues) throws Exception {
|
||||
// Assign the parameters to the class fields
|
||||
this.protocolClient = protocolClient;
|
||||
this.protocolValues = protocolValues;
|
||||
this.protocolVersion = protocolVersion;
|
||||
this.logger = logger;
|
||||
this.addonLoader = addonLoader;
|
||||
|
||||
protocolClient.attachBridge(this);
|
||||
initializeProtocolVersion();
|
||||
@@ -145,11 +118,11 @@ public final class ProtocolBridge {
|
||||
}
|
||||
|
||||
private void installUrl(LibClientImpl_v1_0_1_B libClientImpl) {
|
||||
if (protocolVersion == ProtocolVersion.PV_1_0_0_BETA) {
|
||||
if (protocolValues.protocolVersion == ProtocolVersion.PV_1_0_0_BETA) {
|
||||
OacWebUrlInstaller_v1_0_0_B.installOnce(this, libClientImpl);
|
||||
}
|
||||
|
||||
if (protocolVersion == ProtocolVersion.PV_1_0_1_BETA) {
|
||||
if (protocolValues.protocolVersion == ProtocolVersion.PV_1_0_1_BETA) {
|
||||
OacUrlHandlerInstaller_v1_0_1_B.installOnce(this, libClientImpl, libClientImpl, libClientImpl);
|
||||
}
|
||||
}
|
||||
@@ -211,12 +184,12 @@ public final class ProtocolBridge {
|
||||
registerPacket(WebStreamEndPacket_v1_0_0_B::new);
|
||||
|
||||
// 1.0.1-BETA Packets
|
||||
registerPacket(WebDocumentApplyRequestPacket::new);
|
||||
registerPacket(() -> new WebDocumentApplyRequestPacket(this));
|
||||
registerPacket(WebDocumentApplyResponsePacket::new);
|
||||
registerPacket(WebDocumentSnapshotEventPacket::new);
|
||||
registerPacket(WebNavigateRequestPacket::new);
|
||||
registerPacket(() -> new WebNavigateRequestPacket(this));
|
||||
registerPacket(WebNavigateAckPacket::new);
|
||||
registerPacket(WebResourceRequestPacket::new);
|
||||
registerPacket(() -> new WebResourceRequestPacket(this));
|
||||
registerPacket(WebResourceResponsePacket::new);
|
||||
registerPacket(WebStreamStartPacket_v1_0_1_B::new);
|
||||
registerPacket(WebStreamChunkPacket_v1_0_1_B::new);
|
||||
@@ -255,7 +228,7 @@ public final class ProtocolBridge {
|
||||
// Check if the protocol version is valid for the current side
|
||||
// If not, log an error and exit the application
|
||||
if (!validateProtocolSide()) {
|
||||
this.logger.error("Invalid protocol version '" + protocolVersion.toString() + "'!");
|
||||
protocolValues.logger.error("Invalid protocol version '" + protocolValues.protocolVersion.toString() + "'!");
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
@@ -267,14 +240,14 @@ public final class ProtocolBridge {
|
||||
*/
|
||||
public boolean isClassicSupported() {
|
||||
boolean yes = false;
|
||||
for (ProtocolVersion compatibleVersion : protocolVersion.getCompatibleVersions()) {
|
||||
for (ProtocolVersion compatibleVersion : protocolValues.protocolVersion.getCompatibleVersions()) {
|
||||
// Check if the compatible version is classic
|
||||
yes = compatibleVersion.getProtocolType() == ProtocolVersion.ProtocolType.CLASSIC;
|
||||
if (yes) break;
|
||||
}
|
||||
|
||||
// Check if the current protocol version is classic or if it is supported by any of the compatible versions
|
||||
return protocolVersion.getProtocolType() == ProtocolVersion.ProtocolType.CLASSIC || yes;
|
||||
return protocolValues.protocolVersion.getProtocolType() == ProtocolVersion.ProtocolType.CLASSIC || yes;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -286,14 +259,14 @@ public final class ProtocolBridge {
|
||||
public boolean isProtocolSupported(ProtocolVersion.Protocol protocol) {
|
||||
boolean yes = false;
|
||||
|
||||
for (ProtocolVersion compatibleVersion : protocolVersion.getCompatibleVersions()) {
|
||||
for (ProtocolVersion compatibleVersion : protocolValues.protocolVersion.getCompatibleVersions()) {
|
||||
// Check if the compatible version supports the target protocol
|
||||
yes = compatibleVersion.getSupportedProtocols().contains(protocol);
|
||||
if (yes) break;
|
||||
}
|
||||
|
||||
// Check if the current protocol version supports the target protocol or if it is supported by any of the compatible versions
|
||||
return protocolVersion.getSupportedProtocols().contains(protocol) || yes;
|
||||
return protocolValues.protocolVersion.getSupportedProtocols().contains(protocol) || yes;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -320,7 +293,7 @@ public final class ProtocolBridge {
|
||||
*/
|
||||
public boolean isVersionSupported(ProtocolVersion targetVersion) {
|
||||
// Check if the target protocol version is the same as the current protocol version or if it is in the list of compatible versions
|
||||
return protocolVersion == targetVersion || protocolVersion.getCompatibleVersions().contains(targetVersion);
|
||||
return protocolValues.protocolVersion == targetVersion || protocolValues.protocolVersion.getCompatibleVersions().contains(targetVersion);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -330,22 +303,22 @@ public final class ProtocolBridge {
|
||||
*/
|
||||
private boolean validateProtocolSide() {
|
||||
return
|
||||
(isRunningAsClient() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT) ||
|
||||
(isRunningAsClient() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT_WEB) ||
|
||||
(isRunningAsClient() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT_INS) ||
|
||||
(isRunningAsClient() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.ALL) ||
|
||||
(isRunningAsClient() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT) ||
|
||||
(isRunningAsClient() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT_WEB) ||
|
||||
(isRunningAsClient() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT_INS) ||
|
||||
(isRunningAsClient() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.ALL) ||
|
||||
|
||||
(isRunningAsWebServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.WEB) ||
|
||||
(isRunningAsWebServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT_WEB) ||
|
||||
(isRunningAsWebServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.WEB_INS) ||
|
||||
(isRunningAsWebServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.ALL) ||
|
||||
(isRunningAsWebServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.WEB) ||
|
||||
(isRunningAsWebServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT_WEB) ||
|
||||
(isRunningAsWebServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.WEB_INS) ||
|
||||
(isRunningAsWebServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.ALL) ||
|
||||
|
||||
(isRunningAsServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.ALL) ||
|
||||
(isRunningAsServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.ALL) ||
|
||||
|
||||
(isRunningAsINSServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.INS) ||
|
||||
(isRunningAsINSServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.WEB_INS) ||
|
||||
(isRunningAsINSServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT_INS) ||
|
||||
(isRunningAsINSServer() && protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.ALL);
|
||||
(isRunningAsINSServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.INS) ||
|
||||
(isRunningAsINSServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.WEB_INS) ||
|
||||
(isRunningAsINSServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.CLIENT_INS) ||
|
||||
(isRunningAsINSServer() && protocolValues.protocolVersion.getProtocolSide() == ProtocolVersion.ProtocolSide.ALL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -372,6 +345,8 @@ public final class ProtocolBridge {
|
||||
* @return true if the current instance is running as a web server, false otherwise
|
||||
*/
|
||||
public boolean isRunningAsWebServer() {
|
||||
if (protocolValues.protocolVersion == ProtocolVersion.PV_1_0_0_BETA)
|
||||
return isRunningAsServer() && protocolServer instanceof ProtocolWebServer_1_0_0_B;
|
||||
return isRunningAsServer() && protocolServer instanceof ProtocolWebServer;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user