Search in sources :

Example 1 with ComponentInfo

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);
    }
}
Also used : RemoteStackDebugger(org.jboss.tools.openshift.core.stack.RemoteStackDebugger) Odo(org.jboss.tools.openshift.core.odo.Odo) ComponentInfo(org.jboss.tools.openshift.core.odo.ComponentInfo) IOException(java.io.IOException) DebugInfo(org.jboss.tools.openshift.core.odo.DebugInfo)

Aggregations

IOException (java.io.IOException)1 ComponentInfo (org.jboss.tools.openshift.core.odo.ComponentInfo)1 DebugInfo (org.jboss.tools.openshift.core.odo.DebugInfo)1 Odo (org.jboss.tools.openshift.core.odo.Odo)1 RemoteStackDebugger (org.jboss.tools.openshift.core.stack.RemoteStackDebugger)1