Skip to content

Commit 5efd29e

Browse files
committed
Log VM install changes during JDT debug tests
See: #782
1 parent 9ba1b48 commit 5efd29e

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,14 +128,17 @@
128128
import org.eclipse.jdt.debug.tests.core.LiteralTests17;
129129
import org.eclipse.jdt.debug.tests.refactoring.MemberParser;
130130
import org.eclipse.jdt.debug.ui.IJavaDebugUIConstants;
131+
import org.eclipse.jdt.internal.debug.core.JDIDebugPlugin;
131132
import org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget;
132133
import org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine;
133134
import org.eclipse.jdt.internal.debug.ui.BreakpointUtils;
134135
import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
135136
import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
136137
import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
137138
import org.eclipse.jdt.launching.IVMInstall;
139+
import org.eclipse.jdt.launching.IVMInstallChangedListener;
138140
import org.eclipse.jdt.launching.JavaRuntime;
141+
import org.eclipse.jdt.launching.PropertyChangeEvent;
139142
import org.eclipse.jdt.launching.environments.IExecutionEnvironment;
140143
import org.eclipse.jface.dialogs.ErrorDialog;
141144
import org.eclipse.jface.dialogs.MessageDialogWithToggle;
@@ -170,6 +173,10 @@
170173
@SuppressWarnings("deprecation")
171174
public abstract class AbstractDebugTest extends TestCase implements IEvaluationListener {
172175

176+
static {
177+
JavaRuntime.addVMInstallChangedListener(new LogVMInstallChanges());
178+
}
179+
173180
public static final String MULTI_OUTPUT_PROJECT_NAME = "MultiOutput";
174181
public static final String BOUND_EE_PROJECT_NAME = "BoundEE";
175182
public static final String ONE_FOUR_PROJECT_NAME = "DebugTests";
@@ -3090,4 +3097,35 @@ private static String toString(Collection<IMarker> markers) {
30903097
public interface StackFrameSupplier {
30913098
IJavaStackFrame get() throws Exception;
30923099
}
3100+
3101+
private static void logVMChange(String message, IVMInstall vm) {
3102+
IStatus status = new Status(IStatus.INFO, JDIDebugPlugin.getUniqueIdentifier(),
3103+
message + " " + vm.getName() + ", location: " + vm.getInstallLocation(),
3104+
new RuntimeException("strack trace info"));
3105+
JDIDebugPlugin.log(status);
3106+
}
3107+
3108+
private static class LogVMInstallChanges implements IVMInstallChangedListener {
3109+
3110+
@Override
3111+
public void vmRemoved(IVMInstall vm) {
3112+
logVMChange("VM removed", vm);
3113+
}
3114+
3115+
@Override
3116+
public void vmChanged(PropertyChangeEvent event) {
3117+
}
3118+
3119+
@Override
3120+
public void vmAdded(IVMInstall vm) {
3121+
logVMChange("VM added", vm);
3122+
3123+
}
3124+
3125+
@Override
3126+
public void defaultVMInstallChanged(IVMInstall previous, IVMInstall current) {
3127+
logVMChange("Default VM changed", current);
3128+
}
3129+
3130+
}
30933131
}

0 commit comments

Comments
 (0)