summaryrefslogtreecommitdiffstats
path: root/src/modules/java.rs
diff options
context:
space:
mode:
authorfilip <filipbachul@gmail.com>2021-08-25 17:41:10 +0200
committerGitHub <noreply@github.com>2021-08-25 10:41:10 -0500
commit1c9758f08b9bcf72c5d197e90bc8a67d271e21d5 (patch)
tree79deb39474a433cdb9af974df1a465c366dbc479 /src/modules/java.rs
parent779def136254e4edc26e0de2bad9d65ba33d2294 (diff)
style: Improve modules consistency (#3006)
* cmake - consistent parse version method names * crystal - consistent parse version method names * dart - consistent parse version method names * deno - consistent parse version method names * golang - consistent parse version method names * helm - consistent parse version method names * implement get_command_string_output, java - consistent parse version method names & small refactor * julia - consistent parse version method names * kotlin - consistent parse version method names and refactor * lua - consistent parse version method names and refactor * implement get_command_string_output for scala * format crystal module * remove outdated comment * node use format_module_version * terraform - consistent parse version method names * vagrant - consistent parse version method names * format * refactor python module * improve rlang module consistency * fix clippy warning
Diffstat (limited to 'src/modules/java.rs')
-rw-r--r--src/modules/java.rs118
1 files changed, 40 insertions, 78 deletions
diff --git a/src/modules/java.rs b/src/modules/java.rs
index 754fe89ae..6822215c5 100644
--- a/src/modules/java.rs
+++ b/src/modules/java.rs
@@ -1,10 +1,9 @@
+use super::{Context, Module, RootModuleConfig};
use crate::configs::java::JavaConfig;
use crate::formatter::{StringFormatter, VersionFormatter};
use crate::utils::get_command_string_output;
use std::path::PathBuf;
-use super::{Context, Module, RootModuleConfig};
-
use regex::Regex;
const JAVA_VERSION_PATTERN: &str = "(?P<version>[\\d\\.]+)[^\\s]*\\s(?:built|from)";
@@ -35,7 +34,15 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
_ => None,
})
.map(|variable| match variable {
- "version" => get_java_version(context, &config).map(Ok),
+ "version" => {
+ let java_version = get_java_version(context)?;
+ VersionFormatter::format_module_version(
+ module.get_name(),
+ &java_version,
+ config.version_format,
+ )
+ .map(Ok)
+ }
_ => None,
})
.parse(None)
@@ -52,7 +59,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
Some(module)
}
-fn get_java_version(context: &Context, config: &JavaConfig) -> Option<String> {
+fn get_java_version(context: &Context) -> Option<String> {
let java_command = context
.get_env("JAVA_HOME")
.map(PathBuf::from)
@@ -65,24 +72,18 @@ fn get_java_version(context: &Context, config: &JavaConfig) -> Option<String> {
})
.unwrap_or_else(|| String::from("java"));
- let command = context.exec_cmd(&java_command, &["-Xinternalversion"])?;
- let java_version = get_command_string_output(command);
+ let output = context.exec_cmd(&java_command, &["-Xinternalversion"])?;
+ let java_version_string = get_command_string_output(output);
- format_java_version(&java_version, config.version_format)
+ parse_java_version(&java_version_string)
}
-fn format_java_version(java_version: &str, version_format: &str) -> Option<String> {
+fn parse_java_version(java_version_string: &str) -> Option<String> {
let re = Regex::new(JAVA_VERSION_PATTERN).ok()?;
- let captures = re.captures(java_version)?;
+ let captures = re.captures(java_version_string)?;
let version = &captures["version"];
- match VersionFormatter::format_version(version, version_format) {
- Ok(formatted) => Some(formatted),
- Err(error) => {
- log::warn!("Error formatting `java` version:\n{}", error);
- Some(format!("v{}", version))
- }
- }
+ Some(version.to_string())
}
#[cfg(test)]
@@ -94,106 +95,67 @@ mod tests {
use std::io;
#[test]
- fn test_format_java_version_openjdk() {
+ fn test_parse_java_version_openjdk() {
let java_8 = "OpenJDK 64-Bit Server VM (25.222-b10) for linux-amd64 JRE (1.8.0_222-b10), built on Jul 11 2019 10:18:43 by \"openjdk\" with gcc 4.4.7 20120313 (Red Hat 4.4.7-23)";
let java_11 = "OpenJDK 64-Bit Server VM (11.0.4+11-post-Ubuntu-1ubuntu219.04) for linux-amd64 JRE (11.0.4+11-post-Ubuntu-1ubuntu219.04), built on Jul 18 2019 18:21:46 by \"build\" with gcc 8.3.0";
- assert_eq!(
- format_java_version(java_11, "v${raw}"),
- Some("v11.0.4".to_string())
- );
- assert_eq!(
- format_java_version(java_8, "v${raw}"),
- Some("v1.8.0".to_string())
- );
+ assert_eq!(parse_java_version(java_8), Some("1.8.0".to_string()));
+ assert_eq!(parse_java_version(java_11), Some("11.0.4".to_string()));
}
#[test]
- fn test_format_java_version_oracle() {
+ fn test_parse_java_version_oracle() {
let java_8 = "Java HotSpot(TM) Client VM (25.65-b01) for linux-arm-vfp-hflt JRE (1.8.0_65-b17), built on Oct 6 2015 16:19:04 by \"java_re\" with gcc 4.7.2 20120910 (prerelease)";
- assert_eq!(
- format_java_version(java_8, "v${raw}"),
- Some("v1.8.0".to_string())
- );
+ assert_eq!(parse_java_version(java_8), Some("1.8.0".to_string()));
}
#[test]
- fn test_format_java_version_redhat() {
+ fn test_parse_java_version_redhat() {
let java_8 = "OpenJDK 64-Bit Server VM (25.222-b10) for linux-amd64 JRE (1.8.0_222-b10), built on Jul 11 2019 20:48:53 by \"root\" with gcc 7.3.1 20180303 (Red Hat 7.3.1-5)";
let java_12 = "OpenJDK 64-Bit Server VM (12.0.2+10) for linux-amd64 JRE (12.0.2+10), built on Jul 18 2019 14:41:47 by \"jenkins\" with gcc 7.3.1 20180303 (Red Hat 7.3.1-5)";
- assert_eq!(
- format_java_version(java_8, "v${raw}"),
- Some("v1.8.0".to_string())
- );
- assert_eq!(
- format_java_version(java_12, "v${raw}"),
- Some("v12.0.2".to_string())
- );
+ assert_eq!(parse_java_version(java_8), Some("1.8.0".to_string()));
+ assert_eq!(parse_java_version(java_12), Some("12.0.2".to_string()));
}
#[test]
- fn test_format_java_version_zulu() {
+ fn test_parse_java_version_zulu() {
let java_8 = "OpenJDK 64-Bit Server VM (25.222-b10) for linux-amd64 JRE (Zulu 8.40.0.25-CA-linux64) (1.8.0_222-b10), built on Jul 11 2019 11:36:39 by \"zulu_re\" with gcc 4.4.7 20120313 (Red Hat 4.4.7-3)";
let java_11 = "OpenJDK 64-Bit Server VM (11.0.4+11-LTS) for linux-amd64 JRE (Zulu11.33+15-CA) (11.0.4+11-LTS), built on Jul 11 2019 21:37:17 by \"zulu_re\" with gcc 4.9.2 20150212 (Red Hat 4.9.2-6)";
- assert_eq!(
- format_java_version(java_8, "v${raw}"),
- Some("v1.8.0".to_string())
- );
- assert_eq!(
- format_java_version(java_11, "v${raw}"),
- Some("v11.0.4".to_string())
- );
+ assert_eq!(parse_java_version(java_8), Some("1.8.0".to_string()));
+ assert_eq!(parse_java_version(java_11), Some("11.0.4".to_string()));
}
#[test]
- fn test_format_java_version_eclipse_openj9() {
+ fn test_parse_java_version_eclipse_openj9() {
let java_8 = "Eclipse OpenJ9 OpenJDK 64-bit Server VM (1.8.0_222-b10) from linux-amd64 JRE with Extensions for OpenJDK for Eclipse OpenJ9 8.0.222.0, built on Jul 17 2019 21:29:18 by jenkins with g++ (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)";
let java_11 = "Eclipse OpenJ9 OpenJDK 64-bit Server VM (11.0.4+11) from linux-amd64 JRE with Extensions for OpenJDK for Eclipse OpenJ9 11.0.4.0, built on Jul 17 2019 21:51:37 by jenkins with g++ (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)";
- assert_eq!(
- format_java_version(java_8, "v${raw}"),
- Some("v1.8.0".to_string())
- );
- assert_eq!(
- format_java_version(java_11, "v${raw}"),
- Some("v11.0.4".to_string())
- );
+ assert_eq!(parse_java_version(java_8), Some("1.8.0".to_string()));
+ assert_eq!(parse_java_version(java_11), Some("11.0.4".to_string()));
}
#[test]
- fn test_format_java_version_graalvm() {
+ fn test_parse_java_version_graalvm() {
let java_8 = "OpenJDK 64-Bit GraalVM CE 19.2.0.1 (25.222-b08-jvmci-19.2-b02) for linux-amd64 JRE (8u222), built on Jul 19 2019 17:37:13 by \"buildslave\" with gcc 7.3.0";
- assert_eq!(
- format_java_version(java_8, "v${raw}"),
- Some("v8".to_string())
- );
+ assert_eq!(parse_java_version(java_8), Some("8".to_string()));
}
#[test]
- fn test_format_java_version_amazon_corretto() {
+ fn test_parse_java_version_amazon_corretto() {
let java_8 = "OpenJDK 64-Bit Server VM (25.222-b10) for linux-amd64 JRE (1.8.0_222-b10), built on Jul 11 2019 20:48:53 by \"root\" with gcc 7.3.1 20180303 (Red Hat 7.3.1-5)";
let java_11 = "OpenJDK 64-Bit Server VM (11.0.4+11-LTS) for linux-amd64 JRE (11.0.4+11-LTS), built on Jul 11 2019 20:06:11 by \"\" with gcc 7.3.1 20180303 (Red Hat 7.3.1-5)";
- assert_eq!(
- format_java_version(java_8, "v${raw}"),
- Some("v1.8.0".to_string())
- );
- assert_eq!(
- format_java_version(java_11, "v${raw}"),
- Some("v11.0.4".to_string())
- );
+ assert_eq!(parse_java_version(java_8), Some("1.8.0".to_string()));
+ assert_eq!(parse_java_version(java_11), Some("11.0.4".to_string()));
}
#[test]
- fn test_format_java_version_sapmachine() {
+ fn test_parse_java_version_sapmachine() {
let java_11 = "OpenJDK 64-Bit Server VM (11.0.4+11-LTS-sapmachine) for linux-amd64 JRE (11.0.4+11-LTS-sapmachine), built on Jul 17 2019 08:58:43 by \"\" with gcc 7.3.0";
- assert_eq!(
- format_java_version(java_11, "v${raw}"),
- Some("v11.0.4".to_string())
- );
+ assert_eq!(parse_java_version(java_11), Some("11.0.4".to_string()));
}
#[test]
- fn test_format_java_version_unknown() {
+ fn test_parse_java_version_unknown() {
let unknown_jre = "Unknown JRE";
- assert_eq!(format_java_version(unknown_jre, "v${raw}"), None);
+ assert_eq!(parse_java_version(unknown_jre), None);
}
#[test]