diff options
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java')
-rw-r--r-- | target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java | 27 |
1 files changed, 24 insertions, 3 deletions
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 04d8be0ae..93852a26b 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 @@ -21,7 +21,9 @@ import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.tcf.internal.debug.model.TCFLaunch; import org.eclipse.tcf.protocol.IChannel; +import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.IToken; +import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.services.IPathMap; import org.eclipse.tcf.services.IPathMap.DoneSet; import org.eclipse.tcf.services.IPathMap.PathMapRule; @@ -86,7 +88,10 @@ public final class Launch extends TCFLaunch { Assert.isNotNull(node); Assert.isNotNull(callback); - final String name = node.getPeer().getName(); + // Remember the peer node + properties.setProperty("node", node); //$NON-NLS-1$ + // Determine the peer name to pass on to the TCF launch + final String name = node.getName(); // The debugger is using it's own channel as the implementation // calls for channel.terminate(...) directly @@ -128,6 +133,19 @@ public final class Launch extends TCFLaunch { } /* (non-Javadoc) + * @see org.eclipse.tcf.internal.debug.model.TCFLaunch#getPeerName(org.eclipse.tcf.protocol.IPeer) + */ + @Override + protected String getPeerName(IPeer peer) { + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + Assert.isNotNull(peer); + + IPeerNode node = (IPeerNode)properties.getProperty("node"); //$NON-NLS-1$ + + return node != null ? node.getName() : super.getPeerName(peer); + } + + /* (non-Javadoc) * @see org.eclipse.tcf.internal.debug.model.TCFLaunch#readCustomPathMapConfiguration(org.eclipse.tcf.protocol.IChannel, org.eclipse.debug.core.ILaunchConfiguration, java.util.List) */ @Override @@ -136,9 +154,12 @@ public final class Launch extends TCFLaunch { Assert.isNotNull(cfg); Assert.isNotNull(host_path_map); - IPathMapGeneratorService generator = ServiceManager.getInstance().getService(channel.getRemotePeer(), IPathMapGeneratorService.class); + IPeerNode node = (IPeerNode)properties.getProperty("node"); //$NON-NLS-1$ + IPeer peer = node != null ? node.getPeer() : channel.getRemotePeer(); + + IPathMapGeneratorService generator = ServiceManager.getInstance().getService(peer, IPathMapGeneratorService.class); if (generator != null) { - PathMapRule[] generatedRules = generator.getPathMap(channel.getRemotePeer()); + PathMapRule[] generatedRules = generator.getPathMap(peer); if (generatedRules != null && generatedRules.length > 0) { host_path_map.addAll(Arrays.asList(generatedRules)); } |