JetRunConfiguration should store its settings in the same format as Java's ApplicationConfiguration to be able to reuse code in JPS #KT-2041 Fixed
This commit is contained in:
@@ -26,8 +26,7 @@ import com.intellij.openapi.components.PathMacroManager;
|
|||||||
import com.intellij.openapi.module.Module;
|
import com.intellij.openapi.module.Module;
|
||||||
import com.intellij.openapi.module.ModuleManager;
|
import com.intellij.openapi.module.ModuleManager;
|
||||||
import com.intellij.openapi.options.SettingsEditor;
|
import com.intellij.openapi.options.SettingsEditor;
|
||||||
import com.intellij.openapi.util.InvalidDataException;
|
import com.intellij.openapi.util.*;
|
||||||
import com.intellij.openapi.util.WriteExternalException;
|
|
||||||
import com.intellij.util.xmlb.XmlSerializer;
|
import com.intellij.util.xmlb.XmlSerializer;
|
||||||
import org.jdom.Element;
|
import org.jdom.Element;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -43,7 +42,10 @@ import java.util.Map;
|
|||||||
public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurationModule>
|
public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurationModule>
|
||||||
implements CommonJavaRunConfigurationParameters {
|
implements CommonJavaRunConfigurationParameters {
|
||||||
|
|
||||||
private JetRunConfigurationSettings settings = new JetRunConfigurationSettings();
|
public String MAIN_CLASS_NAME;
|
||||||
|
public String VM_PARAMETERS;
|
||||||
|
public String PROGRAM_PARAMETERS;
|
||||||
|
public String WORKING_DIRECTORY;
|
||||||
|
|
||||||
public boolean ALTERNATIVE_JRE_PATH_ENABLED;
|
public boolean ALTERNATIVE_JRE_PATH_ENABLED;
|
||||||
public String ALTERNATIVE_JRE_PATH;
|
public String ALTERNATIVE_JRE_PATH;
|
||||||
@@ -76,14 +78,20 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
|
|||||||
super.readExternal(element);
|
super.readExternal(element);
|
||||||
|
|
||||||
JavaRunConfigurationExtensionManager.getInstance().readExternal(this, element);
|
JavaRunConfigurationExtensionManager.getInstance().readExternal(this, element);
|
||||||
|
DefaultJDOMExternalizer.readExternal(this, element);
|
||||||
|
|
||||||
readModule(element);
|
readModule(element);
|
||||||
EnvironmentVariablesComponent.readExternal(element, getEnvs());
|
EnvironmentVariablesComponent.readExternal(element, getEnvs());
|
||||||
|
|
||||||
|
//TODO remove the following code (left for backward compatibility)
|
||||||
Element settingsElement = element.getChild(JetRunConfigurationSettings.class.getSimpleName());
|
Element settingsElement = element.getChild(JetRunConfigurationSettings.class.getSimpleName());
|
||||||
if (settingsElement != null) {
|
if (settingsElement != null) {
|
||||||
JetRunConfigurationSettings readSettings = XmlSerializer.deserialize(settingsElement, JetRunConfigurationSettings.class);
|
JetRunConfigurationSettings settings = XmlSerializer.deserialize(settingsElement, JetRunConfigurationSettings.class);
|
||||||
if (readSettings != null) {
|
if (settings != null) {
|
||||||
settings = readSettings;
|
MAIN_CLASS_NAME = settings.getMainClassName();
|
||||||
|
VM_PARAMETERS = settings.getVmParameters();
|
||||||
|
PROGRAM_PARAMETERS = settings.getProgramParameters();
|
||||||
|
WORKING_DIRECTORY = settings.getWorkingDirectory();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -92,42 +100,41 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
|
|||||||
public void writeExternal(final Element element) throws WriteExternalException {
|
public void writeExternal(final Element element) throws WriteExternalException {
|
||||||
super.writeExternal(element);
|
super.writeExternal(element);
|
||||||
JavaRunConfigurationExtensionManager.getInstance().writeExternal(this, element);
|
JavaRunConfigurationExtensionManager.getInstance().writeExternal(this, element);
|
||||||
|
DefaultJDOMExternalizer.writeExternal(this, element);
|
||||||
|
|
||||||
writeModule(element);
|
writeModule(element);
|
||||||
EnvironmentVariablesComponent.writeExternal(element, getEnvs());
|
EnvironmentVariablesComponent.writeExternal(element, getEnvs());
|
||||||
PathMacroManager.getInstance(getProject()).collapsePathsRecursively(element);
|
PathMacroManager.getInstance(getProject()).collapsePathsRecursively(element);
|
||||||
|
|
||||||
element.addContent(XmlSerializer.serialize(settings()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setVMParameters(String value) {
|
public void setVMParameters(String value) {
|
||||||
settings().setVmParameters(value);
|
VM_PARAMETERS = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getVMParameters() {
|
public String getVMParameters() {
|
||||||
return settings().getVmParameters();
|
return VM_PARAMETERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setProgramParameters(String value) {
|
public void setProgramParameters(String value) {
|
||||||
settings().setProgramParameters(value);
|
PROGRAM_PARAMETERS = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getProgramParameters() {
|
public String getProgramParameters() {
|
||||||
return settings().getProgramParameters();
|
return PROGRAM_PARAMETERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setWorkingDirectory(String value) {
|
public void setWorkingDirectory(String value) {
|
||||||
settings().setWorkingDirectory(ExternalizablePath.urlValue(value));
|
WORKING_DIRECTORY = ExternalizablePath.urlValue(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getWorkingDirectory() {
|
public String getWorkingDirectory() {
|
||||||
return ExternalizablePath.localPathValue(settings().getWorkingDirectory());
|
return ExternalizablePath.localPathValue(WORKING_DIRECTORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -153,11 +160,11 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRunClass() {
|
public String getRunClass() {
|
||||||
return settings().getMainClassName();
|
return MAIN_CLASS_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRunClass(String value) {
|
public void setRunClass(String value) {
|
||||||
settings().setMainClassName(value);
|
MAIN_CLASS_NAME = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -185,11 +192,6 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
|
|||||||
ALTERNATIVE_JRE_PATH = path;
|
ALTERNATIVE_JRE_PATH = path;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public JetRunConfigurationSettings settings() {
|
|
||||||
return settings;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment executionEnvironment)
|
public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment executionEnvironment)
|
||||||
throws ExecutionException {
|
throws ExecutionException {
|
||||||
@@ -215,7 +217,7 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
|
|||||||
|
|
||||||
final int classPathType = JavaParametersUtil.getClasspathType(
|
final int classPathType = JavaParametersUtil.getClasspathType(
|
||||||
module,
|
module,
|
||||||
myConfiguration.settings().getMainClassName(),
|
myConfiguration.getRunClass(),
|
||||||
false);
|
false);
|
||||||
|
|
||||||
final String jreHome = myConfiguration.ALTERNATIVE_JRE_PATH_ENABLED ? myConfiguration.ALTERNATIVE_JRE_PATH
|
final String jreHome = myConfiguration.ALTERNATIVE_JRE_PATH_ENABLED ? myConfiguration.ALTERNATIVE_JRE_PATH
|
||||||
@@ -223,7 +225,7 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
|
|||||||
JavaParametersUtil.configureModule(module, params, classPathType, jreHome);
|
JavaParametersUtil.configureModule(module, params, classPathType, jreHome);
|
||||||
JavaParametersUtil.configureConfiguration(params, myConfiguration);
|
JavaParametersUtil.configureConfiguration(params, myConfiguration);
|
||||||
|
|
||||||
params.setMainClass(myConfiguration.settings().getMainClassName());
|
params.setMainClass(myConfiguration.getRunClass());
|
||||||
|
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im
|
|||||||
for (RunnerAndConfigurationSettings existingConfiguration : existingConfigurations) {
|
for (RunnerAndConfigurationSettings existingConfiguration : existingConfigurations) {
|
||||||
if (existingConfiguration.getType() instanceof JetRunConfigurationType) {
|
if (existingConfiguration.getType() instanceof JetRunConfigurationType) {
|
||||||
JetRunConfiguration jetConfiguration = (JetRunConfiguration)existingConfiguration.getConfiguration();
|
JetRunConfiguration jetConfiguration = (JetRunConfiguration)existingConfiguration.getConfiguration();
|
||||||
if (Comparing.equal(jetConfiguration.settings().getMainClassName(), startClassFQName.getFqName())) {
|
if (Comparing.equal(jetConfiguration.getRunClass(), startClassFQName.getFqName())) {
|
||||||
if (Comparing.equal(location.getModule(), jetConfiguration.getConfigurationModule().getModule())) {
|
if (Comparing.equal(location.getModule(), jetConfiguration.getConfigurationModule().getModule())) {
|
||||||
return existingConfiguration;
|
return existingConfiguration;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,8 +21,12 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
/**
|
/**
|
||||||
* Should be serializable.
|
* Should be serializable.
|
||||||
*
|
*
|
||||||
|
* @deprecated this class was left just for backward compatibility
|
||||||
* @author Nikolay Krasko
|
* @author Nikolay Krasko
|
||||||
|
*
|
||||||
|
* TODO remove this class
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public class JetRunConfigurationSettings {
|
public class JetRunConfigurationSettings {
|
||||||
public static String DEFAULT_MAIN_CLASS_NAME = "";
|
public static String DEFAULT_MAIN_CLASS_NAME = "";
|
||||||
public static String DEFAULT_VM_PARAMETERS = "";
|
public static String DEFAULT_VM_PARAMETERS = "";
|
||||||
|
|||||||
Reference in New Issue
Block a user