diff --git a/makefile b/makefile index 8ee20d2e..882e3950 100644 --- a/makefile +++ b/makefile @@ -38,8 +38,16 @@ endif UNAME := uname UNAME_OS := $(shell $(UNAME) -s | cut -f1 -d_) +$(info UNAME_OS is $(UNAME_OS)) ifeq ($(findstring CYGWIN,$(UNAME_OS)), CYGWIN) LIB_DIR:=$(shell cygpath -w $(LIB_DIR)) +else ifeq ($(UNAME_OS),OS/390) +# The issue is still being investigated. See backlog/issues/1424 +# set -Dfile.encoding=IBM-1047 for JDK21+ zOS for now +ifeq ($(shell test $(JDK_VERSION) -ge 21; echo $$?),0) +export IBM_JAVA_OPTIONS="-Dfile.encoding=IBM-1047" +$(info export IBM_JAVA_OPTIONS="-Dfile.encoding=IBM-1047") +endif endif export LIB_DIR:=$(subst \,/,$(LIB_DIR)) diff --git a/src/org/openj9/envInfo/EnvDetector.java b/src/org/openj9/envInfo/EnvDetector.java index 67d93cc1..391bf8cf 100644 --- a/src/org/openj9/envInfo/EnvDetector.java +++ b/src/org/openj9/envInfo/EnvDetector.java @@ -14,8 +14,10 @@ package org.openj9.envInfo; +import java.io.FileOutputStream; +import java.io.OutputStreamWriter; import java.io.IOException; -import java.io.Writer; +import java.io.BufferedWriter; public class EnvDetector { static boolean isMachineInfo = false; @@ -78,9 +80,9 @@ private static void getJavaInfo() { /** * autoGenEnv.mk file will be created to store auto detected java info. */ - Writer output = null; + BufferedWriter output = null; try { - output = Utility.getWriterObject(javaVersionInfo, SPECInfo, "autoGenEnv.mk"); + output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("autoGenEnv.mk"))); output.write("########################################################\n"); output.write("# This is an auto generated file. Please do NOT modify!\n"); output.write("########################################################\n"); @@ -92,7 +94,7 @@ private static void getJavaInfo() { output.write(JDK_VENDOR); output.write(TEST_FLAG); output.close(); - output = Utility.getWriterObject(javaVersionInfo, SPECInfo, "AQACert.log"); + output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("AQACert.log"))); output.write(JAVA_VERSION); output.write(RELEASE_INFO); output.close(); diff --git a/src/org/openj9/envInfo/Utility.java b/src/org/openj9/envInfo/Utility.java deleted file mode 100644 index 1873d3d8..00000000 --- a/src/org/openj9/envInfo/Utility.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.openj9.envInfo; - -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.nio.charset.Charset; - -public class Utility { - - public static Writer writer; - - public static Writer getWriterObject(int jdkVersion, String SpecInfo, String fileName) { - try { - if (SpecInfo.toLowerCase().contains("zos") && (jdkVersion >= 21)) { - writer = new OutputStreamWriter(new FileOutputStream(fileName, true), Charset.forName("IBM-1047")); - } else { - writer = new FileWriter(fileName, true); - } - } catch(IOException e) { - e.printStackTrace(); - System.exit(1); - } - return writer; - } -} diff --git a/src/org/testKitGen/MkGen.java b/src/org/testKitGen/MkGen.java index 3bf84918..6b4fd335 100644 --- a/src/org/testKitGen/MkGen.java +++ b/src/org/testKitGen/MkGen.java @@ -14,18 +14,14 @@ package org.testKitGen; +import java.io.FileWriter; import java.io.IOException; -import java.io.Writer; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.openj9.envInfo.JavaInfo; -import org.openj9.envInfo.Utility; - public class MkGen { private Arguments arg; - private JavaInfo jInfo; private TestTarget tt; private List dirList; private List subdirs; @@ -34,7 +30,6 @@ public class MkGen { public MkGen(Arguments arg, TestTarget tt, PlaylistInfo pli, String makeFile, List dirList, List subdirs) { this.arg = arg; - this.jInfo = new JavaInfo(); this.tt = tt; this.dirList = dirList; this.subdirs = subdirs; @@ -51,7 +46,7 @@ public void start() { } private void writeVars() { - try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), makeFile)) { + try (FileWriter f = new FileWriter(makeFile)) { String realtiveRoot = ""; int subdirlevel = dirList.size(); if (subdirlevel == 0) { @@ -77,7 +72,7 @@ private void writeVars() { } } - private void writeSingleTest(List testsInPlaylist, TestInfo testInfo, Writer f) throws IOException { + private void writeSingleTest(List testsInPlaylist, TestInfo testInfo, FileWriter f) throws IOException { for (Variation var : testInfo.getVars()) { // Generate make target String testTargetName = var.getSubTestName(); @@ -249,7 +244,7 @@ private void writeSingleTest(List testsInPlaylist, TestInfo testInfo, Wr } private void writeTargets() { - try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), makeFile)) { + try (FileWriter f = new FileWriter(makeFile, true)) { if (!pli.getIncludeList().isEmpty()) { for (String include : pli.getIncludeList()) { f.write("-include " + include + "\n\n"); diff --git a/src/org/testKitGen/ModesDictionary.java b/src/org/testKitGen/ModesDictionary.java index 166cf28a..7ddfa383 100644 --- a/src/org/testKitGen/ModesDictionary.java +++ b/src/org/testKitGen/ModesDictionary.java @@ -29,14 +29,12 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import org.openj9.envInfo.JavaInfo; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class ModesDictionary { private Arguments arg; - private JavaInfo jInfo; private String modesXml; private String ottawaCsv; private Map spec2platMap; @@ -46,7 +44,6 @@ public class ModesDictionary { public ModesDictionary(Arguments arg) { this.arg = arg; - jInfo = new JavaInfo(); modesXml= arg.getProjectRootDir() + "/TKG/" + Constants.MODESXML; ottawaCsv = arg.getProjectRootDir() + "/TKG/" + Constants.OTTAWACSV; spec2platMap = new HashMap(); @@ -101,7 +98,7 @@ private void parseInvalidSpec(Element modes) throws IOException { ArrayList specs = new ArrayList(); int lineNum = 0; BufferedReader reader = null; - if (arg.getSpec().toLowerCase().contains("zos") && !(jInfo.getJDKVersion() >= 21)) { + if (arg.getSpec().toLowerCase().contains("zos")) { reader = Files.newBufferedReader(Paths.get(ottawaCsv), Charset.forName("IBM-1047")); } else { reader = Files.newBufferedReader(Paths.get(ottawaCsv)); diff --git a/src/org/testKitGen/UtilsGen.java b/src/org/testKitGen/UtilsGen.java index cb1ef247..990b4fed 100644 --- a/src/org/testKitGen/UtilsGen.java +++ b/src/org/testKitGen/UtilsGen.java @@ -15,18 +15,13 @@ package org.testKitGen; import java.io.File; +import java.io.FileWriter; import java.io.IOException; -import java.io.Writer; import java.util.List; -import org.openj9.envInfo.JavaInfo; -import org.openj9.envInfo.Utility; - - public class UtilsGen { private Arguments arg; private ModesDictionary md; - private JavaInfo jInfo; private String utilsMk; private String rerunMk; private List ignoreOnRerunList; @@ -34,7 +29,6 @@ public class UtilsGen { public UtilsGen(Arguments arg, ModesDictionary md, List ignoreOnRerunList) { this.arg = arg; this.md = md; - this.jInfo = new JavaInfo(); this.utilsMk = arg.getProjectRootDir() + "/TKG/" + Constants.UTILSMK; this.rerunMk = arg.getProjectRootDir() + "/TKG/" + Constants.RERUNMK; this.ignoreOnRerunList = ignoreOnRerunList; @@ -46,7 +40,7 @@ public void generateFiles() { } private void generateUtil() { - try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), utilsMk)) { + try (FileWriter f = new FileWriter(utilsMk)) { f.write(Constants.HEADERCOMMENTS); f.write("TOTALCOUNT := " + TestInfo.numOfTests() + "\n"); f.write("PLATFORM=\n"); @@ -62,7 +56,7 @@ private void generateUtil() { } private void generateRerun() { - try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), rerunMk)) { + try (FileWriter f = new FileWriter(rerunMk)) { f.write(Constants.HEADERCOMMENTS); String ignoreOnRerunStr = String.join(",", ignoreOnRerunList); f.write("IGNORE_ON_RERUN=");