src/jdk.packager/windows/classes/jdk/packager/internal/windows/WinAppBundler.java
branchJDK-8200758-branch
changeset 56982 e094d5483bd6
parent 56933 9f59eeb3cc0f
child 57013 0ece1b6f0958
equal deleted inserted replaced
56963:eaca4369b068 56982:e094d5483bd6
    33 import jdk.packager.internal.Platform;
    33 import jdk.packager.internal.Platform;
    34 import jdk.packager.internal.StandardBundlerParam;
    34 import jdk.packager.internal.StandardBundlerParam;
    35 import jdk.packager.internal.UnsupportedPlatformException;
    35 import jdk.packager.internal.UnsupportedPlatformException;
    36 import jdk.packager.internal.builders.windows.WindowsAppImageBuilder;
    36 import jdk.packager.internal.builders.windows.WindowsAppImageBuilder;
    37 import jdk.packager.internal.resources.windows.WinResources;
    37 import jdk.packager.internal.resources.windows.WinResources;
    38 
       
    39 import jdk.packager.internal.JLinkBundlerHelper;
    38 import jdk.packager.internal.JLinkBundlerHelper;
       
    39 import jdk.packager.internal.Arguments;
       
    40 import jdk.packager.internal.builders.AbstractAppImageBuilder;
    40 
    41 
    41 import java.io.ByteArrayOutputStream;
    42 import java.io.ByteArrayOutputStream;
    42 import java.io.File;
    43 import java.io.File;
    43 import java.io.IOException;
    44 import java.io.IOException;
    44 import java.io.PrintStream;
    45 import java.io.PrintStream;
    45 import java.text.MessageFormat;
    46 import java.text.MessageFormat;
    46 import java.util.Arrays;
    47 import java.util.Arrays;
    47 import java.util.Collection;
    48 import java.util.Collection;
    48 import java.util.Map;
    49 import java.util.Map;
    49 import java.util.ResourceBundle;
    50 import java.util.ResourceBundle;
    50 import jdk.packager.internal.Arguments;
       
    51 
    51 
    52 import static jdk.packager.internal.windows.WindowsBundlerParam.*;
    52 import static jdk.packager.internal.windows.WindowsBundlerParam.*;
    53 import jdk.packager.internal.builders.AbstractAppImageBuilder;
       
    54 import static jdk.packager.internal.windows.WinMsiBundler.WIN_APP_IMAGE;
    53 import static jdk.packager.internal.windows.WinMsiBundler.WIN_APP_IMAGE;
    55 
    54 
    56 public class WinAppBundler extends AbstractImageBundler {
    55 public class WinAppBundler extends AbstractImageBundler {
    57 
    56 
    58     private static final ResourceBundle I18N =
    57     private static final ResourceBundle I18N =
   157     private static boolean usePredefineAppName(Map<String, ? super Object> p) {
   156     private static boolean usePredefineAppName(Map<String, ? super Object> p) {
   158         return (PREDEFINED_APP_IMAGE.fetchFrom(p) != null);
   157         return (PREDEFINED_APP_IMAGE.fetchFrom(p) != null);
   159     }
   158     }
   160 
   159 
   161     private static String appName;
   160     private static String appName;
   162     private synchronized static String getAppName(Map<String, ? super Object> p) {
   161     private synchronized static String getAppName(
       
   162             Map<String, ? super Object> p) {
   163         // If we building from predefined app image, then we should use names
   163         // If we building from predefined app image, then we should use names
   164         // from image and not from CLI.
   164         // from image and not from CLI.
   165         if (usePredefineAppName(p)) {
   165         if (usePredefineAppName(p)) {
   166             if (appName == null) {
   166             if (appName == null) {
   167                 // Use WIN_APP_IMAGE here, since we already copy pre-defined image to WIN_APP_IMAGE
   167                 // Use WIN_APP_IMAGE here, since we already copy pre-defined
   168                 File appImageDir = new File(WIN_APP_IMAGE.fetchFrom(p).toString() + "\\app");
   168                 // image to WIN_APP_IMAGE
   169                 File [] files = appImageDir.listFiles((File dir, String name) -> name.endsWith(".cfg"));
   169                 File appImageDir = new File(
       
   170                         WIN_APP_IMAGE.fetchFrom(p).toString() + "\\app");
       
   171                 File [] files = appImageDir.listFiles(
       
   172                         (File dir, String name) -> name.endsWith(".cfg"));
   170                 if (files == null || files.length != 1) {
   173                 if (files == null || files.length != 1) {
   171                     throw new RuntimeException(MessageFormat.format(
   174                     throw new RuntimeException(MessageFormat.format(
   172                         I18N.getString("error.cannot-find-cfg"),
   175                         I18N.getString("error.cannot-find-cfg"),
   173                         appImageDir));
   176                         appImageDir));
   174                 } else {
   177                 } else {
   359                 JVM_OPTIONS,
   362                 JVM_OPTIONS,
   360                 JVM_PROPERTIES,
   363                 JVM_PROPERTIES,
   361                 MAIN_CLASS,
   364                 MAIN_CLASS,
   362                 MAIN_JAR,
   365                 MAIN_JAR,
   363                 PREFERENCES_ID,
   366                 PREFERENCES_ID,
   364                 PRELOADER_CLASS,
       
   365                 VERSION,
   367                 VERSION,
   366                 VERBOSE
   368                 VERBOSE
   367             );
   369             );
   368     }
   370     }
   369 
   371