200 .outdir(classes)
201 .files(m1.resolve("impl").resolve("Impl.java"))
202 .run()
203 .writeAll();
204 }
205
206 @Test
207 public void testAddReadsUnnamedToJavaBase(Path base) throws Exception {
208 Path jar = prepareTestJar(base);
209 Path src = base.resolve("src");
210 Path classes = base.resolve("classes");
211
212 Files.createDirectories(classes);
213
214 tb.writeJavaFiles(src,
215 "package impl; public class Impl { api.Api a; }");
216
217 new JavacTask(tb)
218 .options("--class-path", jar.toString(),
219 "--add-reads", "java.base=ALL-UNNAMED",
220 "-Xmodule:java.base")
221 .outdir(classes)
222 .files(src.resolve("impl").resolve("Impl.java"))
223 .run()
224 .writeAll();
225 }
226
227 @Test
228 public void testAddReadsToJavaBase(Path base) throws Exception {
229 Path src = base.resolve("src");
230 Path classes = base.resolve("classes");
231
232 Files.createDirectories(classes);
233
234 tb.writeJavaFiles(src,
235 "package impl; public class Impl { javax.swing.JButton b; }");
236
237 new JavacTask(tb)
238 .options("--add-modules", "java.desktop",
239 "--add-reads", "java.base=java.desktop",
240 "-Xmodule:java.base")
241 .outdir(classes)
242 .files(findJavaFiles(src))
243 .run()
244 .writeAll();
245 }
246
247 private Path prepareTestJar(Path base) throws Exception {
248 Path legacySrc = base.resolve("legacy-src");
249 tb.writeJavaFiles(legacySrc,
250 "package api; public abstract class Api {}");
251 Path legacyClasses = base.resolve("legacy-classes");
252 Files.createDirectories(legacyClasses);
253
254 String log = new JavacTask(tb)
255 .options()
256 .outdir(legacyClasses)
257 .files(findJavaFiles(legacySrc))
258 .run()
259 .writeAll()
260 .getOutput(Task.OutputKind.DIRECT);
287 Path classes = base.resolve("classes");
288 tb.createDirectories(classes);
289
290 new JavacTask(tb)
291 .options("--module-source-path", src.toString())
292 .outdir(classes)
293 .files(findJavaFiles(src))
294 .run()
295 .writeAll();
296
297 Path unnamedSrc = base.resolve("unnamed-src");
298 Path unnamedClasses = base.resolve("unnamed-classes");
299
300 Files.createDirectories(unnamedClasses);
301
302 tb.writeJavaFiles(unnamedSrc,
303 "package impl; public class Impl { }");
304
305 new JavacTask(tb)
306 .options("--add-reads", "m1x=ALL-UNNAMED",
307 "-Xmodule:m1x",
308 "--module-path", classes.toString())
309 .outdir(unnamedClasses)
310 .files(findJavaFiles(unnamedSrc))
311 .run()
312 .writeAll();
313 }
314
315 @Test
316 public void testAddSelf(Path base) throws Exception {
317 Path src = base.resolve("src");
318 Path src_m1 = src.resolve("m1x");
319 tb.writeJavaFiles(src_m1,
320 "module m1x { exports p1; }",
321 "package p1; public class C1 { }");
322 Path classes = base.resolve("classes");
323 tb.createDirectories(classes);
324
325 new JavacTask(tb)
326 .options("--module-source-path", src.toString(),
327 "--add-reads", "m1x=m1x")
|
200 .outdir(classes)
201 .files(m1.resolve("impl").resolve("Impl.java"))
202 .run()
203 .writeAll();
204 }
205
206 @Test
207 public void testAddReadsUnnamedToJavaBase(Path base) throws Exception {
208 Path jar = prepareTestJar(base);
209 Path src = base.resolve("src");
210 Path classes = base.resolve("classes");
211
212 Files.createDirectories(classes);
213
214 tb.writeJavaFiles(src,
215 "package impl; public class Impl { api.Api a; }");
216
217 new JavacTask(tb)
218 .options("--class-path", jar.toString(),
219 "--add-reads", "java.base=ALL-UNNAMED",
220 "--patch-module", "java.base=" + src.toString())
221 .outdir(classes)
222 .files(src.resolve("impl").resolve("Impl.java"))
223 .run()
224 .writeAll();
225 }
226
227 @Test
228 public void testAddReadsToJavaBase(Path base) throws Exception {
229 Path src = base.resolve("src");
230 Path classes = base.resolve("classes");
231
232 Files.createDirectories(classes);
233
234 tb.writeJavaFiles(src,
235 "package impl; public class Impl { javax.swing.JButton b; }");
236
237 new JavacTask(tb)
238 .options("--add-modules", "java.desktop",
239 "--add-reads", "java.base=java.desktop",
240 "--patch-module", "java.base=" + src)
241 .outdir(classes)
242 .files(findJavaFiles(src))
243 .run()
244 .writeAll();
245 }
246
247 private Path prepareTestJar(Path base) throws Exception {
248 Path legacySrc = base.resolve("legacy-src");
249 tb.writeJavaFiles(legacySrc,
250 "package api; public abstract class Api {}");
251 Path legacyClasses = base.resolve("legacy-classes");
252 Files.createDirectories(legacyClasses);
253
254 String log = new JavacTask(tb)
255 .options()
256 .outdir(legacyClasses)
257 .files(findJavaFiles(legacySrc))
258 .run()
259 .writeAll()
260 .getOutput(Task.OutputKind.DIRECT);
287 Path classes = base.resolve("classes");
288 tb.createDirectories(classes);
289
290 new JavacTask(tb)
291 .options("--module-source-path", src.toString())
292 .outdir(classes)
293 .files(findJavaFiles(src))
294 .run()
295 .writeAll();
296
297 Path unnamedSrc = base.resolve("unnamed-src");
298 Path unnamedClasses = base.resolve("unnamed-classes");
299
300 Files.createDirectories(unnamedClasses);
301
302 tb.writeJavaFiles(unnamedSrc,
303 "package impl; public class Impl { }");
304
305 new JavacTask(tb)
306 .options("--add-reads", "m1x=ALL-UNNAMED",
307 "--patch-module", "m1x=" + unnamedSrc.toString(),
308 "--module-path", classes.toString())
309 .outdir(unnamedClasses)
310 .files(findJavaFiles(unnamedSrc))
311 .run()
312 .writeAll();
313 }
314
315 @Test
316 public void testAddSelf(Path base) throws Exception {
317 Path src = base.resolve("src");
318 Path src_m1 = src.resolve("m1x");
319 tb.writeJavaFiles(src_m1,
320 "module m1x { exports p1; }",
321 "package p1; public class C1 { }");
322 Path classes = base.resolve("classes");
323 tb.createDirectories(classes);
324
325 new JavacTask(tb)
326 .options("--module-source-path", src.toString(),
327 "--add-reads", "m1x=m1x")
|