40 import java.util.List;
41
42 public class ReadFileOnPath {
43
44 private static final Path SRC_DIR = Paths.get(System.getProperty("test.src"));
45 private static final Path HERE_DIR = Paths.get(".");
46 private static final Path MODS_DIR = Paths.get("modules");
47
48 public static void main(String args[]) throws Exception {
49 CompilerUtils.compile(SRC_DIR.resolve("m"), MODS_DIR.resolve("m"));
50 Files.write(MODS_DIR.resolve("m/base"), "base".getBytes());
51 Files.write(MODS_DIR.resolve("m/p/child"), "child".getBytes());
52 JarUtils.createJarFile(HERE_DIR.resolve("old.jar"),
53 MODS_DIR.resolve("m"),
54 "base", "p/App.class", "p/child");
55 JarUtils.createJarFile(HERE_DIR.resolve("new.jar"),
56 MODS_DIR.resolve("m"),
57 "module-info.class", "base", "p/App.class", "p/child");
58
59 // exploded module
60 test("--module-path", "modules", "-m", "m/p.App", "SS+++++");
61
62 // module in jar
63 test("--module-path", "new.jar", "-m", "m/p.App", "SSSS++0");
64
65 // exploded classpath
66 test("-cp", "modules/m", "p.App", "SS+++++");
67
68 // classpath in jar
69 test("-cp", "old.jar", "p.App", "SSSS++0");
70 }
71
72 static void test(String... args) throws Exception {
73 List<String> cmds = new ArrayList<>();
74 cmds.add("-Djava.security.manager");
75 cmds.addAll(Arrays.asList(args));
76 cmds.addAll(List.of(
77 "x", "modules/m", "modules/m/base", "modules/m/p/child",
78 "-", "child", "/base", "../base"));
79 ProcessTools.executeTestJvm(cmds.toArray(new String[cmds.size()]))
80 .shouldHaveExitValue(0);
|
40 import java.util.List;
41
42 public class ReadFileOnPath {
43
44 private static final Path SRC_DIR = Paths.get(System.getProperty("test.src"));
45 private static final Path HERE_DIR = Paths.get(".");
46 private static final Path MODS_DIR = Paths.get("modules");
47
48 public static void main(String args[]) throws Exception {
49 CompilerUtils.compile(SRC_DIR.resolve("m"), MODS_DIR.resolve("m"));
50 Files.write(MODS_DIR.resolve("m/base"), "base".getBytes());
51 Files.write(MODS_DIR.resolve("m/p/child"), "child".getBytes());
52 JarUtils.createJarFile(HERE_DIR.resolve("old.jar"),
53 MODS_DIR.resolve("m"),
54 "base", "p/App.class", "p/child");
55 JarUtils.createJarFile(HERE_DIR.resolve("new.jar"),
56 MODS_DIR.resolve("m"),
57 "module-info.class", "base", "p/App.class", "p/child");
58
59 // exploded module
60 test("--module-path", "modules", "-m", "m/p.App", "SS++++0");
61
62 // module in jar
63 test("--module-path", "new.jar", "-m", "m/p.App", "SSSS++0");
64
65 // exploded classpath
66 test("-cp", "modules/m", "p.App", "SS+++++");
67
68 // classpath in jar
69 test("-cp", "old.jar", "p.App", "SSSS++0");
70 }
71
72 static void test(String... args) throws Exception {
73 List<String> cmds = new ArrayList<>();
74 cmds.add("-Djava.security.manager");
75 cmds.addAll(Arrays.asList(args));
76 cmds.addAll(List.of(
77 "x", "modules/m", "modules/m/base", "modules/m/p/child",
78 "-", "child", "/base", "../base"));
79 ProcessTools.executeTestJvm(cmds.toArray(new String[cmds.size()]))
80 .shouldHaveExitValue(0);
|