From d2449ddf3891b56b5ae2458670cfc15d1dfc1533 Mon Sep 17 00:00:00 2001 From: fbalicchia Date: Sat, 22 Feb 2014 13:12:50 +0100 Subject: [PATCH] KARAF-2780 Fix --- .../ui/KarafLaunchConfigurationInitializer.java | 42 +++++++++++++++------- 1 file changed, 30 insertions(+), 12 deletions(-) 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..7afde51 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 @@ -21,6 +21,7 @@ package org.apache.karaf.eik.ui; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.apache.karaf.eik.core.IKarafConstants; import org.apache.karaf.eik.core.KarafCorePluginUtils; @@ -35,7 +36,7 @@ import org.apache.karaf.eik.ui.features.FeaturesBundlesStartLevels; import org.apache.karaf.eik.ui.internal.WorkbenchServiceExtensions; import org.apache.karaf.eik.ui.project.KarafProject; import org.apache.karaf.eik.ui.workbench.KarafWorkbenchServiceFactory; - +import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRoot; @@ -44,6 +45,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.QualifiedName; import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; @@ -245,20 +247,36 @@ public class KarafLaunchConfigurationInitializer extends OSGiLaunchConfiguration } private IProject findProjectForActiveTargetPlatform() throws CoreException { - ITargetPlatformService service = (ITargetPlatformService) PDECore.getDefault().acquireService(ITargetPlatformService.class.getName()); + ITargetPlatformService service = (ITargetPlatformService) PDECore + .getDefault().acquireService( + ITargetPlatformService.class.getName()); - ITargetHandle workspaceTargetHandle = service.getWorkspaceTargetHandle(); - if (workspaceTargetHandle != null && workspaceTargetHandle.exists()) { - String memento = workspaceTargetHandle.getMemento(); + ITargetHandle workspaceTargetHandle = service + .getWorkspaceTargetHandle(); + if (workspaceTargetHandle != null && workspaceTargetHandle.exists()) { - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - IResource targetDefinitionFile = root.findMember(memento); - if (targetDefinitionFile != null) { - return targetDefinitionFile.getProject(); - } - } + String memento = workspaceTargetHandle.getMemento(); - return null; + IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); + + return root.getProject(getProjectNameFromMemento(memento)); + } else { + return null; + } + } + + + + private String getProjectNameFromMemento(String memento) + { + String[] split = memento.split("/"); + + if (split.length != 3) { + throw new IllegalArgumentException(); + } else { + return split[1]; + } + } /** -- 1.8.3.2