src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WindowsAppImageBuilder.java
branchJDK-8200758-branch
changeset 58647 2c43b89b1679
parent 58414 a5f66aa04f68
child 58695 64adf683bc7b
equal deleted inserted replaced
58608:a561014c28d0 58647:2c43b89b1679
    48 import java.util.ResourceBundle;
    48 import java.util.ResourceBundle;
    49 import java.util.Set;
    49 import java.util.Set;
    50 import java.util.concurrent.atomic.AtomicReference;
    50 import java.util.concurrent.atomic.AtomicReference;
    51 import java.util.regex.Pattern;
    51 import java.util.regex.Pattern;
    52 import java.util.stream.Stream;
    52 import java.util.stream.Stream;
       
    53 import static jdk.jpackage.internal.OverridableResource.createResource;
    53 
    54 
    54 import static jdk.jpackage.internal.StandardBundlerParam.*;
    55 import static jdk.jpackage.internal.StandardBundlerParam.*;
    55 
    56 
    56 public class WindowsAppImageBuilder extends AbstractAppImageBuilder {
    57 public class WindowsAppImageBuilder extends AbstractAppImageBuilder {
    57 
    58 
   263         validateValueAndPut(data, "LEGAL_COPYRIGHT", COPYRIGHT, params);
   264         validateValueAndPut(data, "LEGAL_COPYRIGHT", COPYRIGHT, params);
   264         data.put("ORIGINAL_FILENAME", getLauncherName(params));
   265         data.put("ORIGINAL_FILENAME", getLauncherName(params));
   265         validateValueAndPut(data, "PRODUCT_NAME", APP_NAME, params);
   266         validateValueAndPut(data, "PRODUCT_NAME", APP_NAME, params);
   266         validateValueAndPut(data, "PRODUCT_VERSION", VERSION, params);
   267         validateValueAndPut(data, "PRODUCT_VERSION", VERSION, params);
   267 
   268 
   268         try (Writer w = Files.newBufferedWriter(
   269         createResource(EXECUTABLE_PROPERTIES_TEMPLATE, params)
   269                 getConfig_ExecutableProperties(params).toPath(),
   270                 .setCategory(I18N.getString("resource.executable-properties-template"))
   270                 StandardCharsets.UTF_8)) {
   271                 .setSubstitutionData(data)
   271             String content = preprocessTextResource(
   272                 .saveToFile(getConfig_ExecutableProperties(params));
   272                     getConfig_ExecutableProperties(params).getName(),
       
   273                     I18N.getString("resource.executable-properties-template"),
       
   274                     EXECUTABLE_PROPERTIES_TEMPLATE, data,
       
   275                     VERBOSE.fetchFrom(params),
       
   276                     RESOURCE_DIR.fetchFrom(params));
       
   277             w.write(content);
       
   278         }
       
   279     }
   273     }
   280 
   274 
   281     private void createLauncherForEntryPoint(
   275     private void createLauncherForEntryPoint(
   282             Map<String, ? super Object> params) throws IOException {
   276             Map<String, ? super Object> params) throws IOException {
   283 
   277 
   284         File icon = ICON_ICO.fetchFrom(params);
       
   285         File iconTarget = getConfig_AppIcon(params);
   278         File iconTarget = getConfig_AppIcon(params);
   286 
   279 
   287         InputStream in = locateResource(
   280         createResource(TEMPLATE_APP_ICON, params)
   288                 iconTarget.getName(),
   281                 .setCategory("icon")
   289                 "icon",
   282                 .setExternal(ICON_ICO.fetchFrom(params))
   290                 TEMPLATE_APP_ICON,
   283                 .saveToFile(iconTarget);
   291                 icon,
       
   292                 VERBOSE.fetchFrom(params),
       
   293                 RESOURCE_DIR.fetchFrom(params));
       
   294 
       
   295         Files.copy(in, iconTarget.toPath(),
       
   296                 StandardCopyOption.REPLACE_EXISTING);
       
   297 
   284 
   298         writeCfgFile(params, root.resolve(
   285         writeCfgFile(params, root.resolve(
   299                 getLauncherCfgName(params)).toFile());
   286                 getLauncherCfgName(params)).toFile());
   300 
   287 
   301         prepareExecutableProperties(params);
   288         prepareExecutableProperties(params);