Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Grunberg2017-07-05 18:43:52 +0000
committerRoland Grunberg2017-07-05 19:31:40 +0000
commit10186b23166edb61d6ab65bb9ec5944d0cdb7236 (patch)
treeade7f6c72d7c34c5fa7f0fa3c5b8ead0f79b5030
parent72011775818f98d6fa0e94840412323063e535bf (diff)
downloadorg.eclipse.linuxtools-10186b23166edb61d6ab65bb9ec5944d0cdb7236.tar.gz
org.eclipse.linuxtools-10186b23166edb61d6ab65bb9ec5944d0cdb7236.tar.xz
org.eclipse.linuxtools-10186b23166edb61d6ab65bb9ec5944d0cdb7236.zip
Name remote java launch after container and fix connection opening.
- The Remote java launch configuration name is seen in Debug view so it should be named after the container - Attempt to open a connection if it exists but isn't in an active state - Use different error messages for the case of a connection not being found, and a connection not being active Change-Id: I3d1b705b49c3eeb2b352156c76c9c9778e863a56 Reviewed-on: https://git.eclipse.org/r/100759 Tested-by: Hudson CI Reviewed-by: Roland Grunberg <rgrunber@redhat.com>
-rw-r--r--containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/ContainerVMRunner.java6
-rw-r--r--containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/JavaAppInContainerLaunchDelegate.java34
-rw-r--r--containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/Messages.java2
-rw-r--r--containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/messages.properties2
4 files changed, 38 insertions, 6 deletions
diff --git a/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/ContainerVMRunner.java b/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/ContainerVMRunner.java
index a5016daa06..a0966c50d4 100644
--- a/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/ContainerVMRunner.java
+++ b/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/ContainerVMRunner.java
@@ -34,6 +34,7 @@ public class ContainerVMRunner extends StandardVMRunner {
private String ipAddress = null;
private boolean isListening = false;
private List<String> extraDirs;
+ private IDockerContainerInfo containerInfo;
public ContainerVMRunner(IVMInstall vmInstance) {
super(vmInstance);
@@ -160,6 +161,10 @@ public class ContainerVMRunner extends StandardVMRunner {
return extraDirs;
}
+ public IDockerContainerInfo getContainerInfo () {
+ return containerInfo;
+ }
+
private class JavaAppInContainerLaunchListener implements IContainerLaunchListener {
@Override
@@ -175,6 +180,7 @@ public class ContainerVMRunner extends StandardVMRunner {
@Override
public void containerInfo(IDockerContainerInfo info) {
ipAddress = info.networkSettings().ipAddress();
+ containerInfo = info;
}
}
diff --git a/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/JavaAppInContainerLaunchDelegate.java b/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/JavaAppInContainerLaunchDelegate.java
index db37271a59..3e94ccdfcc 100644
--- a/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/JavaAppInContainerLaunchDelegate.java
+++ b/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/JavaAppInContainerLaunchDelegate.java
@@ -42,6 +42,8 @@ import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.VMRunnerConfiguration;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.linuxtools.docker.core.DockerConnectionManager;
+import org.eclipse.linuxtools.docker.core.DockerException;
+import org.eclipse.linuxtools.docker.core.IDockerContainerInfo;
import org.eclipse.linuxtools.docker.core.IDockerImage;
import org.eclipse.linuxtools.internal.docker.core.DockerConnection;
import org.eclipse.linuxtools.internal.docker.core.TCPConnectionSettings;
@@ -71,7 +73,7 @@ public class JavaAppInContainerLaunchDelegate extends AbstractJavaLaunchConfigur
try {
DockerConnection conn = (DockerConnection) DockerConnectionManager.getInstance().getConnectionByUri(connectionURI);
- if (conn == null || !conn.isOpen()) {
+ if (conn == null) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
@@ -81,6 +83,23 @@ public class JavaAppInContainerLaunchDelegate extends AbstractJavaLaunchConfigur
}
});
return;
+ } else if (!conn.isOpen()) {
+ try {
+ conn.open(false);
+ } catch (DockerException e) {
+ }
+
+ if (!conn.isOpen()) {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ MessageDialog.openError(Display.getDefault().getActiveShell()
+ , Messages.JavaAppInContainerLaunchDelegate_connection_not_active_title
+ , Messages.bind(Messages.JavaAppInContainerLaunchDelegate_connection_not_active_text, connectionURI));
+ }
+ });
+ return;
+ }
}
IDockerImage img = conn.getImage(imageID);
@@ -190,11 +209,6 @@ public class JavaAppInContainerLaunchDelegate extends AbstractJavaLaunchConfigur
}
if (ILaunchManager.DEBUG_MODE.equals(mode)) {
- ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
- ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_REMOTE_JAVA_APPLICATION);
- ILaunchConfiguration cfgForAttach = type.newInstance(null, "attach_to_container"); //$NON-NLS-1$
- ILaunchConfigurationWorkingCopy wc = cfgForAttach.getWorkingCopy();
-
while (runner.getIPAddress() == null || !runner.isListening()) {
try {
Thread.sleep(100);
@@ -202,6 +216,14 @@ public class JavaAppInContainerLaunchDelegate extends AbstractJavaLaunchConfigur
}
}
+ IDockerContainerInfo info = runner.getContainerInfo();
+ String configName = info.name().startsWith("/") ? info.name().substring(1) : info.name();
+
+ ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
+ ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_REMOTE_JAVA_APPLICATION);
+ ILaunchConfiguration cfgForAttach = type.newInstance(null, configName);
+ ILaunchConfigurationWorkingCopy wc = cfgForAttach.getWorkingCopy();
+
String ip = runner.getIPAddress();
// The container has an IP and is listening
// Can we reach it ? Or is it on a different network.
diff --git a/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/Messages.java b/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/Messages.java
index 5f0f3c1542..fa75d03d2e 100644
--- a/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/Messages.java
+++ b/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/Messages.java
@@ -19,6 +19,8 @@ public class Messages extends NLS {
public static String ImageSelectionDialog_connection_label;
public static String ImageSelectionDialog_image_label;
public static String ImageSelectionDialog_title;
+ public static String JavaAppInContainerLaunchDelegate_connection_not_active_title;
+ public static String JavaAppInContainerLaunchDelegate_connection_not_active_text;
public static String JavaAppInContainerLaunchDelegate_connection_not_found_title;
public static String JavaAppInContainerLaunchDelegate_connection_not_found_text;
public static String JavaAppInContainerLaunchDelegate_Creating_source_locator____2;
diff --git a/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/messages.properties b/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/messages.properties
index 74d72a0322..a9266519d2 100644
--- a/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/messages.properties
+++ b/containers/org.eclipse.linuxtools.jdt.docker.launcher/src/org/eclipse/linuxtools/jdt/docker/launcher/messages.properties
@@ -3,6 +3,8 @@ ContainerVMRunner_Unable_to_locate_executable_for__0__1=Unable to locate the JVM
ImageSelectionDialog_connection_label=Connection :
ImageSelectionDialog_image_label=Image :
ImageSelectionDialog_title=Image Selection
+JavaAppInContainerLaunchDelegate_connection_not_active_title=Connection not active
+JavaAppInContainerLaunchDelegate_connection_not_active_text=The connection with the URI {0} exists, but could not be activated. Please enable it, or select a different connection.
JavaAppInContainerLaunchDelegate_connection_not_found_title=Connection not found
JavaAppInContainerLaunchDelegate_connection_not_found_text=No connection with the URI {0} could be found. Please enable it, or select a different connection.
JavaAppInContainerLaunchDelegate_Creating_source_locator____2=Creating source locator...

Back to the top