use of org.jboss.tools.openshift.core.odo.ComponentInfo in project jbosstools-openshift by jbosstools.
the class DebugHandler method execute.
@Override
public Object execute(ComponentElement component, Shell shell) throws ExecutionException {
try {
Odo odo = component.getRoot().getOdo();
String project = component.getParent().getParent().getWrapped();
String application = component.getParent().getWrapped().getName();
ComponentInfo info = odo.getComponentInfo(project, application, component.getWrapped().getName(), component.getWrapped().getPath(), component.getWrapped().getInfo().getComponentKind());
RemoteStackDebugger remoteDebugger = RemoteStackProviderRegistry.getInstance().findBytype(info.getComponentTypeName(), info.getComponentTypeVersion());
if (remoteDebugger != null) {
DebugInfo debugInfo = odo.debugInfo(project, application, component.getWrapped().getPath(), component.getWrapped().getName());
int port = debugInfo.getStatus() == DebugStatus.RUNNING ? debugInfo.getLocalPort() : allocateLocalPort();
if (debugInfo.getStatus() != DebugStatus.RUNNING) {
executeInJob("Debug", monitor -> startDebug(odo, project, application, component, port));
}
executeInJob("Attach debugger", monitor -> createAndLaunchConfig(odo, project, application, component.getWrapped(), info, port, remoteDebugger, monitor, shell));
} else {
MessageDialog.openError(shell, "Debug", "Debugging is not supported for this type of component");
}
return Status.OK_STATUS;
} catch (IOException e) {
return OpenShiftUIActivator.statusFactory().errorStatus(e);
}
}
Aggregations