< prev index next >

modules/jdk.packager/src/main/java/jdk/packager/internal/JLinkBundlerHelper.java

Print this page




  27 
  28 
  29 import com.oracle.tools.packager.StandardBundlerParam;
  30 import com.oracle.tools.packager.BundlerParamInfo;
  31 import com.oracle.tools.packager.StandardBundlerParam;
  32 import com.oracle.tools.packager.RelativeFileSet;
  33 import com.oracle.tools.packager.Log;
  34 
  35 import java.io.ByteArrayOutputStream;
  36 import java.io.File;
  37 import java.io.FileInputStream;
  38 import java.io.FileNotFoundException;
  39 import java.io.IOException;
  40 import java.io.InputStream;
  41 import java.io.PrintWriter;
  42 import java.io.StringReader;
  43 import java.net.URI;
  44 import java.nio.file.Files;
  45 import java.nio.file.Path;
  46 import java.nio.file.Paths;

  47 import java.util.ArrayList;
  48 import java.util.Arrays;
  49 import java.util.Collection;
  50 import java.util.Collections;
  51 import java.util.EnumSet;
  52 import java.util.HashMap;
  53 import java.util.HashSet;
  54 import java.util.Iterator;
  55 import java.util.LinkedHashMap;
  56 import java.util.LinkedHashSet;
  57 import java.util.List;
  58 import java.util.Map;
  59 import java.util.Optional;
  60 import java.util.Properties;
  61 import java.util.ResourceBundle;
  62 import java.util.Set;
  63 import java.util.TreeSet;
  64 import java.util.function.Supplier;
  65 import java.util.logging.Level;
  66 import java.util.logging.Logger;


 260         }
 261 
 262         //--------------------------------------------------------------------
 263         // Modules
 264 
 265         boolean detectModules = DETECT_MODULES.fetchFrom(params);
 266 
 267         // The default for an unnamed jar is ALL_DEFAULT with the
 268         // non-redistributable modules removed.
 269         if (mainJarType == Module.ModuleType.UnnamedJar && !detectModules) {
 270             addModules.add(ModuleHelper.ALL_RUNTIME);
 271         }
 272         else if (mainJarType == Module.ModuleType.Unknown || mainJarType == Module.ModuleType.ModularJar) {
 273             String mainModule = getMainModule(params);
 274             addModules.add(mainModule);
 275 
 276             // Error if any of the srcfiles are modular jars.
 277             Set<String> modularJars = getResourceFileJarList(params, Module.JarType.ModularJar);
 278 
 279             if (!modularJars.isEmpty()) {
 280                 throw new Exception(String.format(I18N.getString("error.srcfiles.contain.modules"), modularJars.toString()));
 281             }
 282         }
 283 
 284         ModuleHelper moduleHelper = new ModuleHelper(modulePath, addModules, limitModules);
 285         addModules.addAll(moduleHelper.modules());
 286 
 287         //--------------------------------------------------------------------
 288         // Jars
 289 
 290         // Bundle with minimum dependencies that unnamed jars depend on.
 291         if (detectModules && !jars.isEmpty()) {
 292             Log.info(String.format(I18N.getString("using.experimental.feature"), "--" + DETECT_MODULES.getID()));
 293             Collection<String> detectedModules = JDepHelper.calculateModules(jars, modulePath);
 294 
 295             if (!detectedModules.isEmpty()) {
 296                 addModules.addAll(detectedModules);
 297             }
 298         }
 299 
 300         Log.info(String.format(I18N.getString("message.modules"), addModules.toString()));
 301 
 302         AppRuntimeImageBuilder appRuntimeBuilder = new AppRuntimeImageBuilder();
 303         appRuntimeBuilder.setOutputDir(outputDir);
 304         appRuntimeBuilder.setModulePath(modulePath);
 305         appRuntimeBuilder.setAddModules(addModules);
 306         appRuntimeBuilder.setLimitModules(limitModules);
 307         appRuntimeBuilder.setExcludeFileList(excludeFileList);
 308         appRuntimeBuilder.setStripNativeCommands(stripNativeCommands);
 309         appRuntimeBuilder.setUserArguments(userArguments);
 310 
 311         appRuntimeBuilder.build();
 312         imageBuilder.prepareApplicationFiles();
 313     }
 314 
 315     // Returns the path to the JDK modules in the user defined module path.
 316     public static Path findPathOfModule(List<Path> modulePath, String moduleName) {
 317         Path result = null;
 318 
 319         for (Path path : modulePath) {
 320             Path moduleNamePath = path.resolve(moduleName);




  27 
  28 
  29 import com.oracle.tools.packager.StandardBundlerParam;
  30 import com.oracle.tools.packager.BundlerParamInfo;
  31 import com.oracle.tools.packager.StandardBundlerParam;
  32 import com.oracle.tools.packager.RelativeFileSet;
  33 import com.oracle.tools.packager.Log;
  34 
  35 import java.io.ByteArrayOutputStream;
  36 import java.io.File;
  37 import java.io.FileInputStream;
  38 import java.io.FileNotFoundException;
  39 import java.io.IOException;
  40 import java.io.InputStream;
  41 import java.io.PrintWriter;
  42 import java.io.StringReader;
  43 import java.net.URI;
  44 import java.nio.file.Files;
  45 import java.nio.file.Path;
  46 import java.nio.file.Paths;
  47 import java.text.MessageFormat;
  48 import java.util.ArrayList;
  49 import java.util.Arrays;
  50 import java.util.Collection;
  51 import java.util.Collections;
  52 import java.util.EnumSet;
  53 import java.util.HashMap;
  54 import java.util.HashSet;
  55 import java.util.Iterator;
  56 import java.util.LinkedHashMap;
  57 import java.util.LinkedHashSet;
  58 import java.util.List;
  59 import java.util.Map;
  60 import java.util.Optional;
  61 import java.util.Properties;
  62 import java.util.ResourceBundle;
  63 import java.util.Set;
  64 import java.util.TreeSet;
  65 import java.util.function.Supplier;
  66 import java.util.logging.Level;
  67 import java.util.logging.Logger;


 261         }
 262 
 263         //--------------------------------------------------------------------
 264         // Modules
 265 
 266         boolean detectModules = DETECT_MODULES.fetchFrom(params);
 267 
 268         // The default for an unnamed jar is ALL_DEFAULT with the
 269         // non-redistributable modules removed.
 270         if (mainJarType == Module.ModuleType.UnnamedJar && !detectModules) {
 271             addModules.add(ModuleHelper.ALL_RUNTIME);
 272         }
 273         else if (mainJarType == Module.ModuleType.Unknown || mainJarType == Module.ModuleType.ModularJar) {
 274             String mainModule = getMainModule(params);
 275             addModules.add(mainModule);
 276 
 277             // Error if any of the srcfiles are modular jars.
 278             Set<String> modularJars = getResourceFileJarList(params, Module.JarType.ModularJar);
 279 
 280             if (!modularJars.isEmpty()) {
 281                 throw new Exception(MessageFormat.format(I18N.getString("error.srcfiles.contain.modules"), modularJars.toString()));
 282             }
 283         }
 284 
 285         ModuleHelper moduleHelper = new ModuleHelper(modulePath, addModules, limitModules);
 286         addModules.addAll(moduleHelper.modules());
 287 
 288         //--------------------------------------------------------------------
 289         // Jars
 290 
 291         // Bundle with minimum dependencies that unnamed jars depend on.
 292         if (detectModules && !jars.isEmpty()) {
 293             Log.info(MessageFormat.format(I18N.getString("using.experimental.feature"), "--" + DETECT_MODULES.getID()));
 294             Collection<String> detectedModules = JDepHelper.calculateModules(jars, modulePath);
 295 
 296             if (!detectedModules.isEmpty()) {
 297                 addModules.addAll(detectedModules);
 298             }
 299         }
 300 
 301         Log.info(MessageFormat.format(I18N.getString("message.modules"), addModules.toString()));
 302 
 303         AppRuntimeImageBuilder appRuntimeBuilder = new AppRuntimeImageBuilder();
 304         appRuntimeBuilder.setOutputDir(outputDir);
 305         appRuntimeBuilder.setModulePath(modulePath);
 306         appRuntimeBuilder.setAddModules(addModules);
 307         appRuntimeBuilder.setLimitModules(limitModules);
 308         appRuntimeBuilder.setExcludeFileList(excludeFileList);
 309         appRuntimeBuilder.setStripNativeCommands(stripNativeCommands);
 310         appRuntimeBuilder.setUserArguments(userArguments);
 311 
 312         appRuntimeBuilder.build();
 313         imageBuilder.prepareApplicationFiles();
 314     }
 315 
 316     // Returns the path to the JDK modules in the user defined module path.
 317     public static Path findPathOfModule(List<Path> modulePath, String moduleName) {
 318         Path result = null;
 319 
 320         for (Path path : modulePath) {
 321             Path moduleNamePath = path.resolve(moduleName);


< prev index next >