jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/packager/AppRuntimeImageBuilder.java
changeset 39125 e97953d38291
parent 38320 e24c7029e8ba
child 39308 f6517755057f
equal deleted inserted replaced
39107:2a5697a98620 39125:e97953d38291
    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 }