Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Stieber2012-07-19 11:06:03 +0000
committerUwe Stieber2012-07-19 11:06:03 +0000
commitd5180015caac5bc65b5fa5948c3c5bd1508053e3 (patch)
treeb8b37af97607b14398bdc4bc32d5bf7ab4b77260 /target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core
parent2b2b3c12129f50e946fd5d2893c4d4793b3c86e3 (diff)
downloadorg.eclipse.tcf-d5180015caac5bc65b5fa5948c3c5bd1508053e3.tar.gz
org.eclipse.tcf-d5180015caac5bc65b5fa5948c3c5bd1508053e3.tar.xz
org.eclipse.tcf-d5180015caac5bc65b5fa5948c3c5bd1508053e3.zip
Target Explorer + TCF Debugger: Activate TCFLaunch with an already opened channel. This change is replacing the previous IValueAddService OSGi service implementation.
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java32
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AttachDebuggerStep.java2
2 files changed, 29 insertions, 5 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 5ea691a98..8f5aea44f 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
@@ -9,12 +9,20 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.launch.core.delegates;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.Platform;
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.te.runtime.interfaces.properties.IPropertiesContainer;
import org.eclipse.tcf.te.runtime.properties.PropertiesContainer;
+import org.eclipse.tcf.te.tcf.core.Tcf;
+import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager;
+import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
/**
* Default tcf launch implementation.
@@ -48,11 +56,27 @@ public final class Launch extends TCFLaunch {
}
/**
- * Attach the tcf debugger to the given peer id.
- * @param peerId The peer id.
+ * Attach the tcf debugger to the given peer model node.
+ *
+ * @param node The peer model node. Must not be <code>null</code>.
*/
- public void attachDebugger(String peerId) {
- launchTCF(getLaunchMode(), peerId);
+ public void attachDebugger(IPeerModel node) {
+ Assert.isNotNull(node);
+
+ final String name = node.getPeer().getName();
+
+ // The debugger is using it's own channel as the implementation
+ // calls for channel.terminate(...) directly
+ Map<String, Boolean> flags = new HashMap<String, Boolean>();
+ flags.put(IChannelManager.FLAG_FORCE_NEW, Boolean.TRUE);
+ Tcf.getChannelManager().openChannel(node.getPeer(), flags, new IChannelManager.DoneOpenChannel() {
+ @Override
+ public void doneOpenChannel(Throwable error, IChannel channel) {
+ if (error == null && channel != null) {
+ launchTCF(getLaunchMode(), name, channel);
+ }
+ }
+ });
}
/* (non-Javadoc)
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AttachDebuggerStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AttachDebuggerStep.java
index 6593e49fc..3ac987781 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AttachDebuggerStep.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AttachDebuggerStep.java
@@ -62,7 +62,7 @@ public class AttachDebuggerStep extends AbstractTcfLaunchStep {
if (launch instanceof Launch) {
Launch tcfLaunch = (Launch)launch;
try {
- tcfLaunch.attachDebugger(getActivePeerModel(fullQualifiedId, data).getRemotePeerId());
+ tcfLaunch.attachDebugger(getActivePeerModel(fullQualifiedId, data));
callback.done(this, Status.OK_STATUS);
}
catch (Exception e) {

Back to the top