< prev index next >
test/java/lang/reflect/Layer/LayerAndLoadersTest.java
Print this page
*** 79,89 ****
* Test scenario:
* m1 requires m2 and m3
*/
public void testWithOneLoader() throws Exception {
! Configuration cf = resolveRequires("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithOneLoader(cf, scl);
--- 79,89 ----
* Test scenario:
* m1 requires m2 and m3
*/
public void testWithOneLoader() throws Exception {
! Configuration cf = resolve("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithOneLoader(cf, scl);
*** 108,118 ****
* Test scenario:
* m1 requires m2 and m3
*/
public void testWithManyLoaders() throws Exception {
! Configuration cf = resolveRequires("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithManyLoaders(cf, scl);
--- 108,118 ----
* Test scenario:
* m1 requires m2 and m3
*/
public void testWithManyLoaders() throws Exception {
! Configuration cf = resolve("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithManyLoaders(cf, scl);
*** 143,153 ****
* m1 uses S
* m4 provides S with ...
*/
public void testServicesWithOneLoader() throws Exception {
! Configuration cf = resolveRequiresAndUses("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithOneLoader(cf, scl);
--- 143,153 ----
* m1 uses S
* m4 provides S with ...
*/
public void testServicesWithOneLoader() throws Exception {
! Configuration cf = resolveAndBind("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithOneLoader(cf, scl);
*** 184,194 ****
* m1 uses S
* m4 provides S with ...
*/
public void testServicesWithManyLoaders() throws Exception {
! Configuration cf = resolveRequiresAndUses("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithManyLoaders(cf, scl);
--- 184,194 ----
* m1 uses S
* m4 provides S with ...
*/
public void testServicesWithManyLoaders() throws Exception {
! Configuration cf = resolveAndBind("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithManyLoaders(cf, scl);
*** 231,241 ****
* Tests that the class loaders created by defineModulesWithXXX delegate
* to the given parent class loader.
*/
public void testDelegationToParent() throws Exception {
! Configuration cf = resolveRequires("m1");
ClassLoader parent = this.getClass().getClassLoader();
String cn = this.getClass().getName();
// one loader
--- 231,241 ----
* Tests that the class loaders created by defineModulesWithXXX delegate
* to the given parent class loader.
*/
public void testDelegationToParent() throws Exception {
! Configuration cf = resolve("m1");
ClassLoader parent = this.getClass().getClassLoader();
String cn = this.getClass().getName();
// one loader
*** 265,284 ****
* m2 exports p
*/
public void testOverlappingPackages() {
ModuleDescriptor descriptor1
! = ModuleDescriptor.module("m1").exports("p").build();
ModuleDescriptor descriptor2
! = ModuleDescriptor.module("m2").exports("p").build();
ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2);
Configuration cf = Layer.boot()
.configuration()
! .resolveRequires(finder, ModuleFinder.of(), Set.of("m1", "m2"));
// cannot define both module m1 and m2 to the same class loader
try {
Layer.boot().defineModulesWithOneLoader(cf, null);
assertTrue(false);
--- 265,284 ----
* m2 exports p
*/
public void testOverlappingPackages() {
ModuleDescriptor descriptor1
! = ModuleDescriptor.newModule("m1").exports("p").build();
ModuleDescriptor descriptor2
! = ModuleDescriptor.newModule("m2").exports("p").build();
ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2);
Configuration cf = Layer.boot()
.configuration()
! .resolve(finder, ModuleFinder.of(), Set.of("m1", "m2"));
// cannot define both module m1 and m2 to the same class loader
try {
Layer.boot().defineModulesWithOneLoader(cf, null);
assertTrue(false);
*** 299,331 ****
* layer2: m3 reads m1, m4 reads m2
*/
public void testSplitDelegation() {
ModuleDescriptor descriptor1
! = ModuleDescriptor.module("m1").exports("p").build();
ModuleDescriptor descriptor2
! = ModuleDescriptor.module("m2").exports("p").build();
ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1, descriptor2);
Configuration cf1 = Layer.boot()
.configuration()
! .resolveRequires(finder1, ModuleFinder.of(), Set.of("m1", "m2"));
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, null);
checkLayer(layer1, "m1", "m2");
ModuleDescriptor descriptor3
! = ModuleDescriptor.module("m3").requires("m1").build();
ModuleDescriptor descriptor4
! = ModuleDescriptor.module("m4").requires("m2").build();
ModuleFinder finder2 = ModuleUtils.finderOf(descriptor3, descriptor4);
! Configuration cf2 = cf1.resolveRequires(finder2, ModuleFinder.of(),
Set.of("m3", "m4"));
// package p cannot be supplied by two class loaders
try {
layer1.defineModulesWithOneLoader(cf2, null);
--- 299,331 ----
* layer2: m3 reads m1, m4 reads m2
*/
public void testSplitDelegation() {
ModuleDescriptor descriptor1
! = ModuleDescriptor.newModule("m1").exports("p").build();
ModuleDescriptor descriptor2
! = ModuleDescriptor.newModule("m2").exports("p").build();
ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1, descriptor2);
Configuration cf1 = Layer.boot()
.configuration()
! .resolve(finder1, ModuleFinder.of(), Set.of("m1", "m2"));
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, null);
checkLayer(layer1, "m1", "m2");
ModuleDescriptor descriptor3
! = ModuleDescriptor.newModule("m3").requires("m1").build();
ModuleDescriptor descriptor4
! = ModuleDescriptor.newModule("m4").requires("m2").build();
ModuleFinder finder2 = ModuleUtils.finderOf(descriptor3, descriptor4);
! Configuration cf2 = cf1.resolve(finder2, ModuleFinder.of(),
Set.of("m3", "m4"));
// package p cannot be supplied by two class loaders
try {
layer1.defineModulesWithOneLoader(cf2, null);
*** 347,363 ****
* layer1: m1, m2, m3 => same loader
* layer2: m1, m2, m4 => same loader
*/
public void testOverriding1() throws Exception {
! Configuration cf1 = resolveRequires("m1");
Layer layer1 = Layer.boot().defineModulesWithOneLoader(cf1, null);
checkLayer(layer1, "m1", "m2", "m3");
ModuleFinder finder = ModuleFinder.of(MODS_DIR);
! Configuration cf2 = cf1.resolveRequires(finder, ModuleFinder.of(),
Set.of("m1"));
Layer layer2 = layer1.defineModulesWithOneLoader(cf2, null);
checkLayer(layer2, "m1", "m2", "m3");
invoke(layer1, "m1", "p.Main");
--- 347,363 ----
* layer1: m1, m2, m3 => same loader
* layer2: m1, m2, m4 => same loader
*/
public void testOverriding1() throws Exception {
! Configuration cf1 = resolve("m1");
Layer layer1 = Layer.boot().defineModulesWithOneLoader(cf1, null);
checkLayer(layer1, "m1", "m2", "m3");
ModuleFinder finder = ModuleFinder.of(MODS_DIR);
! Configuration cf2 = cf1.resolve(finder, ModuleFinder.of(),
Set.of("m1"));
Layer layer2 = layer1.defineModulesWithOneLoader(cf2, null);
checkLayer(layer2, "m1", "m2", "m3");
invoke(layer1, "m1", "p.Main");
*** 396,412 ****
* layer1: m1, m2, m3 => loader pool
* layer2: m1, m2, m3 => loader pool
*/
public void testOverriding2() throws Exception {
! Configuration cf1 = resolveRequires("m1");
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, null);
checkLayer(layer1, "m1", "m2", "m3");
ModuleFinder finder = ModuleFinder.of(MODS_DIR);
! Configuration cf2 = cf1.resolveRequires(finder, ModuleFinder.of(),
Set.of("m1"));
Layer layer2 = layer1.defineModulesWithManyLoaders(cf2, null);
checkLayer(layer2, "m1", "m2", "m3");
invoke(layer1, "m1", "p.Main");
--- 396,412 ----
* layer1: m1, m2, m3 => loader pool
* layer2: m1, m2, m3 => loader pool
*/
public void testOverriding2() throws Exception {
! Configuration cf1 = resolve("m1");
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, null);
checkLayer(layer1, "m1", "m2", "m3");
ModuleFinder finder = ModuleFinder.of(MODS_DIR);
! Configuration cf2 = cf1.resolve(finder, ModuleFinder.of(),
Set.of("m1"));
Layer layer2 = layer1.defineModulesWithManyLoaders(cf2, null);
checkLayer(layer2, "m1", "m2", "m3");
invoke(layer1, "m1", "p.Main");
*** 490,507 ****
* layer1: m1, m2, m3 => same loader
* layer2: m1, m3 => same loader
*/
public void testOverriding3() throws Exception {
! Configuration cf1 = resolveRequires("m1");
Layer layer1 = Layer.boot().defineModulesWithOneLoader(cf1, null);
checkLayer(layer1, "m1", "m2", "m3");
ModuleFinder finder = finderFor("m1", "m3");
! Configuration cf2 = cf1.resolveRequires(finder, ModuleFinder.of(),
Set.of("m1"));
Layer layer2 = layer1.defineModulesWithOneLoader(cf2, null);
checkLayer(layer2, "m1", "m3");
invoke(layer1, "m1", "p.Main");
--- 490,507 ----
* layer1: m1, m2, m3 => same loader
* layer2: m1, m3 => same loader
*/
public void testOverriding3() throws Exception {
! Configuration cf1 = resolve("m1");
Layer layer1 = Layer.boot().defineModulesWithOneLoader(cf1, null);
checkLayer(layer1, "m1", "m2", "m3");
ModuleFinder finder = finderFor("m1", "m3");
! Configuration cf2 = cf1.resolve(finder, ModuleFinder.of(),
Set.of("m1"));
Layer layer2 = layer1.defineModulesWithOneLoader(cf2, null);
checkLayer(layer2, "m1", "m3");
invoke(layer1, "m1", "p.Main");
*** 527,544 ****
* layer1: m1, m2, m3 => loader pool
* layer2: m1, m3 => loader pool
*/
public void testOverriding4() throws Exception {
! Configuration cf1 = resolveRequires("m1");
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, null);
checkLayer(layer1, "m1", "m2", "m3");
ModuleFinder finder = finderFor("m1", "m3");
! Configuration cf2 = cf1.resolveRequires(finder, ModuleFinder.of(),
Set.of("m1"));
Layer layer2 = layer1.defineModulesWithManyLoaders(cf2, null);
checkLayer(layer2, "m1", "m3");
invoke(layer1, "m1", "p.Main");
--- 527,544 ----
* layer1: m1, m2, m3 => loader pool
* layer2: m1, m3 => loader pool
*/
public void testOverriding4() throws Exception {
! Configuration cf1 = resolve("m1");
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, null);
checkLayer(layer1, "m1", "m2", "m3");
ModuleFinder finder = finderFor("m1", "m3");
! Configuration cf2 = cf1.resolve(finder, ModuleFinder.of(),
Set.of("m1"));
Layer layer2 = layer1.defineModulesWithManyLoaders(cf2, null);
checkLayer(layer2, "m1", "m3");
invoke(layer1, "m1", "p.Main");
*** 575,585 ****
/**
* Basic test of resource loading with a class loader created by
* Layer.defineModulesWithOneLoader.
*/
public void testResourcesOneLoader() throws Exception {
! Configuration cf = resolveRequires("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithOneLoader(cf, scl);
ClassLoader loader = layer.findLoader("m1");
testResourceLoading(loader, "p/Main.class");
}
--- 575,585 ----
/**
* Basic test of resource loading with a class loader created by
* Layer.defineModulesWithOneLoader.
*/
public void testResourcesOneLoader() throws Exception {
! Configuration cf = resolve("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithOneLoader(cf, scl);
ClassLoader loader = layer.findLoader("m1");
testResourceLoading(loader, "p/Main.class");
}
*** 587,597 ****
/**
* Basic test of resource loading with a class loader created by
* Layer.defineModulesWithOneLoader.
*/
public void testResourcesManyLoaders() throws Exception {
! Configuration cf = resolveRequires("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithManyLoaders(cf, scl);
ClassLoader loader = layer.findLoader("m1");
testResourceLoading(loader, "p/Main.class");
}
--- 587,597 ----
/**
* Basic test of resource loading with a class loader created by
* Layer.defineModulesWithOneLoader.
*/
public void testResourcesManyLoaders() throws Exception {
! Configuration cf = resolve("m1");
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer = Layer.boot().defineModulesWithManyLoaders(cf, scl);
ClassLoader loader = layer.findLoader("m1");
testResourceLoading(loader, "p/Main.class");
}
*** 619,644 ****
/**
* Resolve the given modules, by name, and returns the resulting
* Configuration.
*/
! private static Configuration resolveRequires(String... roots) {
ModuleFinder finder = ModuleFinder.of(MODS_DIR);
return Layer.boot()
.configuration()
! .resolveRequires(finder, ModuleFinder.of(), Set.of(roots));
}
/**
* Resolve the given modules, by name, and returns the resulting
* Configuration.
*/
! private static Configuration resolveRequiresAndUses(String... roots) {
ModuleFinder finder = ModuleFinder.of(MODS_DIR);
return Layer.boot()
.configuration()
! .resolveRequiresAndUses(finder, ModuleFinder.of(), Set.of(roots));
}
/**
* Invokes the static void main(String[]) method on the given class
--- 619,644 ----
/**
* Resolve the given modules, by name, and returns the resulting
* Configuration.
*/
! private static Configuration resolve(String... roots) {
ModuleFinder finder = ModuleFinder.of(MODS_DIR);
return Layer.boot()
.configuration()
! .resolve(finder, ModuleFinder.of(), Set.of(roots));
}
/**
* Resolve the given modules, by name, and returns the resulting
* Configuration.
*/
! private static Configuration resolveAndBind(String... roots) {
ModuleFinder finder = ModuleFinder.of(MODS_DIR);
return Layer.boot()
.configuration()
! .resolveAndBind(finder, ModuleFinder.of(), Set.of(roots));
}
/**
* Invokes the static void main(String[]) method on the given class
< prev index next >