[KARAF-2780] Fix issue during LaunchConfiguration creation
diff --git a/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java b/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java
index 558954c..f3c9b38 100644
--- a/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java
+++ b/plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafLaunchConfigurationInitializer.java
@@ -67,8 +67,7 @@
/**
* Convenience method for initializing a Karaf launch configuration
*
- * @param configuration
- * the working copy of the launch configuration
+ * @param configuration the working copy of the launch configuration
*/
public static void initializeConfiguration(final ILaunchConfigurationWorkingCopy configuration) {
final KarafLaunchConfigurationInitializer configurationInitializer = new KarafLaunchConfigurationInitializer();
@@ -126,7 +125,7 @@
* Karaf platform and defers the the parent for all other bundles.
*
* @see org.eclipse.pde.ui.launcher.OSGiLaunchConfigurationInitializer#getAutoStart
- * (java.lang.String)
+ * (java.lang.String)
*/
@Override
protected String getAutoStart(final String bundleID) {
@@ -145,7 +144,7 @@
* provided by the parent.
*
* @see org.eclipse.pde.ui.launcher.OSGiLaunchConfigurationInitializer#getStartLevel
- * (java.lang.String)
+ * (java.lang.String)
*/
@Override
protected String getStartLevel(final String bundleID) {
@@ -195,8 +194,7 @@
* launcher. This includes registering the default boot classpath entries
* and setting the Karaf platform default OSGi bundle start level.
*
- * @param configuration
- * the launch configuration
+ * @param configuration the launch configuration
* @see org.eclipse.pde.ui.launcher.OSGiLaunchConfigurationInitializer#initializeFrameworkDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
@Override
@@ -252,24 +250,29 @@
String memento = workspaceTargetHandle.getMemento();
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- IResource targetDefinitionFile = root.findMember(memento);
- if (targetDefinitionFile != null) {
- return targetDefinitionFile.getProject();
- }
+ return root.getProject(getProjectNameFromMemento(memento));
+ } else {
+ return null;
}
+ }
- return null;
+ private String getProjectNameFromMemento(String memento) {
+ String[] split = memento.split("/");
+ if (split.length != 3) {
+ throw new IllegalArgumentException();
+ } else {
+ return split[1];
+ }
}
/**
* Returns the a plugin id favoring the newest version in the target
* platform
*
- * @param model
- * the {@link IPluginModelBase}
+ * @param model the {@link IPluginModelBase}
* @return the string plugin identifier with an optional version set at the
- * newest version if there is more than one plugin that responds to
- * the given id
+ * newest version if there is more than one plugin that responds to
+ * the given id
*/
private String getBundleId(final IPluginModelBase model) {
final IPluginBase base = model.getPluginBase();
@@ -288,8 +291,7 @@
/**
* Adds default VM arguments to this launch configuration
*
- * @param configuration
- * the working copy of the launch configuration
+ * @param configuration the working copy of the launch configuration
*/
private void addDefaultVMArguments(final ILaunchConfigurationWorkingCopy configuration) {
final StringBuffer vmArgs = new StringBuffer();
@@ -301,7 +303,7 @@
// prevent terminal CTRL-characters in Eclipse console on Windows
final String localOperatingSystem = System.getProperty("os.name"); //$NON-NLS-1$
if (localOperatingSystem.toLowerCase().indexOf("windows") >= 0 //$NON-NLS-1$
- && vmArgs.indexOf("-Djline.terminal") == -1) { //$NON-NLS-1$
+ && vmArgs.indexOf("-Djline.terminal") == -1) { //$NON-NLS-1$
vmArgs.append(" -Djline.terminal=jline.UnsupportedTerminal"); //$NON-NLS-1$
}