< prev index next >

tests/system/src/test/java/test/util/Util.java

Print this page

        

*** 177,212 **** String testPolicy) throws IOException { final String classpath = System.getProperty("java.class.path"); final String libraryPath = System.getProperty("java.library.path"); final String workerJavaCmd = System.getProperty("worker.java.cmd"); final Boolean workerDebug = Boolean.getBoolean("worker.debug"); final ArrayList<String> cmd = new ArrayList<>(30); if (workerJavaCmd != null) { cmd.add(workerJavaCmd); } else { cmd.add("java"); } String jfxdir = getJfxrtDir(classpath); Assert.assertNotNull("failed to find jfxdir",jfxdir); ! cmd.add("-Xbootclasspath/a:" + jfxdir + "/" + "jfxrt.jar"); cmd.add("-cp"); cmd.add(classpath); if (testPldrName != null) { cmd.add("-Djavafx.preloader=" + testPldrName); } if (testPolicy != null) { cmd.add("-Djava.security.manager"); cmd.add("-Djava.security.policy=" + testPolicy); } cmd.add(testAppName); if (workerDebug) { System.err.println("Child cmd is"); --- 177,278 ---- String testPolicy) throws IOException { final String classpath = System.getProperty("java.class.path"); final String libraryPath = System.getProperty("java.library.path"); + /* + * note: the "worker" properties are tied into build.gradle and a + * the related GradleJUnitWorker as a workaround until the build + * is fully converted to a modular build + */ + final Boolean isJDK9 = Boolean.getBoolean("worker.isJDK9"); final String workerJavaCmd = System.getProperty("worker.java.cmd"); + final String workerPatch = System.getProperty("worker.xpatch.dir"); + final String workerPatchPolicy = System.getProperty("worker.patch.policy"); + final String workerClassPath = System.getProperty("worker.classpath.file"); final Boolean workerDebug = Boolean.getBoolean("worker.debug"); final ArrayList<String> cmd = new ArrayList<>(30); if (workerJavaCmd != null) { cmd.add(workerJavaCmd); } else { cmd.add("java"); } + if (isJDK9 && workerPatch != null) { + cmd.add("-Xpatch:" + workerPatch); + } else { String jfxdir = getJfxrtDir(classpath); Assert.assertNotNull("failed to find jfxdir",jfxdir); ! cmd.add("-Djava.ext.dirs=" + jfxdir); ! } + // This is a "minimum" set, rather than the full @addExports + if (isJDK9) { + cmd.add("-XaddExports:javafx.graphics/com.sun.javafx.application=ALL-UNNAMED"); + } + + if (isJDK9 && libraryPath != null) { + // needed for use with Xpatch but not otherwise + cmd.add("-Djava.library.path=" + libraryPath); + } + + if (isJDK9 && workerClassPath != null) { + cmd.add("@" + workerClassPath); + } else { cmd.add("-cp"); cmd.add(classpath); + } if (testPldrName != null) { cmd.add("-Djavafx.preloader=" + testPldrName); } if (testPolicy != null) { + cmd.add("-Djava.security.manager"); + + try { + if (workerPatchPolicy != null) { + // with Jake, we need to create a merged java.policy + // file that contains the permissions for the Xpatch classes + // as well as the permissions needed for this test + + File tempFile = File.createTempFile("java", "policy"); + tempFile.deleteOnExit(); + + File wpp = new File(workerPatchPolicy); + if (!wpp.exists()) { + throw new RuntimeException("Missing workerPatchPolicy"); + } + BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile)); + + BufferedReader reader1 = new BufferedReader(new FileReader(wpp)); + URL url = new URL(testPolicy); + BufferedReader reader2 = new BufferedReader(new FileReader(url.getFile())); + + String line = null; + while ((line = reader1.readLine()) != null) { + writer.write(line); + writer.newLine(); + } + while ((line = reader2.readLine()) != null) { + writer.write(line); + writer.newLine(); + } + writer.close(); + cmd.add("-Djava.security.policy=" + + tempFile.getAbsolutePath().replaceAll("\\\\","/")); + } else { cmd.add("-Djava.security.policy=" + testPolicy); } + } catch (IOException e) { + throw e; + } + + } cmd.add(testAppName); if (workerDebug) { System.err.println("Child cmd is");
< prev index next >