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 }
|