< prev index next >

test/java/lang/module/ConfigurationTest.java

Print this page




  25  * @test
  26  * @library /lib/testlibrary
  27  * @modules java.base/jdk.internal.misc
  28  *          java.base/jdk.internal.module
  29  * @build ConfigurationTest ModuleUtils
  30  * @run testng ConfigurationTest
  31  * @summary Basic tests for java.lang.module.Configuration
  32  */
  33 
  34 import java.io.IOException;
  35 import java.io.OutputStream;
  36 import java.lang.module.Configuration;
  37 import java.lang.module.FindException;
  38 import java.lang.module.ModuleDescriptor;
  39 import java.lang.module.ModuleDescriptor.Requires;
  40 import java.lang.module.ModuleFinder;
  41 import java.lang.module.ResolutionException;
  42 import java.lang.module.ResolvedModule;
  43 import java.nio.file.Files;
  44 import java.nio.file.Path;

  45 import java.util.List;
  46 import java.util.Optional;
  47 import java.util.Set;
  48 
  49 import jdk.internal.misc.SharedSecrets;
  50 import jdk.internal.module.ModuleInfoWriter;
  51 import jdk.internal.module.ModuleTarget;
  52 import org.testng.annotations.DataProvider;
  53 import org.testng.annotations.Test;
  54 import static org.testng.Assert.*;
  55 
  56 @Test
  57 public class ConfigurationTest {
  58 
  59     /**
  60      * Creates a "non-strict" builder for building a module. This allows the
  61      * test the create ModuleDescriptor objects that do not require java.base.
  62      */
  63     private static ModuleDescriptor.Builder newBuilder(String mn) {
  64         return SharedSecrets.getJavaLangModuleAccess()


2100     private Configuration resolveAndBind(ModuleFinder before,
2101                                          String... roots) {
2102         return resolveAndBind(Configuration.empty(), before, roots);
2103     }
2104 
2105 
2106     /**
2107      * Writes a module-info.class. If {@code targetPlatform} is not null then
2108      * it includes the ModuleTarget class file attribute with the target platform.
2109      */
2110     static Path writeModule(ModuleDescriptor descriptor, String targetPlatform)
2111         throws IOException
2112     {
2113         ModuleTarget target;
2114         if (targetPlatform != null) {
2115             target = new ModuleTarget(targetPlatform);
2116         } else {
2117             target = null;
2118         }
2119         String name = descriptor.name();
2120         Path dir = Files.createTempDirectory(name);
2121         Path mi = dir.resolve("module-info.class");
2122         try (OutputStream out = Files.newOutputStream(mi)) {
2123             ModuleInfoWriter.write(descriptor, target, out);
2124         }
2125         return dir;
2126     }
2127 }


  25  * @test
  26  * @library /lib/testlibrary
  27  * @modules java.base/jdk.internal.misc
  28  *          java.base/jdk.internal.module
  29  * @build ConfigurationTest ModuleUtils
  30  * @run testng ConfigurationTest
  31  * @summary Basic tests for java.lang.module.Configuration
  32  */
  33 
  34 import java.io.IOException;
  35 import java.io.OutputStream;
  36 import java.lang.module.Configuration;
  37 import java.lang.module.FindException;
  38 import java.lang.module.ModuleDescriptor;
  39 import java.lang.module.ModuleDescriptor.Requires;
  40 import java.lang.module.ModuleFinder;
  41 import java.lang.module.ResolutionException;
  42 import java.lang.module.ResolvedModule;
  43 import java.nio.file.Files;
  44 import java.nio.file.Path;
  45 import java.nio.file.Paths;
  46 import java.util.List;
  47 import java.util.Optional;
  48 import java.util.Set;
  49 
  50 import jdk.internal.misc.SharedSecrets;
  51 import jdk.internal.module.ModuleInfoWriter;
  52 import jdk.internal.module.ModuleTarget;
  53 import org.testng.annotations.DataProvider;
  54 import org.testng.annotations.Test;
  55 import static org.testng.Assert.*;
  56 
  57 @Test
  58 public class ConfigurationTest {
  59 
  60     /**
  61      * Creates a "non-strict" builder for building a module. This allows the
  62      * test the create ModuleDescriptor objects that do not require java.base.
  63      */
  64     private static ModuleDescriptor.Builder newBuilder(String mn) {
  65         return SharedSecrets.getJavaLangModuleAccess()


2101     private Configuration resolveAndBind(ModuleFinder before,
2102                                          String... roots) {
2103         return resolveAndBind(Configuration.empty(), before, roots);
2104     }
2105 
2106 
2107     /**
2108      * Writes a module-info.class. If {@code targetPlatform} is not null then
2109      * it includes the ModuleTarget class file attribute with the target platform.
2110      */
2111     static Path writeModule(ModuleDescriptor descriptor, String targetPlatform)
2112         throws IOException
2113     {
2114         ModuleTarget target;
2115         if (targetPlatform != null) {
2116             target = new ModuleTarget(targetPlatform);
2117         } else {
2118             target = null;
2119         }
2120         String name = descriptor.name();
2121         Path dir = Files.createTempDirectory(Paths.get(""), name);
2122         Path mi = dir.resolve("module-info.class");
2123         try (OutputStream out = Files.newOutputStream(mi)) {
2124             ModuleInfoWriter.write(descriptor, target, out);
2125         }
2126         return dir;
2127     }
2128 }
< prev index next >