From 3a79934f54879337ae17e9d309ef29980cb61891 Mon Sep 17 00:00:00 2001 From: Pablo Torregrosa Paez Date: Tue, 8 Mar 2016 08:38:01 +0100 Subject: Target Explorer: Launch Config change applies the PathMaps Change-Id: I66095ba7f6e8b9d1a2117d0163c1841930794a96 Signed-off-by: Pablo Torregrosa Paez --- .../tcf/te/tcf/launch/core/delegates/Launch.java | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java index e6fd71a06..95ba70ec3 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java @@ -16,6 +16,7 @@ import java.util.List; import java.util.Map; import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.DebugException; @@ -28,6 +29,8 @@ import org.eclipse.tcf.protocol.IToken; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.services.IPathMap; import org.eclipse.tcf.services.IPathMap.PathMapRule; +import org.eclipse.tcf.te.runtime.callback.Callback; +import org.eclipse.tcf.te.runtime.concurrent.util.ExecutorsUtil; import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; @@ -36,6 +39,7 @@ import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; import org.eclipse.tcf.te.tcf.core.interfaces.IPathMapGeneratorService; +import org.eclipse.tcf.te.tcf.core.interfaces.IPathMapService; import org.eclipse.tcf.te.tcf.launch.core.internal.services.PathMapService; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; @@ -241,4 +245,37 @@ public final class Launch extends TCFLaunch { return super.getAdapter(adapter); } + + /* (non-Javadoc) + * @see org.eclipse.tcf.internal.debug.model.TCFLaunch#launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration) + */ + @Override + public void launchConfigurationChanged(ILaunchConfiguration cfg) { + super.launchConfigurationChanged(cfg); + + // Apply Path Map changes + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + if (getChannel() != null) { + final IPeer peer = getPeer(); + if (peer != null) { + final IPathMapService service = ServiceManager.getInstance().getService(peer, IPathMapService.class); + if (service != null) { + ExecutorsUtil.execute(new Runnable() { + @Override + public void run() { + service.applyPathMap(peer, false, true, new Callback() { + @Override + protected void internalDone(Object caller, IStatus status) { + } + }); + } + }); + } + } + } + } + }); + } } -- cgit v1.2.3