< prev index next >

test/tools/javac/modules/RequiresStaticTest.java

Print this page

        

*** 144,275 **** } } /* * Set up the following module graph ! * m1 -> m2 => m3 -=-> m4 --> m5 * \ / * \ / * v v ! * m6 => m7 --> m8 * where -> is requires, => is requires transitive, --> is requires static, -=-> is requires transitive static */ Path getComplexSrc(Path base, String m1_extraImports, String m1_extraUses) throws Exception { Path src = base.resolve("src"); ! Path src_m1 = src.resolve("m1"); tb.writeJavaFiles(src_m1, ! "module m1 { requires m2; }", "package p1;\n" + "import p2.C2;\n" + "import p3.C3;\n" + "import p4.C4;\n" + m1_extraImports + "class C1 {\n" + " C2 c2; C3 c3; C4 c4;\n" + m1_extraUses + "}\n"); ! Path src_m2 = src.resolve("m2"); tb.writeJavaFiles(src_m2, ! "module m2 {\n" ! + " requires transitive m3;\n" ! + " requires static m6;\n" + " exports p2;\n" + "}", "package p2;\n" + "public class C2 {p7.C7 c7; p6.C6 c6; p4.C4 c4;}\n"); ! Path src_m3 = src.resolve("m3"); tb.writeJavaFiles(src_m3, ! "module m3 { requires transitive static m4; exports p3; }", "package p3;\n" + "public class C3 { }\n"); ! Path src_m4 = src.resolve("m4"); tb.writeJavaFiles(src_m4, ! "module m4 { requires m5; requires static m6; exports p4; }", "package p4;\n" + "public class C4 { p6.C6 c6; p7.C7 c7;}\n"); ! Path src_m5 = src.resolve("m5"); tb.writeJavaFiles(src_m5, ! "module m5 { exports p5; }", "package p5;\n" + "public class C5 { }\n"); ! Path src_m6 = src.resolve("m6"); tb.writeJavaFiles(src_m6, ! "module m6 { requires transitive m7; exports p6; }", "package p6;\n" + "public class C6 { p7.C7 c7; }\n"); ! Path src_m7 = src.resolve("m7"); tb.writeJavaFiles(src_m7, ! "module m7 { requires static m8; exports p7; }", "package p7;\n" + "public class C7 { p8.C8 c8; }\n"); ! Path src_m8 = src.resolve("m8"); tb.writeJavaFiles(src_m8, ! "module m8 { exports p8; }", "package p8;\n" + "public class C8 { }\n"); return src; } @Test public void testRequiresStatic(Path base) throws Exception { Path src = base.resolve("src"); ! Path m1 = src.resolve("m1"); tb.writeJavaFiles(m1, ! "module m1 { exports m1; }", ! "package m1;" + "public class Api { }\n"); Path classes = base.resolve("classes"); ! Path m1Classes = classes.resolve("m1"); Files.createDirectories(m1Classes); new JavacTask(tb, Task.Mode.CMDLINE) .files(findJavaFiles(m1)) .outdir(m1Classes) .run() .writeAll(); ! Path m3 = src.resolve("m3"); tb.writeJavaFiles(m3, ! "module m3 { requires static m1; }", ! "package m3;\n" + "public class Test {\n" + " public static void main(String... args) {\n" + " try {\n" + ! " Class.forName(\"m1.Api\");\n" + " } catch (ClassNotFoundException e) {\n" + " System.err.println(\"ok\");\n" + " }\n" + " }\n" + "}", ! "package m3;\n" + "public class ApiUse{\n" + ! " m1.Api api;\n" + "}"); ! Path m3Classes = classes.resolve("m3"); Files.createDirectories(m3Classes); new JavacTask(tb, Task.Mode.CMDLINE) .options("--module-path", m1Classes.toString()) .files(findJavaFiles(m3)) .outdir(m3Classes) .run() .writeAll(); String log = new JavaTask(tb) ! .vmOptions("--module-path", m3Classes.toString(), "--add-modules", "m3") ! .className("m3.Test") .run() .writeAll() .getOutput(OutputKind.STDERR); String expected = "ok" + System.getProperty("line.separator"); --- 144,275 ---- } } /* * Set up the following module graph ! * m1x -> m2x => m3x -=-> m4x --> m5 * \ / * \ / * v v ! * m6x => m7x --> m8 * where -> is requires, => is requires transitive, --> is requires static, -=-> is requires transitive static */ Path getComplexSrc(Path base, String m1_extraImports, String m1_extraUses) throws Exception { Path src = base.resolve("src"); ! Path src_m1 = src.resolve("m1x"); tb.writeJavaFiles(src_m1, ! "module m1x { requires m2x; }", "package p1;\n" + "import p2.C2;\n" + "import p3.C3;\n" + "import p4.C4;\n" + m1_extraImports + "class C1 {\n" + " C2 c2; C3 c3; C4 c4;\n" + m1_extraUses + "}\n"); ! Path src_m2 = src.resolve("m2x"); tb.writeJavaFiles(src_m2, ! "module m2x {\n" ! + " requires transitive m3x;\n" ! + " requires static m6x;\n" + " exports p2;\n" + "}", "package p2;\n" + "public class C2 {p7.C7 c7; p6.C6 c6; p4.C4 c4;}\n"); ! Path src_m3 = src.resolve("m3x"); tb.writeJavaFiles(src_m3, ! "module m3x { requires transitive static m4x; exports p3; }", "package p3;\n" + "public class C3 { }\n"); ! Path src_m4 = src.resolve("m4x"); tb.writeJavaFiles(src_m4, ! "module m4x { requires m5x; requires static m6x; exports p4; }", "package p4;\n" + "public class C4 { p6.C6 c6; p7.C7 c7;}\n"); ! Path src_m5 = src.resolve("m5x"); tb.writeJavaFiles(src_m5, ! "module m5x { exports p5; }", "package p5;\n" + "public class C5 { }\n"); ! Path src_m6 = src.resolve("m6x"); tb.writeJavaFiles(src_m6, ! "module m6x { requires transitive m7x; exports p6; }", "package p6;\n" + "public class C6 { p7.C7 c7; }\n"); ! Path src_m7 = src.resolve("m7x"); tb.writeJavaFiles(src_m7, ! "module m7x { requires static m8x; exports p7; }", "package p7;\n" + "public class C7 { p8.C8 c8; }\n"); ! Path src_m8 = src.resolve("m8x"); tb.writeJavaFiles(src_m8, ! "module m8x { exports p8; }", "package p8;\n" + "public class C8 { }\n"); return src; } @Test public void testRequiresStatic(Path base) throws Exception { Path src = base.resolve("src"); ! Path m1 = src.resolve("m1x"); tb.writeJavaFiles(m1, ! "module m1x { exports m1x; }", ! "package m1x;" + "public class Api { }\n"); Path classes = base.resolve("classes"); ! Path m1Classes = classes.resolve("m1x"); Files.createDirectories(m1Classes); new JavacTask(tb, Task.Mode.CMDLINE) .files(findJavaFiles(m1)) .outdir(m1Classes) .run() .writeAll(); ! Path m3 = src.resolve("m3x"); tb.writeJavaFiles(m3, ! "module m3x { requires static m1x; }", ! "package m3x;\n" + "public class Test {\n" + " public static void main(String... args) {\n" + " try {\n" + ! " Class.forName(\"m1x.Api\");\n" + " } catch (ClassNotFoundException e) {\n" + " System.err.println(\"ok\");\n" + " }\n" + " }\n" + "}", ! "package m3x;\n" + "public class ApiUse{\n" + ! " m1x.Api api;\n" + "}"); ! Path m3Classes = classes.resolve("m3x"); Files.createDirectories(m3Classes); new JavacTask(tb, Task.Mode.CMDLINE) .options("--module-path", m1Classes.toString()) .files(findJavaFiles(m3)) .outdir(m3Classes) .run() .writeAll(); String log = new JavaTask(tb) ! .vmOptions("--module-path", m3Classes.toString(), "--add-modules", "m3x") ! .className("m3x.Test") .run() .writeAll() .getOutput(OutputKind.STDERR); String expected = "ok" + System.getProperty("line.separator");
*** 280,338 **** } @Test public void testRequiresTransitiveStatic(Path base) throws Exception { Path src = base.resolve("src"); ! Path m1 = src.resolve("m1"); tb.writeJavaFiles(m1, ! "module m1 { exports m1; }", ! "package m1;" + "public class Api { }\n"); Path classes = base.resolve("classes"); ! Path m1Classes = classes.resolve("m1"); Files.createDirectories(m1Classes); new JavacTask(tb, Task.Mode.CMDLINE) .files(findJavaFiles(m1)) .outdir(m1Classes) .run() .writeAll(); ! Path m2 = src.resolve("m2"); tb.writeJavaFiles(m2, ! "module m2 { requires transitive static m1; }"); ! Path m2Classes = classes.resolve("m2"); Files.createDirectories(m2Classes); new JavacTask(tb, Task.Mode.CMDLINE) .options("--module-path", m1Classes.toString()) .files(findJavaFiles(m2)) .outdir(m2Classes) .run() .writeAll(); ! Path m3 = src.resolve("m3"); tb.writeJavaFiles(m3, ! "module m3 { requires m2; }", ! "package m3;\n" + "public class Test {\n" + " public static void main(String... args) {\n" + " try {\n" + ! " Class.forName(\"m1.Api\");\n" + " } catch (ClassNotFoundException e) {\n" + " System.err.println(\"ok\");\n" + " }\n" + " }\n" + "}", ! "package m3;\n" + "public class ApiUse{\n" + ! " m1.Api api;\n" + "}"); ! Path m3Classes = classes.resolve("m3"); Files.createDirectories(m3Classes); new JavacTask(tb, Task.Mode.CMDLINE) .options("--module-path", m1Classes.toString() + File.pathSeparator + m2Classes.toString()) .files(findJavaFiles(m3)) --- 280,338 ---- } @Test public void testRequiresTransitiveStatic(Path base) throws Exception { Path src = base.resolve("src"); ! Path m1 = src.resolve("m1x"); tb.writeJavaFiles(m1, ! "module m1x { exports m1x; }", ! "package m1x;" + "public class Api { }\n"); Path classes = base.resolve("classes"); ! Path m1Classes = classes.resolve("m1x"); Files.createDirectories(m1Classes); new JavacTask(tb, Task.Mode.CMDLINE) .files(findJavaFiles(m1)) .outdir(m1Classes) .run() .writeAll(); ! Path m2 = src.resolve("m2x"); tb.writeJavaFiles(m2, ! "module m2x { requires transitive static m1x; }"); ! Path m2Classes = classes.resolve("m2x"); Files.createDirectories(m2Classes); new JavacTask(tb, Task.Mode.CMDLINE) .options("--module-path", m1Classes.toString()) .files(findJavaFiles(m2)) .outdir(m2Classes) .run() .writeAll(); ! Path m3 = src.resolve("m3x"); tb.writeJavaFiles(m3, ! "module m3x { requires m2x; }", ! "package m3x;\n" + "public class Test {\n" + " public static void main(String... args) {\n" + " try {\n" + ! " Class.forName(\"m1x.Api\");\n" + " } catch (ClassNotFoundException e) {\n" + " System.err.println(\"ok\");\n" + " }\n" + " }\n" + "}", ! "package m3x;\n" + "public class ApiUse{\n" + ! " m1x.Api api;\n" + "}"); ! Path m3Classes = classes.resolve("m3x"); Files.createDirectories(m3Classes); new JavacTask(tb, Task.Mode.CMDLINE) .options("--module-path", m1Classes.toString() + File.pathSeparator + m2Classes.toString()) .files(findJavaFiles(m3))
*** 340,351 **** .run() .writeAll(); String log = new JavaTask(tb) .vmOptions("--module-path", m2Classes.toString() + File.pathSeparator + m3Classes.toString(), ! "--add-modules", "m3") ! .className("m3.Test") .run() .writeAll() .getOutput(OutputKind.STDERR); String expected = "ok" + System.getProperty("line.separator"); --- 340,351 ---- .run() .writeAll(); String log = new JavaTask(tb) .vmOptions("--module-path", m2Classes.toString() + File.pathSeparator + m3Classes.toString(), ! "--add-modules", "m3x") ! .className("m3x.Test") .run() .writeAll() .getOutput(OutputKind.STDERR); String expected = "ok" + System.getProperty("line.separator");
*** 356,386 **** } @Test public void testRequiresStaticTransitive(Path base) throws Exception { Path src = base.resolve("src"); ! Path m1 = src.resolve("m1"); tb.writeJavaFiles(m1, ! "module m1 { exports m1; }", ! "package m1;" + "public class Api { }\n"); Path classes = base.resolve("classes"); ! Path m1Classes = classes.resolve("m1"); Files.createDirectories(m1Classes); new JavacTask(tb, Task.Mode.CMDLINE) .files(findJavaFiles(m1)) .outdir(m1Classes) .run() .writeAll(); ! Path m2 = src.resolve("m2"); tb.writeJavaFiles(m2, ! "module m2 { requires transitive static m1; }"); ! Path m2Classes = classes.resolve("m2"); Files.createDirectories(m2Classes); new JavacTask(tb, Task.Mode.CMDLINE) .options("--module-path", m1Classes.toString()) .files(findJavaFiles(m2)) --- 356,386 ---- } @Test public void testRequiresStaticTransitive(Path base) throws Exception { Path src = base.resolve("src"); ! Path m1 = src.resolve("m1x"); tb.writeJavaFiles(m1, ! "module m1x { exports m1x; }", ! "package m1x;" + "public class Api { }\n"); Path classes = base.resolve("classes"); ! Path m1Classes = classes.resolve("m1x"); Files.createDirectories(m1Classes); new JavacTask(tb, Task.Mode.CMDLINE) .files(findJavaFiles(m1)) .outdir(m1Classes) .run() .writeAll(); ! Path m2 = src.resolve("m2x"); tb.writeJavaFiles(m2, ! "module m2x { requires transitive static m1x; }"); ! Path m2Classes = classes.resolve("m2x"); Files.createDirectories(m2Classes); new JavacTask(tb, Task.Mode.CMDLINE) .options("--module-path", m1Classes.toString()) .files(findJavaFiles(m2))
< prev index next >