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


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


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


< prev index next >