View | Details | Raw Unified | Return to bug 547762
Collapse All | Expand All

(-)a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java (-7 / +93 lines)
Lines 11-22 Link Here
11
 * Contributors:
11
 * Contributors:
12
 *     IBM Corporation - initial API and implementation
12
 *     IBM Corporation - initial API and implementation
13
 *     EclipseSource Corporation - ongoing enhancements
13
 *     EclipseSource Corporation - ongoing enhancements
14
 *     Kirschners GmbH - bugfix for usage existing config.ini
14
 *******************************************************************************/
15
 *******************************************************************************/
15
package org.eclipse.pde.internal.launching.launcher;
16
package org.eclipse.pde.internal.launching.launcher;
16
17
18
import java.io.*;
17
import java.util.*;
19
import java.util.*;
18
import java.util.Map.Entry;
20
import java.util.Map.Entry;
19
import org.eclipse.core.runtime.CoreException;
21
import org.eclipse.core.runtime.CoreException;
22
import org.eclipse.core.variables.IStringVariableManager;
23
import org.eclipse.core.variables.VariablesPlugin;
20
import org.eclipse.debug.core.ILaunchConfiguration;
24
import org.eclipse.debug.core.ILaunchConfiguration;
21
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
25
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
22
import org.eclipse.osgi.service.resolver.BundleDescription;
26
import org.eclipse.osgi.service.resolver.BundleDescription;
Lines 42-47 Link Here
42
46
43
	public static final char VERSION_SEPARATOR = '*';
47
	public static final char VERSION_SEPARATOR = '*';
44
48
49
	// stores the start-level, autostart info from an existing config.ini file
50
	// if "fConfigIniBundleStartInfo.isEmpty()" a generated config.ini file is in use
51
	private static Map<String, String> fConfigIniBundleStartInfo = new LinkedHashMap<>();
52
45
	public static Map<IPluginModelBase, String> getWorkspaceBundleMap(ILaunchConfiguration configuration) throws CoreException {
53
	public static Map<IPluginModelBase, String> getWorkspaceBundleMap(ILaunchConfiguration configuration) throws CoreException {
46
		return getWorkspaceBundleMap(configuration, null, IPDELauncherConstants.WORKSPACE_BUNDLES);
54
		return getWorkspaceBundleMap(configuration, null, IPDELauncherConstants.WORKSPACE_BUNDLES);
47
	}
55
	}
Lines 53-58 Link Here
53
	public static Map<IPluginModelBase, String> getMergedBundleMap(ILaunchConfiguration configuration, boolean osgi) throws CoreException {
61
	public static Map<IPluginModelBase, String> getMergedBundleMap(ILaunchConfiguration configuration, boolean osgi) throws CoreException {
54
		Map<IPluginModelBase, String> map = new LinkedHashMap<>();
62
		Map<IPluginModelBase, String> map = new LinkedHashMap<>();
55
63
64
		initializeExistingConfigIniUsage(configuration);
65
		
56
		// if we are using the eclipse-based launcher, we need special checks
66
		// if we are using the eclipse-based launcher, we need special checks
57
		if (!osgi) {
67
		if (!osgi) {
58
68
Lines 301-306 Link Here
301
	}
311
	}
302
312
303
	public static Map<IPluginModelBase, String> getWorkspaceBundleMap(ILaunchConfiguration configuration, Set<String> set, String attribute) throws CoreException {
313
	public static Map<IPluginModelBase, String> getWorkspaceBundleMap(ILaunchConfiguration configuration, Set<String> set, String attribute) throws CoreException {
314
315
		initializeExistingConfigIniUsage(configuration);
316
304
		String selected = configuration.getAttribute(attribute, ""); //$NON-NLS-1$
317
		String selected = configuration.getAttribute(attribute, ""); //$NON-NLS-1$
305
		Map<IPluginModelBase, String> map = new LinkedHashMap<>();
318
		Map<IPluginModelBase, String> map = new LinkedHashMap<>();
306
		StringTokenizer tok = new StringTokenizer(selected, ","); //$NON-NLS-1$
319
		StringTokenizer tok = new StringTokenizer(selected, ","); //$NON-NLS-1$
Lines 413-433 Link Here
413
	private static void addBundleToMap(Map<IPluginModelBase, String> map, IPluginModelBase bundle, String sl) {
426
	private static void addBundleToMap(Map<IPluginModelBase, String> map, IPluginModelBase bundle, String sl) {
414
		BundleDescription desc = bundle.getBundleDescription();
427
		BundleDescription desc = bundle.getBundleDescription();
415
		boolean defaultsl = (sl == null || sl.equals("default:default")); //$NON-NLS-1$
428
		boolean defaultsl = (sl == null || sl.equals("default:default")); //$NON-NLS-1$
429
416
		if (desc != null && defaultsl) {
430
		if (desc != null && defaultsl) {
417
			String runLevelText = resolveSystemRunLevelText(bundle);
431
			String runLevelText = resolveSystemRunLevelText(bundle);
418
			String autoText = resolveSystemAutoText(bundle);
432
			String autoText = resolveSystemAutoText(bundle);
419
			if (runLevelText != null && autoText != null) {
433
			if (runLevelText != null && autoText != null) {
420
				map.put(bundle, runLevelText + ":" + autoText); //$NON-NLS-1$
434
				sl = runLevelText + ":" + autoText; //$NON-NLS-1$
421
			} else {
422
				map.put(bundle, sl);
423
			}
435
			}
424
		} else {
425
			map.put(bundle, sl);
426
		}
436
		}
427
437
		if (!fConfigIniBundleStartInfo.isEmpty()) {
438
			// existing config.ini usage, hence overwriting previous settings
439
			sl = resolveConfigIni(bundle);
440
		}
441
		map.put(bundle, sl);
428
	}
442
	}
429
443
430
	public static Map<IPluginModelBase, String> getTargetBundleMap(ILaunchConfiguration configuration, Set<String> set, String attribute) throws CoreException {
444
	public static Map<IPluginModelBase, String> getTargetBundleMap(ILaunchConfiguration configuration, Set<String> set, String attribute) throws CoreException {
445
446
		initializeExistingConfigIniUsage(configuration);
447
431
		String selected = configuration.getAttribute(attribute, ""); //$NON-NLS-1$
448
		String selected = configuration.getAttribute(attribute, ""); //$NON-NLS-1$
432
		Map<IPluginModelBase, String> map = new LinkedHashMap<>();
449
		Map<IPluginModelBase, String> map = new LinkedHashMap<>();
433
		StringTokenizer tok = new StringTokenizer(selected, ","); //$NON-NLS-1$
450
		StringTokenizer tok = new StringTokenizer(selected, ","); //$NON-NLS-1$
Lines 505-511 Link Here
505
				value = value.replace(':', ',');
522
				value = value.replace(':', ',');
506
			}
523
			}
507
			value = (value.length() == 0 || value.equals(",")) //$NON-NLS-1$
524
			value = (value.length() == 0 || value.equals(",")) //$NON-NLS-1$
508
			? null
525
					? null
509
					: value.substring(0, value.length() - 1);
526
					: value.substring(0, value.length() - 1);
510
527
511
			boolean automatic = configuration.getAttribute(IPDELauncherConstants.AUTOMATIC_ADD, true);
528
			boolean automatic = configuration.getAttribute(IPDELauncherConstants.AUTOMATIC_ADD, true);
Lines 575-580 Link Here
575
			wc.doSave();
592
			wc.doSave();
576
	}
593
	}
577
594
595
	public static String writeAdditionalPluginsEntry(IPluginModelBase model, String pluginResolution, boolean checked) {
596
		IPluginBase base = model.getPluginBase();
597
		String id = base.getId();
598
		StringBuilder buffer = new StringBuilder(id);
599
		buffer.append(':');
600
		buffer.append(base.getVersion());
601
		buffer.append(':');
602
		buffer.append(pluginResolution);
603
		buffer.append(':');
604
		buffer.append(checked);
605
		return buffer.toString();
606
	}
607
	
578
	/**
608
	/**
579
	 * Returns a map of IPluginModelBase to their associated String resolution setting. Reads the
609
	 * Returns a map of IPluginModelBase to their associated String resolution setting. Reads the
580
	 * additional plug-ins attribute of the given launch config and returns a map of plug-in models
610
	 * additional plug-ins attribute of the given launch config and returns a map of plug-in models
Lines 621-626 Link Here
621
		return resolvedAdditionalPlugins;
651
		return resolvedAdditionalPlugins;
622
	}
652
	}
623
653
654
	private static boolean useExistingConfigIni(ILaunchConfiguration configuration) {
655
		boolean existingConfigIni = false;
656
		try {
657
			existingConfigIni = !configuration.getAttribute(IPDELauncherConstants.CONFIG_GENERATE_DEFAULT, true);
658
		} catch (CoreException e) {
659
			PDECore.logException(e);
660
		}
661
		return existingConfigIni;
662
	}
663
664
	private static void initializeExistingConfigIniUsage(ILaunchConfiguration configuration) {
665
		// check for existing config.ini file containing bundle configurations
666
		if (useExistingConfigIni(configuration)) {
667
			parseStartInfoExistingConfigIni(configuration);
668
		} else {
669
			// init with emtpy map, cause static field can already be filled from previous runs
670
			fConfigIniBundleStartInfo = new LinkedHashMap<>();
671
		}
672
	}
673
	
674
	// load osgi.bundle attribute with start-levels and auto-start value  
675
	private static void parseStartInfoExistingConfigIni(ILaunchConfiguration configuration) {
676
		// initialize the field always with an empty map
677
		fConfigIniBundleStartInfo = new LinkedHashMap<>();
678
		File iniFile = null;
679
		String configIniLoc;
680
		try {
681
			configIniLoc = configuration.getAttribute(IPDELauncherConstants.CONFIG_TEMPLATE_LOCATION, ""); //$NON-NLS-1$
682
			IStringVariableManager mgr = VariablesPlugin.getDefault().getStringVariableManager();
683
			configIniLoc = mgr.performStringSubstitution(configIniLoc);
684
			iniFile = new File(configIniLoc);
685
			FileInputStream fis = new FileInputStream(iniFile);
686
			Properties pini = new Properties();
687
			pini.load(fis);
688
			Map<String, String> bundleMap = new EquinoxInitializer().parseOSGiBundles(pini);
689
			fConfigIniBundleStartInfo.putAll(bundleMap);
690
		} catch (IOException e) {
691
			PDECore.logException(e);
692
		} catch (CoreException e) {
693
			PDECore.logException(e);
694
		}
695
	}
696
697
	private static String resolveConfigIni(IPluginModelBase bundle) {
698
		// no specific setting found - using default start-level and auto-start
699
		String sl = "default:default"; //$NON-NLS-1$
700
		if (bundle != null) {
701
			sl = fConfigIniBundleStartInfo.get(bundle.toString());
702
			if (sl == null || sl.isEmpty()) {
703
				sl = "default:default"; //$NON-NLS-1$
704
			}
705
		}
706
		return sl;
707
	}
708
624
	public static class AdditionalPluginData {
709
	public static class AdditionalPluginData {
625
		public final String fResolution;
710
		public final String fResolution;
626
		public final boolean fEnabled;
711
		public final boolean fEnabled;
Lines 638-641 Link Here
638
			return fStartLevel + ':' + fAutoStart;
723
			return fStartLevel + ':' + fAutoStart;
639
		}
724
		}
640
	}
725
	}
726
641
}
727
}
(-)a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/EquinoxInitializer.java (-2 / +19 lines)
Lines 10-15 Link Here
10
 *
10
 *
11
 * Contributors:
11
 * Contributors:
12
 *     IBM Corporation - initial API and implementation
12
 *     IBM Corporation - initial API and implementation
13
 *     Kirschners GmbH - bugfix for usage existing config.ini
13
 *******************************************************************************/
14
 *******************************************************************************/
14
package org.eclipse.pde.internal.launching.launcher;
15
package org.eclipse.pde.internal.launching.launcher;
15
16
Lines 90-98 Link Here
90
	}
91
	}
