private void updateConfigFile() throws EnhancedException { // for SDK cobundles with JDK - see if cobundled JDK exists and use that // checks for jdk7 directory since we only have JDK 7 cobundles if (org.glassfish.installer.util.FileUtils.isFileExist( productRef.getInstallLocation() + File.separator + "jdk7")) { jdkHome = productRef.getInstallLocation() + File.separator + "jdk7"; // on Unix, set executable permissions to jdk7/bin/* and jdk7/jre/bin/* if (!OSUtils.isWindows()) { org.glassfish.installer.util.FileUtils.setAllFilesExecutable( productRef.getInstallLocation() + File.separator + "jdk7" + File.separator + "bin"); org.glassfish.installer.util.FileUtils.setAllFilesExecutable( productRef.getInstallLocation() + File.separator + "jdk7" + File.separator + "jre" + File.separator + "bin"); } } else { // For all installation modes, fetch JAVA_HOME from panel; // on MacOS and AIX use java.home property since panel is skipped try { if (OSUtils.isMac() || OSUtils.isAix()) { jdkHome = System.getProperty("java.home"); } else { jdkHome = ConfigHelper.getStringValue("JDKSelection.directory.SELECTED_JDK"); } } catch (Exception e) { jdkHome = new File(System.getProperty("java.home")).getParent(); if (OSUtils.isMac() || OSUtils.isAix()) { jdkHome = System.getProperty("java.home"); } } } LOGGER.log(Level.INFO, Msg.get("UPDATE_CONFIG_HEADER", null)); LOGGER.log(Level.INFO, Msg.get("JDK_HOME", new String[] {jdkHome})); // write jdkHome value to asenv.bat on Windows, asenv.conf on non-Windows platform... try { FileIOUtils configFile = new FileIOUtils(); configFile.openFile(productRef.getConfigFilePath()); /* Add AS_JAVA to end of buffer and file. */ if (OSUtils.isWindows()) { configFile.appendLine("set AS_JAVA=" + jdkHome); } else { configFile.appendLine("AS_JAVA=" + jdkHome); } configFile.saveFile(); configFile.closeFile(); } catch (Exception ex) { LOGGER.log(Level.FINEST, ex.getMessage()); } }
/* Run configuration steps for update tool component. */ public void configureUpdatetool() throws Exception { // set execute permissions for UC utilities if (!OSUtils.isWindows()) { LOGGER.log(Level.INFO, Msg.get("SETTING_EXECUTE_PERMISSIONS_FOR_UPDATETOOL", null)); org.glassfish.installer.util.FileUtils.setExecutable( productRef.getInstallLocation() + "/bin/pkg"); org.glassfish.installer.util.FileUtils.setExecutable( productRef.getInstallLocation() + "/bin/updatetool"); } setupUpdateToolScripts(); // check whether to bootstrap at all if (!ConfigHelper.getBooleanValue("UpdateTool.Configuration.BOOTSTRAP_UPDATETOOL")) { LOGGER.log(Level.INFO, Msg.get("SKIPPING_UPDATETOOL_BOOTSTRAP", null)); } else { boolean allowUpdateCheck = ConfigHelper.getBooleanValue("UpdateTool.Configuration.ALLOW_UPDATE_CHECK"); String proxyHost = configData.get("PROXY_HOST"); String proxyPort = configData.get("PROXY_PORT"); // populate bootstrap properties Properties props = new Properties(); if (OSUtils.isWindows()) { props.setProperty("image.path", productRef.getInstallLocation().replace('\\', '/')); } else { props.setProperty("image.path", productRef.getInstallLocation()); } props.setProperty("install.pkg", "true"); if (!OSUtils.isAix()) { props.setProperty("install.updatetool", "true"); } else { props.setProperty("install.updatetool", "false"); } props.setProperty("optin.update.notification", allowUpdateCheck ? "true" : "false"); props.setProperty("optin.usage.reporting", allowUpdateCheck ? "true" : "false"); if ((proxyHost.length() > 0) && (proxyPort.length() > 0)) { props.setProperty("proxy.URL", "http://" + proxyHost + ":" + proxyPort); } LOGGER.log(Level.INFO, Msg.get("BOOTSTRAPPING_UPDATETOOL", null)); LOGGER.log(Level.FINEST, props.toString()); // explicitly refreshing catalogs, workaround for bootstrap issue // proceed to bootstrap if there is an exception try { SystemInfo.initUpdateToolProps(props); Image img = new Image(productRef.getInstallLocation()); img.refreshCatalogs(); } catch (Exception e) { LOGGER.log(Level.FINEST, e.getMessage()); } // invoke bootstrap Bootstrap.main(props, LOGGER); } // Create the required windows start->menu shortcuts for updatetool. if (OSUtils.isWindows()) { createUpdatetoolShortCuts(); } }