package krasa.mavenrun.action.debug; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.maven.execution.MavenRunConfigurationType; import org.jetbrains.idea.maven.execution.MavenRunnerParameters; import org.jetbrains.idea.maven.execution.MavenRunnerSettings; import org.jetbrains.idea.maven.project.MavenGeneralSettings; import org.jetbrains.idea.maven.utils.MavenUtil; import com.intellij.execution.ExecutionException; import com.intellij.execution.Executor; import com.intellij.execution.RunnerAndConfigurationSettings; import com.intellij.execution.RunnerRegistry; import com.intellij.execution.executors.DefaultDebugExecutor; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.runners.ProgramRunner; import com.intellij.openapi.project.Project; public class MavenDebugConfigurationType { public static void debugConfiguration(Project project, MavenRunnerParameters params, @Nullable ProgramRunner.Callback callback) { debugConfiguration(project, params, null, null, callback); } public static void debugConfiguration(Project project, @NotNull MavenRunnerParameters params, @Nullable MavenGeneralSettings settings, @Nullable MavenRunnerSettings runnerSettings, @Nullable ProgramRunner.Callback callback) { RunnerAndConfigurationSettings configSettings = MavenRunConfigurationType.createRunnerAndConfigurationSettings( settings, runnerSettings, params, project); final Executor executor = DefaultDebugExecutor.getDebugExecutorInstance(); debugConfiguration(project, callback, configSettings, executor); } public static void debugConfiguration(Project project, ProgramRunner.Callback callback, RunnerAndConfigurationSettings configSettings, Executor executor) { ProgramRunner runner = RunnerRegistry.getInstance().findRunnerById(DefaultDebugExecutor.EXECUTOR_ID); ExecutionEnvironment env = new ExecutionEnvironment(executor, runner, configSettings, project); try { runner.execute(env, callback); } catch (ExecutionException e) { MavenUtil.showError(project, "Failed to execute Maven goal", e); } } }