< prev index next >

src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java

Print this page




 235             return false;
 236         }
 237 
 238         return true;
 239     }
 240 
 241     @Override
 242     public boolean validate(Map<String, ? super Object> params)
 243             throws UnsupportedPlatformException, ConfigException {
 244         try {
 245             return doValidate(params);
 246         } catch (RuntimeException re) {
 247             if (re.getCause() instanceof ConfigException) {
 248                 throw (ConfigException) re.getCause();
 249             } else {
 250                 throw new ConfigException(re);
 251             }
 252         }
 253     }
 254 
 255     private boolean doValidate(Map<String, ? super Object> p)
 256             throws UnsupportedPlatformException, ConfigException {
 257         if (Platform.getPlatform() != Platform.MAC) {
 258             throw new UnsupportedPlatformException();
 259         }
 260 
 261         imageBundleValidation(p);
 262 
 263         if (StandardBundlerParam.getPredefinedAppImage(p) != null) {
 264             return true;
 265         }
 266 
 267         // validate short version
 268         if (!validCFBundleVersion(MAC_CF_BUNDLE_VERSION.fetchFrom(p))) {
 269             throw new ConfigException(
 270                     I18N.getString("error.invalid-cfbundle-version"),
 271                     I18N.getString("error.invalid-cfbundle-version.advice"));
 272         }
 273 
 274         // reject explicitly set sign to true and no valid signature key
 275         if (Optional.ofNullable(MacAppImageBuilder.
 276                     SIGN_BUNDLE.fetchFrom(p)).orElse(Boolean.FALSE)) {
 277             String signingIdentity = DEVELOPER_ID_APP_SIGNING_KEY.fetchFrom(p);

 278             if (signingIdentity == null) {
 279                 throw new ConfigException(
 280                         I18N.getString("error.explicit-sign-no-cert"),
 281                         I18N.getString("error.explicit-sign-no-cert.advice"));
 282             }
 283         }
 284 
 285         return true;
 286     }
 287 
 288     File doBundle(Map<String, ? super Object> p, File outputDirectory,
 289             boolean dependentTask) throws PackagerException {
 290         if (StandardBundlerParam.isRuntimeInstaller(p)) {
 291             return PREDEFINED_RUNTIME_IMAGE.fetchFrom(p);
 292         } else {
 293             return doAppBundle(p, outputDirectory, dependentTask);
 294         }
 295     }
 296 
 297     File doAppBundle(Map<String, ? super Object> p, File outputDirectory,
 298             boolean dependentTask) throws PackagerException {
 299         try {
 300             File rootDirectory = createRoot(p, outputDirectory, dependentTask,
 301                     APP_NAME.fetchFrom(p) + ".app");
 302             AbstractAppImageBuilder appBuilder =
 303                     new MacAppImageBuilder(p, outputDirectory.toPath());
 304             if (PREDEFINED_RUNTIME_IMAGE.fetchFrom(p) == null ) {
 305                 JLinkBundlerHelper.execute(p, appBuilder);
 306             } else {
 307                 StandardBundlerParam.copyPredefinedRuntimeImage(p, appBuilder);

 308             }
 309             return rootDirectory;
 310         } catch (PackagerException pe) {
 311             throw pe;
 312         } catch (Exception ex) {
 313             Log.verbose(ex);
 314             throw new PackagerException(ex);
 315         }
 316     }
 317 
 318     /////////////////////////////////////////////////////////////////////////
 319     // Implement Bundler
 320     /////////////////////////////////////////////////////////////////////////
 321 
 322     @Override
 323     public String getName() {
 324         return I18N.getString("app.bundler.name");
 325     }
 326 
 327     @Override




 235             return false;
 236         }
 237 
 238         return true;
 239     }
 240 
 241     @Override
 242     public boolean validate(Map<String, ? super Object> params)
 243             throws UnsupportedPlatformException, ConfigException {
 244         try {
 245             return doValidate(params);
 246         } catch (RuntimeException re) {
 247             if (re.getCause() instanceof ConfigException) {
 248                 throw (ConfigException) re.getCause();
 249             } else {
 250                 throw new ConfigException(re);
 251             }
 252         }
 253     }
 254 
 255     private boolean doValidate(Map<String, ? super Object> params)
 256             throws UnsupportedPlatformException, ConfigException {
 257         if (Platform.getPlatform() != Platform.MAC) {
 258             throw new UnsupportedPlatformException();
 259         }
 260 
 261         imageBundleValidation(params);
 262 
 263         if (StandardBundlerParam.getPredefinedAppImage(params) != null) {
 264             return true;
 265         }
 266 
 267         // validate short version
 268         if (!validCFBundleVersion(MAC_CF_BUNDLE_VERSION.fetchFrom(params))) {
 269             throw new ConfigException(
 270                     I18N.getString("error.invalid-cfbundle-version"),
 271                     I18N.getString("error.invalid-cfbundle-version.advice"));
 272         }
 273 
 274         // reject explicitly set sign to true and no valid signature key
 275         if (Optional.ofNullable(MacAppImageBuilder.
 276                     SIGN_BUNDLE.fetchFrom(params)).orElse(Boolean.FALSE)) {
 277             String signingIdentity =
 278                     DEVELOPER_ID_APP_SIGNING_KEY.fetchFrom(params);
 279             if (signingIdentity == null) {
 280                 throw new ConfigException(
 281                         I18N.getString("error.explicit-sign-no-cert"),
 282                         I18N.getString("error.explicit-sign-no-cert.advice"));
 283             }
 284         }
 285 
 286         return true;
 287     }
 288 
 289     File doBundle(Map<String, ? super Object> params, File outputDirectory,
 290             boolean dependentTask) throws PackagerException {
 291         if (StandardBundlerParam.isRuntimeInstaller(params)) {
 292             return PREDEFINED_RUNTIME_IMAGE.fetchFrom(params);
 293         } else {
 294             return doAppBundle(params, outputDirectory, dependentTask);
 295         }
 296     }
 297 
 298     File doAppBundle(Map<String, ? super Object> params, File outputDirectory,
 299             boolean dependentTask) throws PackagerException {
 300         try {
 301             File rootDirectory = createRoot(params, outputDirectory,
 302                     dependentTask, APP_NAME.fetchFrom(params) + ".app");
 303             AbstractAppImageBuilder appBuilder =
 304                     new MacAppImageBuilder(params, outputDirectory.toPath());
 305             if (PREDEFINED_RUNTIME_IMAGE.fetchFrom(params) == null ) {
 306                 JLinkBundlerHelper.execute(params, appBuilder);
 307             } else {
 308                 StandardBundlerParam.copyPredefinedRuntimeImage(
 309                         params, appBuilder);
 310             }
 311             return rootDirectory;
 312         } catch (PackagerException pe) {
 313             throw pe;
 314         } catch (Exception ex) {
 315             Log.verbose(ex);
 316             throw new PackagerException(ex);
 317         }
 318     }
 319 
 320     /////////////////////////////////////////////////////////////////////////
 321     // Implement Bundler
 322     /////////////////////////////////////////////////////////////////////////
 323 
 324     @Override
 325     public String getName() {
 326         return I18N.getString("app.bundler.name");
 327     }
 328 
 329     @Override


< prev index next >