modules/fxpackager/src/main/java/com/oracle/tools/packager/windows/WinMsiBundler.java
Print this page
*** 609,618 ****
--- 609,619 ----
data.put("PLATFORM", "x86");
data.put("WIN64", "no");
}
data.put("UI_BLOCK", getUIBlock(params));
+ data.put("APP_CDS_BLOCK", getAppCDSBlock(params));
List<Map<String, ? super Object>> secondaryLaunchers = SECONDARY_LAUNCHERS.fetchFrom(params);
StringBuilder secondaryLauncherIcons = new StringBuilder();
for (int i = 0; i < secondaryLaunchers.size(); i++) {
*** 684,693 ****
--- 685,711 ----
}
return uiBlock;
}
+ private String getAppCDSBlock(Map<String, ? super Object> params) {
+ String cdsBlock = "";
+ if (UNLOCK_COMMERCIAL_FEATURES.fetchFrom(params) && ENABLE_APP_CDS.fetchFrom(params)) {
+ cdsBlock =
+ " <CustomAction Id=\"CACHE_CDS\"\n" +
+ " Directory=\"APPLICATIONFOLDER\"\n" +
+ " ExeCommand=\"[APPLICATIONFOLDER]" + WinAppBundler.getLauncherName(params) +" -Xappcds:generatecache\"\n" +
+ " Execute=\"commit\"\n" +
+ " Return=\"check\"/>\n" +
+ "\n" +
+ " <InstallExecuteSequence>\n" +
+ " <Custom Action=\"CACHE_CDS\" Before=\"InstallFinalize\" />\n" +
+ " </InstallExecuteSequence>";
+ }
+ return cdsBlock;
+ }
+
private void walkFileTree(Map<String, ? super Object> params, File root, PrintStream out, String prefix) {
List<File> dirs = new ArrayList<>();
List<File> files = new ArrayList<>();
if (!root.isDirectory()) {