Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove IBM-1047 export option and generate makefiles in IBM-1047 encoding for JDK21 on z/OS #608

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,8 @@ 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))
Expand Down
10 changes: 4 additions & 6 deletions src/org/openj9/envInfo/EnvDetector.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@

package org.openj9.envInfo;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.Writer;

public class EnvDetector {
static boolean isMachineInfo = false;
Expand Down Expand Up @@ -80,9 +78,9 @@ private static void getJavaInfo() {
/**
* autoGenEnv.mk file will be created to store auto detected java info.
*/
BufferedWriter output = null;
Writer output = null;
try {
output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("autoGenEnv.mk")));
output = Utility.getWriterObject(javaVersionInfo, SPECInfo, "autoGenEnv.mk");
output.write("########################################################\n");
output.write("# This is an auto generated file. Please do NOT modify!\n");
output.write("########################################################\n");
Expand All @@ -94,7 +92,7 @@ private static void getJavaInfo() {
output.write(JDK_VENDOR);
output.write(TEST_FLAG);
output.close();
output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("AQACert.log")));
output = Utility.getWriterObject(javaVersionInfo, SPECInfo, "AQACert.log");
output.write(JAVA_VERSION);
output.write(RELEASE_INFO);
output.close();
Expand Down
27 changes: 27 additions & 0 deletions src/org/openj9/envInfo/Utility.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
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;
}
}
13 changes: 9 additions & 4 deletions src/org/testKitGen/MkGen.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,18 @@

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<String> dirList;
private List<String> subdirs;
Expand All @@ -30,6 +34,7 @@ public class MkGen {

public MkGen(Arguments arg, TestTarget tt, PlaylistInfo pli, String makeFile, List<String> dirList, List<String> subdirs) {
this.arg = arg;
this.jInfo = new JavaInfo();
this.tt = tt;
this.dirList = dirList;
this.subdirs = subdirs;
Expand All @@ -46,7 +51,7 @@ public void start() {
}

private void writeVars() {
try (FileWriter f = new FileWriter(makeFile)) {
try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), makeFile)) {
String realtiveRoot = "";
int subdirlevel = dirList.size();
if (subdirlevel == 0) {
Expand All @@ -72,7 +77,7 @@ private void writeVars() {
}
}

private void writeSingleTest(List<String> testsInPlaylist, TestInfo testInfo, FileWriter f) throws IOException {
private void writeSingleTest(List<String> testsInPlaylist, TestInfo testInfo, Writer f) throws IOException {
for (Variation var : testInfo.getVars()) {
// Generate make target
String testTargetName = var.getSubTestName();
Expand Down Expand Up @@ -227,7 +232,7 @@ private void writeSingleTest(List<String> testsInPlaylist, TestInfo testInfo, Fi
}

private void writeTargets() {
try (FileWriter f = new FileWriter(makeFile, true)) {
try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), makeFile)) {
if (!pli.getIncludeList().isEmpty()) {
for (String include : pli.getIncludeList()) {
f.write("-include " + include + "\n\n");
Expand Down
5 changes: 4 additions & 1 deletion src/org/testKitGen/ModesDictionary.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@
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<String, String> spec2platMap;
Expand All @@ -44,6 +46,7 @@ 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<String, String>();
Expand Down Expand Up @@ -98,7 +101,7 @@ private void parseInvalidSpec(Element modes) throws IOException {
ArrayList<String> specs = new ArrayList<String>();
int lineNum = 0;
BufferedReader reader = null;
if (arg.getSpec().toLowerCase().contains("zos")) {
if (arg.getSpec().toLowerCase().contains("zos") && !(jInfo.getJDKVersion() >= 21)) {
reader = Files.newBufferedReader(Paths.get(ottawaCsv), Charset.forName("IBM-1047"));
} else {
reader = Files.newBufferedReader(Paths.get(ottawaCsv));
Expand Down
12 changes: 9 additions & 3 deletions src/org/testKitGen/UtilsGen.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,26 @@
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<String> ignoreOnRerunList;

public UtilsGen(Arguments arg, ModesDictionary md, List<String> 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;
Expand All @@ -40,7 +46,7 @@ public void generateFiles() {
}

private void generateUtil() {
try (FileWriter f = new FileWriter(utilsMk)) {
try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), utilsMk)) {
f.write(Constants.HEADERCOMMENTS);
f.write("TOTALCOUNT := " + TestInfo.numOfTests() + "\n");
f.write("PLATFORM=\n");
Expand All @@ -56,7 +62,7 @@ private void generateUtil() {
}

private void generateRerun() {
try (FileWriter f = new FileWriter(rerunMk)) {
try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), rerunMk)) {
f.write(Constants.HEADERCOMMENTS);
String ignoreOnRerunStr = String.join(",", ignoreOnRerunList);
f.write("IGNORE_ON_RERUN=");
Expand Down
Loading