< prev index next >

modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacAppStoreBundler.java

Print this page
rev 9619 : imported patch 9-jake-fxpackager.patch

*** 24,40 **** */ package com.oracle.tools.packager.mac; import com.oracle.tools.packager.BundlerParamInfo; - import com.oracle.tools.packager.JreUtils; - import com.oracle.tools.packager.RelativeFileSet; import com.oracle.tools.packager.StandardBundlerParam; import com.oracle.tools.packager.Log; import com.oracle.tools.packager.ConfigException; import com.oracle.tools.packager.IOUtils; import com.oracle.tools.packager.UnsupportedPlatformException; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.text.MessageFormat; --- 24,39 ---- */ package com.oracle.tools.packager.mac; import com.oracle.tools.packager.BundlerParamInfo; import com.oracle.tools.packager.StandardBundlerParam; import com.oracle.tools.packager.Log; import com.oracle.tools.packager.ConfigException; import com.oracle.tools.packager.IOUtils; import com.oracle.tools.packager.UnsupportedPlatformException; + import jdk.packager.builders.mac.MacAppImageBuilder; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.text.MessageFormat;
*** 109,119 **** // first, load in some overrides // icns needs @2 versions, so load in the @2 default p.put(DEFAULT_ICNS_ICON.getID(), TEMPLATE_BUNDLE_ICON_HIDPI); // next we need to change the jdk/jre stripping to strip gstreamer ! p.put(MAC_RULES.getID(), createMacAppStoreRuntimeRules(p)); // now we create the app File appImageDir = APP_IMAGE_BUILD_ROOT.fetchFrom(p); try { appImageDir.mkdirs(); --- 108,118 ---- // first, load in some overrides // icns needs @2 versions, so load in the @2 default p.put(DEFAULT_ICNS_ICON.getID(), TEMPLATE_BUNDLE_ICON_HIDPI); // next we need to change the jdk/jre stripping to strip gstreamer ! // p.put(MAC_RULES.getID(), createMacAppStoreRuntimeRules(p)); // now we create the app File appImageDir = APP_IMAGE_BUILD_ROOT.fetchFrom(p); try { appImageDir.mkdirs();
*** 127,137 **** String signingIdentity = MAC_APP_STORE_APP_SIGNING_KEY.fetchFrom(p); String identifierPrefix = BUNDLE_ID_SIGNING_PREFIX.fetchFrom(p); String entitlementsFile = getConfig_Entitlements(p).toString(); String inheritEntitlements = getConfig_Inherit_Entitlements(p).toString(); ! signAppBundle(p, appLocation, signingIdentity, identifierPrefix, entitlementsFile, inheritEntitlements); ProcessBuilder pb; // create the final pkg file File finalPKG = new File(outdir, INSTALLER_NAME.fetchFrom(p) + INSTALLER_SUFFIX.fetchFrom(p) --- 126,136 ---- String signingIdentity = MAC_APP_STORE_APP_SIGNING_KEY.fetchFrom(p); String identifierPrefix = BUNDLE_ID_SIGNING_PREFIX.fetchFrom(p); String entitlementsFile = getConfig_Entitlements(p).toString(); String inheritEntitlements = getConfig_Inherit_Entitlements(p).toString(); ! MacAppImageBuilder.signAppBundle(p, appLocation.toPath(), signingIdentity, identifierPrefix, entitlementsFile, inheritEntitlements); ProcessBuilder pb; // create the final pkg file File finalPKG = new File(outdir, INSTALLER_NAME.fetchFrom(p) + INSTALLER_SUFFIX.fetchFrom(p)
*** 235,307 **** private String getInheritEntitlementsFileName(Map<String, ? super Object> params) { return MAC_BUNDLER_PREFIX+ APP_NAME.fetchFrom(params) +"_Inherit.entitlements"; } - public static JreUtils.Rule[] createMacAppStoreRuntimeRules(Map<String, ? super Object> params) { - //Subsetting of JRE is restricted. - //JRE README defines what is allowed to strip: - // http://www.oracle.com/technetwork/java/javase/jre-8-readme-2095710.html - // - - List<JreUtils.Rule> rules = new ArrayList<>(); - - rules.addAll(Arrays.asList(createMacRuntimeRules(params))); - - File baseDir; - - if (params.containsKey(MAC_RUNTIME.getID())) { - Object o = params.get(MAC_RUNTIME.getID()); - if (o instanceof RelativeFileSet) { - - baseDir = ((RelativeFileSet) o).getBaseDirectory(); - } else { - baseDir = new File(o.toString()); - } - } else { - baseDir = new File(System.getProperty("java.home")); - } - - // we accept either pointing at the directories typically installed at: - // /Libraries/Java/JavaVirtualMachine/jdk1.8.0_40/ - // * . - // * Contents/Home - // * Contents/Home/jre - // /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/ - // * . - // * /Contents/Home - // version may change, and if we don't detect any Contents/Home or Contents/Home/jre we will - // presume we are at a root. - - - try { - String path = baseDir.getCanonicalPath(); - if (path.endsWith("/Contents/Home/jre")) { - baseDir = baseDir.getParentFile().getParentFile().getParentFile(); - } else if (path.endsWith("/Contents/Home")) { - baseDir = baseDir.getParentFile().getParentFile(); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - - if (!baseDir.exists()) { - throw new RuntimeException(I18N.getString("error.non-existent-runtime"), - new ConfigException(I18N.getString("error.non-existent-runtime"), - I18N.getString("error.non-existent-runtime.advice"))); - } - - if (new File(baseDir, "Contents/Home/lib/libjfxmedia_qtkit.dylib").exists() - || new File(baseDir, "Contents/Home/jre/lib/libjfxmedia_qtkit.dylib").exists()) - { - rules.add(JreUtils.Rule.suffixNeg("/lib/libjfxmedia_qtkit.dylib")); - } else { - rules.add(JreUtils.Rule.suffixNeg("/lib/libjfxmedia.dylib")); - } - return rules.toArray(new JreUtils.Rule[rules.size()]); - } - ////////////////////////////////////////////////////////////////////////////////// // Implement Bundler ////////////////////////////////////////////////////////////////////////////////// @Override --- 234,243 ----
*** 358,375 **** // hdiutil is always available so there's no need to test for availability. //run basic validation to ensure requirements are met // Mac App Store apps cannot use the system runtime ! if (params.containsKey(MAC_RUNTIME.getID()) && params.get(MAC_RUNTIME.getID()) == null) { ! throw new ConfigException( ! I18N.getString("error.no-system-runtime"), ! I18N.getString("error.no-system-runtime.advice")); ! } ! ! //we need to change the jdk/jre stripping to strip qtkit code ! params.put(MAC_RULES.getID(), createMacAppStoreRuntimeRules(params)); //we are not interested in return code, only possible exception validateAppImageAndBundeler(params); // reject explicitly set to not sign --- 294,304 ---- // hdiutil is always available so there's no need to test for availability. //run basic validation to ensure requirements are met // Mac App Store apps cannot use the system runtime ! //TODO //we are not interested in return code, only possible exception validateAppImageAndBundeler(params); // reject explicitly set to not sign
< prev index next >