219 "META-INF/versions/9/p/internal/Bar.class" |
219 "META-INF/versions/9/p/internal/Bar.class" |
220 ); |
220 ); |
221 Assert.assertEquals(actual, expected); |
221 Assert.assertEquals(actual, expected); |
222 } |
222 } |
223 |
223 |
224 // jar tool does two updates, no exported packages, all concealed |
224 // jar tool does two updates, no exported packages, all concealed. |
|
225 // Along with various --describe-module variants |
225 @Test |
226 @Test |
226 public void test5() throws IOException { |
227 public void test5() throws IOException { |
227 // compile the mr10 directory |
228 // compile the mr10 directory |
228 Path source = testsrc.resolve("src").resolve("mr10"); |
229 Path source = testsrc.resolve("src").resolve("mr10"); |
229 Path destination = Paths.get("mr10"); |
230 Path destination = Paths.get("mr10"); |
264 ); |
265 ); |
265 Assert.assertEquals(actual, expected); |
266 Assert.assertEquals(actual, expected); |
266 |
267 |
267 jar("-d --file mr.jar"); |
268 jar("-d --file mr.jar"); |
268 |
269 |
|
270 String uri = (Paths.get("mr.jar")).toUri().toString(); |
|
271 uri = "jar:" + uri + "/!module-info.class"; |
|
272 |
269 actual = lines(outbytes); |
273 actual = lines(outbytes); |
270 expected = Set.of( |
274 expected = Set.of( |
271 "module hi (module-info.class)", |
275 "hi " + uri, |
272 "requires mandated java.base", |
276 "requires java.base mandated", |
273 "contains p", |
277 "contains p", |
274 "contains p.internal" |
278 "contains p.internal" |
275 ); |
279 ); |
276 Assert.assertEquals(actual, expected); |
280 Assert.assertEquals(actual, expected); |
277 |
281 |
302 |
306 |
303 jar("-d --file mr.jar"); |
307 jar("-d --file mr.jar"); |
304 |
308 |
305 actual = lines(outbytes); |
309 actual = lines(outbytes); |
306 expected = Set.of( |
310 expected = Set.of( |
307 "module hi (module-info.class)", |
311 "hi " + uri, |
308 "requires mandated java.base", |
312 "requires java.base mandated", |
309 "contains p", |
313 "contains p", |
310 "contains p.internal", |
314 "contains p.internal", |
311 "contains p.internal.bar" |
315 "contains p.internal.bar" |
312 ); |
316 ); |
313 Assert.assertEquals(actual, expected); |
317 Assert.assertEquals(actual, expected); |
|
318 |
|
319 for (String release : new String[] {"9" , "10", "100", "1000"}) { |
|
320 jar("-d --file mr.jar --release " + release); |
|
321 actual = lines(outbytes); |
|
322 Assert.assertEquals(actual, expected); |
|
323 } |
314 } |
324 } |
315 |
325 |
316 // root and versioned module-info entries have different main-class, version |
326 // root and versioned module-info entries have different main-class, version |
317 // attributes |
327 // attributes |
318 @Test |
328 @Test |
397 |
407 |
398 int rc = jar("--create --file mmr.jar --main-class=p.Main -C test7 . --release 9 -C test7-v9 . --release 10 -C test7-v10 ."); |
408 int rc = jar("--create --file mmr.jar --main-class=p.Main -C test7 . --release 9 -C test7-v9 . --release 10 -C test7-v10 ."); |
399 Assert.assertEquals(rc, 0); |
409 Assert.assertEquals(rc, 0); |
400 |
410 |
401 jar("-d --file=mmr.jar"); |
411 jar("-d --file=mmr.jar"); |
402 System.out.println("-----------------------"); |
412 Set<String> actual = lines(outbytes); |
403 System.out.println( new String(outbytes.toByteArray())); |
413 Set<String> expected = Set.of( |
404 Assert.assertEquals(lines(outbytes), |
414 "releases: 9 10", |
405 Set.of( |
415 "No root module descriptor, specify --release" |
406 "module m1 (META-INF/versions/9/module-info.class)", |
416 ); |
407 "module m1 (META-INF/versions/10/module-info.class)", |
417 Assert.assertEquals(actual, expected); |
408 "requires mandated java.base", |
418 |
409 "exports p", |
419 String uriPrefix = "jar:" + (Paths.get("mmr.jar")).toUri().toString(); |
410 "main-class p.Main")); |
420 |
|
421 jar("-d --file=mmr.jar --release 9"); |
|
422 actual = lines(outbytes); |
|
423 expected = Set.of( |
|
424 "releases: 9 10", |
|
425 "m1 " + uriPrefix + "/!META-INF/versions/9/module-info.class", |
|
426 "requires java.base mandated", |
|
427 "exports p", |
|
428 "main-class p.Main" |
|
429 ); |
|
430 Assert.assertEquals(actual, expected); |
|
431 |
|
432 jar("-d --file=mmr.jar --release 10"); |
|
433 actual = lines(outbytes); |
|
434 expected = Set.of( |
|
435 "releases: 9 10", |
|
436 "m1 " + uriPrefix + "/!META-INF/versions/10/module-info.class", |
|
437 "requires java.base mandated", |
|
438 "exports p", |
|
439 "main-class p.Main" |
|
440 ); |
|
441 Assert.assertEquals(actual, expected); |
|
442 |
|
443 for (String release : new String[] {"11", "12", "15", "100"}) { |
|
444 jar("-d --file mmr.jar --release " + release); |
|
445 actual = lines(outbytes); |
|
446 Assert.assertEquals(actual, expected); |
|
447 } |
411 |
448 |
412 Optional<String> exp = Optional.of("p.Main"); |
449 Optional<String> exp = Optional.of("p.Main"); |
413 try (ZipFile zf = new ZipFile("mmr.jar")) { |
450 try (ZipFile zf = new ZipFile("mmr.jar")) { |
414 Assert.assertTrue(zf.getEntry("module-info.class") == null); |
451 Assert.assertTrue(zf.getEntry("module-info.class") == null); |
415 |
452 |