diff options
author | Andrew Niefer | 2010-03-19 21:44:05 +0000 |
---|---|---|
committer | Andrew Niefer | 2010-03-19 21:44:05 +0000 |
commit | 86f01c4d194569b00cd5baba0f3c94415dd0b080 (patch) | |
tree | 85dc8217b8ed87f46ee078d9d7835b4cf82a2356 | |
parent | b9b52d420ae7b47a02987d797a33b0f02328de37 (diff) | |
download | rt.equinox.p2-86f01c4d194569b00cd5baba0f3c94415dd0b080.tar.gz rt.equinox.p2-86f01c4d194569b00cd5baba0f3c94415dd0b080.tar.xz rt.equinox.p2-86f01c4d194569b00cd5baba0f3c94415dd0b080.zip |
bug 286503 - empty eclipse.ini generated, breaks update
4 files changed, 34 insertions, 30 deletions
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherParser.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherParser.java index d1ac79da4..1b95d9bf7 100644 --- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherParser.java +++ b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherParser.java @@ -289,25 +289,28 @@ public class EclipseLauncherParser { Log.log(LogService.LOG_INFO, this, "save()", NLS.bind(Messages.log_renameSuccessful, launcherConfigFile, dest)); //$NON-NLS-1$ } - BufferedWriter bw = null; - try { - bw = new BufferedWriter(new FileWriter(launcherConfigFile)); - for (int j = 0; j < newlines.size(); j++) { - String arg = (String) newlines.get(j); - if (arg == null) - continue; - bw.write(arg); - bw.newLine(); + //only write the file if we actually have content + if (newlines.size() > 0) { + BufferedWriter bw = null; + try { + bw = new BufferedWriter(new FileWriter(launcherConfigFile)); + for (int j = 0; j < newlines.size(); j++) { + String arg = (String) newlines.get(j); + if (arg == null) + continue; + bw.write(arg); + bw.newLine(); + } + bw.flush(); + Log.log(LogService.LOG_INFO, NLS.bind(Messages.log_launcherConfigSave, launcherConfigFile)); + } finally { + if (bw != null) + bw.close(); } - bw.flush(); - Log.log(LogService.LOG_INFO, NLS.bind(Messages.log_launcherConfigSave, launcherConfigFile)); - } finally { - if (bw != null) - bw.close(); - File previousLauncherIni = launcherData.getPreviousLauncherIni(); - if (previousLauncherIni != null && !previousLauncherIni.equals(launcherConfigFile)) - previousLauncherIni.delete(); } + File previousLauncherIni = launcherData.getPreviousLauncherIni(); + if (previousLauncherIni != null && !previousLauncherIni.equals(launcherConfigFile)) + previousLauncherIni.delete(); launcherData.setLauncherConfigLocation(launcherConfigFile); } } diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java index 780a15c66..e62bf9a2a 100644 --- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java +++ b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java @@ -150,7 +150,7 @@ public class EquinoxFwConfigFileParser { return (BundleInfo[]) bundles.toArray(new BundleInfo[bundles.size()]); } - private void writeBundlesList(File fwJar, Properties props, URI base, BundleInfo[] bundles) { + private void writeBundlesList(File fwJar, Properties props, BundleInfo[] bundles) { StringBuffer osgiBundlesList = new StringBuffer(); StringBuffer osgiFrameworkExtensionsList = new StringBuffer(); for (int j = 0; j < bundles.length; j++) { @@ -204,10 +204,6 @@ public class EquinoxFwConfigFileParser { configData.initialize(); configData.setBundles(null); - // TODO commented out to prevent dead code warning, but is it really needed? - // String launcherName = null; - // String launcherPath = null; - // load configuration properties Properties props = loadProperties(inputFile); @@ -237,10 +233,6 @@ public class EquinoxFwConfigFileParser { String value = props.getProperty(key); configData.setProperty(key, value); } - // TODO commented out to prevent dead code warning, but is it really needed? - // if (launcherName != null && launcherPath != null) { - // launcherData.setLauncher(new File(launcherPath, launcherName + EquinoxConstants.EXE_EXTENSION)); - // } Log.log(LogService.LOG_INFO, NLS.bind(Messages.log_configFile, inputFile.getAbsolutePath())); } @@ -268,7 +260,7 @@ public class EquinoxFwConfigFileParser { 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()), configData.getProperties(), launcherData).toURI()); + 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); @@ -450,7 +442,7 @@ public class EquinoxFwConfigFileParser { URI configArea = manipulator.getLauncherData().getFwConfigLocation().toURI(); writep2DataArea(configData, configProps, configArea); writeSimpleConfiguratorURL(configData, configProps, configArea); - writeBundlesList(launcherData.getFwJar(), configProps, ParserUtils.getOSGiInstallArea(Arrays.asList(launcherData.getProgramArgs()), configProps, launcherData).toURI(), bInfos); + writeBundlesList(launcherData.getFwJar(), configProps, bInfos); writeInitialStartLevel(configData, configProps); writeDefaultStartLevel(configData, configProps); } catch (URISyntaxException e) { diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/ParserUtils.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/ParserUtils.java index 89f30b177..72612ca04 100644 --- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/ParserUtils.java +++ b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/ParserUtils.java @@ -29,11 +29,19 @@ public class ParserUtils { if (launcherData == null) return null; - //TODO This is not enough because if you only have -startup then osgi.install.area from the config.ini is used - File result = getOSGiInstallArea(programArgs, properties, launcherData.getLauncher() == null ? null : launcherData.getLauncher().getParentFile().toURI()); + URI base = null; + 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()); diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/LazyManipulator.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/LazyManipulator.java index 55799cf12..4303c60e8 100644 --- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/LazyManipulator.java +++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/LazyManipulator.java @@ -48,6 +48,7 @@ public class LazyManipulator implements Manipulator { launcherData.setLauncher(Util.getLauncherPath(profile)); launcherData.setLauncherConfigLocation(Util.getLauncherConfigLocation(profile)); launcherData.setOS(Util.getOSFromProfile(profile)); + launcherData.setHome(Util.getInstallFolder(profile)); try { manipulator.load(); |