< prev index next >

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

Print this page




  46 import java.util.ResourceBundle;
  47 
  48 import static jdk.jpackage.internal.StandardBundlerParam.*;
  49 import static jdk.jpackage.internal.MacBaseInstallerBundler.SIGNING_KEYCHAIN;
  50 import static jdk.jpackage.internal.MacBaseInstallerBundler.SIGNING_KEY_USER;
  51 
  52 public class MacPkgBundler extends MacBaseInstallerBundler {
  53 
  54     private static final ResourceBundle I18N = ResourceBundle.getBundle(
  55             "jdk.jpackage.internal.resources.MacResources");
  56 
  57     private static final String DEFAULT_BACKGROUND_IMAGE = "background_pkg.png";
  58 
  59     private static final String TEMPLATE_PREINSTALL_SCRIPT =
  60             "preinstall.template";
  61     private static final String TEMPLATE_POSTINSTALL_SCRIPT =
  62             "postinstall.template";
  63 
  64     private static final BundlerParamInfo<File> PACKAGES_ROOT =
  65             new StandardBundlerParam<>(
  66             I18N.getString("param.packages-root.name"),
  67             I18N.getString("param.packages-root.description"),
  68             "mac.pkg.packagesRoot",
  69             File.class,
  70             params -> {
  71                 File packagesRoot =
  72                         new File(BUILD_ROOT.fetchFrom(params), "packages");
  73                 packagesRoot.mkdirs();
  74                 return packagesRoot;
  75             },
  76             (s, p) -> new File(s));
  77 
  78 
  79     protected final BundlerParamInfo<File> SCRIPTS_DIR =
  80             new StandardBundlerParam<>(
  81             I18N.getString("param.scripts-dir.name"),
  82             I18N.getString("param.scripts-dir.description"),
  83             "mac.pkg.scriptsDir",
  84             File.class,
  85             params -> {
  86                 File scriptsDir =
  87                         new File(CONFIG_ROOT.fetchFrom(params), "scripts");
  88                 scriptsDir.mkdirs();
  89                 return scriptsDir;
  90             },
  91             (s, p) -> new File(s));
  92 
  93     public static final
  94             BundlerParamInfo<String> DEVELOPER_ID_INSTALLER_SIGNING_KEY =
  95             new StandardBundlerParam<>(
  96             I18N.getString("param.signing-key-developer-id-installer.name"),
  97             I18N.getString(
  98             "param.signing-key-developer-id-installer.description"),
  99             "mac.signing-key-developer-id-installer",
 100             String.class,
 101             params -> {
 102                     String result = MacBaseInstallerBundler.findKey(
 103                             "Developer ID Installer: "
 104                             + SIGNING_KEY_USER.fetchFrom(params),
 105                             SIGNING_KEYCHAIN.fetchFrom(params),
 106                             VERBOSE.fetchFrom(params));
 107                     if (result != null) {
 108                         MacCertificate certificate = new MacCertificate(
 109                                 result, VERBOSE.fetchFrom(params));
 110 
 111                         if (!certificate.isValid()) {
 112                             Log.error(MessageFormat.format(
 113                                     I18N.getString("error.certificate.expired"),
 114                                     result));
 115                         }
 116                     }
 117 
 118                     return result;
 119                 },
 120             (s, p) -> s);
 121 
 122     public static final BundlerParamInfo<String> MAC_INSTALL_DIR =
 123             new StandardBundlerParam<>(
 124             I18N.getString("param.mac-install-dir.name"),
 125             I18N.getString("param.mac-install-dir.description"),
 126             "mac-install-dir",
 127             String.class,
 128              params -> {
 129                  String dir = INSTALL_DIR.fetchFrom(params);
 130                  return (dir != null) ? dir : "/Applications";
 131              },
 132             (s, p) -> s
 133     );
 134 
 135     public static final BundlerParamInfo<String> INSTALLER_SUFFIX =
 136             new StandardBundlerParam<> (
 137             I18N.getString("param.installer-suffix.name"),
 138             I18N.getString("param.installer-suffix.description"),
 139             "mac.pkg.installerName.suffix",
 140             String.class,
 141             params -> "",
 142             (s, p) -> s);
 143 
 144     public File bundle(Map<String, ? super Object> params,
 145             File outdir) throws PackagerException {
 146         Log.verbose(MessageFormat.format(I18N.getString("message.building-pkg"),
 147                 APP_NAME.fetchFrom(params)));
 148         if (!outdir.isDirectory() && !outdir.mkdirs()) {
 149             throw new PackagerException(
 150                     "error.cannot-create-output-dir",
 151                     outdir.getAbsolutePath());
 152         }
 153         if (!outdir.canWrite()) {
 154             throw new PackagerException(
 155                     "error.cannot-write-to-output-dir",
 156                     outdir.getAbsolutePath());
 157         }
 158 




  46 import java.util.ResourceBundle;
  47 
  48 import static jdk.jpackage.internal.StandardBundlerParam.*;
  49 import static jdk.jpackage.internal.MacBaseInstallerBundler.SIGNING_KEYCHAIN;
  50 import static jdk.jpackage.internal.MacBaseInstallerBundler.SIGNING_KEY_USER;
  51 
  52 public class MacPkgBundler extends MacBaseInstallerBundler {
  53 
  54     private static final ResourceBundle I18N = ResourceBundle.getBundle(
  55             "jdk.jpackage.internal.resources.MacResources");
  56 
  57     private static final String DEFAULT_BACKGROUND_IMAGE = "background_pkg.png";
  58 
  59     private static final String TEMPLATE_PREINSTALL_SCRIPT =
  60             "preinstall.template";
  61     private static final String TEMPLATE_POSTINSTALL_SCRIPT =
  62             "postinstall.template";
  63 
  64     private static final BundlerParamInfo<File> PACKAGES_ROOT =
  65             new StandardBundlerParam<>(


  66             "mac.pkg.packagesRoot",
  67             File.class,
  68             params -> {
  69                 File packagesRoot =
  70                         new File(TEMP_ROOT.fetchFrom(params), "packages");
  71                 packagesRoot.mkdirs();
  72                 return packagesRoot;
  73             },
  74             (s, p) -> new File(s));
  75 
  76 
  77     protected final BundlerParamInfo<File> SCRIPTS_DIR =
  78             new StandardBundlerParam<>(


  79             "mac.pkg.scriptsDir",
  80             File.class,
  81             params -> {
  82                 File scriptsDir =
  83                         new File(CONFIG_ROOT.fetchFrom(params), "scripts");
  84                 scriptsDir.mkdirs();
  85                 return scriptsDir;
  86             },
  87             (s, p) -> new File(s));
  88 
  89     public static final
  90             BundlerParamInfo<String> DEVELOPER_ID_INSTALLER_SIGNING_KEY =
  91             new StandardBundlerParam<>(


  92             "param.signing-key-developer-id-installer.description"),
  93             "mac.signing-key-developer-id-installer",
  94             String.class,
  95             params -> {
  96                     String result = MacBaseInstallerBundler.findKey(
  97                             "Developer ID Installer: "
  98                             + SIGNING_KEY_USER.fetchFrom(params),
  99                             SIGNING_KEYCHAIN.fetchFrom(params),
 100                             VERBOSE.fetchFrom(params));
 101                     if (result != null) {
 102                         MacCertificate certificate = new MacCertificate(
 103                                 result, VERBOSE.fetchFrom(params));
 104 
 105                         if (!certificate.isValid()) {
 106                             Log.error(MessageFormat.format(
 107                                     I18N.getString("error.certificate.expired"),
 108                                     result));
 109                         }
 110                     }
 111 
 112                     return result;
 113                 },
 114             (s, p) -> s);
 115 
 116     public static final BundlerParamInfo<String> MAC_INSTALL_DIR =
 117             new StandardBundlerParam<>(


 118             "mac-install-dir",
 119             String.class,
 120              params -> {
 121                  String dir = INSTALL_DIR.fetchFrom(params);
 122                  return (dir != null) ? dir : "/Applications";
 123              },
 124             (s, p) -> s
 125     );
 126 
 127     public static final BundlerParamInfo<String> INSTALLER_SUFFIX =
 128             new StandardBundlerParam<> (


 129             "mac.pkg.installerName.suffix",
 130             String.class,
 131             params -> "",
 132             (s, p) -> s);
 133 
 134     public File bundle(Map<String, ? super Object> params,
 135             File outdir) throws PackagerException {
 136         Log.verbose(MessageFormat.format(I18N.getString("message.building-pkg"),
 137                 APP_NAME.fetchFrom(params)));
 138         if (!outdir.isDirectory() && !outdir.mkdirs()) {
 139             throw new PackagerException(
 140                     "error.cannot-create-output-dir",
 141                     outdir.getAbsolutePath());
 142         }
 143         if (!outdir.canWrite()) {
 144             throw new PackagerException(
 145                     "error.cannot-write-to-output-dir",
 146                     outdir.getAbsolutePath());
 147         }
 148 


< prev index next >