jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/LayerModularXMLParserTest.java
changeset 38501 42bbe0b77321
parent 37929 94a27f8aabb3
child 43747 9d82e9cac79e
equal deleted inserted replaced
38500:78aedc2ee005 38501:42bbe0b77321
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 import static java.lang.module.ModuleFinder.empty;
       
    25 import static org.testng.Assert.assertSame;
    24 import static org.testng.Assert.assertSame;
    26 import static org.testng.Assert.assertTrue;
    25 import static org.testng.Assert.assertTrue;
    27 
    26 
    28 import java.lang.ClassLoader;
    27 import java.lang.ClassLoader;
    29 import java.lang.String;
    28 import java.lang.String;
    95      * are loaded from layer 1, the other services are loaded from boot layer
    94      * are loaded from layer 1, the other services are loaded from boot layer
    96      */
    95      */
    97     public void testOneLayer() throws Exception {
    96     public void testOneLayer() throws Exception {
    98         ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1);
    97         ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1);
    99         Configuration cf1 = Layer.boot().configuration()
    98         Configuration cf1 = Layer.boot().configuration()
   100                 .resolveRequiresAndUses(finder1, empty(), Set.of("test"));
    99                 .resolveRequiresAndUses(finder1, ModuleFinder.of(), Set.of("test"));
   101         ClassLoader scl = ClassLoader.getSystemClassLoader();
   100         ClassLoader scl = ClassLoader.getSystemClassLoader();
   102         Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
   101         Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
   103         ClassLoader cl1 = layer1.findLoader("test");
   102         ClassLoader cl1 = layer1.findLoader("test");
   104 
   103 
   105         Method m = cl1.loadClass("test.XMLFactoryHelper").getMethod("instantiateXMLService", String.class);
   104         Method m = cl1.loadClass("test.XMLFactoryHelper").getMethod("instantiateXMLService", String.class);
   125      * are loaded from layer 1, the services provided by provider2 are loaded from layer 2
   124      * are loaded from layer 1, the services provided by provider2 are loaded from layer 2
   126      */
   125      */
   127     public void testTwoLayer() throws Exception {
   126     public void testTwoLayer() throws Exception {
   128         ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1);
   127         ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1);
   129         Configuration cf1 = Layer.boot().configuration()
   128         Configuration cf1 = Layer.boot().configuration()
   130                 .resolveRequiresAndUses(finder1, empty(), Set.of("test"));
   129                 .resolveRequiresAndUses(finder1, ModuleFinder.of(), Set.of("test"));
   131         ClassLoader scl = ClassLoader.getSystemClassLoader();
   130         ClassLoader scl = ClassLoader.getSystemClassLoader();
   132         Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
   131         Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
   133 
   132 
   134         ModuleFinder finder2 = ModuleFinder.of(MOD_DIR2);
   133         ModuleFinder finder2 = ModuleFinder.of(MOD_DIR2);
   135         Configuration cf2 = cf1.resolveRequiresAndUses(finder2, empty(), Set.of("test"));
   134         Configuration cf2 = cf1.resolveRequiresAndUses(finder2, ModuleFinder.of(), Set.of("test"));
   136         Layer layer2 = layer1.defineModulesWithOneLoader(cf2, layer1.findLoader("test"));
   135         Layer layer2 = layer1.defineModulesWithOneLoader(cf2, layer1.findLoader("test"));
   137         ClassLoader cl2 = layer2.findLoader("test");
   136         ClassLoader cl2 = layer2.findLoader("test");
   138 
   137 
   139         Method m = cl2.loadClass("test.XMLFactoryHelper").getMethod("instantiateXMLService", String.class);
   138         Method m = cl2.loadClass("test.XMLFactoryHelper").getMethod("instantiateXMLService", String.class);
   140         for (String service : services1) {
   139         for (String service : services1) {
   159      * are loaded from layer 1, the services provided by provider2 are loaded from layer 2
   158      * are loaded from layer 1, the services provided by provider2 are loaded from layer 2
   160      */
   159      */
   161     public void testTwoLayerWithDuplicate() throws Exception {
   160     public void testTwoLayerWithDuplicate() throws Exception {
   162         ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1, MOD_DIR2);
   161         ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1, MOD_DIR2);
   163         Configuration cf1 = Layer.boot().configuration()
   162         Configuration cf1 = Layer.boot().configuration()
   164                 .resolveRequiresAndUses(finder1, empty(), Set.of("test"));
   163                 .resolveRequiresAndUses(finder1, ModuleFinder.of(), Set.of("test"));
   165         ClassLoader scl = ClassLoader.getSystemClassLoader();
   164         ClassLoader scl = ClassLoader.getSystemClassLoader();
   166         Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
   165         Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
   167 
   166 
   168         ModuleFinder finder2 = ModuleFinder.of(MOD_DIR2);
   167         ModuleFinder finder2 = ModuleFinder.of(MOD_DIR2);
   169         Configuration cf2 = cf1.resolveRequiresAndUses(finder2, empty(), Set.of("test"));
   168         Configuration cf2 = cf1.resolveRequiresAndUses(finder2, ModuleFinder.of(), Set.of("test"));
   170         Layer layer2 = layer1.defineModulesWithOneLoader(cf2, layer1.findLoader("test"));
   169         Layer layer2 = layer1.defineModulesWithOneLoader(cf2, layer1.findLoader("test"));
   171         ClassLoader cl2 = layer2.findLoader("test");
   170         ClassLoader cl2 = layer2.findLoader("test");
   172 
   171 
   173         Method m = cl2.loadClass("test.XMLFactoryHelper").getMethod("instantiateXMLService", String.class);
   172         Method m = cl2.loadClass("test.XMLFactoryHelper").getMethod("instantiateXMLService", String.class);
   174         for (String service : services1) {
   173         for (String service : services1) {