From 2a71cd9c1bb19ee0174e46e2761fd99830e16ee6 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 11 Sep 2024 10:56:49 -0400 Subject: [PATCH] Console should get much smarter around compatibility with older units #6845 only:refactoring --- .../com/rusefi/binaryprotocol/BinaryProtocol.java | 7 ++----- .../com/rusefi/binaryprotocol/IniFileProvider.java | 7 +++++++ .../rusefi/binaryprotocol/RealIniFileProvider.java | 14 ++++++++++++++ .../java/com/rusefi/proxy/MockIniFileProvider.java | 12 ++++++++++++ .../com/rusefi/proxy/NetworkConnectorTest.java | 2 ++ 5 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 java_console/io/src/main/java/com/rusefi/binaryprotocol/IniFileProvider.java create mode 100644 java_console/io/src/main/java/com/rusefi/binaryprotocol/RealIniFileProvider.java create mode 100644 java_tools/proxy_server/src/test/java/com/rusefi/proxy/MockIniFileProvider.java diff --git a/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java index 30606a54b3..ae05cb7227 100644 --- a/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java +++ b/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java @@ -11,7 +11,6 @@ import com.opensr5.io.DataListener; import com.rusefi.ConfigurationImageDiff; import com.rusefi.NamedThreadFactory; import com.rusefi.config.generated.Integration; -import com.rusefi.core.SignatureHelper; import com.rusefi.Timeouts; import com.rusefi.binaryprotocol.test.Bug3923; import com.rusefi.config.generated.Fields; @@ -76,6 +75,7 @@ public class BinaryProtocol { private final BinaryProtocolLogger binaryProtocolLogger; public static boolean DISABLE_LOCAL_CONFIGURATION_CACHE; + public static IniFileProvider iniFileProvider = new RealIniFileProvider(); public static String findCommand(byte command) { switch (command) { @@ -181,10 +181,7 @@ public class BinaryProtocol { } catch (IOException e) { return "Failed to read signature " + e; } - String localIniFile = SignatureHelper.downloadIfNotAvailable(SignatureHelper.getUrl(signature)); - if (localIniFile == null) - throw new IllegalStateException("Failed to download for " + signature); - iniFile = new IniFileModel().readIniFile(localIniFile); + iniFile = iniFileProvider.provide(signature); String errorMessage = validateConfigVersion(); if (errorMessage != null) diff --git a/java_console/io/src/main/java/com/rusefi/binaryprotocol/IniFileProvider.java b/java_console/io/src/main/java/com/rusefi/binaryprotocol/IniFileProvider.java new file mode 100644 index 0000000000..30487b62f6 --- /dev/null +++ b/java_console/io/src/main/java/com/rusefi/binaryprotocol/IniFileProvider.java @@ -0,0 +1,7 @@ +package com.rusefi.binaryprotocol; + +import com.opensr5.ini.IniFileModel; + +public interface IniFileProvider { + IniFileModel provide(String signature); +} diff --git a/java_console/io/src/main/java/com/rusefi/binaryprotocol/RealIniFileProvider.java b/java_console/io/src/main/java/com/rusefi/binaryprotocol/RealIniFileProvider.java new file mode 100644 index 0000000000..765b283eb5 --- /dev/null +++ b/java_console/io/src/main/java/com/rusefi/binaryprotocol/RealIniFileProvider.java @@ -0,0 +1,14 @@ +package com.rusefi.binaryprotocol; + +import com.opensr5.ini.IniFileModel; +import com.rusefi.core.SignatureHelper; + +public class RealIniFileProvider implements IniFileProvider { + @Override + public IniFileModel provide(String signature) { + String localIniFile = SignatureHelper.downloadIfNotAvailable(SignatureHelper.getUrl(signature)); + if (localIniFile == null) + throw new IllegalStateException("Failed to download for " + signature); + return new IniFileModel().readIniFile(localIniFile); + } +} diff --git a/java_tools/proxy_server/src/test/java/com/rusefi/proxy/MockIniFileProvider.java b/java_tools/proxy_server/src/test/java/com/rusefi/proxy/MockIniFileProvider.java new file mode 100644 index 0000000000..76c3ff2975 --- /dev/null +++ b/java_tools/proxy_server/src/test/java/com/rusefi/proxy/MockIniFileProvider.java @@ -0,0 +1,12 @@ +package com.rusefi.proxy; + +import com.rusefi.binaryprotocol.IniFileProvider; +import org.mockito.Mockito; + +public class MockIniFileProvider { + + public static IniFileProvider create() { + IniFileProvider mock = Mockito.mock(IniFileProvider.class); + return mock; + } +} diff --git a/java_tools/proxy_server/src/test/java/com/rusefi/proxy/NetworkConnectorTest.java b/java_tools/proxy_server/src/test/java/com/rusefi/proxy/NetworkConnectorTest.java index f746140e67..8518cbb30f 100644 --- a/java_tools/proxy_server/src/test/java/com/rusefi/proxy/NetworkConnectorTest.java +++ b/java_tools/proxy_server/src/test/java/com/rusefi/proxy/NetworkConnectorTest.java @@ -5,6 +5,7 @@ import com.opensr5.ConfigurationImage; import com.rusefi.BackendTestHelper; import com.rusefi.TestHelper; import com.rusefi.Timeouts; +import com.rusefi.binaryprotocol.BinaryProtocol; import com.rusefi.config.generated.Fields; import com.rusefi.io.tcp.BinaryProtocolServer; import com.rusefi.io.tcp.TcpConnector; @@ -25,6 +26,7 @@ public class NetworkConnectorTest { @BeforeEach public void setup() throws MalformedURLException { + //BinaryProtocol.iniFileProvider = MockIniFileProvider.create(); BackendTestHelper.commonServerTest(); }