< prev index next >

modules/jdk.packager/src/main/java/com/oracle/tools/packager/mac/MacAppBundler.java

Print this page




  34 import com.oracle.tools.packager.StandardBundlerParam;
  35 import com.oracle.tools.packager.UnsupportedPlatformException;
  36 import jdk.packager.builders.mac.MacAppImageBuilder;
  37 
  38 import jdk.packager.internal.JLinkBundlerHelper;
  39 
  40 import java.io.File;
  41 import java.io.IOException;
  42 import java.math.BigInteger;
  43 import java.text.MessageFormat;
  44 import java.util.Arrays;
  45 import java.util.Collection;
  46 import java.util.HashMap;
  47 import java.util.Map;
  48 import java.util.Optional;
  49 import java.util.ResourceBundle;
  50 
  51 import static com.oracle.tools.packager.StandardBundlerParam.*;
  52 import static com.oracle.tools.packager.mac.MacBaseInstallerBundler.*;
  53 import jdk.packager.builders.AbstractAppImageBuilder;

  54 
  55 public class MacAppBundler extends AbstractImageBundler {
  56 
  57     private static final ResourceBundle I18N =
  58             ResourceBundle.getBundle(MacAppBundler.class.getName());
  59 
  60     public final static String MAC_BUNDLER_PREFIX =
  61             BUNDLER_PREFIX + "macosx" + File.separator;
  62 
  63     private static final String TEMPLATE_BUNDLE_ICON = "GenericApp.icns";
  64 
  65     private static Map<String, String> getMacCategories() {
  66         Map<String, String> map = new HashMap<>();
  67         map.put("Business", "public.app-category.business");
  68         map.put("Developer Tools", "public.app-category.developer-tools");
  69         map.put("Education", "public.app-category.education");
  70         map.put("Entertainment", "public.app-category.entertainment");
  71         map.put("Finance", "public.app-category.finance");
  72         map.put("Games", "public.app-category.games");
  73         map.put("Graphics & Design", "public.app-category.graphics-design");


 165             params -> {
 166                 File configRoot = new File(BUILD_ROOT.fetchFrom(params), "macosx");
 167                 configRoot.mkdirs();
 168                 return configRoot;
 169             },
 170             (s, p) -> new File(s));
 171 
 172     public static final BundlerParamInfo<String> DEFAULT_ICNS_ICON = new StandardBundlerParam<>(
 173             I18N.getString("param.default-icon-icns"),
 174             I18N.getString("param.default-icon-icns.description"),
 175             ".mac.default.icns",
 176             String.class,
 177             params -> TEMPLATE_BUNDLE_ICON,
 178             (s, p) -> s);
 179 
 180     public static final BundlerParamInfo<String> DEVELOPER_ID_APP_SIGNING_KEY = new StandardBundlerParam<>(
 181             I18N.getString("param.signing-key-developer-id-app.name"),
 182             I18N.getString("param.signing-key-developer-id-app.description"),
 183             "mac.signing-key-developer-id-app",
 184             String.class,
 185             params -> MacBaseInstallerBundler.findKey("Developer ID Application: " + SIGNING_KEY_USER.fetchFrom(params), SIGNING_KEYCHAIN.fetchFrom(params), VERBOSE.fetchFrom(params)),













 186             (s, p) -> s);
 187 
 188     public static final BundlerParamInfo<String> BUNDLE_ID_SIGNING_PREFIX = new StandardBundlerParam<>(
 189             I18N.getString("param.bundle-id-signing-prefix.name"),
 190             I18N.getString("param.bundle-id-signing-prefix.description"),
 191             "mac.bundle-id-signing-prefix",
 192             String.class,
 193             params -> IDENTIFIER.fetchFrom(params) + ".",
 194             (s, p) -> s);
 195 
 196     public static final BundlerParamInfo<File> ICON_ICNS = new StandardBundlerParam<>(
 197             I18N.getString("param.icon-icns.name"),
 198             I18N.getString("param.icon-icns.description"),
 199             "icon.icns",
 200             File.class,
 201             params -> {
 202                 File f = ICON.fetchFrom(params);
 203                 if (f != null && !f.getName().toLowerCase().endsWith(".icns")) {
 204                     Log.info(MessageFormat.format(I18N.getString("message.icon-not-icns"), f));
 205                     return null;




  34 import com.oracle.tools.packager.StandardBundlerParam;
  35 import com.oracle.tools.packager.UnsupportedPlatformException;
  36 import jdk.packager.builders.mac.MacAppImageBuilder;
  37 
  38 import jdk.packager.internal.JLinkBundlerHelper;
  39 
  40 import java.io.File;
  41 import java.io.IOException;
  42 import java.math.BigInteger;
  43 import java.text.MessageFormat;
  44 import java.util.Arrays;
  45 import java.util.Collection;
  46 import java.util.HashMap;
  47 import java.util.Map;
  48 import java.util.Optional;
  49 import java.util.ResourceBundle;
  50 
  51 import static com.oracle.tools.packager.StandardBundlerParam.*;
  52 import static com.oracle.tools.packager.mac.MacBaseInstallerBundler.*;
  53 import jdk.packager.builders.AbstractAppImageBuilder;
  54 import jdk.packager.internal.mac.MacCertificate;
  55 
  56 public class MacAppBundler extends AbstractImageBundler {
  57 
  58     private static final ResourceBundle I18N =
  59             ResourceBundle.getBundle(MacAppBundler.class.getName());
  60 
  61     public final static String MAC_BUNDLER_PREFIX =
  62             BUNDLER_PREFIX + "macosx" + File.separator;
  63 
  64     private static final String TEMPLATE_BUNDLE_ICON = "GenericApp.icns";
  65 
  66     private static Map<String, String> getMacCategories() {
  67         Map<String, String> map = new HashMap<>();
  68         map.put("Business", "public.app-category.business");
  69         map.put("Developer Tools", "public.app-category.developer-tools");
  70         map.put("Education", "public.app-category.education");
  71         map.put("Entertainment", "public.app-category.entertainment");
  72         map.put("Finance", "public.app-category.finance");
  73         map.put("Games", "public.app-category.games");
  74         map.put("Graphics & Design", "public.app-category.graphics-design");


 166             params -> {
 167                 File configRoot = new File(BUILD_ROOT.fetchFrom(params), "macosx");
 168                 configRoot.mkdirs();
 169                 return configRoot;
 170             },
 171             (s, p) -> new File(s));
 172 
 173     public static final BundlerParamInfo<String> DEFAULT_ICNS_ICON = new StandardBundlerParam<>(
 174             I18N.getString("param.default-icon-icns"),
 175             I18N.getString("param.default-icon-icns.description"),
 176             ".mac.default.icns",
 177             String.class,
 178             params -> TEMPLATE_BUNDLE_ICON,
 179             (s, p) -> s);
 180 
 181     public static final BundlerParamInfo<String> DEVELOPER_ID_APP_SIGNING_KEY = new StandardBundlerParam<>(
 182             I18N.getString("param.signing-key-developer-id-app.name"),
 183             I18N.getString("param.signing-key-developer-id-app.description"),
 184             "mac.signing-key-developer-id-app",
 185             String.class,
 186             params -> {
 187                     String result = MacBaseInstallerBundler.findKey("Developer ID Application: " + SIGNING_KEY_USER.fetchFrom(params),
 188                                                                     SIGNING_KEYCHAIN.fetchFrom(params),
 189                                                                     VERBOSE.fetchFrom(params));
 190                     if (result != null) {
 191                         MacCertificate certificate = new MacCertificate(result, VERBOSE.fetchFrom(params));
 192 
 193                         if (!certificate.isValid()) {
 194                             Log.info(MessageFormat.format(I18N.getString("error.certificate.expired"), result));
 195                         }
 196                     }
 197 
 198                     return result;
 199                 },
 200             (s, p) -> s);
 201 
 202     public static final BundlerParamInfo<String> BUNDLE_ID_SIGNING_PREFIX = new StandardBundlerParam<>(
 203             I18N.getString("param.bundle-id-signing-prefix.name"),
 204             I18N.getString("param.bundle-id-signing-prefix.description"),
 205             "mac.bundle-id-signing-prefix",
 206             String.class,
 207             params -> IDENTIFIER.fetchFrom(params) + ".",
 208             (s, p) -> s);
 209 
 210     public static final BundlerParamInfo<File> ICON_ICNS = new StandardBundlerParam<>(
 211             I18N.getString("param.icon-icns.name"),
 212             I18N.getString("param.icon-icns.description"),
 213             "icon.icns",
 214             File.class,
 215             params -> {
 216                 File f = ICON.fetchFrom(params);
 217                 if (f != null && !f.getName().toLowerCase().endsWith(".icns")) {
 218                     Log.info(MessageFormat.format(I18N.getString("message.icon-not-icns"), f));
 219                     return null;


< prev index next >