src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java
branchJDK-8200758-branch
changeset 57096 d06bec27f8c9
parent 57091 06bc4bd64599
child 57106 ea870b9ce89a
equal deleted inserted replaced
57095:1e18c850b591 57096:d06bec27f8c9
    37 import java.io.UncheckedIOException;
    37 import java.io.UncheckedIOException;
    38 import java.io.Writer;
    38 import java.io.Writer;
    39 import java.math.BigInteger;
    39 import java.math.BigInteger;
    40 import java.nio.file.Files;
    40 import java.nio.file.Files;
    41 import java.nio.file.Path;
    41 import java.nio.file.Path;
       
    42 import java.nio.file.StandardCopyOption;
    42 import java.nio.file.attribute.PosixFilePermission;
    43 import java.nio.file.attribute.PosixFilePermission;
    43 import java.text.MessageFormat;
    44 import java.text.MessageFormat;
    44 import java.util.ArrayList;
    45 import java.util.ArrayList;
    45 import java.util.Arrays;
    46 import java.util.Arrays;
    46 import java.util.EnumSet;
    47 import java.util.EnumSet;
   137                             return "100";
   138                             return "100";
   138                         }
   139                         }
   139                     },
   140                     },
   140                     (s, p) -> s);
   141                     (s, p) -> s);
   141 
   142 
   142     public static final BundlerParamInfo<File> CONFIG_ROOT =
       
   143             new StandardBundlerParam<>(
       
   144             I18N.getString("param.config-root.name"),
       
   145             I18N.getString("param.config-root.description"),
       
   146             "configRoot",
       
   147             File.class,
       
   148             params -> {
       
   149                 File configRoot =
       
   150                         new File(BUILD_ROOT.fetchFrom(params), "macosx");
       
   151                 configRoot.mkdirs();
       
   152                 return configRoot;
       
   153             },
       
   154             (s, p) -> new File(s));
       
   155 
       
   156     public static final BundlerParamInfo<String> DEFAULT_ICNS_ICON =
   143     public static final BundlerParamInfo<String> DEFAULT_ICNS_ICON =
   157             new StandardBundlerParam<>(
   144             new StandardBundlerParam<>(
   158             I18N.getString("param.default-icon-icns"),
   145             I18N.getString("param.default-icon-icns"),
   159             I18N.getString("param.default-icon-icns.description"),
   146             I18N.getString("param.default-icon-icns.description"),
   160             ".mac.default.icns",
   147             ".mac.default.icns",
   369         // Copy class path entries to Java folder
   356         // Copy class path entries to Java folder
   370         copyClassPathEntries(javaDir);
   357         copyClassPathEntries(javaDir);
   371 
   358 
   372         /*********** Take care of "config" files *******/
   359         /*********** Take care of "config" files *******/
   373         File icon = ICON_ICNS.fetchFrom(params);
   360         File icon = ICON_ICNS.fetchFrom(params);
       
   361 
   374         InputStream in = locateResource(
   362         InputStream in = locateResource(
   375                 APP_NAME.fetchFrom(params) + ".icns",
   363                 APP_NAME.fetchFrom(params) + ".icns",
   376                 "icon",
   364                 "icon",
   377                 DEFAULT_ICNS_ICON.fetchFrom(params),
   365                 DEFAULT_ICNS_ICON.fetchFrom(params),
   378                 icon,
   366                 icon,
   379                 VERBOSE.fetchFrom(params),
   367                 VERBOSE.fetchFrom(params),
   380                 RESOURCE_DIR.fetchFrom(params));
   368                 RESOURCE_DIR.fetchFrom(params));
   381         Files.copy(in,
   369         Files.copy(in,
   382                 resourcesDir.resolve(APP_NAME.fetchFrom(params) + ".icns"));
   370                 resourcesDir.resolve(APP_NAME.fetchFrom(params) + ".icns"),
       
   371                 StandardCopyOption.REPLACE_EXISTING);
   383 
   372 
   384         // copy file association icons
   373         // copy file association icons
   385         for (Map<String, ?
   374         for (Map<String, ?
   386                 super Object> fa : FILE_ASSOCIATIONS.fetchFrom(params)) {
   375                 super Object> fa : FILE_ASSOCIATIONS.fetchFrom(params)) {
   387             File f = FA_ICON.fetchFrom(fa);
   376             File f = FA_ICON.fetchFrom(fa);