91
92
92
	private void initializeBundleState() {
93
	private void initializeBundleState() {
93
		if (fStartLevels == null)
94
			fStartLevels = new HashMap<>();
95
		Properties props = TargetPlatformHelper.getConfigIniProperties();
94
		Properties props = TargetPlatformHelper.getConfigIniProperties();
95
		parseStartupDetails(props);
96
	}
97
98
	private void parseStartupDetails(Properties props) {
99
		if (fStartLevels == null)
100
			fStartLevels = new LinkedHashMap<>();
96
		if (props != null) {
101
		if (props != null) {
97
			String value = (String) props.get("osgi.bundles"); //$NON-NLS-1$
102
			String value = (String) props.get("osgi.bundles"); //$NON-NLS-1$
98
			if (value != null) {
103
			if (value != null) {
Lines 109-114 Link Here
109
		}
114
		}
110
	}
115
	}
111
116
117
	/**
118
	 * Parse content of config.ini properties file for the entry 
119
	 * containing the osgi.bundles and their corresponding start-levels
120
	 * 
121
	 * @param configIniProps properties containing the entry &quot;osgi.bundles&quot;
122
	 * @return HashMap with bundle id as key and start-level as value
123
	 */
124
	public Map<String, String> parseOSGiBundles(Properties configIniProps) {
125
		parseStartupDetails(configIniProps);
126
		return fStartLevels;
127
	}
128
112
	private String getStartValue(String value) {
129
	private String getStartValue(String value) {
113
		StringBuilder buffer = new StringBuilder(value);
130
		StringBuilder buffer = new StringBuilder(value);
114
		StringBuilder result = new StringBuilder(":"); //$NON-NLS-1$
131
		StringBuilder result = new StringBuilder(":"); //$NON-NLS-1$
(-)a/ui/org.eclipse.pde.ui.tests/All (+42 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
3
<booleanAttribute key="append.args" value="true"/>
4
<booleanAttribute key="askclear" value="false"/>
5
<booleanAttribute key="automaticAdd" value="true"/>
6
<booleanAttribute key="automaticValidate" value="false"/>
7
<stringAttribute key="bootstrap" value=""/>
8
<stringAttribute key="checked" value="[NONE]"/>
9
<booleanAttribute key="clearConfig" value="true"/>
10
<booleanAttribute key="clearws" value="true"/>
11
<booleanAttribute key="clearwslog" value="false"/>
12
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
13
<booleanAttribute key="default" value="true"/>
14
<booleanAttribute key="includeOptional" value="true"/>
15
<stringAttribute key="location" value="${workspace_loc}/../pdeui-junit-workspace"/>
16
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
17
<listEntry value="/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/launcher/AllLauncherTests.java"/>
18
</listAttribute>
19
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
20
<listEntry value="1"/>
21
</listAttribute>
22
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
23
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
24
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
25
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
26
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
27
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.pde.ui.tests.launcher.AllLauncherTests"/>
28
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
29
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.pde.ui.tests"/>
30
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
31
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms256m -Xmx512m"/>
32
<stringAttribute key="pde.version" value="3.3"/>
33
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
34
<booleanAttribute key="run_in_ui_thread" value="true"/>
35
<booleanAttribute key="show_selected_only" value="false"/>
36
<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
37
<booleanAttribute key="tracing" value="false"/>
38
<booleanAttribute key="useCustomFeatures" value="false"/>
39
<booleanAttribute key="useDefaultConfig" value="true"/>
40
<booleanAttribute key="useDefaultConfigArea" value="false"/>
41
<booleanAttribute key="useProduct" value="true"/>
42
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/AllPDETests.java (-1 / +1 lines)
Lines 50-56 Link Here
50
	BundleRootTests.class,
50
	BundleRootTests.class,
51
	PluginRegistryTests.class,
51
	PluginRegistryTests.class,
52
	ClasspathResolverTest.class,
52
	ClasspathResolverTest.class,
53
	ClasspathContributorTest.class
53
		ClasspathContributorTest.class
54
})
54
})
55
public class AllPDETests {
55
public class AllPDETests {
56
56
(-)a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/launcher/AllLauncherTests.java (-1 / +1 lines)
Lines 21-27 Link Here
21
 * @since 3.5
21
 * @since 3.5
22
 */
22
 */
23
@RunWith(Suite.class)
23
@RunWith(Suite.class)
24
@SuiteClasses({ FeatureBasedLaunchTest.class, LaunchConfigurationHelperTestCase.class })
24
@SuiteClasses({ FeatureBasedLaunchTest.class, LaunchConfigurationHelperTestCase.class, LaunchConfigIniBehaviourTests.class })
25
public class AllLauncherTests {
25
public class AllLauncherTests {
26
26
27
}
27
}
(-)a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/launcher/LaunchConfigIniBehaviourTests.java (+267 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2009, 2017 EclipseSource Corporation and others.
3
 *
4
 * This program and the accompanying materials
5
 * are made available under the terms of the Eclipse Public License 2.0
6
 * which accompanies this distribution, and is available at
7
 * https://www.eclipse.org/legal/epl-2.0/
8
 *
9
 * SPDX-License-Identifier: EPL-2.0
10
 *
11
 * Contributors:
12
 *     EclipseSource Corporation - initial API and implementation
13
 *     Kirschners GmbH - bugfix for usage existing config.ini
14
 *******************************************************************************/
15
package org.eclipse.pde.ui.tests.launcher;
16
17
import static org.junit.Assert.assertNotEquals;
18
19
import java.io.*;
20
import java.net.URL;
21
import java.util.Map;
22
import java.util.Optional;
23
import junit.framework.TestCase;
24
import org.eclipse.core.resources.*;
25
import org.eclipse.core.runtime.*;
26
import org.eclipse.debug.core.*;
27
import org.eclipse.pde.core.plugin.IPluginModelBase;
28
import org.eclipse.pde.internal.launching.launcher.BundleLauncherHelper;
29
import org.eclipse.pde.ui.tests.PDETestsPlugin;
30
import org.osgi.framework.Bundle;
31
import org.osgi.framework.FrameworkUtil;
32
33
/**
34
 * Tests LaunchConfigurationHelper convenience methods
35
 *
36
 * @since 3.5
37
 */
38
public class LaunchConfigIniBehaviourTests extends TestCase {
39
40
	private static final String RES_FOLDER = "/tests/launch/";
41
	private static final String PROJECT = "org.eclipse.pde.ui.tests";
42
	private final static String CONFIG_INI = "config.ini";
43
	private final static String ALL_GENERATED_CFGINI_LAUNCH = "ALL_generatedConfigIni.launch";
44
	private final static String ALL_EXISTING_CFGINI_LAUNCH = "ALL_existingConfigIni.launch";
45
	private final static String FEATURE_GENERATED_CFGINI_LAUNCH = "FEATURE_generatedConfigIni.launch";
46
	private final static String FEATURE_MODIFIED_GENERATED_CFGINI_LAUNCH = "FEATURE_modifiedGeneratedConfigIni.launch";
47
	private final static String FEATURE_EXISTING_CFGINI_LAUNCH = "FEATURE_existingConfigIni.launch";
48
	private final static String PLUGIN_GENERATED_CFGINI_LAUNCH = "PLUGIN_generatedConfigIni.launch";
49
	private final static String PLUGIN_MODIFIED_GENERATED_CFGINI_LAUNCH = "PLUGIN_modifiedGeneratedConfigIni.launch";
50
	private final static String PLUGIN_EXISTING_CFGINI_LAUNCH = "PLUGIN_existingConfigIni.launch";
51
52
	private static IProject prj1;
53
	private static IProject prj2;
54
55
	private Bundle bundle = FrameworkUtil.getBundle(LaunchConfigIniBehaviourTests.class);
56
	private IWorkspaceRoot root;
57
	private IProject project;
58
	private Map<IPluginModelBase, String> bundleMap;
59
	IProgressMonitor npm;
60
	private ILaunchManager launchManager;
61
62
	@Override
63
	protected void setUp() throws Exception {
64
		super.setUp();
65
		npm = new NullProgressMonitor();
66
		launchManager = DebugPlugin.getDefault().getLaunchManager();
67
68
		IWorkspace workspace = ResourcesPlugin.getWorkspace();
69
		root = workspace.getRoot();
70
71
		project = root.getProject(PROJECT);
72
		if (!project.exists()) {
73
			project.create(npm);
74
		}
75
		project.open(npm);
76
77
		extractFile(CONFIG_INI, CONFIG_INI);
78
79
		extractFile(ALL_GENERATED_CFGINI_LAUNCH, ALL_GENERATED_CFGINI_LAUNCH);
80
		extractFile(ALL_EXISTING_CFGINI_LAUNCH, ALL_EXISTING_CFGINI_LAUNCH);
81
		extractFile(FEATURE_GENERATED_CFGINI_LAUNCH, FEATURE_GENERATED_CFGINI_LAUNCH);
82
		extractFile(FEATURE_MODIFIED_GENERATED_CFGINI_LAUNCH, FEATURE_MODIFIED_GENERATED_CFGINI_LAUNCH);
83
		extractFile(FEATURE_EXISTING_CFGINI_LAUNCH, FEATURE_EXISTING_CFGINI_LAUNCH);
84
		extractFile(PLUGIN_GENERATED_CFGINI_LAUNCH, PLUGIN_GENERATED_CFGINI_LAUNCH);
85
		extractFile(PLUGIN_MODIFIED_GENERATED_CFGINI_LAUNCH, PLUGIN_MODIFIED_GENERATED_CFGINI_LAUNCH);
86
		extractFile(PLUGIN_EXISTING_CFGINI_LAUNCH, PLUGIN_EXISTING_CFGINI_LAUNCH);
87
88
		// refresh the project to let Eclipse now that new Launch is available
89
		project.refreshLocal(IResource.DEPTH_INFINITE, npm);
90
91
		if (prj1 == null)
92
			prj1 = importProject("org.eclipse.pde.tests.first", workspace);
93
		if (prj2 == null)
94
			prj2 = importProject("org.eclipse.pde.tests.second", workspace);
95
	}
96
97
	IProject importProject(String bundleName, IWorkspace workspace) throws IOException, CoreException {
98
		File rootFile = workspace.getRoot().getLocation().toFile();
99
100
		URL srcURL = PDETestsPlugin.getBundleContext().getBundle().getEntry("tests/projects/" + bundleName);
101
		File srcBasedir = new File(FileLocator.toFileURL(srcURL).getFile());
102
103
		File dstBasedir = new File(rootFile, bundleName);
104
		if (!dstBasedir.exists()) {
105
			copyFile(srcBasedir, dstBasedir, ".project");
106
			copyFile(srcBasedir, dstBasedir, ".classpath");
107
			copyFile(srcBasedir, dstBasedir, "build.properties");
108
			copyFile(srcBasedir, dstBasedir, "META-INF/MANIFEST.MF");
109
			copyFile(srcBasedir, dstBasedir, "src/org/eclipse/pde/tests/MyBundleActivator.java");
110
		}
111
		IProject project = workspace.getRoot().getProject(bundleName);
112
		IProjectDescription description = workspace.newProjectDescription(bundleName);
113
		project.create(description, npm);
114
		project.open(npm);
115
		return project;
116
	}
117
118
	private void copyFile(File srcBasedir, File dstBasedir, String file) throws IOException {
119
		copyFile(new File(srcBasedir, file), new File(dstBasedir, file));
120
	}
121
122
	private void copyFile(File src, File dst) throws IOException {
123
		src.getParentFile().mkdirs();
124
		dst.getParentFile().mkdirs();
125
126
		try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(src));
127
				BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(dst))) {
128
129
			byte[] buf = new byte[10240];
130
			int len;
131
			while ((len = in.read(buf)) != -1) {
132
				out.write(buf, 0, len);
133
			}
134
		}
135
	}
136
137
	private void extractFile(String fsTarget, String bundlePath) throws CoreException, IOException {
138
		URL entry = bundle.getEntry(RES_FOLDER + bundlePath);
139
		IFile file = project.getFile(RES_FOLDER + fsTarget);
140
		file.getParent().getRawLocation().toFile().mkdirs();
141
		// refresh the project to let Eclipse now that new folder is available
142
		project.refreshLocal(IResource.DEPTH_INFINITE, npm);
143
		if (!file.exists()) {
144
			file.create(entry.openStream(), true, npm);
145
		}
146
	}
147
148
	public void test_ALL_generatedConfigIni_Launch() throws CoreException {
149
		ILaunchConfiguration launchCfg = launchManager
150
				.getLaunchConfiguration(project.getFile(RES_FOLDER + ALL_GENERATED_CFGINI_LAUNCH));
151
		assertNotNull(launchCfg);
152
		bundleMap = BundleLauncherHelper.getMergedBundleMap(launchCfg, false);
153
		assertionsForGeneratedConfigIni();
154
	}
155
156
	public void test_ALL_existingConfigIni_Launch() throws CoreException {
157
		ILaunchConfiguration launchCfg = launchManager
158
				.getLaunchConfiguration(project.getFile(RES_FOLDER + ALL_EXISTING_CFGINI_LAUNCH));
159
		assertNotNull(launchCfg);
160
		bundleMap = BundleLauncherHelper.getMergedBundleMap(launchCfg, false);
161
		assertionsForExistingConfigIni();
162
	}
163
164
	public void test_FEATURE_modifiedGeneratedConfigIni_Launch() throws CoreException {
165
		ILaunchConfiguration launchCfg = launchManager
166
				.getLaunchConfiguration(project.getFile(RES_FOLDER + FEATURE_MODIFIED_GENERATED_CFGINI_LAUNCH));
167
		assertNotNull(launchCfg);
168
		bundleMap = BundleLauncherHelper.getMergedBundleMap(launchCfg, false);
169
		assertionsForModifiedGeneratedConfigIni();
170
	}
171
172
	public void test_FEATURE_existingConfigIni_Launch() throws CoreException {
173
		ILaunchConfiguration launchCfg = launchManager
174
				.getLaunchConfiguration(project.getFile(RES_FOLDER + FEATURE_EXISTING_CFGINI_LAUNCH));
175
		assertNotNull(launchCfg);
176
		bundleMap = BundleLauncherHelper.getMergedBundleMap(launchCfg, false);
177
		assertionsForExistingConfigIni();
178
	}
179
180
	public void test_PLUGIN_generatedConfigIni_Launch() throws CoreException {
181
		ILaunchConfiguration launchCfg = launchManager
182
				.getLaunchConfiguration(project.getFile(RES_FOLDER + PLUGIN_GENERATED_CFGINI_LAUNCH));
183
		assertNotNull(launchCfg);
184
		bundleMap = BundleLauncherHelper.getMergedBundleMap(launchCfg, false);
185
		assertionsForGeneratedConfigIni();
186
	}
187
188
	public void test_PLUGIN_modifiedGeneratedConfigIni_Launch() throws CoreException {
189
		ILaunchConfiguration launchCfg = launchManager
190
				.getLaunchConfiguration(project.getFile(RES_FOLDER + PLUGIN_MODIFIED_GENERATED_CFGINI_LAUNCH));
191
		assertNotNull(launchCfg);
192
		bundleMap = BundleLauncherHelper.getMergedBundleMap(launchCfg, false);
193
		assertionsForModifiedGeneratedConfigIni();
194
	}
195
196
	public void test_PLUGIN_existingConfigIni_Launch() throws CoreException {
197
		ILaunchConfiguration launchCfg = launchManager
198
				.getLaunchConfiguration(project.getFile(RES_FOLDER + PLUGIN_EXISTING_CFGINI_LAUNCH));
199
		assertNotNull(launchCfg);
200
		bundleMap = BundleLauncherHelper.getMergedBundleMap(launchCfg, false);
201
		assertNotEquals("Did not receive any bundles!", bundleMap.isEmpty(), bundleMap);
202
		assertionsForExistingConfigIni();
203
	}
204
205
	private void assertionsForExistingConfigIni() {
206
		assertStartInfo("1:true", "org.eclipse.pde.tests.first");
207
		assertStartInfo("2:true", "org.eclipse.pde.tests.second");
208
		assertStartInfo("3:true", "org.eclipse.equinox.simpleconfigurator");
209
		assertStartInfo("4:true", "org.apache.felix.scr");
210
		assertStartInfo("default:true", "org.eclipse.core.runtime");
211
		assertStartInfo("default:default", "org.eclipse.equinox.common");
212
	}
213
214
	// this is the Eclipse PDE default launch config
215
	private void assertionsForGeneratedConfigIni() {
216
		assertStartInfo("-1:true", "org.eclipse.osgi");
217
		assertStartInfo("1:true", "org.eclipse.equinox.simpleconfigurator");
218
		assertStartInfo("1:true", "org.apache.felix.scr");
219
		assertStartInfo("2:true", "org.eclipse.equinox.common");
220
		assertStartInfo("default:default", "org.eclipse.pde.tests.first");
221
		assertStartInfo("default:default", "org.eclipse.pde.tests.second");
222
		assertStartInfo("default:default", "org.eclipse.equinox.event");
223
		assertStartInfo("default:default", "org.eclipse.equinox.registry");
224
	}
225
226
	private void assertionsForModifiedGeneratedConfigIni() {
227
		assertStartInfo("-1:true", "org.eclipse.osgi");
228
229
		// # expected
230
		// assertStartInfo("default:default",
231
		// "org.eclipse.equinox.simpleconfigurator");
232
		// assertStartInfo("default:default", "org.apache.felix.scr");
233
		// # current results
234
		assertStartInfo("1:true", "org.eclipse.equinox.simpleconfigurator");
235
		assertStartInfo("1:true", "org.apache.felix.scr");
236
237
		assertStartInfo("2:true", "org.eclipse.equinox.common");
238
		assertStartInfo("1:true", "org.eclipse.pde.tests.first");
239
		assertStartInfo("2:true", "org.eclipse.pde.tests.second");
240
		assertStartInfo("default:default", "org.eclipse.equinox.event");
241
		assertStartInfo("default:default", "org.eclipse.equinox.registry");
242
	}
243
244
	private void assertStartInfo(String expectedStartInfo, String bundle) {
245
		assertEquals("missing bundle or wrong start info for " + bundle, expectedStartInfo, startInfo(bundle));
246
	}
247
248
	private String startInfo(String bundleId) {
249
		String rv = "";
250
		Optional<IPluginModelBase> pmb = bundleMap.keySet().stream().filter(x -> {
251
			boolean found = false;
252
			String id = x.getPluginBase().getId();
253
			if (id != null) {
254
				found = id.equalsIgnoreCase(bundleId);
255
			} else {
256
				System.out.println("didn't found an entry for " + x.toString());
257
			}
258
			return found;
259
		}).findAny();
260
261
		if (pmb.isPresent()) {
262
			rv = bundleMap.get(pmb.get());
263
		}
264
		return rv;
265
	}
266
267
}
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/ALL_existingConfigIni.launch (+29 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
<booleanAttribute key="append.args" value="true"/>
4
<booleanAttribute key="askclear" value="false"/>
5
<booleanAttribute key="automaticAdd" value="true"/>
6
<booleanAttribute key="automaticValidate" value="true"/>
7
<stringAttribute key="bootstrap" value=""/>
8
<stringAttribute key="checked" value="[NONE]"/>
9
<booleanAttribute key="clearConfig" value="true"/>
10
<booleanAttribute key="clearws" value="true"/>
11
<booleanAttribute key="clearwslog" value="false"/>
12
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ALL_existingConfigIni_Launch"/>
13
<booleanAttribute key="default" value="true"/>
14
<booleanAttribute key="includeOptional" value="true"/>
15
<stringAttribute key="location" value="${workspace_loc}/../runtime-ALL_existingConfigIni_Launch"/>
16
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
17
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
18
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
19
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
20
<stringAttribute key="pde.version" value="3.3"/>
21
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
22
<booleanAttribute key="show_selected_only" value="false"/>
23
<stringAttribute key="templateConfig" value="${workspace_loc:/org.eclipse.pde.ui.tests}/tests/launch/config.ini"/>
24
<booleanAttribute key="tracing" value="false"/>
25
<booleanAttribute key="useCustomFeatures" value="false"/>
26
<booleanAttribute key="useDefaultConfig" value="false"/>
27
<booleanAttribute key="useDefaultConfigArea" value="true"/>
28
<booleanAttribute key="useProduct" value="true"/>
29
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/ALL_generatedConfigIni.launch (+29 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
<booleanAttribute key="append.args" value="true"/>
4
<booleanAttribute key="askclear" value="false"/>
5
<booleanAttribute key="automaticAdd" value="true"/>
6
<booleanAttribute key="automaticValidate" value="true"/>
7
<stringAttribute key="bootstrap" value=""/>
8
<stringAttribute key="checked" value="[NONE]"/>
9
<booleanAttribute key="clearConfig" value="true"/>
10
<booleanAttribute key="clearws" value="true"/>
11
<booleanAttribute key="clearwslog" value="false"/>
12
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ALL_generatedConfigIni_Launch"/>
13
<booleanAttribute key="default" value="true"/>
14
<booleanAttribute key="includeOptional" value="true"/>
15
<stringAttribute key="location" value="${workspace_loc}/../runtime-ALL_generatedConfigIni_Launch.launch"/>
16
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
17
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
18
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
19
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
20
<stringAttribute key="pde.version" value="3.3"/>
21
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
22
<booleanAttribute key="show_selected_only" value="false"/>
23
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
24
<booleanAttribute key="tracing" value="false"/>
25
<booleanAttribute key="useCustomFeatures" value="false"/>
26
<booleanAttribute key="useDefaultConfig" value="true"/>
27
<booleanAttribute key="useDefaultConfigArea" value="true"/>
28
<booleanAttribute key="useProduct" value="true"/>
29
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/FEATURE_existingConfigIni.launch (+57 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
<setAttribute key="additional_plugins">
4
<setEntry value="org.eclipse.equinox.simpleconfigurator:1.3.300.v20190716-0825:default:true:default:default"/>
5
<setEntry value="org.eclipse.pde.tests.first:1.0.0.qualifier:default:true:1:true"/>
6
<setEntry value="org.eclipse.pde.tests.second:1.0.0.qualifier:default:true:2:true"/>
7
</setAttribute>
8
<booleanAttribute key="append.args" value="true"/>
9
<booleanAttribute key="askclear" value="false"/>
10
<booleanAttribute key="automaticAdd" value="false"/>
11
<booleanAttribute key="automaticValidate" value="false"/>
12
<stringAttribute key="bootstrap" value=""/>
13
<stringAttribute key="checked" value="[NONE]"/>
14
<booleanAttribute key="clearConfig" value="true"/>
15
<booleanAttribute key="clearws" value="true"/>
16
<booleanAttribute key="clearwslog" value="false"/>
17
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/FEATURE_existingConfigIni_Launch"/>
18
<booleanAttribute key="default" value="false"/>
19
<stringAttribute key="featureDefaultLocation" value="external"/>
20
<stringAttribute key="featurePluginResolution" value="workspace"/>
21
<booleanAttribute key="includeOptional" value="false"/>
22
<stringAttribute key="location" value="${workspace_loc}/../existingConfigIni_FeatureBasedLaunch"/>
23
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
24
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
25
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
26
<stringAttribute key="pde.version" value="3.3"/>
27
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
28
<setAttribute key="selected_features">
29
<setEntry value="org.eclipse.e4.rcp:default"/>
30
<setEntry value="org.eclipse.ecf.core.feature:default"/>
31
<setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
32
<setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
33
<setEntry value="org.eclipse.ecf.filetransfer.httpclient45.feature:default"/>
34
<setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
35
<setEntry value="org.eclipse.emf.common:default"/>
36
<setEntry value="org.eclipse.emf.ecore:default"/>
37
<setEntry value="org.eclipse.equinox.executable:default"/>
38
<setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
39
<setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
40
<setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
41
<setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
42
<setEntry value="org.eclipse.help:default"/>
43
<setEntry value="org.eclipse.jdt:default"/>
44
<setEntry value="org.eclipse.license:default"/>
45
<setEntry value="org.eclipse.pde.api.tools.ee.feature:default"/>
46
<setEntry value="org.eclipse.pde:default"/>
47
<setEntry value="org.eclipse.platform:default"/>
48
<setEntry value="org.eclipse.rcp:default"/>
49
</setAttribute>
50
<booleanAttribute key="show_selected_only" value="false"/>
51
<stringAttribute key="templateConfig" value="${workspace_loc:/org.eclipse.pde.ui.tests}/tests/launch/config.ini"/>
52
<booleanAttribute key="tracing" value="false"/>
53
<booleanAttribute key="useCustomFeatures" value="true"/>
54
<booleanAttribute key="useDefaultConfig" value="false"/>
55
<booleanAttribute key="useDefaultConfigArea" value="true"/>
56
<booleanAttribute key="useProduct" value="true"/>
57
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/FEATURE_generatedConfigIni.launch (+58 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
<setAttribute key="additional_plugins">
4
<setEntry value="org.eclipse.pde.tests.first:1.0.0.qualifier:default:true:default:default"/>
5
<setEntry value="org.eclipse.pde.tests.second:1.0.0.qualifier:default:true:default:default"/>
6
</setAttribute>
7
<booleanAttribute key="append.args" value="true"/>
8
<booleanAttribute key="askclear" value="false"/>
9
<booleanAttribute key="automaticAdd" value="true"/>
10
<booleanAttribute key="automaticValidate" value="true"/>
11
<stringAttribute key="bootstrap" value=""/>
12
<stringAttribute key="checked" value="[NONE]"/>
13
<booleanAttribute key="clearConfig" value="true"/>
14
<booleanAttribute key="clearws" value="true"/>
15
<booleanAttribute key="clearwslog" value="false"/>
16
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/FEATURE_generatedConfigIni"/>
17
<booleanAttribute key="default" value="false"/>
18
<stringAttribute key="featureDefaultLocation" value="workspace"/>
19
<stringAttribute key="featurePluginResolution" value="workspace"/>
20
<booleanAttribute key="includeOptional" value="true"/>
21
<stringAttribute key="location" value="${workspace_loc}/../runtime-FEATURE_generatedConfigIni_Launch"/>
22
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
23
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
24
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
25
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
26
<stringAttribute key="pde.version" value="3.3"/>
27
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
28
<setAttribute key="selected_features">
29
<setEntry value="com.daimler.patch.org.eclipse.pde.feature:default"/>
30
<setEntry value="org.eclipse.e4.rcp:default"/>
31
<setEntry value="org.eclipse.ecf.core.feature:default"/>
32
<setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
33
<setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
34
<setEntry value="org.eclipse.ecf.filetransfer.httpclient45.feature:default"/>
35
<setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
36
<setEntry value="org.eclipse.emf.common:default"/>
37
<setEntry value="org.eclipse.emf.ecore:default"/>
38
<setEntry value="org.eclipse.equinox.executable:default"/>
39
<setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
40
<setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
41
<setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
42
<setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
43
<setEntry value="org.eclipse.help:default"/>
44
<setEntry value="org.eclipse.jdt:default"/>
45
<setEntry value="org.eclipse.license:default"/>
46
<setEntry value="org.eclipse.pde.api.tools.ee.feature:default"/>
47
<setEntry value="org.eclipse.pde:default"/>
48
<setEntry value="org.eclipse.platform:default"/>
49
<setEntry value="org.eclipse.rcp:default"/>
50
</setAttribute>
51
<booleanAttribute key="show_selected_only" value="false"/>
52
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
53
<booleanAttribute key="tracing" value="false"/>
54
<booleanAttribute key="useCustomFeatures" value="true"/>
55
<booleanAttribute key="useDefaultConfig" value="true"/>
56
<booleanAttribute key="useDefaultConfigArea" value="true"/>
57
<booleanAttribute key="useProduct" value="true"/>
58
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/FEATURE_modifiedGeneratedConfigIni.launch (+60 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
<setAttribute key="additional_plugins">
4
<setEntry value="org.apache.felix.scr:2.1.14.v20190123-1619:default:true:default:default"/>
5
<setEntry value="org.eclipse.equinox.simpleconfigurator:1.3.300.v20190716-0825:default:true:default:default"/>
6
<setEntry value="org.eclipse.pde.tests.first:1.0.0.qualifier:default:true:1:true"/>
7
<setEntry value="org.eclipse.pde.tests.second:1.0.0.qualifier:default:true:2:true"/>
8
</setAttribute>
9
<booleanAttribute key="append.args" value="true"/>
10
<booleanAttribute key="askclear" value="false"/>
11
<booleanAttribute key="automaticAdd" value="true"/>
12
<booleanAttribute key="automaticValidate" value="true"/>
13
<stringAttribute key="bootstrap" value=""/>
14
<stringAttribute key="checked" value="[NONE]"/>
15
<booleanAttribute key="clearConfig" value="true"/>
16
<booleanAttribute key="clearws" value="true"/>
17
<booleanAttribute key="clearwslog" value="false"/>
18
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/FEATURE_modifiedGeneratedConfigIni_Launch"/>
19
<booleanAttribute key="default" value="false"/>
20
<stringAttribute key="featureDefaultLocation" value="workspace"/>
21
<stringAttribute key="featurePluginResolution" value="workspace"/>
22
<booleanAttribute key="includeOptional" value="true"/>
23
<stringAttribute key="location" value="${workspace_loc}/../runtime-FEATURE_modifiedGeneratedConfigIni_Launch"/>
24
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
25
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
26
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
27
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
28
<stringAttribute key="pde.version" value="3.3"/>
29
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
30
<setAttribute key="selected_features">
31
<setEntry value="com.daimler.patch.org.eclipse.pde.feature:default"/>
32
<setEntry value="org.eclipse.e4.rcp:default"/>
33
<setEntry value="org.eclipse.ecf.core.feature:default"/>
34
<setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
35
<setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
36
<setEntry value="org.eclipse.ecf.filetransfer.httpclient45.feature:default"/>
37
<setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
38
<setEntry value="org.eclipse.emf.common:default"/>
39
<setEntry value="org.eclipse.emf.ecore:default"/>
40
<setEntry value="org.eclipse.equinox.executable:default"/>
41
<setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
42
<setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
43
<setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
44
<setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
45
<setEntry value="org.eclipse.help:default"/>
46
<setEntry value="org.eclipse.jdt:default"/>
47
<setEntry value="org.eclipse.license:default"/>
48
<setEntry value="org.eclipse.pde.api.tools.ee.feature:default"/>
49
<setEntry value="org.eclipse.pde:default"/>
50
<setEntry value="org.eclipse.platform:default"/>
51
<setEntry value="org.eclipse.rcp:default"/>
52
</setAttribute>
53
<booleanAttribute key="show_selected_only" value="false"/>
54
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
55
<booleanAttribute key="tracing" value="false"/>
56
<booleanAttribute key="useCustomFeatures" value="true"/>
57
<booleanAttribute key="useDefaultConfig" value="true"/>
58
<booleanAttribute key="useDefaultConfigArea" value="true"/>
59
<booleanAttribute key="useProduct" value="true"/>
60
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/PLUGIN_existingConfigIni.launch (+31 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
<booleanAttribute key="append.args" value="true"/>
4
<booleanAttribute key="askclear" value="false"/>
5
<booleanAttribute key="automaticAdd" value="false"/>
6
<booleanAttribute key="automaticValidate" value="false"/>
7
<stringAttribute key="bootstrap" value=""/>
8
<stringAttribute key="checked" value="[NONE]"/>
9
<booleanAttribute key="clearConfig" value="true"/>
10
<booleanAttribute key="clearws" value="true"/>
11
<booleanAttribute key="clearwslog" value="false"/>
12
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/PLUGIN_existingConfigIni_Launch"/>
13
<booleanAttribute key="default" value="false"/>
14
<booleanAttribute key="includeOptional" value="false"/>
15
<stringAttribute key="location" value="${workspace_loc}/../existingConfigIni_PluginBasedLaunch"/>
16
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
17
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
18
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
19
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
20
<stringAttribute key="pde.version" value="3.3"/>
21
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
22
<stringAttribute key="selected_target_plugins" value="com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.el@default:default,com.sun.jna.platform@default:default,com.sun.jna@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.batik.constants@default:default,org.apache.batik.css@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.felix.scr@1:true,org.apache.httpcomponents.httpclient.win@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.apache.xmlgraphics@default:default,org.apiguardian@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare.win32@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.dialogs@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient45.win32@default:default,org.eclipse.ecf.provider.filetransfer.httpclient45@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.win32.win32.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.annotation*1.1.400.v20180921-1416@default:default,org.eclipse.jdt.annotation*2.2.300.v20190328-1431@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core.tests.builder@default:default,org.eclipse.jdt.core.tests.compiler@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit5.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.annotations@default:default,org.eclipse.pde.api.tools.ee.cdcfoundation10@default:false,org.eclipse.pde.api.tools.ee.cdcfoundation11@default:false,org.eclipse.pde.api.tools.ee.j2se12@default:false,org.eclipse.pde.api.tools.ee.j2se13@default:false,org.eclipse.pde.api.tools.ee.j2se14@default:false,org.eclipse.pde.api.tools.ee.j2se15@default:false,org.eclipse.pde.api.tools.ee.javase16@default:false,org.eclipse.pde.api.tools.ee.javase17@default:false,org.eclipse.pde.api.tools.ee.javase18@default:false,org.eclipse.pde.api.tools.ee.javase9@default:false,org.eclipse.pde.api.tools.ee.jre11@default:false,org.eclipse.pde.api.tools.ee.osgiminimum10@default:false,org.eclipse.pde.api.tools.ee.osgiminimum11@default:false,org.eclipse.pde.api.tools.ee.osgiminimum12@default:false,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.annotations@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.lib@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.ds1_2.lib@default:default,org.eclipse.pde.genericeditor.extension@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui.tests@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.reddeer.common@default:default,org.eclipse.reddeer.core@default:default,org.eclipse.reddeer.direct@default:default,org.eclipse.reddeer.eclipse@default:default,org.eclipse.reddeer.jface@default:default,org.eclipse.reddeer.junit.extension@default:default,org.eclipse.reddeer.junit@default:default,org.eclipse.reddeer.swt@default:default,org.eclipse.reddeer.uiforms@default:default,org.eclipse.reddeer.workbench.core@default:default,org.eclipse.reddeer.workbench@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.genericeditor.diff.extension@default:default,org.eclipse.team.ui@default:default,org.eclipse.test.performance@default:default,org.eclipse.text@default:default,org.eclipse.tools.layout.spy@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.genericeditor@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.quicklinks@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.monitoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.themes@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@default:default,org.eclipse.urischeme@default:default,org.hamcrest.core@default:default,org.json@default:default,org.junit.jupiter.api@default:default,org.junit.jupiter.engine@default:default,org.junit.jupiter.migrationsupport@default:default,org.junit.jupiter.params@default:default,org.junit.platform.commons@default:default,org.junit.platform.engine@default:default,org.junit.platform.launcher@default:default,org.junit.platform.runner@default:default,org.junit.platform.suite.api@default:default,org.junit.vintage.engine@default:default,org.junit@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.opentest4j@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default,org.yaml.snakeyaml@default:default"/>
23
<stringAttribute key="selected_workspace_plugins" value="org.eclipse.pde.tests.first*1.0.0.qualifier@1:true,org.eclipse.pde.tests.second*1.0.0.qualifier@2:true"/>
24
<booleanAttribute key="show_selected_only" value="false"/>
25
<stringAttribute key="templateConfig" value="${workspace_loc:/org.eclipse.pde.ui.tests}/tests/launch/config.ini"/>
26
<booleanAttribute key="tracing" value="false"/>
27
<booleanAttribute key="useCustomFeatures" value="false"/>
28
<booleanAttribute key="useDefaultConfig" value="false"/>
29
<booleanAttribute key="useDefaultConfigArea" value="true"/>
30
<booleanAttribute key="useProduct" value="true"/>
31
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/PLUGIN_generatedConfigIni.launch (+32 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
<booleanAttribute key="append.args" value="true"/>
4
<booleanAttribute key="askclear" value="false"/>
5
<booleanAttribute key="automaticAdd" value="true"/>
6
<booleanAttribute key="automaticValidate" value="true"/>
7
<stringAttribute key="bootstrap" value=""/>
8
<stringAttribute key="checked" value="[NONE]"/>
9
<booleanAttribute key="clearConfig" value="true"/>
10
<booleanAttribute key="clearws" value="true"/>
11
<booleanAttribute key="clearwslog" value="false"/>
12
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/PLUGIN_generatedConfigIni"/>
13
<booleanAttribute key="default" value="false"/>
14
<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.pde,org.eclipse.pde.api.tools,org.eclipse.pde.api.tools.annotations,org.eclipse.pde.api.tools.ee.cdcfoundation10,org.eclipse.pde.api.tools.ee.cdcfoundation11,org.eclipse.pde.api.tools.ee.j2se12,org.eclipse.pde.api.tools.ee.j2se13,org.eclipse.pde.api.tools.ee.j2se14,org.eclipse.pde.api.tools.ee.j2se15,org.eclipse.pde.api.tools.ee.javase16,org.eclipse.pde.api.tools.ee.javase17,org.eclipse.pde.api.tools.ee.javase18,org.eclipse.pde.api.tools.ee.javase9,org.eclipse.pde.api.tools.ee.jre11,org.eclipse.pde.api.tools.ee.osgiminimum10,org.eclipse.pde.api.tools.ee.osgiminimum11,org.eclipse.pde.api.tools.ee.osgiminimum12,org.eclipse.pde.api.tools.generator,org.eclipse.pde.api.tools.tests,org.eclipse.pde.api.tools.ui,org.eclipse.pde.core,org.eclipse.pde.ds.annotations,org.eclipse.pde.ds.annotations.tests,org.eclipse.pde.ds.core,org.eclipse.pde.ds.lib,org.eclipse.pde.ds.tests,org.eclipse.pde.ds.ui,org.eclipse.pde.ds1_2.lib,org.eclipse.pde.genericeditor.extension,org.eclipse.pde.genericeditor.extension.tests,org.eclipse.pde.junit.runtime,org.eclipse.pde.junit.runtime.tests,org.eclipse.pde.launching,org.eclipse.pde.runtime,org.eclipse.pde.tests.first*1.0.0.qualifier,org.eclipse.pde.tests.second*1.0.0.qualifier,org.eclipse.pde.ua.core,org.eclipse.pde.ua.tests,org.eclipse.pde.ua.ui,org.eclipse.pde.ui,org.eclipse.pde.ui.templates,org.eclipse.pde.ui.templates.tests,org.eclipse.pde.ui.tests,org.eclipse.pde.ui.tests.smartimport,org.eclipse.tools.layout.spy,org.eclipse.ui.trace"/>
15
<booleanAttribute key="includeOptional" value="true"/>
16
<stringAttribute key="location" value="${workspace_loc}/../runtime-PLUGIN_generatedConfigIni_Launch"/>
17
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
18
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
19
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
20
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
21
<stringAttribute key="pde.version" value="3.3"/>
22
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
23
<stringAttribute key="selected_target_plugins" value="com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.el@default:default,com.sun.jna.platform@default:default,com.sun.jna@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.batik.constants@default:default,org.apache.batik.css@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.felix.scr@1:true,org.apache.httpcomponents.httpclient.win@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.apache.xmlgraphics@default:default,org.apiguardian@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare.win32@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.dialogs@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient45.win32@default:default,org.eclipse.ecf.provider.filetransfer.httpclient45@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.win32.win32.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.annotation*1.1.400.v20180921-1416@default:default,org.eclipse.jdt.annotation*2.2.300.v20190328-1431@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core.tests.builder@default:default,org.eclipse.jdt.core.tests.compiler@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit5.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.reddeer.common@default:default,org.eclipse.reddeer.core@default:default,org.eclipse.reddeer.direct@default:default,org.eclipse.reddeer.eclipse@default:default,org.eclipse.reddeer.jface@default:default,org.eclipse.reddeer.junit.extension@default:default,org.eclipse.reddeer.junit@default:default,org.eclipse.reddeer.swt@default:default,org.eclipse.reddeer.uiforms@default:default,org.eclipse.reddeer.workbench.core@default:default,org.eclipse.reddeer.workbench@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.genericeditor.diff.extension@default:default,org.eclipse.team.ui@default:default,org.eclipse.test.performance@default:default,org.eclipse.text.quicksearch@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.genericeditor@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.quicklinks@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.monitoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.themes@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@default:default,org.eclipse.urischeme@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.json@default:default,org.junit.jupiter.api@default:default,org.junit.jupiter.engine@default:default,org.junit.jupiter.migrationsupport@default:default,org.junit.jupiter.params@default:default,org.junit.platform.commons@default:default,org.junit.platform.engine@default:default,org.junit.platform.launcher@default:default,org.junit.platform.runner@default:default,org.junit.platform.suite.api@default:default,org.junit.vintage.engine@default:default,org.junit@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.opentest4j@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default,org.yaml.snakeyaml@default:default"/>
24
<stringAttribute key="selected_workspace_plugins" value="org.eclipse.pde.tests.first*1.0.0.qualifier@default:default,org.eclipse.pde.tests.second*1.0.0.qualifier@default:default"/>
25
<booleanAttribute key="show_selected_only" value="false"/>
26
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
27
<booleanAttribute key="tracing" value="false"/>
28
<booleanAttribute key="useCustomFeatures" value="false"/>
29
<booleanAttribute key="useDefaultConfig" value="true"/>
30
<booleanAttribute key="useDefaultConfigArea" value="true"/>
31
<booleanAttribute key="useProduct" value="true"/>
32
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/PLUGIN_modifiedGeneratedConfigIni.launch (+32 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
<booleanAttribute key="append.args" value="true"/>
4
<booleanAttribute key="askclear" value="false"/>
5
<booleanAttribute key="automaticAdd" value="true"/>
6
<booleanAttribute key="automaticValidate" value="true"/>
7
<stringAttribute key="bootstrap" value=""/>
8
<stringAttribute key="checked" value="[NONE]"/>
9
<booleanAttribute key="clearConfig" value="true"/>
10
<booleanAttribute key="clearws" value="true"/>
11
<booleanAttribute key="clearwslog" value="false"/>
12
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/PLUGIN_modifiedGeneratedConfigIni_Launch"/>
13
<booleanAttribute key="default" value="false"/>
14
<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.pde,org.eclipse.pde.api.tools,org.eclipse.pde.api.tools.annotations,org.eclipse.pde.api.tools.ee.cdcfoundation10,org.eclipse.pde.api.tools.ee.cdcfoundation11,org.eclipse.pde.api.tools.ee.j2se12,org.eclipse.pde.api.tools.ee.j2se13,org.eclipse.pde.api.tools.ee.j2se14,org.eclipse.pde.api.tools.ee.j2se15,org.eclipse.pde.api.tools.ee.javase16,org.eclipse.pde.api.tools.ee.javase17,org.eclipse.pde.api.tools.ee.javase18,org.eclipse.pde.api.tools.ee.javase9,org.eclipse.pde.api.tools.ee.jre11,org.eclipse.pde.api.tools.ee.osgiminimum10,org.eclipse.pde.api.tools.ee.osgiminimum11,org.eclipse.pde.api.tools.ee.osgiminimum12,org.eclipse.pde.api.tools.generator,org.eclipse.pde.api.tools.tests,org.eclipse.pde.api.tools.ui,org.eclipse.pde.core,org.eclipse.pde.ds.annotations,org.eclipse.pde.ds.annotations.tests,org.eclipse.pde.ds.core,org.eclipse.pde.ds.lib,org.eclipse.pde.ds.tests,org.eclipse.pde.ds.ui,org.eclipse.pde.ds1_2.lib,org.eclipse.pde.genericeditor.extension,org.eclipse.pde.genericeditor.extension.tests,org.eclipse.pde.junit.runtime,org.eclipse.pde.junit.runtime.tests,org.eclipse.pde.launching,org.eclipse.pde.runtime,org.eclipse.pde.tests.first*1.0.0.qualifier,org.eclipse.pde.tests.second*1.0.0.qualifier,org.eclipse.pde.ua.core,org.eclipse.pde.ua.tests,org.eclipse.pde.ua.ui,org.eclipse.pde.ui,org.eclipse.pde.ui.templates,org.eclipse.pde.ui.templates.tests,org.eclipse.pde.ui.tests,org.eclipse.pde.ui.tests.smartimport,org.eclipse.tools.layout.spy,org.eclipse.ui.trace"/>
15
<booleanAttribute key="includeOptional" value="true"/>
16
<stringAttribute key="location" value="${workspace_loc}/../runtime-PLUGIN_generatedConfigIni_Launch"/>
17
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
18
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
19
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
20
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
21
<stringAttribute key="pde.version" value="3.3"/>
22
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
23
<stringAttribute key="selected_target_plugins" value="com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.el@default:default,com.sun.jna.platform@default:default,com.sun.jna@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.batik.constants@default:default,org.apache.batik.css@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.felix.scr@1:true,org.apache.httpcomponents.httpclient.win@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.apache.xmlgraphics@default:default,org.apiguardian@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare.win32@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.dialogs@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient45.win32@default:default,org.eclipse.ecf.provider.filetransfer.httpclient45@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.win32.win32.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.annotation*1.1.400.v20180921-1416@default:default,org.eclipse.jdt.annotation*2.2.300.v20190328-1431@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core.tests.builder@default:default,org.eclipse.jdt.core.tests.compiler@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit5.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.reddeer.common@default:default,org.eclipse.reddeer.core@default:default,org.eclipse.reddeer.direct@default:default,org.eclipse.reddeer.eclipse@default:default,org.eclipse.reddeer.jface@default:default,org.eclipse.reddeer.junit.extension@default:default,org.eclipse.reddeer.junit@default:default,org.eclipse.reddeer.swt@default:default,org.eclipse.reddeer.uiforms@default:default,org.eclipse.reddeer.workbench.core@default:default,org.eclipse.reddeer.workbench@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.genericeditor.diff.extension@default:default,org.eclipse.team.ui@default:default,org.eclipse.test.performance@default:default,org.eclipse.text.quicksearch@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.genericeditor@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.quicklinks@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.monitoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.themes@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@default:default,org.eclipse.urischeme@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.json@default:default,org.junit.jupiter.api@default:default,org.junit.jupiter.engine@default:default,org.junit.jupiter.migrationsupport@default:default,org.junit.jupiter.params@default:default,org.junit.platform.commons@default:default,org.junit.platform.engine@default:default,org.junit.platform.launcher@default:default,org.junit.platform.runner@default:default,org.junit.platform.suite.api@default:default,org.junit.vintage.engine@default:default,org.junit@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.opentest4j@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default,org.yaml.snakeyaml@default:default"/>
24
<stringAttribute key="selected_workspace_plugins" value="org.eclipse.pde.tests.first*1.0.0.qualifier@1:true,org.eclipse.pde.tests.second*1.0.0.qualifier@2:true"/>
25
<booleanAttribute key="show_selected_only" value="false"/>
26
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
27
<booleanAttribute key="tracing" value="false"/>
28
<booleanAttribute key="useCustomFeatures" value="false"/>
29
<booleanAttribute key="useDefaultConfig" value="true"/>
30
<booleanAttribute key="useDefaultConfigArea" value="true"/>
31
<booleanAttribute key="useProduct" value="true"/>
32
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/README.md (+18 lines)
Added Link Here
1
# PDE Run/Launch Configuration Alternatives on Plug-ins tab
2
3
used abreviations: sl = "Start Level" and "Auto-Start"
4
5
## ALL - "all workspace and enabled target plug-ins" 
6
7
* UI: no sl available - hence no custom sl configuration feasible 
8
9
## FEATURES - "features selected below" 
10
11
* UI: via "Add Plug-ins" plug-ins can be added and sl configured
12
* Issue 1: Plug-ins inside the same sl cannot be ordered and have no deterministic startup sequence
13
14
## PLUGINS - "plug-ins selected below only"
15
16
* UI: plugins can be directly selected and configured with sl
17
* Issue 1: Plug-ins inside the same sl cannot be ordered and have no deterministic startup sequence
18
* Issue 2: Fragments are loaded even when not specified in UI
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/config.ini (+17 lines)
Added Link Here
1
# configuring bundle startlevel and autostart
2
osgi.bundles=\
3
    org.eclipse.osgi@-1\:start,\
4
    org.eclipse.pde.tests.first@1\:start,\
5
    org.eclipse.pde.tests.second@2\:start,\
6
    org.eclipse.equinox.simpleconfigurator@3\:start,\
7
    org.eclipse.osgi.services,\
8
    org.eclipse.osgi.util,\
9
    org.apache.felix.scr@4\:start,\
10
    org.eclipse.core.runtime@start
11
12
equinox.use.ds=true
13
eclipse.product=org.eclipse.platform.ide
14
eclipse.application=org.eclipse.ui.ide.workbench
15
16
osgi.bundles.defaultStartLevel=5
17
osgi.configuration.cascaded=false
(-)a/ui/org.eclipse.pde.ui.tests/tests/launch/feature-based-with-startlevels.launch (-37 / +37 lines)
Lines 1-40 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
2
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
3
    <setAttribute key="additional_plugins">
3
<setAttribute key="additional_plugins">
4
        <setEntry value="javax.inject:1.0.0.v20091030:default:true"/>
4
<setEntry value="javax.inject:1.0.0.v20091030:default:true:default:default"/>
5
        <setEntry value="org.eclipse.core.runtime:3.15.400.qualifier:default:true:1:true"/>
5
<setEntry value="org.eclipse.core.runtime:3.15.400.v20190813-2316:default:true:1:true"/>
6
        <setEntry value="org.eclipse.ui:3.113.100.qualifier:default:false:1:true"/>
6
<setEntry value="org.eclipse.ui:3.114.0.v20190808-1317:default:false:1:true"/>
7
    </setAttribute>
7
</setAttribute>
8
    <booleanAttribute key="append.args" value="true"/>
8
<booleanAttribute key="append.args" value="true"/>
9
    <booleanAttribute key="askclear" value="true"/>
9
<booleanAttribute key="askclear" value="true"/>
10
    <booleanAttribute key="automaticAdd" value="true"/>
10
<booleanAttribute key="automaticAdd" value="true"/>
11
    <booleanAttribute key="automaticValidate" value="true"/>
11
<booleanAttribute key="automaticValidate" value="true"/>
12
    <stringAttribute key="bad_container_name" value="\org.eclipse.pde.ui.tests\tests\launch\"/>
12
<stringAttribute key="bad_container_name" value="\org.eclipse.pde.ui.tests\tests\launch\"/>
13
    <stringAttribute key="bootstrap" value=""/>
13
<stringAttribute key="bootstrap" value=""/>
14
    <stringAttribute key="checked" value="[NONE]"/>
14
<stringAttribute key="checked" value="[NONE]"/>
15
    <booleanAttribute key="clearConfig" value="true"/>
15
<booleanAttribute key="clearConfig" value="true"/>
16
    <booleanAttribute key="clearws" value="false"/>
16
<booleanAttribute key="clearws" value="false"/>
17
    <booleanAttribute key="clearwslog" value="false"/>
17
<booleanAttribute key="clearwslog" value="false"/>
18
    <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/feature-based-with-startlevels"/>
18
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/feature-based-with-startlevels"/>
19
    <booleanAttribute key="default" value="false"/>
19
<booleanAttribute key="default" value="false"/>
20
    <stringAttribute key="featureDefaultLocation" value="workspace"/>
20
<stringAttribute key="featureDefaultLocation" value="workspace"/>
21
    <stringAttribute key="featurePluginResolution" value="workspace"/>
21
<stringAttribute key="featurePluginResolution" value="workspace"/>
22
    <booleanAttribute key="includeOptional" value="true"/>
22
<booleanAttribute key="includeOptional" value="true"/>
23
    <stringAttribute key="location" value="${workspace_loc}\_Workspaces\runtime-feature-based-with-startlevels"/>
23
<stringAttribute key="location" value="${workspace_loc}\_Workspaces\runtime-feature-based-with-startlevels"/>
24
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
24
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
25
    <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
25
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
26
    <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
26
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
27
    <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
27
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
28
    <stringAttribute key="pde.version" value="3.3"/>
28
<stringAttribute key="pde.version" value="3.3"/>
29
    <stringAttribute key="product" value="org.eclipse.sdk.ide"/>
29
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
30
    <setAttribute key="selected_features">
30
<setAttribute key="selected_features">
31
        <setEntry value="org.eclipse.rcp:default"/>
31
<setEntry value="org.eclipse.rcp:default"/>
32
    </setAttribute>
32
</setAttribute>
33
    <booleanAttribute key="show_selected_only" value="false"/>
33
<booleanAttribute key="show_selected_only" value="false"/>
34
    <stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
34
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
35
    <booleanAttribute key="tracing" value="false"/>
35
<booleanAttribute key="tracing" value="false"/>
36
    <booleanAttribute key="useCustomFeatures" value="true"/>
36
<booleanAttribute key="useCustomFeatures" value="true"/>
37
    <booleanAttribute key="useDefaultConfig" value="true"/>
37
<booleanAttribute key="useDefaultConfig" value="true"/>
38
    <booleanAttribute key="useDefaultConfigArea" value="true"/>
38
<booleanAttribute key="useDefaultConfigArea" value="true"/>
39
    <booleanAttribute key="useProduct" value="true"/>
39
<booleanAttribute key="useProduct" value="true"/>
40
</launchConfiguration>
40
</launchConfiguration>
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.first/.classpath (+11 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<classpath>
3
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
4
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5
	<classpathentry kind="src" path="src">
6
		<attributes>
7
			<attribute name="test" value="true"/>
8
		</attributes>
9
	</classpathentry>
10
	<classpathentry kind="output" path="bin"/>
11
</classpath>
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.first/.project (+28 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<projectDescription>
3
	<name>org.eclipse.pde.tests.first</name>
4
	<comment></comment>
5
	<projects>
6
	</projects>
7
	<buildSpec>
8
		<buildCommand>
9
			<name>org.eclipse.jdt.core.javabuilder</name>
10
			<arguments>
11
			</arguments>
12
		</buildCommand>
13
		<buildCommand>
14
			<name>org.eclipse.pde.ManifestBuilder</name>
15
			<arguments>
16
			</arguments>
17
		</buildCommand>
18
		<buildCommand>
19
			<name>org.eclipse.pde.SchemaBuilder</name>
20
			<arguments>
21
			</arguments>
22
		</buildCommand>
23
	</buildSpec>
24
	<natures>
25
		<nature>org.eclipse.pde.PluginNature</nature>
26
		<nature>org.eclipse.jdt.core.javanature</nature>
27
	</natures>
28
</projectDescription>
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.first/.settings/org.eclipse.jdt.core.prefs (+7 lines)
Added Link Here
1
eclipse.preferences.version=1
2
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4
org.eclipse.jdt.core.compiler.compliance=1.8
5
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7
org.eclipse.jdt.core.compiler.source=1.8
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.first/.settings/org.eclipse.pde.core.prefs (+2 lines)
Added Link Here
1
eclipse.preferences.version=1
2
resolve.requirebundle=false
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.first/META-INF/MANIFEST.MF (+9 lines)
Added Link Here
1
Manifest-Version: 1.0
2
Bundle-ManifestVersion: 2
3
Bundle-Name: First
4
Bundle-SymbolicName: org.eclipse.pde.tests.first
5
Bundle-Version: 1.0.0.qualifier
6
Automatic-Module-Name: org.eclipse.pde.tests.first
7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8
Bundle-Activator: org.eclipse.pde.tests.MyBundleActivator
9
Import-Package: org.osgi.framework;version="1.9.0"
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.first/build.properties (+5 lines)
Added Link Here
1
source.. = src/
2
output.. = bin/
3
bin.includes = META-INF/,\
4
               .
5
additional.bundles = org.eclipse.core.runtime
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.first/src/org/eclipse/pde/tests/MyBundleActivator.java (+21 lines)
Added Link Here
1
package org.eclipse.pde.tests;
2
3
import org.osgi.framework.BundleActivator;
4
import org.osgi.framework.BundleContext;
5
6
public class MyBundleActivator implements BundleActivator {
7
8
	@Override
9
	public void start(BundleContext context) throws Exception {
10
		System.out.format("starting bundle %s with first code init inside OSGi fw\n",
11
				context.getBundle().getSymbolicName());
12
13
	}
14
15
	@Override
16
	public void stop(BundleContext context) throws Exception {
17
		// TODO Auto-generated method stub
18
19
	}
20
21
}
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.second/.classpath (+11 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<classpath>
3
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
4
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5
	<classpathentry kind="src" path="src">
6
		<attributes>
7
			<attribute name="test" value="true"/>
8
		</attributes>
9
	</classpathentry>
10
	<classpathentry kind="output" path="bin"/>
11
</classpath>
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.second/.project (+28 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<projectDescription>
3
	<name>org.eclipse.pde.tests.second</name>
4
	<comment></comment>
5
	<projects>
6
	</projects>
7
	<buildSpec>
8
		<buildCommand>
9
			<name>org.eclipse.jdt.core.javabuilder</name>
10
			<arguments>
11
			</arguments>
12
		</buildCommand>
13
		<buildCommand>
14
			<name>org.eclipse.pde.ManifestBuilder</name>
15
			<arguments>
16
			</arguments>
17
		</buildCommand>
18
		<buildCommand>
19
			<name>org.eclipse.pde.SchemaBuilder</name>
20
			<arguments>
21
			</arguments>
22
		</buildCommand>
23
	</buildSpec>
24
	<natures>
25
		<nature>org.eclipse.pde.PluginNature</nature>
26
		<nature>org.eclipse.jdt.core.javanature</nature>
27
	</natures>
28
</projectDescription>
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.second/.settings/org.eclipse.jdt.core.prefs (+7 lines)
Added Link Here
1
eclipse.preferences.version=1
2
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4
org.eclipse.jdt.core.compiler.compliance=1.8
5
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7
org.eclipse.jdt.core.compiler.source=1.8
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.second/.settings/org.eclipse.pde.core.prefs (+3 lines)
Added Link Here
1
eclipse.preferences.version=1
2
pluginProject.extensions=false
3
resolve.requirebundle=false
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.second/META-INF/MANIFEST.MF (+9 lines)
Added Link Here
1
Manifest-Version: 1.0
2
Bundle-ManifestVersion: 2
3
Bundle-Name: Second
4
Bundle-SymbolicName: org.eclipse.pde.tests.second
5
Bundle-Version: 1.0.0.qualifier
6
Automatic-Module-Name: org.eclipse.pde.tests.second
7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8
Bundle-Activator: org.eclipse.pde.tests.MyBundleActivator
9
Import-Package: org.osgi.framework;version="1.9.0"
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.second/build.properties (+5 lines)
Added Link Here
1
source.. = src/
2
output.. = bin/
3
bin.includes = META-INF/,\
4
               .
5
additional.bundles = org.eclipse.osgi
(-)a/ui/org.eclipse.pde.ui.tests/tests/projects/org.eclipse.pde.tests.second/src/org/eclipse/pde/tests/MyBundleActivator.java (+21 lines)
Added Link Here
1
package org.eclipse.pde.tests;
2
3
import org.osgi.framework.BundleActivator;
4
import org.osgi.framework.BundleContext;
5
6
public class MyBundleActivator implements BundleActivator {
7
8
	@Override
9
	public void start(BundleContext context) throws Exception {
10
		System.out.format("starting bundle %s with first code init inside OSGi fw\n",
11
				context.getBundle().getSymbolicName());
12
13
	}
14
15
	@Override
16
	public void stop(BundleContext context) throws Exception {
17
		// TODO Auto-generated method stub
18
19
	}
20
21
}

Return to bug 547762