From a2caf4a06908b35566bb4e562db5852259461ed9 Mon Sep 17 00:00:00 2001 From: Reynold Morel Date: Mon, 12 Aug 2024 10:35:39 -0400 Subject: [PATCH] Add tests and implement method for formatting Java version --- .../main/java/org/ethereum/rpc/Web3Impl.java | 7 +++--- .../main/java/org/ethereum/util/Utils.java | 8 +++++++ .../java/org/ethereum/rpc/Web3ImplTest.java | 22 +++++++++++++++++++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/rskj-core/src/main/java/org/ethereum/rpc/Web3Impl.java b/rskj-core/src/main/java/org/ethereum/rpc/Web3Impl.java index 81ee0fa8e9a..8b8a5464036 100644 --- a/rskj-core/src/main/java/org/ethereum/rpc/Web3Impl.java +++ b/rskj-core/src/main/java/org/ethereum/rpc/Web3Impl.java @@ -63,6 +63,7 @@ import org.ethereum.rpc.exception.RskJsonRpcRequestException; import org.ethereum.rpc.parameters.*; import org.ethereum.util.BuildInfo; +import org.ethereum.util.Utils; import org.ethereum.vm.DataWord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -195,12 +196,10 @@ public void stop() { @Override public String web3_clientVersion() { - String javaVersion = System.getProperty("java.version"); - String javaMajorVersion = javaVersion.startsWith("1.") ? javaVersion.split("\\.")[1] : javaVersion.split("\\.")[0]; - String formattedJavaVersion = "Java" + javaMajorVersion; + String javaVersion = Utils.getFormattedJavaVersion(); String clientVersion = CLIENT_VERSION_PREFIX + "/" + config.projectVersion() + "/" + - System.getProperty("os.name") + "/" + formattedJavaVersion + "/" + + System.getProperty("os.name") + "/" + javaVersion + "/" + config.projectVersionModifier() + "-" + buildInfo.getBuildHash(); if (logger.isDebugEnabled()) { diff --git a/rskj-core/src/main/java/org/ethereum/util/Utils.java b/rskj-core/src/main/java/org/ethereum/util/Utils.java index a2d23853a51..6e9920bd2be 100644 --- a/rskj-core/src/main/java/org/ethereum/util/Utils.java +++ b/rskj-core/src/main/java/org/ethereum/util/Utils.java @@ -254,4 +254,12 @@ public static int significantBitCount(int number) { } return result; } + + public static String getFormattedJavaVersion(){ + String javaVersion = System.getProperty("java.specification.version"); + String javaMajorVersion = javaVersion.replace("1.", ""); + String formattedJavaVersion = String.format("Java%s", javaMajorVersion ); + + return formattedJavaVersion; + } } diff --git a/rskj-core/src/test/java/org/ethereum/rpc/Web3ImplTest.java b/rskj-core/src/test/java/org/ethereum/rpc/Web3ImplTest.java index f23da51c182..a4a5b90c9cb 100644 --- a/rskj-core/src/test/java/org/ethereum/rpc/Web3ImplTest.java +++ b/rskj-core/src/test/java/org/ethereum/rpc/Web3ImplTest.java @@ -140,6 +140,28 @@ void web3_clientVersion() { assertTrue(clientVersion.toLowerCase().contains("rsk"), "client version is not including rsk!"); } + @Test + void web3_clientVersion_ShouldIncludeJava8() { + System.setProperty("java.specification.version", "1.8"); + + Web3 web3 = createWeb3(); + + String clientVersion = web3.web3_clientVersion(); + + assertTrue(clientVersion.contains("Java8"), "Java version is not Java8"); + } + + @Test + void web3_clientVersion_ShouldIncludeJava17() { + System.setProperty("java.specification.version", "17"); + + Web3 web3 = createWeb3(); + + String clientVersion = web3.web3_clientVersion(); + + assertTrue(clientVersion.contains("Java17"), "Java version is not Java17"); + } + @Test void net_version() { Web3Impl web3 = createWeb3();