25 |
25 |
26 package jdk.tools.jlink.internal.packager; |
26 package jdk.tools.jlink.internal.packager; |
27 |
27 |
28 |
28 |
29 import jdk.tools.jlink.Jlink; |
29 import jdk.tools.jlink.Jlink; |
30 import jdk.tools.jlink.builder.ImageBuilder; |
30 import jdk.tools.jlink.builder.DefaultImageBuilder; |
|
31 import jdk.tools.jlink.internal.JlinkTask; |
31 import jdk.tools.jlink.plugin.Plugin; |
32 import jdk.tools.jlink.plugin.Plugin; |
32 import jdk.tools.jlink.builder.*; |
|
33 import jdk.tools.jlink.plugin.ModulePool; |
|
34 |
33 |
35 import java.io.ByteArrayOutputStream; |
|
36 import java.io.File; |
34 import java.io.File; |
37 import java.io.IOException; |
35 import java.io.IOException; |
38 import java.io.InputStream; |
36 import java.lang.module.ModuleFinder; |
39 import java.io.PrintWriter; |
|
40 import java.io.StringReader; |
|
41 import java.nio.file.Path; |
37 import java.nio.file.Path; |
42 import java.nio.file.Paths; |
|
43 import java.util.ArrayList; |
38 import java.util.ArrayList; |
44 import java.util.Arrays; |
|
45 import java.util.Collection; |
|
46 import java.util.Collections; |
39 import java.util.Collections; |
47 import java.util.EnumSet; |
|
48 import java.util.HashMap; |
|
49 import java.util.HashSet; |
|
50 import java.util.LinkedHashMap; |
|
51 import java.util.LinkedHashSet; |
|
52 import java.util.List; |
40 import java.util.List; |
53 import java.util.Map; |
41 import java.util.Map; |
54 import java.util.Properties; |
|
55 import java.util.ResourceBundle; |
|
56 import java.util.Set; |
42 import java.util.Set; |
57 import java.util.StringTokenizer; |
|
58 import java.util.TreeSet; |
|
59 import java.util.stream.Collectors; |
|
60 |
43 |
61 /** |
44 /** |
62 * AppRuntimeImageBuilder is a private API used only by the Java Packager to generate |
45 * AppRuntimeImageBuilder is a private API used only by the Java Packager to generate |
63 * a Java runtime image using jlink. AppRuntimeImageBuilder encapsulates the |
46 * a Java runtime image using jlink. AppRuntimeImageBuilder encapsulates the |
64 * arguments that jlink requires to generate this image. To create the image call the |
47 * arguments that jlink requires to generate this image. To create the image call the |
141 Jlink.PluginsConfiguration pluginConfig = new Jlink.PluginsConfiguration( |
124 Jlink.PluginsConfiguration pluginConfig = new Jlink.PluginsConfiguration( |
142 plugins, new DefaultImageBuilder(outputDir), null); |
125 plugins, new DefaultImageBuilder(outputDir), null); |
143 Jlink jlink = new Jlink(); |
126 Jlink jlink = new Jlink(); |
144 jlink.build(jlinkConfig, pluginConfig); |
127 jlink.build(jlinkConfig, pluginConfig); |
145 } |
128 } |
|
129 |
|
130 /** |
|
131 * Returns a ModuleFinder that limits observability to the given root |
|
132 * modules, their transitive dependences, plus a set of other modules. |
|
133 */ |
|
134 public static ModuleFinder moduleFinder(List<Path> modulepaths, |
|
135 Set<String> roots, |
|
136 Set<String> otherModules) { |
|
137 return JlinkTask.newModuleFinder(modulepaths, roots, otherModules); |
|
138 } |
146 } |
139 } |