< prev index next >

langtools/test/tools/javac/modules/ServiceProvidedButNotExportedOrUsedTest.java

Print this page




  73         if (!output.containsAll(expected)) {
  74             throw new Exception("Expected output not found");
  75         }
  76     }
  77 
  78     @Test
  79     public void testImplementationMustBeInSameModuleAsProvidesDirective(Path base) throws Exception {
  80         Path src = base.resolve("src");
  81         tb.writeJavaFiles(src.resolve("m1"),
  82                 "module m1 { exports p1; }",
  83                 "package p1; public class C1 { }");
  84         tb.writeJavaFiles(src.resolve("m2"),
  85                 "module m2 { requires m1; requires m3; provides p1.C1 with p2.C2; }");
  86         tb.writeJavaFiles(src.resolve("m3"),
  87                 "module m3 { requires m1; exports p2; }",
  88                 "package p2; public class C2 extends p1.C1 { }");
  89         Path modules = base.resolve("modules");
  90         Files.createDirectories(modules);
  91 
  92         List<String> output = new JavacTask(tb)
  93                 .options("-XDrawDiagnostics", "-modulesourcepath", src.toString())
  94                 .outdir(modules)
  95                 .files(findJavaFiles(src))
  96                 .run(Task.Expect.FAIL)
  97                 .writeAll()
  98                 .getOutputLines(Task.OutputKind.DIRECT);
  99         List<String> expected = Arrays.asList(
 100                 "module-info.java:1:39: compiler.err.service.implementation.not.in.right.module: m3",
 101                 "1 error");
 102         if (!output.containsAll(expected)) {
 103             throw new Exception("Expected output not found");
 104         }
 105     }
 106 }


  73         if (!output.containsAll(expected)) {
  74             throw new Exception("Expected output not found");
  75         }
  76     }
  77 
  78     @Test
  79     public void testImplementationMustBeInSameModuleAsProvidesDirective(Path base) throws Exception {
  80         Path src = base.resolve("src");
  81         tb.writeJavaFiles(src.resolve("m1"),
  82                 "module m1 { exports p1; }",
  83                 "package p1; public class C1 { }");
  84         tb.writeJavaFiles(src.resolve("m2"),
  85                 "module m2 { requires m1; requires m3; provides p1.C1 with p2.C2; }");
  86         tb.writeJavaFiles(src.resolve("m3"),
  87                 "module m3 { requires m1; exports p2; }",
  88                 "package p2; public class C2 extends p1.C1 { }");
  89         Path modules = base.resolve("modules");
  90         Files.createDirectories(modules);
  91 
  92         List<String> output = new JavacTask(tb)
  93                 .options("-XDrawDiagnostics", "--module-source-path", src.toString())
  94                 .outdir(modules)
  95                 .files(findJavaFiles(src))
  96                 .run(Task.Expect.FAIL)
  97                 .writeAll()
  98                 .getOutputLines(Task.OutputKind.DIRECT);
  99         List<String> expected = Arrays.asList(
 100                 "module-info.java:1:39: compiler.err.service.implementation.not.in.right.module: m3",
 101                 "1 error");
 102         if (!output.containsAll(expected)) {
 103             throw new Exception("Expected output not found");
 104         }
 105     }
 106 }
< prev index next >