8169069: Module system implementation refresh (11/2016)

Co-authored-by: Jonathan Gibbons <jonathan.gibbons@oracle.com>
Co-authored-by: Jan Lahoda <jan.lahoda@oracle.com>
Co-authored-by: Mandy Chung <mandy.chung@oracle.com>
Co-authored-by: Bhavesh Patel <bhavesh.x.patel@oracle.com>
Co-authored-by: Andrey Nazarov <andrey.x.nazarov@oracle.com>
Reviewed-by: mcimadamore, jjg, mchung, anazarov
This commit is contained in:
Alan Bateman 2016-12-01 09:02:42 +00:00
parent 51f50b64e5
commit 22e233b2e9
214 changed files with 5453 additions and 1175 deletions

View file

@ -193,7 +193,7 @@ public class AutomaticModules extends ModuleTestBase {
Files.createDirectories(depClasses);
tb.writeJavaFiles(depSrc,
"module m1 { requires public automatic; }",
"module m1 { requires transitive automatic; }",
"package dep; public class Dep { api.Api api; }");
new JavacTask(tb)
@ -261,7 +261,7 @@ public class AutomaticModules extends ModuleTestBase {
Path moduleSrc = base.resolve("module-src");
tb.writeJavaFiles(moduleSrc.resolve("m1"),
"module m1 { requires automaticA; }",
"module m1 { requires static automaticA; }",
"package impl; public class Impl { apiA.Api a; apiB.Api b; m2.M2 m;}");
tb.writeJavaFiles(moduleSrc.resolve("m2"),
@ -308,4 +308,54 @@ public class AutomaticModules extends ModuleTestBase {
throw new Exception("expected output not found: " + log);
}
}
@Test
public void testDropTrailingVersion(Path base) throws Exception {
Path legacySrc = base.resolve("legacy-src");
tb.writeJavaFiles(legacySrc,
"package api; public class Api {}");
Path legacyClasses = base.resolve("legacy-classes");
Files.createDirectories(legacyClasses);
String log = new JavacTask(tb)
.options()
.outdir(legacyClasses)
.files(findJavaFiles(legacySrc))
.run()
.writeAll()
.getOutput(Task.OutputKind.DIRECT);
if (!log.isEmpty()) {
throw new Exception("unexpected output: " + log);
}
Path modulePath = base.resolve("module-path");
Files.createDirectories(modulePath);
Path jar = modulePath.resolve("test1.jar");
new JarTask(tb, jar)
.baseDir(legacyClasses)
.files("api/Api.class")
.run();
Path moduleSrc = base.resolve("module-src");
Path m = moduleSrc.resolve("m");
Path classes = base.resolve("classes");
Files.createDirectories(classes);
tb.writeJavaFiles(m,
"module m { requires test; }",
"package impl; public class Impl { public void e(api.Api api) { } }");
new JavacTask(tb)
.options("--module-source-path", moduleSrc.toString(), "--module-path", modulePath.toString())
.outdir(classes)
.files(findJavaFiles(moduleSrc))
.run()
.writeAll();
}
}