35 * @run main/othervm -Xbootclasspath/a:. ExpUnqual |
35 * @run main/othervm -Xbootclasspath/a:. ExpUnqual |
36 */ |
36 */ |
37 |
37 |
38 import static jdk.test.lib.Asserts.*; |
38 import static jdk.test.lib.Asserts.*; |
39 |
39 |
40 import java.lang.reflect.Layer; |
|
41 import java.lang.module.Configuration; |
40 import java.lang.module.Configuration; |
42 import java.lang.module.ModuleDescriptor; |
41 import java.lang.module.ModuleDescriptor; |
43 import java.lang.module.ModuleFinder; |
42 import java.lang.module.ModuleFinder; |
44 import java.util.HashMap; |
43 import java.util.HashMap; |
45 import java.util.Map; |
44 import java.util.Map; |
46 import java.util.Set; |
45 import java.util.Set; |
47 import myloaders.MySameClassLoader; |
46 import myloaders.MySameClassLoader; |
48 |
47 |
49 public class ExpUnqual { |
48 public class ExpUnqual { |
50 |
49 |
51 // Create a Layer over the boot layer. |
50 // Create a layer over the boot layer. |
52 // Define modules within this layer to test access between |
51 // Define modules within this layer to test access between |
53 // publically defined classes within packages of those modules. |
52 // publically defined classes within packages of those modules. |
54 public void createLayerOnBoot() throws Throwable { |
53 public void createLayerOnBoot() throws Throwable { |
55 |
54 |
56 // Define module: m1x |
55 // Define module: m1x |
76 |
75 |
77 // Set up a ModuleFinder containing all modules for this layer. |
76 // Set up a ModuleFinder containing all modules for this layer. |
78 ModuleFinder finder = ModuleLibrary.of(descriptor_m1x, descriptor_m2x); |
77 ModuleFinder finder = ModuleLibrary.of(descriptor_m1x, descriptor_m2x); |
79 |
78 |
80 // Resolves "m1x" |
79 // Resolves "m1x" |
81 Configuration cf = Layer.boot() |
80 Configuration cf = ModuleLayer.boot() |
82 .configuration() |
81 .configuration() |
83 .resolve(finder, ModuleFinder.of(), Set.of("m1x")); |
82 .resolve(finder, ModuleFinder.of(), Set.of("m1x")); |
84 |
83 |
85 // map each module to the same class loader for this test |
84 // map each module to the same class loader for this test |
86 Map<String, ClassLoader> map = new HashMap<>(); |
85 Map<String, ClassLoader> map = new HashMap<>(); |
87 map.put("m1x", MySameClassLoader.loader1); |
86 map.put("m1x", MySameClassLoader.loader1); |
88 map.put("m2x", MySameClassLoader.loader1); |
87 map.put("m2x", MySameClassLoader.loader1); |
89 |
88 |
90 // Create Layer that contains m1x & m2x |
89 // Create layer that contains m1x & m2x |
91 Layer layer = Layer.boot().defineModules(cf, map::get); |
90 ModuleLayer layer = ModuleLayer.boot().defineModules(cf, map::get); |
92 |
91 |
93 assertTrue(layer.findLoader("m1x") == MySameClassLoader.loader1); |
92 assertTrue(layer.findLoader("m1x") == MySameClassLoader.loader1); |
94 assertTrue(layer.findLoader("m2x") == MySameClassLoader.loader1); |
93 assertTrue(layer.findLoader("m2x") == MySameClassLoader.loader1); |
95 |
94 |
96 // now use the same loader to load class p1.c1 |
95 // now use the same loader to load class p1.c1 |