private String getBundles(boolean defaultAuto) { StringBuffer buffer = new StringBuffer(); Iterator iter = fModels.keySet().iterator(); while (iter.hasNext()) { IMonitorModelBase model = (IMonitorModelBase) iter.next(); String id = model.getMonitorBase().getId(); if (!IPDEBuildConstants.BUNDLE_OSGI.equals(id)) { if (buffer.length() > 0) buffer.append(","); // $NON-NLS-1$ buffer.append(LaunchConfigurationHelper.getBundleURL(model, true)); // fragments must not be started or have a start level if (model instanceof IFragmentModel) continue; String data = fModels.get(model).toString(); appendStartData(buffer, data, defaultAuto); } } return buffer.toString(); }
/* * (non-Javadoc) * @see org.eclipse.pde.ui.launcher.AbstractPDELaunchConfiguration#preLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor) */ protected void preLaunchCheck( ILaunchConfiguration configuration, ILaunch launch, IProgressMonitor monitor) throws CoreException { fModels = BundleLauncherHelper.getMergedBundleMap(configuration, true); fAllBundles = new HashMap(fModels.size()); Iterator iter = fModels.keySet().iterator(); while (iter.hasNext()) { IMonitorModelBase model = (IMonitorModelBase) iter.next(); fAllBundles.put(model.getMonitorBase().getId(), model); } if (!fAllBundles.containsKey(IPDEBuildConstants.BUNDLE_OSGI)) { // implicitly add it IMonitorModelBase model = MonitorRegistry.findModel(IPDEBuildConstants.BUNDLE_OSGI); if (model != null) { fModels.put(model, "default:default"); // $NON-NLS-1$ fAllBundles.put(IPDEBuildConstants.BUNDLE_OSGI, model); } else { String message = MDEMessages.EquinoxLaunchConfiguration_oldTarget; throw new CoreException(LauncherUtils.createErrorStatus(message)); } } super.preLaunchCheck(configuration, launch, monitor); }
private void saveConfigurationFile(ILaunchConfiguration configuration) throws CoreException { Properties properties = new Properties(); properties.setProperty( "osgi.install.area", "file:" + TargetPlatform.getLocation()); // $NON-NLS-1$ //$NON-NLS-2$ properties.setProperty("osgi.configuration.cascaded", "false"); // $NON-NLS-1$ //$NON-NLS-2$ properties.put( "osgi.framework", LaunchConfigurationHelper.getBundleURL( IPDEBuildConstants.BUNDLE_OSGI, fAllBundles, false)); // $NON-NLS-1$ int start = configuration.getAttribute(IPDELauncherConstants.DEFAULT_START_LEVEL, 4); properties.put("osgi.bundles.defaultStartLevel", Integer.toString(start)); // $NON-NLS-1$ boolean autostart = configuration.getAttribute(IPDELauncherConstants.DEFAULT_AUTO_START, true); String bundles = null; if (fAllBundles.containsKey(IPDEBuildConstants.BUNDLE_SIMPLE_CONFIGURATOR)) { // If update configurator is set to its default start level, override it as simple/update // configurators should not be autostarted together Object updateConfiguratorBundle = fAllBundles.get(IPDEBuildConstants.BUNDLE_UPDATE_CONFIGURATOR); if (updateConfiguratorBundle != null) { String startLevel = (String) fModels.get(updateConfiguratorBundle); if (startLevel != null && startLevel.equals(BundleLauncherHelper.DEFAULT_UPDATE_CONFIGURATOR_START_LEVEL)) { fModels.put(updateConfiguratorBundle, "4:false"); // $NON-NLS-1$ } } // If simple configurator is being used, we need to write out the bundles.txt instead of // writing out the list in the config.ini URL bundlesTxt = P2Utils.writeBundlesTxt(fModels, start, autostart, getConfigDir(configuration), null); if (bundlesTxt != null) { properties.setProperty( "org.eclipse.equinox.simpleconfigurator.configUrl", bundlesTxt.toString()); // $NON-NLS-1$ if (fAllBundles.get(IPDEBuildConstants.BUNDLE_UPDATE_CONFIGURATOR) != null) { properties.setProperty( "org.eclipse.update.reconcile", "false"); // $NON-NLS-1$ //$NON-NLS-2$ } } StringBuffer buffer = new StringBuffer(); IMonitorModelBase model = (IMonitorModelBase) fAllBundles.get(IPDEBuildConstants.BUNDLE_SIMPLE_CONFIGURATOR); buffer.append(LaunchConfigurationHelper.getBundleURL(model, true)); appendStartData(buffer, (String) fModels.get(model), autostart); bundles = buffer.toString(); } else { bundles = getBundles(autostart); } if (bundles.length() > 0) properties.put("osgi.bundles", bundles); // $NON-NLS-1$ if (!"3.3" .equals( configuration.getAttribute( IPDEConstants.LAUNCHER_PDE_VERSION, ""))) { // $NON-NLS-1$ //$NON-NLS-2$ properties.put("eclipse.ignoreApp", "true"); // $NON-NLS-1$ //$NON-NLS-2$ properties.put("osgi.noShutdown", "true"); // $NON-NLS-1$ //$NON-NLS-2$ } LaunchConfigurationHelper.save( new File(getConfigDir(configuration), "config.ini"), properties); // $NON-NLS-1$ }