public void setLauncherData(LauncherData value) { launcherData.initialize(); launcherData.setFwConfigLocation(value.getFwConfigLocation()); launcherData.setFwPersistentDataLocation(value.getFwPersistentDataLocation(), value.isClean()); launcherData.setJvm(value.getJvm()); launcherData.setJvmArgs(value.getJvmArgs()); launcherData.setOS(value.getOS()); if (launcherData.getFwName().equals(value.getFwName())) if (launcherData.getFwVersion().equals(value.getFwVersion())) { // TODO launcherData.getFwName()/getFwVersion()/ // getLauncherName()/getLauncherVersion() might be taken into consideration // for copying . launcherData.setFwJar(value.getFwJar()); launcherData.setHome(value.getHome()); launcherData.setLauncher(value.getLauncher()); launcherData.setLauncherConfigLocation(value.getLauncherConfigLocation()); } }
public String[] getProgramArguments() { return data.getProgramArgs(); }
public void setJvmArgs(String[] args) { if (args == null || args.length == 0) { jvmArgs.clear(); return; } for (int i = 0; i < args.length; i++) this.addJvmArg(args[i]); }
static File getLauncherConfigLocation(LauncherData launcherData) { File launcherIni = launcherData.getLauncherConfigLocation(); if (launcherIni != null) return launcherIni; File launcher = launcherData.getLauncher(); if (launcher == null) return null; String launcherName = launcher.getName(); int dotLocation = launcherName.lastIndexOf('.'); if (dotLocation != -1) launcherName = launcherName.substring(0, dotLocation); File result = new File(launcher.getParentFile(), launcherName + EquinoxConstants.INI_EXTENSION); return result; }
static File getLauncherConfigLocation(LauncherData launcherData) { File launcherIni = launcherData.getLauncherConfigLocation(); if (launcherIni != null) return launcherIni; File launcher = launcherData.getLauncher(); if (launcher == null) return null; String launcherName = launcher.getName(); int dotLocation = launcherName.lastIndexOf('.'); if (dotLocation != -1) launcherName = launcherName.substring(0, dotLocation); File launcherFolder = launcher.getParentFile(); if (org.eclipse.osgi.service.environment.Constants.OS_MACOSX.equals(launcherData.getOS())) { if (launcherData.getFwConfigLocation() != null) launcherFolder = launcherData.getFwConfigLocation().getParentFile(); else if (launcherData.getFwPersistentDataLocation() != null) launcherFolder = launcherData.getFwPersistentDataLocation().getParentFile(); else throw new IllegalStateException("Not able to determine launcher ini file from " + launcherData); //$NON-NLS-1$ } File result = new File(launcherFolder, launcherName + EquinoxConstants.INI_EXTENSION); return result; }
private void getFrameworkJar(List<String> lines, URI launcherFolder, LauncherData launcherData) { File fwJar = launcherData.getFwJar(); if (fwJar != null) return; URI location = ParserUtils.getFrameworkJar(lines, launcherFolder); if (location != null) launcherData.setFwJar(URIUtil.toFile(location)); }
if (launcherData.getLauncher() != null) base = launcherData.getLauncher().getParentFile().toURI(); else if (launcherData.getHome() != null) base = launcherData.getHome().toURI(); File result = getOSGiInstallArea(programArgs, properties, base); if (result != null) return result; if (launcherData.getHome() != null) { return launcherData.getHome(); if (launcherData.getFwJar() != null) return fromOSGiJarToOSGiInstallArea(launcherData.getFwJar().getAbsolutePath()); File launcherFile = launcherData.getLauncher(); if (launcherFile != null) { if (Constants.OS_MACOSX.equals(launcherData.getOS())) { if (EclipseLauncherParser.MACOSX_BUNDLED.equals(launcherData.getOS())) { Log.log(LogService.LOG_WARNING, "Problem figuring out the osgi install area. The bundled mode of macosx requires a -startup argument to be specified."); //$NON-NLS-1$
private Process launchInMemory(Manipulator manipulator, File cwd) throws IOException { LauncherData launcherData = manipulator.getLauncherData(); Utils.checkAbsoluteFile(launcherData.getFwJar(), "fwJar"); //$NON-NLS-1$ Utils.checkAbsoluteDir(cwd, "cwd"); //$NON-NLS-1$ if (launcherData.getJvm() != null) cmdList.add(launcherData.getJvm().getAbsolutePath()); else cmdList.add("java"); //$NON-NLS-1$ if (launcherData.getJvmArgs() != null) for (int i = 0; i < launcherData.getJvmArgs().length; i++) cmdList.add(launcherData.getJvmArgs()[i]); cmdList.add(Utils.getRelativePath(launcherData.getFwJar(), cwd)); cmdList.add(Utils.getRelativePath(launcherData.getFwPersistentDataLocation(), cwd)); if (launcherData.isClean()) cmdList.add(EquinoxConstants.OPTION_CLEAN);
File fwConfigLocation = launcherData.getFwConfigLocation(); File fwPersistentDataLocation = launcherData.getFwPersistentDataLocation(); else throw new IllegalStateException(NLS.bind(Messages.exception_unexpectedfwConfigLocation, fwConfigLocation.getAbsolutePath(), EquinoxConstants.CONFIG_INI)); launcherData.setFwConfigLocation(fwConfigLocation); throw new IllegalStateException(NLS.bind(Messages.exception_persistantLocationNotEqualConfigLocation, fwPersistentDataLocation.getAbsolutePath(), fwConfigLocation.getAbsolutePath())); } else launcherData.setFwPersistentDataLocation(fwConfigLocation, launcherData.isClean()); } else { if (fwPersistentDataLocation != null) { launcherData.setFwConfigLocation(fwPersistentDataLocation); } else { File home = launcherData.getHome(); if (home == null) throw new IllegalStateException(Messages.exception_noLocations); fwConfigLocation = new File(home, "configuration"); //$NON-NLS-1$ launcherData.setFwPersistentDataLocation(fwConfigLocation, launcherData.isClean()); launcherData.setFwConfigLocation(fwConfigLocation);
return; Properties properties = new Properties(); String[] jvmArgs = manipulator.getLauncherData().getJvmArgs(); for (int i = 0; i < jvmArgs.length; i++) { if (jvmArgs[i].startsWith("-D")) { //$NON-NLS-1$ File configFile = getConfigFile(manipulator); File installArea = ParserUtils.getOSGiInstallArea(Arrays.asList(manipulator.getLauncherData().getProgramArgs()), manipulator.getConfigData().getProperties(), manipulator.getLauncherData()); BundleInfo[] toInstall = new BundleInfo[0];
private void initializeFrameworkManipulator(File config, File executable) { getFrameworkManipulator(); LauncherData launcherData = manipulator.getLauncherData(); launcherData.setFwPersistentDataLocation(config, true); launcherData.setLauncher(executable); if (executable == null) launcherData.setHome(config.getParentFile()); try { manipulator.load(); } catch (IllegalStateException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } catch (FrameworkAdminRuntimeException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } catch (IOException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } }
File fwConfigLoc = manipulator.getLauncherData().getFwConfigLocation(); File baseDir = null; if (fwConfigLoc == null) { baseDir = manipulator.getLauncherData().getHome(); if (baseDir == null) { if (manipulator.getLauncherData().getLauncher() != null) { baseDir = manipulator.getLauncherData().getLauncher().getParentFile(); } else { throw new IllegalStateException("All of fwConfigFile, home, launcher are not set."); //$NON-NLS-1$
private void loadDelegate() { if (manipulator != null) return; manipulator = getFrameworkManipulator(); if (manipulator == null) throw new IllegalStateException(Messages.failed_acquire_framework_manipulator); LauncherData launcherData = manipulator.getLauncherData(); launcherData.setFwConfigLocation(Util.getConfigurationFolder(profile)); launcherData.setLauncher(Util.getLauncherPath(profile)); launcherData.setLauncherConfigLocation(Util.getLauncherConfigLocation(profile)); launcherData.setOS(Util.getOSFromProfile(profile)); launcherData.setHome(Util.getInstallFolder(profile)); try { manipulator.load(); } catch (IllegalStateException e) { //if fwJar is not included, this exception will be thrown. But ignore it. LogHelper.log(Util.createError(Messages.error_loading_manipulator, e)); throw new IllegalStateException(Messages.error_loading_manipulator); } catch (FrameworkAdminRuntimeException e) { LogHelper.log(Util.createError(Messages.error_loading_manipulator, e)); } catch (IOException e) { LogHelper.log(Util.createError(Messages.error_loading_manipulator, e)); throw new IllegalStateException(Messages.error_loading_manipulator); } //TODO These values should be inserted by a configuration unit (bug 204124) manipulator.getConfigData().setProperty("eclipse.p2.profile", profile.getProfileId()); //$NON-NLS-1$ manipulator.getConfigData().setProperty("eclipse.p2.data.area", Util.getAgentLocation(agent).getRootLocation().toString()); //$NON-NLS-1$ }
manipulator.getLauncherData().setLauncher(new File(home, "eclipse")); //$NON-NLS-1$ File installDirectory = new File(home); manipulator.getLauncherData().setLauncherConfigLocation(new File(installDirectory, "eclipse.ini")); //$NON-NLS-1$ manipulator.getLauncherData().setHome(new File(home)); fVMArgs = manipulator.getLauncherData().getJvmArgs();
private void initialize(boolean useFwPersistentData) { LauncherData launcherData = manipulator.getLauncherData(); ConfigData configData = manipulator.getConfigData(); BundleInfo[] bInfos = configData.getBundles(); if (!useFwPersistentData) { composeNewState(launcherData, configData, bInfos); return; } EquinoxManipulatorImpl.checkConsistencyOfFwConfigLocAndFwPersistentDataLoc(launcherData); if (launcherData.isClean()) { composeNewState(launcherData, configData, bInfos); } else { if (manipulator.getLauncherData().getFwPersistentDataLocation() == null) { File installArea = ParserUtils.getOSGiInstallArea(Arrays.asList(launcherData.getProgramArgs()), configData.getProperties(), launcherData); if (DEBUG) Log.log(LogService.LOG_DEBUG, this, "initialize(useFwPersistentDat)", "installArea=" + installArea); //$NON-NLS-1$ //$NON-NLS-2$ if (installArea == null) throw new IllegalStateException(Messages.exception_noInstallArea); File fwPersistentDataLocation = new File(installArea, "configuration"); //$NON-NLS-1$ manipulator.getLauncherData().setFwPersistentDataLocation(fwPersistentDataLocation, false); } if (!composeState(bInfos, null, manipulator.getLauncherData().getFwPersistentDataLocation())) composeNewState(launcherData, configData, bInfos); resolve(true); } }
private File readFwJarLocation(ConfigData configData, LauncherData launcherData, Properties props) throws URISyntaxException { File fwJar = null; if (props.getProperty(EquinoxConstants.PROP_OSGI_FW) != null) { URI absoluteFwJar = null; absoluteFwJar = URIUtil.makeAbsolute(FileUtils.fromFileURL(props.getProperty(EquinoxConstants.PROP_OSGI_FW)), ParserUtils.getOSGiInstallArea(Arrays.asList(launcherData.getProgramArgs()), props, launcherData).toURI()); props.setProperty(EquinoxConstants.PROP_OSGI_FW, absoluteFwJar.toString()); String fwJarString = props.getProperty(EquinoxConstants.PROP_OSGI_FW); if (fwJarString != null) { fwJar = URIUtil.toFile(absoluteFwJar); if (fwJar == null) throw new IllegalStateException(Messages.exception_noFrameworkLocation); //Here we overwrite the value read from eclipse.ini, because the value of osgi.framework always takes precedence. launcherData.setFwJar(fwJar); } else { throw new IllegalStateException(Messages.exception_noFrameworkLocation); } } if (launcherData.getFwJar() != null) configData.addBundle(new BundleInfo(launcherData.getFwJar().toURI())); return launcherData.getFwJar(); }
protected static void addByteArg(String arg, String flag, LauncherData launcherData, File storageArea) throws IOException { Properties storedValues = load(storageArea); String currentArg = getCurrentArg(flag, launcherData.getJvmArgs()); // Check for user changes detectUserValue(currentArg, flag, storedValues); validateValue(arg.substring(flag.length())); rememberArg(storedValues, arg.substring(flag.length()), flag); launcherData.removeJvmArg(currentArg); // Set the argument to use & save stored values setToMax(flag, storedValues, launcherData); save(storedValues, storageArea); }
private static File getFwJar(LauncherData launcherData, ConfigData configData, boolean checkBundleInfos) { if (launcherData.getFwJar() != null) { return launcherData.getFwJar(); } // check -D arguments of jvmArgs ? String[] jvmArgs = launcherData.getJvmArgs(); String location = null; for (int i = 0; i < jvmArgs.length; i++) { if (jvmArgs[i].endsWith("-D" + "osgi.framework=")) { //$NON-NLS-1$ //$NON-NLS-2$ location = jvmArgs[i].substring(("-D" + "osgi.framework=").length()); //$NON-NLS-1$ //$NON-NLS-2$ } } if (location != null) { return new File(location); } if (checkBundleInfos) { File ret = getSystemBundleFromBundleInfos(configData); if (ret != null) { return ret; } } return null; // return getSystemBundleBySearching(launcherData); }
public String[] getVMArguments() { return data.getJvmArgs(); }
private void writeFwJarLocation(ConfigData configData, LauncherData launcherData, Properties props) { if (launcherData.getFwJar() == null) return; props.setProperty(EquinoxConstants.PROP_OSGI_FW, FileUtils.toFileURL(URIUtil.makeRelative(launcherData.getFwJar().toURI(), ParserUtils.getOSGiInstallArea(Arrays.asList(launcherData.getProgramArgs()), configData.getProperties(), launcherData).toURI()))); }