From 0ec064d957478359bc28cffa7e0c49a5211f0282 Mon Sep 17 00:00:00 2001 From: Benjamin Marwell Date: Wed, 29 Jan 2020 06:44:45 +0100 Subject: [PATCH] fix #839: wrong binary on AIX downloaded --- .../maven/plugins/frontend/lib/Platform.java | 11 +++++++++-- .../maven/plugins/frontend/lib/PlatformTest.java | 12 ++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/Platform.java b/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/Platform.java index 3bdb0296..68d38e43 100644 --- a/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/Platform.java +++ b/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/Platform.java @@ -2,7 +2,7 @@ import java.io.File; -enum Architecture { x86, x64, ppc64le, s390x, arm64, armv7l; +enum Architecture { x86, x64, ppc64le, s390x, arm64, armv7l, ppc, ppc64; public static Architecture guess(){ String arch = System.getProperty("os.arch"); String version = System.getProperty("os.version"); @@ -15,19 +15,24 @@ public static Architecture guess(){ return s390x; } else if (arch.equals("arm") && version.contains("v7")) { return armv7l; + } else if (arch.equals("ppc64")) { + return ppc64; + } else if (arch.equals("ppc")) { + return ppc; } else { return arch.contains("64") ? x64 : x86; } } } -enum OS { Windows, Mac, Linux, SunOS; +enum OS { Windows, Mac, Linux, SunOS, AIX; public static OS guess() { final String osName = System.getProperty("os.name"); return osName.contains("Windows") ? OS.Windows : osName.contains("Mac") ? OS.Mac : osName.contains("SunOS") ? OS.SunOS : + osName.contains("Aix") ? OS.AIX : OS.Linux; } @@ -46,6 +51,8 @@ public String getCodename(){ return "win"; } else if(this == OS.SunOS){ return "sunos"; + } else if(this == OS.AIX){ + return "aix"; } else { return "linux"; } diff --git a/frontend-plugin-core/src/test/java/com/github/eirslett/maven/plugins/frontend/lib/PlatformTest.java b/frontend-plugin-core/src/test/java/com/github/eirslett/maven/plugins/frontend/lib/PlatformTest.java index 81b8cb01..e9af5913 100644 --- a/frontend-plugin-core/src/test/java/com/github/eirslett/maven/plugins/frontend/lib/PlatformTest.java +++ b/frontend-plugin-core/src/test/java/com/github/eirslett/maven/plugins/frontend/lib/PlatformTest.java @@ -81,4 +81,16 @@ public void detect_linux_alpine() throws Exception { assertEquals("https://unofficial-builds.nodejs.org/download/release/", platform.getNodeDownloadRoot()); } + + @Test + public void detect_aix_ppc64() { + mockStatic(OS.class); + mockStatic(Architecture.class); + + when(OS.guess()).thenReturn(OS.AIX); + when(Architecture.guess()).thenReturn(Architecture.ppc64); + + Platform platform = Platform.guess(); + assertEquals("aix-ppc64", platform.getNodeClassifier()); + } }