import com.intellij.execution.process.OSProcessHandler;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.util.JavaParametersUtil;
+import com.intellij.execution.util.ProgramParametersUtil;
import com.intellij.openapi.components.PathMacroManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.options.SettingsEditor;
import com.intellij.openapi.options.SettingsEditorGroup;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.DefaultJDOMExternalizer;
import com.intellij.openapi.util.InvalidDataException;
}
public void checkConfiguration() throws RuntimeConfigurationException {
- if (ALTERNATIVE_JRE_PATH_ENABLED){
- if (ALTERNATIVE_JRE_PATH == null ||
- ALTERNATIVE_JRE_PATH.length() == 0 ||
- !JavaSdkImpl.checkForJre(ALTERNATIVE_JRE_PATH)){
- throw new RuntimeConfigurationWarning(ExecutionBundle.message("jre.path.is.not.valid.jre.home.error.mesage", ALTERNATIVE_JRE_PATH));
- }
- }
+ JavaParametersUtil.checkAlternativeJRE(this);
final JavaRunConfigurationModule configurationModule = getConfigurationModule();
final PsiClass psiClass = configurationModule.checkModuleAndClassName(MAIN_CLASS_NAME, ExecutionBundle.message("no.main.class.specified.error.text"));
if (!PsiMethodUtil.hasMainMethod(psiClass)) {
throw new RuntimeConfigurationWarning(ExecutionBundle.message("main.method.not.found.in.class.error.message", MAIN_CLASS_NAME));
}
-
+ ProgramParametersUtil.checkWorkingDirectoryExist(this, getProject(), configurationModule.getModule());
JavaRunConfigurationExtensionManager.checkConfigurationIsValid(this);
}
import com.intellij.execution.CantRunException;
import com.intellij.execution.CommonJavaRunConfigurationParameters;
+import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.JavaExecutionUtil;
import com.intellij.execution.configurations.JavaParameters;
import com.intellij.execution.configurations.RunConfigurationModule;
+import com.intellij.execution.configurations.RuntimeConfigurationWarning;
import com.intellij.execution.configurations.SimpleJavaParameters;
import com.intellij.execution.junit.JUnitUtil;
import com.intellij.openapi.module.Module;
if (jdk == null) throw CantRunException.noJdkConfigured();
return jdk;
}
+
+ public static void checkAlternativeJRE(CommonJavaRunConfigurationParameters configuration) throws RuntimeConfigurationWarning {
+ if (configuration.isAlternativeJrePathEnabled()) {
+ if (configuration.getAlternativeJrePath() == null ||
+ configuration.getAlternativeJrePath().length() == 0 ||
+ !JavaSdk.checkForJre(configuration.getAlternativeJrePath())) {
+ throw new RuntimeConfigurationWarning(
+ ExecutionBundle.message("jre.path.is.not.valid.jre.home.error.mesage", configuration.getAlternativeJrePath()));
+ }
+ }
+ }
}
import com.intellij.execution.CommonProgramRunConfigurationParameters;
import com.intellij.execution.configurations.ModuleBasedConfiguration;
+import com.intellij.execution.configurations.RuntimeConfigurationWarning;
import com.intellij.execution.configurations.SimpleProgramParameters;
import com.intellij.openapi.components.PathMacroManager;
import com.intellij.openapi.module.Module;
import com.intellij.util.PathUtil;
import org.jetbrains.annotations.Nullable;
+import java.io.File;
import java.util.HashMap;
import java.util.Map;
parameters.getProgramParametersList().addParametersString(configuration.getProgramParameters());
+ parameters.setWorkingDirectory(getWorkingDir(configuration, project, module));
+
+ parameters.setupEnvs(configuration.getEnvs(), configuration.isPassParentEnvs());
+ if (parameters.getEnv() != null) {
+ Map<String, String> expanded = new HashMap<String, String>();
+ for (Map.Entry<String, String> each : parameters.getEnv().entrySet()) {
+ expanded.put(each.getKey(), expandPath(each.getValue(), module, project));
+ }
+ parameters.setEnv(expanded);
+ }
+ }
+
+ public static String getWorkingDir(CommonProgramRunConfigurationParameters configuration, Project project, Module module) {
String workingDirectory = configuration.getWorkingDirectory();
VirtualFile baseDir = project.getBaseDir();
if (!FileUtil.isAbsolute(workingDirectory) && baseDir != null) {
workingDirectory = baseDir.getPath() + "/" + workingDirectory;
}
- parameters.setWorkingDirectory(workingDirectory);
+ return workingDirectory;
+ }
- parameters.setupEnvs(configuration.getEnvs(), configuration.isPassParentEnvs());
- if (parameters.getEnv() != null) {
- Map<String, String> expanded = new HashMap<String, String>();
- for (Map.Entry<String, String> each : parameters.getEnv().entrySet()) {
- expanded.put(each.getKey(), expandPath(each.getValue(), module, project));
- }
- parameters.setEnv(expanded);
+ public static void checkWorkingDirectoryExist(CommonProgramRunConfigurationParameters configuration, Project project, Module module)
+ throws RuntimeConfigurationWarning {
+ final String workingDir = getWorkingDir(configuration, project, module);
+ if (!new File(workingDir).exists()) {
+ throw new RuntimeConfigurationWarning("Working directory '" + workingDir + "' doesn't exist");
}
}
package com.intellij.execution.junit;
import com.intellij.execution.CantRunException;
-import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.configurations.*;
import com.intellij.execution.testframework.SourceScope;
+import com.intellij.execution.util.JavaParametersUtil;
+import com.intellij.execution.util.ProgramParametersUtil;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.projectRoots.JavaSdk;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.psi.*;
+import com.intellij.psi.JavaDirectoryService;
+import com.intellij.psi.PsiDirectory;
+import com.intellij.psi.PsiManager;
+import com.intellij.psi.PsiPackage;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
@Override
public void checkConfiguration() throws RuntimeConfigurationException {
- if (myConfiguration.isAlternativeJrePathEnabled()) {
- if (myConfiguration.getAlternativeJrePath() == null ||
- myConfiguration.getAlternativeJrePath().length() == 0 ||
- !JavaSdk.checkForJre(myConfiguration.getAlternativeJrePath())) {
- throw new RuntimeConfigurationWarning(
- ExecutionBundle.message("jre.path.is.not.valid.jre.home.error.mesage", myConfiguration.getAlternativeJrePath()));
- }
- }
+ JavaParametersUtil.checkAlternativeJRE(myConfiguration);
+ ProgramParametersUtil.checkWorkingDirectoryExist(myConfiguration, myConfiguration.getProject(), myConfiguration.getConfigurationModule().getModule());
final String dirName = myConfiguration.getPersistentData().getDirName();
if (dirName == null || dirName.isEmpty()) {
throw new RuntimeConfigurationError("Directory is not specified");
import com.intellij.execution.testframework.*;
import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.execution.util.JavaParametersUtil;
+import com.intellij.execution.util.ProgramParametersUtil;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.projectRoots.JavaSdk;
import com.intellij.openapi.projectRoots.JavaSdkType;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.ex.JavaSdkUtil;
};
public void checkConfiguration() throws RuntimeConfigurationException{
- if (myConfiguration.isAlternativeJrePathEnabled()){
- if (myConfiguration.getAlternativeJrePath() == null ||
- myConfiguration.getAlternativeJrePath().length() == 0 ||
- !JavaSdk.checkForJre(myConfiguration.getAlternativeJrePath())){
- throw new RuntimeConfigurationWarning(
- ExecutionBundle.message("jre.path.is.not.valid.jre.home.error.mesage", myConfiguration.getAlternativeJrePath()));
- }
- }
+ JavaParametersUtil.checkAlternativeJRE(myConfiguration);
+ ProgramParametersUtil.checkWorkingDirectoryExist(myConfiguration, myConfiguration.getProject(), myConfiguration.getConfigurationModule().getModule());
}
public SourceScope getSourceScope() {
import com.intellij.execution.junit.RefactoringListeners;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.testframework.SourceScope;
+import com.intellij.execution.util.JavaParametersUtil;
+import com.intellij.execution.util.ProgramParametersUtil;
import com.intellij.openapi.components.PathMacroManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.SettingsEditor;
}
}
JavaRunConfigurationExtensionManager.checkConfigurationIsValid(this);
+ ProgramParametersUtil.checkWorkingDirectoryExist(this, getProject(), getConfigurationModule().getModule());
+ JavaParametersUtil.checkAlternativeJRE(this);
//TODO add various checks here
}