< prev index next >

test/java/lang/reflect/Layer/BasicLayerTest.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 22,31 **** --- 22,32 ---- */ /** * @test * @library /lib/testlibrary + * @modules java.base/jdk.internal.misc * @build BasicLayerTest ModuleUtils * @compile layertest/Test.java * @run testng BasicLayerTest * @summary Basic tests for java.lang.reflect.Layer */
*** 41,57 **** --- 42,68 ---- import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; + import jdk.internal.misc.SharedSecrets; import org.testng.annotations.Test; import static org.testng.Assert.*; @Test public class BasicLayerTest { /** + * Creates a "non-strict" builder for building a module. This allows the + * test the create ModuleDescriptor objects that do not require java.base. + */ + private static ModuleDescriptor.Builder newBuilder(String mn) { + return SharedSecrets.getJavaLangModuleAccess() + .newModuleBuilder(mn, false, Set.of()); + } + + /** * Exercise Layer.empty() */ public void testEmpty() { Layer emptyLayer = Layer.empty();
*** 107,135 **** /** * Exercise Layer defineModules, created with empty layer as parent */ public void testLayerOnEmpty() { ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") .requires("m2") .exports("p1") .build(); ! ModuleDescriptor descriptor2 ! = ModuleDescriptor.module("m2") .requires("m3") .build(); ! ModuleDescriptor descriptor3 ! = ModuleDescriptor.module("m3") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2, descriptor3); ! Configuration cf = resolveRequires(finder, "m1"); // map each module to its own class loader for this test ClassLoader loader1 = new ClassLoader() { }; ClassLoader loader2 = new ClassLoader() { }; ClassLoader loader3 = new ClassLoader() { }; --- 118,143 ---- /** * Exercise Layer defineModules, created with empty layer as parent */ public void testLayerOnEmpty() { ! ModuleDescriptor descriptor1 = newBuilder("m1") .requires("m2") .exports("p1") .build(); ! ModuleDescriptor descriptor2 = newBuilder("m2") .requires("m3") .build(); ! ModuleDescriptor descriptor3 = newBuilder("m3") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2, descriptor3); ! Configuration cf = resolve(finder, "m1"); // map each module to its own class loader for this test ClassLoader loader1 = new ClassLoader() { }; ClassLoader loader2 = new ClassLoader() { }; ClassLoader loader3 = new ClassLoader() { };
*** 189,215 **** /** * Exercise Layer defineModules, created with boot layer as parent */ public void testLayerOnBoot() { ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") .requires("m2") .requires("java.base") .exports("p1") .build(); ! ModuleDescriptor descriptor2 ! = ModuleDescriptor.module("m2") .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2); Configuration parent = Layer.boot().configuration(); ! Configuration cf = resolveRequires(parent, finder, "m1"); ClassLoader loader = new ClassLoader() { }; Layer layer = Layer.boot().defineModules(cf, mn -> loader); --- 197,221 ---- /** * Exercise Layer defineModules, created with boot layer as parent */ public void testLayerOnBoot() { ! ModuleDescriptor descriptor1 = newBuilder("m1") .requires("m2") .requires("java.base") .exports("p1") .build(); ! ModuleDescriptor descriptor2 = newBuilder("m2") .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2); Configuration parent = Layer.boot().configuration(); ! Configuration cf = resolve(parent, finder, "m1"); ClassLoader loader = new ClassLoader() { }; Layer layer = Layer.boot().defineModules(cf, mn -> loader);
*** 254,278 **** /** * Exercise Layer defineModules with a configuration of two modules that * have the same module-private package. */ public void testPackageContainedInSelfAndOther() { ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") .requires("m2") ! .contains("p") .build(); ! ModuleDescriptor descriptor2 ! = ModuleDescriptor.module("m2") ! .contains("p") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2); ! Configuration cf = resolveRequires(finder, "m1"); assertTrue(cf.modules().size() == 2); // one loader per module, should be okay Layer.empty().defineModules(cf, mn -> new ClassLoader() { }); --- 260,282 ---- /** * Exercise Layer defineModules with a configuration of two modules that * have the same module-private package. */ public void testPackageContainedInSelfAndOther() { ! ModuleDescriptor descriptor1 = newBuilder("m1") .requires("m2") ! .packages(Set.of("p")) .build(); ! ModuleDescriptor descriptor2 = newBuilder("m2") ! .packages(Set.of("p")) .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2); ! Configuration cf = resolve(finder, "m1"); assertTrue(cf.modules().size() == 2); // one loader per module, should be okay Layer.empty().defineModules(cf, mn -> new ClassLoader() { });
*** 290,325 **** * graph. The same package is exported in both partitions. */ public void testSameExportInPartitionedGraph() { // m1 reads m2, m2 exports p to m1 ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") .requires("m2") .build(); ! ModuleDescriptor descriptor2 ! = ModuleDescriptor.module("m2") .exports("p", Set.of("m1")) .build(); // m3 reads m4, m4 exports p to m3 ! ModuleDescriptor descriptor3 ! = ModuleDescriptor.module("m3") .requires("m4") .build(); ! ModuleDescriptor descriptor4 ! = ModuleDescriptor.module("m4") .exports("p", Set.of("m3")) .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2, descriptor3, descriptor4); ! Configuration cf = resolveRequires(finder, "m1", "m3"); assertTrue(cf.modules().size() == 4); // one loader per module Layer.empty().defineModules(cf, mn -> new ClassLoader() { }); --- 294,325 ---- * graph. The same package is exported in both partitions. */ public void testSameExportInPartitionedGraph() { // m1 reads m2, m2 exports p to m1 ! ModuleDescriptor descriptor1 = newBuilder("m1") .requires("m2") .build(); ! ModuleDescriptor descriptor2 = newBuilder("m2") .exports("p", Set.of("m1")) .build(); // m3 reads m4, m4 exports p to m3 ! ModuleDescriptor descriptor3 = newBuilder("m3") .requires("m4") .build(); ! ModuleDescriptor descriptor4 = newBuilder("m4") .exports("p", Set.of("m3")) .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1, descriptor2, descriptor3, descriptor4); ! Configuration cf = resolve(finder, "m1", "m3"); assertTrue(cf.modules().size() == 4); // one loader per module Layer.empty().defineModules(cf, mn -> new ClassLoader() { });
*** 351,370 **** // check assumption that java.base contains sun.launcher ModuleDescriptor base = Object.class.getModule().getDescriptor(); assertTrue(base.packages().contains("sun.launcher")); ! ModuleDescriptor descriptor ! = ModuleDescriptor.module("m1") .requires("java.base") ! .contains("sun.launcher") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor); Configuration parent = Layer.boot().configuration(); ! Configuration cf = parent.resolveRequires(finder, ModuleFinder.of(), Set.of("m1")); assertTrue(cf.modules().size() == 1); ClassLoader loader = new ClassLoader() { }; Layer layer = Layer.boot().defineModules(cf, mn -> loader); assertTrue(layer.modules().size() == 1); --- 351,369 ---- // check assumption that java.base contains sun.launcher ModuleDescriptor base = Object.class.getModule().getDescriptor(); assertTrue(base.packages().contains("sun.launcher")); ! ModuleDescriptor descriptor = newBuilder("m1") .requires("java.base") ! .packages(Set.of("sun.launcher")) .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor); Configuration parent = Layer.boot().configuration(); ! Configuration cf = parent.resolve(finder, ModuleFinder.of(), Set.of("m1")); assertTrue(cf.modules().size() == 1); ClassLoader loader = new ClassLoader() { }; Layer layer = Layer.boot().defineModules(cf, mn -> loader); assertTrue(layer.modules().size() == 1);
*** 380,416 **** */ public void testImpliedReadabilityWithLayers1() { // cf1: m1 and m2, m2 requires transitive m1 ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") .build(); ! ModuleDescriptor descriptor2 ! = ModuleDescriptor.module("m2") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m1") .build(); ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1, descriptor2); ! Configuration cf1 = resolveRequires(finder1, "m2"); ClassLoader cl1 = new ClassLoader() { }; Layer layer1 = Layer.empty().defineModules(cf1, mn -> cl1); // cf2: m3, m3 requires m2 ! ModuleDescriptor descriptor3 ! = ModuleDescriptor.module("m3") .requires("m2") .build(); ModuleFinder finder2 = ModuleUtils.finderOf(descriptor3); ! Configuration cf2 = resolveRequires(cf1, finder2, "m3"); ClassLoader cl2 = new ClassLoader() { }; Layer layer2 = layer1.defineModules(cf2, mn -> cl2); assertTrue(layer1.parents().size() == 1); --- 379,412 ---- */ public void testImpliedReadabilityWithLayers1() { // cf1: m1 and m2, m2 requires transitive m1 ! ModuleDescriptor descriptor1 = newBuilder("m1") .build(); ! ModuleDescriptor descriptor2 = newBuilder("m2") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m1") .build(); ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1, descriptor2); ! Configuration cf1 = resolve(finder1, "m2"); ClassLoader cl1 = new ClassLoader() { }; Layer layer1 = Layer.empty().defineModules(cf1, mn -> cl1); // cf2: m3, m3 requires m2 ! ModuleDescriptor descriptor3 = newBuilder("m3") .requires("m2") .build(); ModuleFinder finder2 = ModuleUtils.finderOf(descriptor3); ! Configuration cf2 = resolve(cf1, finder2, "m3"); ClassLoader cl2 = new ClassLoader() { }; Layer layer2 = layer1.defineModules(cf2, mn -> cl2); assertTrue(layer1.parents().size() == 1);
*** 454,490 **** */ public void testImpliedReadabilityWithLayers2() { // cf1: m1 ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") ! .build(); ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1); ! Configuration cf1 = resolveRequires(finder1, "m1"); ClassLoader cl1 = new ClassLoader() { }; Layer layer1 = Layer.empty().defineModules(cf1, mn -> cl1); // cf2: m2, m3: m2 requires transitive m1, m3 requires m2 ! ModuleDescriptor descriptor2 ! = ModuleDescriptor.module("m2") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m1") .build(); ! ModuleDescriptor descriptor3 ! = ModuleDescriptor.module("m3") .requires("m2") .build(); ModuleFinder finder2 = ModuleUtils.finderOf(descriptor2, descriptor3); ! Configuration cf2 = resolveRequires(cf1, finder2, "m3"); ClassLoader cl2 = new ClassLoader() { }; Layer layer2 = layer1.defineModules(cf2, mn -> cl2); assertTrue(layer1.parents().size() == 1); --- 450,482 ---- */ public void testImpliedReadabilityWithLayers2() { // cf1: m1 ! ModuleDescriptor descriptor1 = newBuilder("m1").build(); ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1); ! Configuration cf1 = resolve(finder1, "m1"); ClassLoader cl1 = new ClassLoader() { }; Layer layer1 = Layer.empty().defineModules(cf1, mn -> cl1); // cf2: m2, m3: m2 requires transitive m1, m3 requires m2 ! ModuleDescriptor descriptor2 = newBuilder("m2") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m1") .build(); ! ModuleDescriptor descriptor3 = newBuilder("m3") .requires("m2") .build(); ModuleFinder finder2 = ModuleUtils.finderOf(descriptor2, descriptor3); ! Configuration cf2 = resolve(cf1, finder2, "m3"); ClassLoader cl2 = new ClassLoader() { }; Layer layer2 = layer1.defineModules(cf2, mn -> cl2); assertTrue(layer1.parents().size() == 1);
*** 525,571 **** */ public void testImpliedReadabilityWithLayers3() { // cf1: m1 ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") ! .build(); ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1); ! Configuration cf1 = resolveRequires(finder1, "m1"); ClassLoader cl1 = new ClassLoader() { }; Layer layer1 = Layer.empty().defineModules(cf1, mn -> cl1); // cf2: m2 requires transitive m1 ! ModuleDescriptor descriptor2 ! = ModuleDescriptor.module("m2") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m1") .build(); ModuleFinder finder2 = ModuleUtils.finderOf(descriptor2); ! Configuration cf2 = resolveRequires(cf1, finder2, "m2"); ClassLoader cl2 = new ClassLoader() { }; Layer layer2 = layer1.defineModules(cf2, mn -> cl2); // cf3: m3 requires m2 ! ModuleDescriptor descriptor3 ! = ModuleDescriptor.module("m3") .requires("m2") .build(); ModuleFinder finder3 = ModuleUtils.finderOf(descriptor3); ! Configuration cf3 = resolveRequires(cf2, finder3, "m3"); ClassLoader cl3 = new ClassLoader() { }; Layer layer3 = layer2.defineModules(cf3, mn -> cl3); assertTrue(layer1.parents().size() == 1); --- 517,559 ---- */ public void testImpliedReadabilityWithLayers3() { // cf1: m1 ! ModuleDescriptor descriptor1 = newBuilder("m1").build(); ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1); ! Configuration cf1 = resolve(finder1, "m1"); ClassLoader cl1 = new ClassLoader() { }; Layer layer1 = Layer.empty().defineModules(cf1, mn -> cl1); // cf2: m2 requires transitive m1 ! ModuleDescriptor descriptor2 = newBuilder("m2") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m1") .build(); ModuleFinder finder2 = ModuleUtils.finderOf(descriptor2); ! Configuration cf2 = resolve(cf1, finder2, "m2"); ClassLoader cl2 = new ClassLoader() { }; Layer layer2 = layer1.defineModules(cf2, mn -> cl2); // cf3: m3 requires m2 ! ModuleDescriptor descriptor3 = newBuilder("m3") .requires("m2") .build(); ModuleFinder finder3 = ModuleUtils.finderOf(descriptor3); ! Configuration cf3 = resolve(cf2, finder3, "m3"); ClassLoader cl3 = new ClassLoader() { }; Layer layer3 = layer2.defineModules(cf3, mn -> cl3); assertTrue(layer1.parents().size() == 1);
*** 608,650 **** */ public void testImpliedReadabilityWithLayers4() { // cf1: m1, m2 requires transitive m1 ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") .build(); ! ModuleDescriptor descriptor2 ! = ModuleDescriptor.module("m2") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m1") .build(); ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1, descriptor2); ! Configuration cf1 = resolveRequires(finder1, "m2"); ClassLoader cl1 = new ClassLoader() { }; Layer layer1 = Layer.empty().defineModules(cf1, mn -> cl1); // cf2: m3 requires transitive m2, m4 requires m3 ! ModuleDescriptor descriptor3 ! = ModuleDescriptor.module("m3") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m2") .build(); ! ModuleDescriptor descriptor4 ! = ModuleDescriptor.module("m4") .requires("m3") .build(); ModuleFinder finder2 = ModuleUtils.finderOf(descriptor3, descriptor4); ! Configuration cf2 = resolveRequires(cf1, finder2, "m3", "m4"); ClassLoader cl2 = new ClassLoader() { }; Layer layer2 = layer1.defineModules(cf2, mn -> cl2); assertTrue(layer1.parents().size() == 1); --- 596,634 ---- */ public void testImpliedReadabilityWithLayers4() { // cf1: m1, m2 requires transitive m1 ! ModuleDescriptor descriptor1 = newBuilder("m1") .build(); ! ModuleDescriptor descriptor2 = newBuilder("m2") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m1") .build(); ModuleFinder finder1 = ModuleUtils.finderOf(descriptor1, descriptor2); ! Configuration cf1 = resolve(finder1, "m2"); ClassLoader cl1 = new ClassLoader() { }; Layer layer1 = Layer.empty().defineModules(cf1, mn -> cl1); // cf2: m3 requires transitive m2, m4 requires m3 ! ModuleDescriptor descriptor3 = newBuilder("m3") .requires(Set.of(Requires.Modifier.TRANSITIVE), "m2") .build(); ! ModuleDescriptor descriptor4 = newBuilder("m4") .requires("m3") .build(); ModuleFinder finder2 = ModuleUtils.finderOf(descriptor3, descriptor4); ! Configuration cf2 = resolve(cf1, finder2, "m3", "m4"); ClassLoader cl2 = new ClassLoader() { }; Layer layer2 = layer1.defineModules(cf2, mn -> cl2); assertTrue(layer1.parents().size() == 1);
*** 691,710 **** * defined to the class loader. */ @Test(expectedExceptions = { LayerInstantiationException.class }) public void testModuleAlreadyDefinedToLoader() { ! ModuleDescriptor md ! = ModuleDescriptor.module("m") .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(md); Configuration parent = Layer.boot().configuration(); ! Configuration cf = parent.resolveRequires(finder, ModuleFinder.of(), Set.of("m")); ClassLoader loader = new ClassLoader() { }; Layer.boot().defineModules(cf, mn -> loader); --- 675,693 ---- * defined to the class loader. */ @Test(expectedExceptions = { LayerInstantiationException.class }) public void testModuleAlreadyDefinedToLoader() { ! ModuleDescriptor md = newBuilder("m") .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(md); Configuration parent = Layer.boot().configuration(); ! Configuration cf = parent.resolve(finder, ModuleFinder.of(), Set.of("m")); ClassLoader loader = new ClassLoader() { }; Layer.boot().defineModules(cf, mn -> loader);
*** 720,738 **** * defined to it containing package {@code p}. */ @Test(expectedExceptions = { LayerInstantiationException.class }) public void testPackageAlreadyInNamedModule() { ! ModuleDescriptor md1 ! = ModuleDescriptor.module("m1") ! .contains("p") .requires("java.base") .build(); ! ModuleDescriptor md2 ! = ModuleDescriptor.module("m2") ! .contains("p") .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(md1, md2); --- 703,719 ---- * defined to it containing package {@code p}. */ @Test(expectedExceptions = { LayerInstantiationException.class }) public void testPackageAlreadyInNamedModule() { ! ModuleDescriptor md1 = newBuilder("m1") ! .packages(Set.of("p")) .requires("java.base") .build(); ! ModuleDescriptor md2 = newBuilder("m2") ! .packages(Set.of("p")) .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(md1, md2);
*** 740,756 **** // define m1 containing package p to class loader Configuration parent = Layer.boot().configuration(); ! Configuration cf1 = parent.resolveRequires(finder, ModuleFinder.of(), Set.of("m1")); Layer layer1 = Layer.boot().defineModules(cf1, mn -> loader); // attempt to define m2 containing package p to class loader ! Configuration cf2 = parent.resolveRequires(finder, ModuleFinder.of(), Set.of("m2")); // should throw exception because p already in m1 Layer layer2 = Layer.boot().defineModules(cf2, mn -> loader); } --- 721,737 ---- // define m1 containing package p to class loader Configuration parent = Layer.boot().configuration(); ! Configuration cf1 = parent.resolve(finder, ModuleFinder.of(), Set.of("m1")); Layer layer1 = Layer.boot().defineModules(cf1, mn -> loader); // attempt to define m2 containing package p to class loader ! Configuration cf2 = parent.resolve(finder, ModuleFinder.of(), Set.of("m2")); // should throw exception because p already in m1 Layer layer2 = Layer.boot().defineModules(cf2, mn -> loader); }
*** 765,803 **** public void testPackageAlreadyInUnnamedModule() throws Exception { Class<?> c = layertest.Test.class; assertFalse(c.getModule().isNamed()); // in unnamed module ! ModuleDescriptor md ! = ModuleDescriptor.module("m") ! .contains(c.getPackageName()) .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(md); Configuration parent = Layer.boot().configuration(); ! Configuration cf = parent.resolveRequires(finder, ModuleFinder.of(), Set.of("m")); Layer.boot().defineModules(cf, mn -> c.getClassLoader()); } /** * Attempt to create a Layer with a module named "java.base". */ public void testLayerWithJavaBase() { ! ModuleDescriptor descriptor ! = ModuleDescriptor.module("java.base") .exports("java.lang") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor); Configuration cf = Layer.boot() .configuration() ! .resolveRequires(finder, ModuleFinder.of(), Set.of("java.base")); assertTrue(cf.modules().size() == 1); ClassLoader scl = ClassLoader.getSystemClassLoader(); try { --- 746,782 ---- public void testPackageAlreadyInUnnamedModule() throws Exception { Class<?> c = layertest.Test.class; assertFalse(c.getModule().isNamed()); // in unnamed module ! ModuleDescriptor md = newBuilder("m") ! .packages(Set.of(c.getPackageName())) .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(md); Configuration parent = Layer.boot().configuration(); ! Configuration cf = parent.resolve(finder, ModuleFinder.of(), Set.of("m")); Layer.boot().defineModules(cf, mn -> c.getClassLoader()); } /** * Attempt to create a Layer with a module named "java.base". */ public void testLayerWithJavaBase() { ! ModuleDescriptor descriptor = newBuilder("java.base") .exports("java.lang") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor); Configuration cf = Layer.boot() .configuration() ! .resolve(finder, ModuleFinder.of(), Set.of("java.base")); assertTrue(cf.modules().size() == 1); ClassLoader scl = ClassLoader.getSystemClassLoader(); try {
*** 822,841 **** * This should only be allowed when the module is defined to the platform * class loader. */ @Test(enabled = false) public void testLayerWithJavaPackage() { ! ModuleDescriptor descriptor ! = ModuleDescriptor.module("foo") ! .contains("java.foo") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor); Configuration cf = Layer.boot() .configuration() ! .resolveRequires(finder, ModuleFinder.of(), Set.of("foo")); assertTrue(cf.modules().size() == 1); ClassLoader pcl = ClassLoader.getPlatformClassLoader(); ClassLoader scl = ClassLoader.getSystemClassLoader(); --- 801,819 ---- * This should only be allowed when the module is defined to the platform * class loader. */ @Test(enabled = false) public void testLayerWithJavaPackage() { ! ModuleDescriptor descriptor = newBuilder("foo") ! .packages(Set.of("java.foo")) .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor); Configuration cf = Layer.boot() .configuration() ! .resolve(finder, ModuleFinder.of(), Set.of("foo")); assertTrue(cf.modules().size() == 1); ClassLoader pcl = ClassLoader.getPlatformClassLoader(); ClassLoader scl = ClassLoader.getSystemClassLoader();
*** 868,886 **** /** * Attempt to create a Layer with a module defined to the boot loader */ @Test(expectedExceptions = { LayerInstantiationException.class }) public void testLayerWithBootLoader() { ! ModuleDescriptor descriptor ! = ModuleDescriptor.module("m1") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor); Configuration cf = Layer.boot() .configuration() ! .resolveRequires(finder, ModuleFinder.of(), Set.of("m1")); assertTrue(cf.modules().size() == 1); Layer.boot().defineModules(cf, mn -> null ); } --- 846,863 ---- /** * Attempt to create a Layer with a module defined to the boot loader */ @Test(expectedExceptions = { LayerInstantiationException.class }) public void testLayerWithBootLoader() { ! ModuleDescriptor descriptor = newBuilder("m1") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor); Configuration cf = Layer.boot() .configuration() ! .resolve(finder, ModuleFinder.of(), Set.of("m1")); assertTrue(cf.modules().size() == 1); Layer.boot().defineModules(cf, mn -> null ); }
*** 889,907 **** * Parent of configuration != configuration of parent Layer */ @Test(expectedExceptions = { IllegalArgumentException.class }) public void testIncorrectParent1() { ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1); Configuration parent = Layer.boot().configuration(); ! Configuration cf = parent.resolveRequires(finder, ModuleFinder.of(), Set.of("m1")); ClassLoader loader = new ClassLoader() { }; Layer.empty().defineModules(cf, mn -> loader); } --- 866,883 ---- * Parent of configuration != configuration of parent Layer */ @Test(expectedExceptions = { IllegalArgumentException.class }) public void testIncorrectParent1() { ! ModuleDescriptor descriptor1 = newBuilder("m1") .requires("java.base") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1); Configuration parent = Layer.boot().configuration(); ! Configuration cf = parent.resolve(finder, ModuleFinder.of(), Set.of("m1")); ClassLoader loader = new ClassLoader() { }; Layer.empty().defineModules(cf, mn -> loader); }
*** 910,926 **** * Parent of configuration != configuration of parent Layer */ @Test(expectedExceptions = { IllegalArgumentException.class }) public void testIncorrectParent2() { ! ModuleDescriptor descriptor1 ! = ModuleDescriptor.module("m1") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1); ! Configuration cf = resolveRequires(finder, "m1"); ClassLoader loader = new ClassLoader() { }; Layer.boot().defineModules(cf, mn -> loader); } --- 886,901 ---- * Parent of configuration != configuration of parent Layer */ @Test(expectedExceptions = { IllegalArgumentException.class }) public void testIncorrectParent2() { ! ModuleDescriptor descriptor1 = newBuilder("m1") .build(); ModuleFinder finder = ModuleUtils.finderOf(descriptor1); ! Configuration cf = resolve(finder, "m1"); ClassLoader loader = new ClassLoader() { }; Layer.boot().defineModules(cf, mn -> loader); }
*** 933,943 **** Layer.empty().defineModules(null, mn -> loader); } @Test(expectedExceptions = { NullPointerException.class }) public void testCreateWithNull2() { ! Configuration cf = resolveRequires(Layer.boot().configuration(), ModuleFinder.of()); Layer.boot().defineModules(cf, null); } @Test(expectedExceptions = { NullPointerException.class }) public void testCreateWithNull3() { --- 908,918 ---- Layer.empty().defineModules(null, mn -> loader); } @Test(expectedExceptions = { NullPointerException.class }) public void testCreateWithNull2() { ! Configuration cf = resolve(Layer.boot().configuration(), ModuleFinder.of()); Layer.boot().defineModules(cf, null); } @Test(expectedExceptions = { NullPointerException.class }) public void testCreateWithNull3() {
*** 973,988 **** /** * Resolve the given modules, by name, and returns the resulting * Configuration. */ ! private static Configuration resolveRequires(Configuration cf, ModuleFinder finder, String... roots) { ! return cf.resolveRequires(finder, ModuleFinder.of(), Set.of(roots)); } ! private static Configuration resolveRequires(ModuleFinder finder, String... roots) { ! return resolveRequires(Configuration.empty(), finder, roots); } } --- 948,963 ---- /** * Resolve the given modules, by name, and returns the resulting * Configuration. */ ! private static Configuration resolve(Configuration cf, ModuleFinder finder, String... roots) { ! return cf.resolve(finder, ModuleFinder.of(), Set.of(roots)); } ! private static Configuration resolve(ModuleFinder finder, String... roots) { ! return resolve(Configuration.empty(), finder, roots); } }
< prev index next >