< prev index next >

src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinExeBundler.java

Print this page




 166         return "INSTALLER";
 167     }
 168 
 169     @Override
 170     public Collection<BundlerParamInfo<?>> getBundleParameters() {
 171         Collection<BundlerParamInfo<?>> results = new LinkedHashSet<>();
 172         results.addAll(WinAppBundler.getAppBundleParameters());
 173         results.addAll(getExeBundleParameters());
 174         return results;
 175     }
 176 
 177     public static Collection<BundlerParamInfo<?>> getExeBundleParameters() {
 178         return Arrays.asList(
 179                 DESCRIPTION,
 180                 COPYRIGHT,
 181                 LICENSE_FILE,
 182                 MENU_GROUP,
 183                 MENU_HINT,
 184                 SHORTCUT_HINT,
 185                 EXE_SYSTEM_WIDE,
 186                 TITLE,
 187                 VENDOR,
 188                 INSTALLDIR_CHOOSER
 189         );
 190     }
 191 
 192     @Override
 193     public File execute(Map<String, ? super Object> p,
 194             File outputParentDir) throws PackagerException {
 195         return bundle(p, outputParentDir);
 196     }
 197 
 198     @Override
 199     public boolean supported(boolean platformInstaller) {
 200         return (Platform.getPlatform() == Platform.WINDOWS);
 201     }
 202 
 203     private static String findToolVersion(String toolName) {
 204         try {
 205             if (toolName == null || "".equals(toolName)) return null;
 206 


 224     }
 225 
 226     @Override
 227     public boolean validate(Map<String, ? super Object> p)
 228             throws UnsupportedPlatformException, ConfigException {
 229         try {
 230             if (p == null) throw new ConfigException(
 231                       getString("error.parameters-null"),
 232                       getString("error.parameters-null.advice"));
 233 
 234             // run basic validation to ensure requirements are met
 235             // we are not interested in return code, only possible exception
 236             APP_BUNDLER.fetchFrom(p).validate(p);
 237 
 238             // make sure some key values don't have newlines
 239             for (BundlerParamInfo<String> pi : Arrays.asList(
 240                     APP_NAME,
 241                     COPYRIGHT,
 242                     DESCRIPTION,
 243                     MENU_GROUP,
 244                     TITLE,
 245                     VENDOR,
 246                     VERSION)
 247             ) {
 248                 String v = pi.fetchFrom(p);
 249                 if (v.contains("\n") | v.contains("\r")) {
 250                     throw new ConfigException("Parmeter '" + pi.getID() +
 251                             "' cannot contain a newline.",
 252                             " Change the value of '" + pi.getID() +
 253                             " so that it does not contain any newlines");
 254                 }
 255             }
 256 
 257             // exe bundlers trim the copyright to 100 characters,
 258             // tell them this will happen
 259             if (COPYRIGHT.fetchFrom(p).length() > 100) {
 260                 throw new ConfigException(
 261                         getString("error.copyright-is-too-long"),
 262                         getString("error.copyright-is-too-long.advice"));
 263             }
 264 


 484                 innosetupEscape(getAppIdentifier(p)));
 485 
 486 
 487         validateValueAndPut(data, "INSTALLER_NAME", APP_NAME, p);
 488         validateValueAndPut(data, "APPLICATION_VENDOR", VENDOR, p);
 489         validateValueAndPut(data, "APPLICATION_VERSION", VERSION, p);
 490         validateValueAndPut(data, "INSTALLER_FILE_NAME",
 491                 INSTALLER_FILE_NAME, p);
 492 
 493         data.put("LAUNCHER_NAME",
 494                 innosetupEscape(WinAppBundler.getAppName(p)));
 495 
 496         data.put("APPLICATION_LAUNCHER_FILENAME",
 497                 innosetupEscape(WinAppBundler.getLauncherName(p)));
 498 
 499         data.put("APPLICATION_DESKTOP_SHORTCUT",
 500                 SHORTCUT_HINT.fetchFrom(p) ? "returnTrue" : "returnFalse");
 501         data.put("APPLICATION_MENU_SHORTCUT",
 502                 MENU_HINT.fetchFrom(p) ? "returnTrue" : "returnFalse");
 503         validateValueAndPut(data, "APPLICATION_GROUP", MENU_GROUP, p);
 504         validateValueAndPut(data, "APPLICATION_COMMENTS", TITLE, p);
 505         validateValueAndPut(data, "APPLICATION_COPYRIGHT", COPYRIGHT, p);
 506 
 507         data.put("APPLICATION_LICENSE_FILE",
 508                 innosetupEscape(getLicenseFile(p)));
 509         data.put("DISABLE_DIR_PAGE",
 510                 INSTALLDIR_CHOOSER.fetchFrom(p) ? "No" : "Yes");
 511 
 512         Boolean isSystemWide = EXE_SYSTEM_WIDE.fetchFrom(p);
 513 
 514         if (isSystemWide) {
 515             data.put("APPLICATION_INSTALL_ROOT", "{pf}");
 516             data.put("APPLICATION_INSTALL_PRIVILEGE", "admin");
 517         } else {
 518             data.put("APPLICATION_INSTALL_ROOT", "{localappdata}");
 519             data.put("APPLICATION_INSTALL_PRIVILEGE", "lowest");
 520         }
 521 
 522         data.put("ARCHITECTURE_BIT_MODE", "x64");
 523 
 524         validateValueAndPut(data, "RUN_FILENAME", APP_NAME, p);




 166         return "INSTALLER";
 167     }
 168 
 169     @Override
 170     public Collection<BundlerParamInfo<?>> getBundleParameters() {
 171         Collection<BundlerParamInfo<?>> results = new LinkedHashSet<>();
 172         results.addAll(WinAppBundler.getAppBundleParameters());
 173         results.addAll(getExeBundleParameters());
 174         return results;
 175     }
 176 
 177     public static Collection<BundlerParamInfo<?>> getExeBundleParameters() {
 178         return Arrays.asList(
 179                 DESCRIPTION,
 180                 COPYRIGHT,
 181                 LICENSE_FILE,
 182                 MENU_GROUP,
 183                 MENU_HINT,
 184                 SHORTCUT_HINT,
 185                 EXE_SYSTEM_WIDE,

 186                 VENDOR,
 187                 INSTALLDIR_CHOOSER
 188         );
 189     }
 190 
 191     @Override
 192     public File execute(Map<String, ? super Object> p,
 193             File outputParentDir) throws PackagerException {
 194         return bundle(p, outputParentDir);
 195     }
 196 
 197     @Override
 198     public boolean supported(boolean platformInstaller) {
 199         return (Platform.getPlatform() == Platform.WINDOWS);
 200     }
 201 
 202     private static String findToolVersion(String toolName) {
 203         try {
 204             if (toolName == null || "".equals(toolName)) return null;
 205 


 223     }
 224 
 225     @Override
 226     public boolean validate(Map<String, ? super Object> p)
 227             throws UnsupportedPlatformException, ConfigException {
 228         try {
 229             if (p == null) throw new ConfigException(
 230                       getString("error.parameters-null"),
 231                       getString("error.parameters-null.advice"));
 232 
 233             // run basic validation to ensure requirements are met
 234             // we are not interested in return code, only possible exception
 235             APP_BUNDLER.fetchFrom(p).validate(p);
 236 
 237             // make sure some key values don't have newlines
 238             for (BundlerParamInfo<String> pi : Arrays.asList(
 239                     APP_NAME,
 240                     COPYRIGHT,
 241                     DESCRIPTION,
 242                     MENU_GROUP,

 243                     VENDOR,
 244                     VERSION)
 245             ) {
 246                 String v = pi.fetchFrom(p);
 247                 if (v.contains("\n") | v.contains("\r")) {
 248                     throw new ConfigException("Parmeter '" + pi.getID() +
 249                             "' cannot contain a newline.",
 250                             " Change the value of '" + pi.getID() +
 251                             " so that it does not contain any newlines");
 252                 }
 253             }
 254 
 255             // exe bundlers trim the copyright to 100 characters,
 256             // tell them this will happen
 257             if (COPYRIGHT.fetchFrom(p).length() > 100) {
 258                 throw new ConfigException(
 259                         getString("error.copyright-is-too-long"),
 260                         getString("error.copyright-is-too-long.advice"));
 261             }
 262 


 482                 innosetupEscape(getAppIdentifier(p)));
 483 
 484 
 485         validateValueAndPut(data, "INSTALLER_NAME", APP_NAME, p);
 486         validateValueAndPut(data, "APPLICATION_VENDOR", VENDOR, p);
 487         validateValueAndPut(data, "APPLICATION_VERSION", VERSION, p);
 488         validateValueAndPut(data, "INSTALLER_FILE_NAME",
 489                 INSTALLER_FILE_NAME, p);
 490 
 491         data.put("LAUNCHER_NAME",
 492                 innosetupEscape(WinAppBundler.getAppName(p)));
 493 
 494         data.put("APPLICATION_LAUNCHER_FILENAME",
 495                 innosetupEscape(WinAppBundler.getLauncherName(p)));
 496 
 497         data.put("APPLICATION_DESKTOP_SHORTCUT",
 498                 SHORTCUT_HINT.fetchFrom(p) ? "returnTrue" : "returnFalse");
 499         data.put("APPLICATION_MENU_SHORTCUT",
 500                 MENU_HINT.fetchFrom(p) ? "returnTrue" : "returnFalse");
 501         validateValueAndPut(data, "APPLICATION_GROUP", MENU_GROUP, p);

 502         validateValueAndPut(data, "APPLICATION_COPYRIGHT", COPYRIGHT, p);
 503 
 504         data.put("APPLICATION_LICENSE_FILE",
 505                 innosetupEscape(getLicenseFile(p)));
 506         data.put("DISABLE_DIR_PAGE",
 507                 INSTALLDIR_CHOOSER.fetchFrom(p) ? "No" : "Yes");
 508 
 509         Boolean isSystemWide = EXE_SYSTEM_WIDE.fetchFrom(p);
 510 
 511         if (isSystemWide) {
 512             data.put("APPLICATION_INSTALL_ROOT", "{pf}");
 513             data.put("APPLICATION_INSTALL_PRIVILEGE", "admin");
 514         } else {
 515             data.put("APPLICATION_INSTALL_ROOT", "{localappdata}");
 516             data.put("APPLICATION_INSTALL_PRIVILEGE", "lowest");
 517         }
 518 
 519         data.put("ARCHITECTURE_BIT_MODE", "x64");
 520 
 521         validateValueAndPut(data, "RUN_FILENAME", APP_NAME, p);


< prev index next >