mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
code coverage for j2ee applications (IDEA-61853); fix emma coverage report; do not write coverage settings for new configurations, preserve existing ones
This commit is contained in:
@@ -22,10 +22,7 @@
|
||||
*/
|
||||
package com.intellij.execution;
|
||||
|
||||
import com.intellij.execution.configurations.JavaParameters;
|
||||
import com.intellij.execution.configurations.ModuleBasedConfiguration;
|
||||
import com.intellij.execution.configurations.RunnerSettings;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationException;
|
||||
import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.process.OSProcessHandler;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
@@ -47,15 +44,21 @@ import java.util.TreeMap;
|
||||
public abstract class RunConfigurationExtension {
|
||||
public static final ExtensionPointName<RunConfigurationExtension> EP_NAME = new ExtensionPointName<RunConfigurationExtension>("com.intellij.runConfigurationExtension");
|
||||
public static final Key<List> RUN_EXTENSIONS = Key.create("run.extension.elemnts");
|
||||
public abstract void handleStartProcess(final ModuleBasedConfiguration configuration, final OSProcessHandler handler);
|
||||
public abstract void handleStartProcess(final RunConfigurationBase configuration, final OSProcessHandler handler);
|
||||
@Nullable
|
||||
public abstract <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> SettingsEditor createEditor(T configuration);
|
||||
public abstract SettingsEditor createEditor(RunConfigurationBase configuration);
|
||||
public abstract String getEditorTitle();
|
||||
public abstract String getName();
|
||||
@Nullable
|
||||
public abstract <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> Icon getIcon(T runConfiguration);
|
||||
public abstract Icon getIcon(RunConfigurationBase runConfiguration);
|
||||
public abstract <T extends RunConfigurationBase > void updateJavaParameters(final T configuration, final JavaParameters params, RunnerSettings runnerSettings);
|
||||
|
||||
public static <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void appendEditors(T configuration, SettingsEditorGroup<T> group) {
|
||||
protected abstract void readExternal(RunConfigurationBase runConfiguration, Element element) throws InvalidDataException;
|
||||
protected abstract void writeExternal(RunConfigurationBase runConfiguration, Element element) throws WriteExternalException;
|
||||
public abstract void patchConfiguration(RunConfigurationBase runJavaConfiguration);
|
||||
public abstract void checkConfiguration(RunConfigurationBase runJavaConfiguration) throws RuntimeConfigurationException;
|
||||
|
||||
public static void appendEditors(RunConfigurationBase configuration, SettingsEditorGroup group) {
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
final SettingsEditor editor = extension.createEditor(configuration);
|
||||
if (editor != null) {
|
||||
@@ -64,7 +67,7 @@ public abstract class RunConfigurationExtension {
|
||||
}
|
||||
}
|
||||
|
||||
public static <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> Icon getIcon(T configuration, Icon icon) {
|
||||
public static Icon getIcon(RunConfigurationBase configuration, Icon icon) {
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
final Icon extIcon = extension.getIcon(configuration);
|
||||
if (extIcon != null) {
|
||||
@@ -74,37 +77,28 @@ public abstract class RunConfigurationExtension {
|
||||
return icon;
|
||||
}
|
||||
|
||||
public abstract <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void updateJavaParameters(final T configuration, final JavaParameters params, RunnerSettings runnerSettings);
|
||||
|
||||
protected abstract void readExternal(ModuleBasedConfiguration runConfiguration, Element element) throws InvalidDataException;
|
||||
|
||||
public static void readSettings(ModuleBasedConfiguration runConfiguration, Element parentNode) throws InvalidDataException {
|
||||
public static void readSettings(RunConfigurationBase runConfiguration, Element parentNode) throws InvalidDataException {
|
||||
final List children = parentNode.getChildren("extension");
|
||||
final Map<String, RunConfigurationExtension> extensions = new HashMap<String, RunConfigurationExtension>();
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
extensions.put(extension.getName(), extension);
|
||||
}
|
||||
boolean found = true;
|
||||
for (Object o : children) {
|
||||
final Element element = (Element)o;
|
||||
final String extensionName = element.getAttributeValue("name");
|
||||
final RunConfigurationExtension extension = extensions.remove(extensionName);
|
||||
if (extension != null) {
|
||||
extension.readExternal(runConfiguration, element);
|
||||
} else {
|
||||
found = false;
|
||||
}
|
||||
}
|
||||
//try to read from old format if possible
|
||||
for (RunConfigurationExtension extension : extensions.values()) {
|
||||
extension.readExternal(runConfiguration, parentNode);
|
||||
}
|
||||
if (!found) {
|
||||
runConfiguration.putCopyableUserData(RUN_EXTENSIONS, children);
|
||||
}
|
||||
runConfiguration.putCopyableUserData(RUN_EXTENSIONS, children);
|
||||
}
|
||||
|
||||
public static void writeSettings(ModuleBasedConfiguration runConfiguration, Element element) throws WriteExternalException {
|
||||
public static void writeSettings(RunConfigurationBase runConfiguration, Element element) throws WriteExternalException {
|
||||
final TreeMap<String, Element> map = new TreeMap<String, Element>();
|
||||
final List<Element> elements = runConfiguration.getCopyableUserData(RUN_EXTENSIONS);
|
||||
if (elements != null) {
|
||||
@@ -121,6 +115,7 @@ public abstract class RunConfigurationExtension {
|
||||
extension.writeExternal(runConfiguration, el);
|
||||
}
|
||||
catch (WriteExternalException e) {
|
||||
map.remove(extension.getName());
|
||||
continue;
|
||||
}
|
||||
map.put(extension.getName(), el);
|
||||
@@ -131,24 +126,20 @@ public abstract class RunConfigurationExtension {
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void writeExternal(ModuleBasedConfiguration runConfiguration, Element element) throws WriteExternalException;
|
||||
|
||||
public abstract <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void patchConfiguration(T runJavaConfiguration);
|
||||
public abstract <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void checkConfiguration(T runJavaConfiguration) throws RuntimeConfigurationException;
|
||||
|
||||
public static <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void patchCreatedConfiguration(T configuration) {
|
||||
public static void patchCreatedConfiguration(RunConfigurationBase configuration) {
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
extension.patchConfiguration(configuration);
|
||||
}
|
||||
}
|
||||
|
||||
public static <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void checkConfigurationIsValid(T configuration) throws RuntimeConfigurationException {
|
||||
public static void checkConfigurationIsValid(RunConfigurationBase configuration) throws RuntimeConfigurationException {
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
extension.checkConfiguration(configuration);
|
||||
}
|
||||
}
|
||||
|
||||
public <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> boolean isListenerDisabled(T configuration, Object listener) {
|
||||
public boolean isListenerDisabled(RunConfigurationBase configuration, Object listener) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -59,7 +59,7 @@ public class ApplicationConfigurable extends SettingsEditor<ApplicationConfigura
|
||||
configuration.MAIN_CLASS_NAME = getMainClassField().getText();
|
||||
configuration.ALTERNATIVE_JRE_PATH = myAlternativeJREPanel.getPath();
|
||||
configuration.ALTERNATIVE_JRE_PATH_ENABLED = myAlternativeJREPanel.isPathEnabled();
|
||||
configuration.ENABLE_SWING_INSPECTOR = myVersionDetector.isJre50Configured(configuration) && myShowSwingInspectorCheckbox.isSelected();
|
||||
configuration.ENABLE_SWING_INSPECTOR = (myVersionDetector.isJre50Configured(configuration) || myVersionDetector.isModuleJre50Configured(configuration)) && myShowSwingInspectorCheckbox.isSelected();
|
||||
|
||||
updateShowSwingInspector(configuration);
|
||||
}
|
||||
@@ -74,7 +74,7 @@ public class ApplicationConfigurable extends SettingsEditor<ApplicationConfigura
|
||||
}
|
||||
|
||||
private void updateShowSwingInspector(final ApplicationConfiguration configuration) {
|
||||
if (myVersionDetector.isJre50Configured(configuration)) {
|
||||
if (myVersionDetector.isJre50Configured(configuration) || myVersionDetector.isModuleJre50Configured(configuration)) {
|
||||
myShowSwingInspectorCheckbox.setEnabled(true);
|
||||
myShowSwingInspectorCheckbox.setSelected(configuration.ENABLE_SWING_INSPECTOR);
|
||||
myShowSwingInspectorCheckbox.setText(ExecutionBundle.message("show.swing.inspector"));
|
||||
|
||||
@@ -34,24 +34,28 @@ public class JreVersionDetector {
|
||||
private String myLastAlternativeJrePath = null; //awful hack
|
||||
private boolean myLastIsJre50;
|
||||
|
||||
public <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> boolean isJre50Configured(final T configuration) {
|
||||
|
||||
public boolean isModuleJre50Configured(final ModuleBasedConfiguration configuration) {
|
||||
final Module module = configuration.getConfigurationModule().getModule();
|
||||
if (module != null && !module.isDisposed()) {
|
||||
final ModuleRootManager rootManager = ModuleRootManager.getInstance(module);
|
||||
final Sdk jdk = rootManager.getSdk();
|
||||
return isJre50(jdk);
|
||||
}
|
||||
|
||||
final Sdk projectJdk = ProjectRootManager.getInstance(configuration.getProject()).getProjectSdk();
|
||||
return isJre50(projectJdk);
|
||||
}
|
||||
|
||||
public boolean isJre50Configured(final CommonJavaRunConfigurationParameters configuration) {
|
||||
if (configuration.isAlternativeJrePathEnabled()) {
|
||||
if (configuration.getAlternativeJrePath().equals(myLastAlternativeJrePath)) return myLastIsJre50;
|
||||
myLastAlternativeJrePath = configuration.getAlternativeJrePath();
|
||||
final String versionString = JavaSdkImpl.getJdkVersion(myLastAlternativeJrePath);
|
||||
myLastIsJre50 = versionString != null && isJre50(versionString);
|
||||
return myLastIsJre50;
|
||||
} else {
|
||||
final Module module = configuration.getConfigurationModule().getModule();
|
||||
if (module != null && !module.isDisposed()) {
|
||||
final ModuleRootManager rootManager = ModuleRootManager.getInstance(module);
|
||||
final Sdk jdk = rootManager.getSdk();
|
||||
return isJre50(jdk);
|
||||
}
|
||||
|
||||
final Sdk projectJdk = ProjectRootManager.getInstance(configuration.getProject()).getProjectSdk();
|
||||
return isJre50(projectJdk);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean isJre50(final Sdk jdk) {
|
||||
|
||||
+3
-1
@@ -268,7 +268,9 @@ public class CreateSnapShotAction extends AnAction {
|
||||
}
|
||||
|
||||
for(int i=configurations.size()-1; i >= 0; i--) {
|
||||
if (!new JreVersionDetector().isJre50Configured((ApplicationConfiguration) configurations.get(i).getConfiguration())) {
|
||||
final JreVersionDetector detector = new JreVersionDetector();
|
||||
final ApplicationConfiguration configuration = (ApplicationConfiguration)configurations.get(i).getConfiguration();
|
||||
if (!detector.isJre50Configured(configuration) && !detector.isModuleJre50Configured(configuration)) {
|
||||
configurations.remove(i);
|
||||
}
|
||||
}
|
||||
|
||||
+9
-10
@@ -16,11 +16,10 @@
|
||||
|
||||
package com.intellij.uiDesigner.snapShooter;
|
||||
|
||||
import com.intellij.execution.CommonJavaRunConfigurationParameters;
|
||||
import com.intellij.execution.RunConfigurationExtension;
|
||||
import com.intellij.execution.application.ApplicationConfiguration;
|
||||
import com.intellij.execution.configurations.JavaParameters;
|
||||
import com.intellij.execution.configurations.ModuleBasedConfiguration;
|
||||
import com.intellij.execution.configurations.RunConfigurationBase;
|
||||
import com.intellij.execution.configurations.RunnerSettings;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationException;
|
||||
import com.intellij.execution.process.OSProcessHandler;
|
||||
@@ -56,7 +55,7 @@ import java.util.TreeSet;
|
||||
*/
|
||||
public class SnapShooterConfigurationExtension extends RunConfigurationExtension {
|
||||
@Override
|
||||
public <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void updateJavaParameters(T configuration, JavaParameters params, RunnerSettings runnerSettings) {
|
||||
public void updateJavaParameters(RunConfigurationBase configuration, JavaParameters params, RunnerSettings runnerSettings) {
|
||||
if (!(configuration instanceof ApplicationConfiguration)) {
|
||||
return;
|
||||
}
|
||||
@@ -102,7 +101,7 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
|
||||
}
|
||||
}
|
||||
|
||||
public void handleStartProcess(final ModuleBasedConfiguration configuration, final OSProcessHandler handler) {
|
||||
public void handleStartProcess(final RunConfigurationBase configuration, final OSProcessHandler handler) {
|
||||
SnapShooterConfigurationSettings settings = configuration.getUserData(SnapShooterConfigurationSettings.SNAP_SHOOTER_KEY);
|
||||
if (settings != null) {
|
||||
final Runnable runnable = settings.getNotifyRunnable();
|
||||
@@ -118,7 +117,7 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> SettingsEditor createEditor(T configuration) {
|
||||
public SettingsEditor createEditor(RunConfigurationBase configuration) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -133,26 +132,26 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> Icon getIcon(T runConfiguration) {
|
||||
public Icon getIcon(RunConfigurationBase runConfiguration) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readExternal(ModuleBasedConfiguration runConfiguration, Element element) throws InvalidDataException {
|
||||
public void readExternal(RunConfigurationBase runConfiguration, Element element) throws InvalidDataException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeExternal(ModuleBasedConfiguration runConfiguration, Element element) throws WriteExternalException {
|
||||
public void writeExternal(RunConfigurationBase runConfiguration, Element element) throws WriteExternalException {
|
||||
throw new WriteExternalException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void patchConfiguration(T runJavaConfiguration) {
|
||||
public void patchConfiguration(RunConfigurationBase runJavaConfiguration) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ModuleBasedConfiguration & CommonJavaRunConfigurationParameters> void checkConfiguration(T runJavaConfiguration)
|
||||
public void checkConfiguration(RunConfigurationBase runJavaConfiguration)
|
||||
throws RuntimeConfigurationException {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user