< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/TaskHelper.java

Print this page




  41 import java.util.HashSet;
  42 import java.util.List;
  43 import java.util.Locale;
  44 import java.util.Map;
  45 import java.util.Map.Entry;
  46 import java.util.MissingResourceException;
  47 import java.util.ResourceBundle;
  48 import java.util.Set;
  49 import java.util.stream.Stream;
  50 
  51 import jdk.tools.jlink.internal.plugins.ExcludeJmodSectionPlugin;
  52 import jdk.tools.jlink.plugin.Plugin;
  53 import jdk.tools.jlink.plugin.Plugin.Category;
  54 import jdk.tools.jlink.builder.DefaultImageBuilder;
  55 import jdk.tools.jlink.builder.ImageBuilder;
  56 import jdk.tools.jlink.plugin.PluginException;
  57 import jdk.tools.jlink.internal.Jlink.PluginsConfiguration;
  58 import jdk.tools.jlink.internal.plugins.PluginsResourceBundle;
  59 import jdk.tools.jlink.internal.plugins.DefaultCompressPlugin;
  60 import jdk.tools.jlink.internal.plugins.StripDebugPlugin;
  61 import jdk.internal.misc.SharedSecrets;
  62 
  63 /**
  64  *
  65  * JLink and JImage tools shared helper.
  66  */
  67 public final class TaskHelper {
  68 
  69     public static final String JLINK_BUNDLE = "jdk.tools.jlink.resources.jlink";
  70     public static final String JIMAGE_BUNDLE = "jdk.tools.jimage.resources.jimage";
  71 
  72     private static final String DEFAULTS_PROPERTY = "jdk.jlink.defaults";
  73 
  74     public final class BadArgs extends Exception {
  75 
  76         static final long serialVersionUID = 8765093759964640721L;
  77 
  78         private BadArgs(String key, Object... args) {
  79             super(bundleHelper.getMessage(key, args));
  80             this.key = key;
  81             this.args = args;


 748     public PluginsConfiguration getPluginsConfig(Path output)
 749             throws IOException, BadArgs {
 750         return pluginOptions.getPluginsConfig(output);
 751     }
 752 
 753     public Path getExistingImage() {
 754         return pluginOptions.existingImage;
 755     }
 756 
 757     public void showVersion(boolean full) {
 758         log.println(version(full ? "full" : "release"));
 759     }
 760 
 761     public String version(String key) {
 762         return System.getProperty("java.version");
 763     }
 764 
 765     static Layer createPluginsLayer(List<Path> paths) {
 766 
 767         Path[] dirs = paths.toArray(new Path[0]);
 768         ModuleFinder finder = SharedSecrets.getJavaLangModuleAccess()
 769             .newModulePath(Runtime.version(), true, dirs);
 770 
 771         Configuration bootConfiguration = Layer.boot().configuration();
 772         try {
 773             Configuration cf = bootConfiguration
 774                 .resolveRequiresAndUses(ModuleFinder.of(),
 775                                         finder,
 776                                         Collections.emptySet());
 777             ClassLoader scl = ClassLoader.getSystemClassLoader();
 778             return Layer.boot().defineModulesWithOneLoader(cf, scl);
 779         } catch (Exception ex) {
 780             // Malformed plugin modules (e.g.: same package in multiple modules).
 781             throw new PluginException("Invalid modules in the plugins path: " + ex);
 782         }
 783     }
 784 
 785     // Display all plugins
 786     private static boolean showsPlugin(Plugin plugin) {
 787         return (!Utils.isDisabled(plugin) && plugin.getOption() != null);
 788     }
 789 }


  41 import java.util.HashSet;
  42 import java.util.List;
  43 import java.util.Locale;
  44 import java.util.Map;
  45 import java.util.Map.Entry;
  46 import java.util.MissingResourceException;
  47 import java.util.ResourceBundle;
  48 import java.util.Set;
  49 import java.util.stream.Stream;
  50 
  51 import jdk.tools.jlink.internal.plugins.ExcludeJmodSectionPlugin;
  52 import jdk.tools.jlink.plugin.Plugin;
  53 import jdk.tools.jlink.plugin.Plugin.Category;
  54 import jdk.tools.jlink.builder.DefaultImageBuilder;
  55 import jdk.tools.jlink.builder.ImageBuilder;
  56 import jdk.tools.jlink.plugin.PluginException;
  57 import jdk.tools.jlink.internal.Jlink.PluginsConfiguration;
  58 import jdk.tools.jlink.internal.plugins.PluginsResourceBundle;
  59 import jdk.tools.jlink.internal.plugins.DefaultCompressPlugin;
  60 import jdk.tools.jlink.internal.plugins.StripDebugPlugin;
  61 import jdk.internal.module.ModulePath;
  62 
  63 /**
  64  *
  65  * JLink and JImage tools shared helper.
  66  */
  67 public final class TaskHelper {
  68 
  69     public static final String JLINK_BUNDLE = "jdk.tools.jlink.resources.jlink";
  70     public static final String JIMAGE_BUNDLE = "jdk.tools.jimage.resources.jimage";
  71 
  72     private static final String DEFAULTS_PROPERTY = "jdk.jlink.defaults";
  73 
  74     public final class BadArgs extends Exception {
  75 
  76         static final long serialVersionUID = 8765093759964640721L;
  77 
  78         private BadArgs(String key, Object... args) {
  79             super(bundleHelper.getMessage(key, args));
  80             this.key = key;
  81             this.args = args;


 748     public PluginsConfiguration getPluginsConfig(Path output)
 749             throws IOException, BadArgs {
 750         return pluginOptions.getPluginsConfig(output);
 751     }
 752 
 753     public Path getExistingImage() {
 754         return pluginOptions.existingImage;
 755     }
 756 
 757     public void showVersion(boolean full) {
 758         log.println(version(full ? "full" : "release"));
 759     }
 760 
 761     public String version(String key) {
 762         return System.getProperty("java.version");
 763     }
 764 
 765     static Layer createPluginsLayer(List<Path> paths) {
 766 
 767         Path[] dirs = paths.toArray(new Path[0]);
 768         ModuleFinder finder = new ModulePath(Runtime.version(), true, dirs);


 769         Configuration bootConfiguration = Layer.boot().configuration();
 770         try {
 771             Configuration cf = bootConfiguration
 772                 .resolveRequiresAndUses(ModuleFinder.of(),
 773                                         finder,
 774                                         Collections.emptySet());
 775             ClassLoader scl = ClassLoader.getSystemClassLoader();
 776             return Layer.boot().defineModulesWithOneLoader(cf, scl);
 777         } catch (Exception ex) {
 778             // Malformed plugin modules (e.g.: same package in multiple modules).
 779             throw new PluginException("Invalid modules in the plugins path: " + ex);
 780         }
 781     }
 782 
 783     // Display all plugins
 784     private static boolean showsPlugin(Plugin plugin) {
 785         return (!Utils.isDisabled(plugin) && plugin.getOption() != null);
 786     }
 787 }
< prev index next >