diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTaskProvider.java b/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTaskProvider.java index c7bab6b06867..667bd73ea91e 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTaskProvider.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTaskProvider.java @@ -109,7 +109,7 @@ public class BuildArtifactsBeforeRunTaskProvider extends BeforeRunTaskProvider pointers = task.getArtifactPointers(); - if (pointers.isEmpty()) { + if (!task.isEnabled() || pointers.isEmpty()) { return CompilerBundle.message("build.artifacts.before.run.description.empty"); } if (pointers.size() == 1) { diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurationType.java b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurationType.java index 032d56d85e1e..7d1ea6033393 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurationType.java +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurationType.java @@ -16,6 +16,7 @@ package com.intellij.execution.application; import com.intellij.execution.ExecutionBundle; +import com.intellij.execution.RunConfigurationExtension; import com.intellij.execution.configuration.ConfigurationFactoryEx; import com.intellij.execution.configurations.ConfigurationFactory; import com.intellij.execution.configurations.ConfigurationType; @@ -47,6 +48,11 @@ public class ApplicationConfigurationType implements ConfigurationType { return new ApplicationConfiguration("", project, ApplicationConfigurationType.this); } + @Override + public Icon getIcon(@NotNull final RunConfiguration configuration) { + return getIcon(); + } + @Override public void onNewConfigurationCreated(@NotNull RunConfiguration configuration) { ((ModuleBasedConfiguration)configuration).onNewConfigurationCreated(); diff --git a/platform/lang-api/src/com/intellij/execution/BeforeRunTask.java b/platform/lang-api/src/com/intellij/execution/BeforeRunTask.java index 0c3f7c244e9d..fad6015d02f0 100644 --- a/platform/lang-api/src/com/intellij/execution/BeforeRunTask.java +++ b/platform/lang-api/src/com/intellij/execution/BeforeRunTask.java @@ -47,6 +47,7 @@ public abstract class BeforeRunTask implements Cloneabl } public void writeExternal(Element element) { + element.setAttribute("enabled", String.valueOf(myIsEnabled)); } public void readExternal(Element element) { @@ -54,8 +55,6 @@ public abstract class BeforeRunTask implements Cloneabl if (attribValue == null) { attribValue = element.getAttributeValue("value"); // maintain compatibility with old format } - if (attribValue == null) - attribValue = "true"; myIsEnabled = Boolean.valueOf(attribValue).booleanValue(); } diff --git a/platform/lang-impl/src/com/intellij/execution/RunManagerEx.java b/platform/lang-impl/src/com/intellij/execution/RunManagerEx.java index cffb8b051f43..db6ea1442367 100644 --- a/platform/lang-impl/src/com/intellij/execution/RunManagerEx.java +++ b/platform/lang-impl/src/com/intellij/execution/RunManagerEx.java @@ -62,11 +62,14 @@ public abstract class RunManagerEx extends RunManager { @NotNull public abstract List getBeforeRunTasks(RunConfiguration settings); + @NotNull + public abstract List getBeforeRunTasks(RunConfiguration settings, boolean includeOnlyActiveTasks); + @NotNull public abstract List getBeforeRunTasks(RunConfiguration settings, Key taskProviderID); @NotNull - public abstract List getBeforeRunTasks(Key taskProviderID); + public abstract List getBeforeRunTasks(Key taskProviderID, boolean includeOnlyActiveTasks); public abstract RunnerAndConfigurationSettings findConfigurationByName(@Nullable final String name); diff --git a/platform/lang-impl/src/com/intellij/execution/impl/BeforeRunStepsPanel.java b/platform/lang-impl/src/com/intellij/execution/impl/BeforeRunStepsPanel.java index 65c8ddd4526a..ac80749045af 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/BeforeRunStepsPanel.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/BeforeRunStepsPanel.java @@ -117,7 +117,7 @@ class BeforeRunStepsPanel extends JPanel { myRunConfiguration = settings.getConfiguration(); originalTasks.clear(); - originalTasks.addAll(RunManagerImpl.getInstanceImpl(myRunConfiguration.getProject()).getBeforeRunTasks(myRunConfiguration)); + originalTasks.addAll(RunManagerImpl.getInstanceImpl(myRunConfiguration.getProject()).getBeforeRunTasks(myRunConfiguration, true)); myModel.replaceAll(originalTasks); myShowSettingsBeforeRunCheckBox.setSelected(settings.isEditBeforeRun()); myShowSettingsBeforeRunCheckBox.setEnabled(!(myRunConfiguration instanceof UnknownRunConfiguration)); @@ -202,11 +202,11 @@ class BeforeRunStepsPanel extends JPanel { = (RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask)task; RunConfiguration configuration = runTask.getSettings().getConfiguration(); - List tasks = RunManagerImpl.getInstanceImpl(configuration.getProject()).getBeforeRunTasks(configuration); + List tasks = RunManagerImpl.getInstanceImpl(configuration.getProject()).getBeforeRunTasks(configuration, true); for (BeforeRunTask beforeRunTask : tasks) { if (beforeRunTask instanceof RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask) { - if (configurationSet.add(((RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask)beforeRunTask).getSettings().getConfiguration())) - getAllRunBeforeRuns(beforeRunTask, configurationSet); + configurationSet.add(((RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask)beforeRunTask).getSettings().getConfiguration()); + getAllRunBeforeRuns(beforeRunTask, configurationSet); } } } diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.java b/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.java index 9abefe10dbc9..7d1d7a436db0 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.java @@ -125,7 +125,7 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor getStepsBeforeLaunch() { - return Collections.unmodifiableList(myBeforeRunStepsPanel.getTasks(true)); + return Collections.unmodifiableList(myBeforeRunStepsPanel.getTasks(false)); } public boolean isStoreProjectConfiguration() { diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java index 484cb35ac961..f15e9fa2c222 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java @@ -97,7 +97,12 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom final RunManagerImpl runManager = RunManagerImpl.getInstanceImpl(myProject); final List activeTasks = new ArrayList(); - activeTasks.addAll(runManager.getBeforeRunTasks(runConfiguration)); + final List tasks = runManager.getBeforeRunTasks(runConfiguration); + for (BeforeRunTask task : tasks) { + if (task != null && task.isEnabled()) { + activeTasks.add(task); + } + } ConfigurationPerRunnerSettings configurationSettings = state != null ? state.getConfigurationSettings() : null; final DataContext projectContext = SimpleDataContext.getProjectContext(myProject); diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java index 725498e82ff1..f462ba509a22 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java @@ -164,7 +164,12 @@ class RunConfigurable extends BaseConfigurable { if (userObject instanceof SingleConfigurationConfigurable) { final SingleConfigurationConfigurable settings = (SingleConfigurationConfigurable)userObject; RunnerAndConfigurationSettings snapshot; - snapshot = settings.getSettings(); + try { + snapshot = settings.getSnapshot(); + } + catch (ConfigurationException e) { + snapshot = settings.getSettings(); + } configuration = settings.getConfiguration(); name = settings.getNameText(); setIcon(ProgramRunnerUtil.getConfigurationIcon(snapshot, !settings.isValid(), runManager.isTemporary(configuration))); diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java index 667f3b4fc5ce..25555d1ee971 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java @@ -67,6 +67,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, protected static final String SELECTED_ATTR = "selected"; @NonNls private static final String METHOD = "method"; @NonNls private static final String OPTION = "option"; + @NonNls private static final String VALUE = "value"; private List myUnknownElements = null; private JDOMExternalizableStringList myOrder = new JDOMExternalizableStringList(); @@ -459,6 +460,8 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, } } for (BeforeRunTask task : tasks) { + if (templateTasks != null && task.equals(templateTasks.get(task.getProviderId()))) + continue; // not neccesary saving if the task is the same as template final Element child = new Element(OPTION); child.setAttribute(NAME_ATTR, task.getProviderId().toString()); task.writeExternal(child); @@ -593,9 +596,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, final BeforeRunTask beforeRunTask = provider.createTask(settings.getConfiguration()); if (beforeRunTask != null) { beforeRunTask.readExternal(methodElement); - if (beforeRunTask.isEnabled()) { - result.add(beforeRunTask); - } + result.add(beforeRunTask); } } } @@ -719,30 +720,48 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, } @NotNull - public List getBeforeRunTasks(Key taskProviderID) { + public List getBeforeRunTasks(Key taskProviderID, boolean includeOnlyActiveTasks) { final List tasks = new ArrayList(); - final List checkedTemplates = new ArrayList(); - List settingsList = new ArrayList(myConfigurations.values()); - for (RunnerAndConfigurationSettings settings : settingsList) { - final List runTasks = getBeforeRunTasks(settings.getConfiguration()); - for (BeforeRunTask task : runTasks) { - if (task != null && task.isEnabled() && task.getProviderId() == taskProviderID) { - tasks.add((T)task); - } - else { - final RunnerAndConfigurationSettings template = getConfigurationTemplate(settings.getFactory()); - if (!checkedTemplates.contains(template)) { - checkedTemplates.add(template); - final List templateTasks = getBeforeRunTasks(template.getConfiguration()); - for (BeforeRunTask templateTask : templateTasks) { - if (templateTask != null && templateTask.isEnabled() && templateTask.getProviderId() == taskProviderID) { - tasks.add((T)templateTask); + if (includeOnlyActiveTasks) { + final List checkedTemplates = new ArrayList(); + List settingsList = new ArrayList(myConfigurations.values()); + for (RunnerAndConfigurationSettings settings : settingsList) { + final List runTasks = getBeforeRunTasks(settings.getConfiguration()); + for (BeforeRunTask task : runTasks) { + if (task != null && task.isEnabled() && task.getProviderId() == taskProviderID) { + tasks.add((T)task); + } + else { + final RunnerAndConfigurationSettings template = getConfigurationTemplate(settings.getFactory()); + if (!checkedTemplates.contains(template)) { + checkedTemplates.add(template); + final List templateTasks = getBeforeRunTasks(template.getConfiguration()); + for (BeforeRunTask templateTask : templateTasks) { + if (templateTask != null && templateTask.isEnabled() && templateTask.getProviderId() == taskProviderID) { + tasks.add((T)templateTask); + } } } } } } } + else { + for (RunnerAndConfigurationSettings settings : myTemplateConfigurationsMap.values()) { + final List tasks_ = getBeforeRunTasks(settings.getConfiguration()); + for (BeforeRunTask task : tasks_) { + if (task != null && task.getProviderId() == taskProviderID) + tasks.add((T)task); + } + } + for (RunnerAndConfigurationSettings settings : myConfigurations.values()) { + final List tasks_ = getBeforeRunTasks(settings.getConfiguration()); + for (BeforeRunTask task : tasks_) { + if (task != null && task.getProviderId() == taskProviderID) + tasks.add((T)task); + } + } + } return tasks; } @@ -807,25 +826,32 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, @NotNull public List getBeforeRunTasks(final RunConfiguration settings) { + return getBeforeRunTasks(settings, false); + } + @NotNull + @Override + public List getBeforeRunTasks(RunConfiguration settings, boolean includeOnlyActiveTasks) { final List tasks = myConfigurationToBeforeTasksMap.get(settings); if (tasks != null) { - return getCopies(tasks); + return getCopies(tasks, includeOnlyActiveTasks); } - return getTemplateBeforeRunTask(settings); + return getTemplateBeforeRunTask(settings, includeOnlyActiveTasks); } - private List getTemplateBeforeRunTask(RunConfiguration settings) { + private List getTemplateBeforeRunTask(RunConfiguration settings, boolean includeOnlyActiveTasks) { final RunnerAndConfigurationSettings template = getConfigurationTemplate(settings.getFactory()); final List templateTasks = myConfigurationToBeforeTasksMap.get(template.getConfiguration()); if (templateTasks != null) { - return getCopies(templateTasks); + return getCopies(templateTasks, includeOnlyActiveTasks); } final List _tasks = new ArrayList(); for (BeforeRunTaskProvider provider : Extensions .getExtensions(BeforeRunTaskProvider.EXTENSION_POINT_NAME, myProject)) { BeforeRunTask task = provider.createTask(settings); - if (task != null && task.isEnabled()) { + if (task != null) { + if (includeOnlyActiveTasks && !task.isEnabled()) + continue; Key providerID = provider.getId(); _tasks.add(task); settings.getFactory().configureBeforeRunTaskDefaults(providerID, task); @@ -835,11 +861,11 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, } @NotNull - private static List getCopies(List original) { + private static List getCopies(List original, boolean includeOnlyActiveTasks) { List result = new ArrayList(); if (original != null) { for (BeforeRunTask task : original) { - if (!task.isEnabled()) + if (includeOnlyActiveTasks && !task.isEnabled()) continue; result.add(task.clone()); } @@ -857,8 +883,21 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, if (shouldFire) fireRunConfigurationChanged(settings); } - public final void setBeforeRunTasks(final RunConfiguration runConfiguration, @NotNull List tasks) { - myConfigurationToBeforeTasksMap.put(runConfiguration, tasks); + public final void setBeforeRunTasks(final RunConfiguration runConfiguration, List tasks) { + List templates = getTemplateBeforeRunTask(runConfiguration, false); + Set> idsToSet = new HashSet>(); + List result = new ArrayList(tasks); + for (BeforeRunTask task : tasks) { + idsToSet.add(task.getProviderId()); + } + int i = 0; + for (BeforeRunTask template : templates) { + if (!idsToSet.contains(template.getProviderId())) { + result.add(i, template); + i++; + } + } + myConfigurationToBeforeTasksMap.put(runConfiguration, result); fireBeforeRunTasksUpdated(); } diff --git a/platform/platform-api/src/com/intellij/ui/CollectionListModel.java b/platform/platform-api/src/com/intellij/ui/CollectionListModel.java index 12ddaa9bff41..161529538472 100644 --- a/platform/platform-api/src/com/intellij/ui/CollectionListModel.java +++ b/platform/platform-api/src/com/intellij/ui/CollectionListModel.java @@ -98,9 +98,4 @@ public class CollectionListModel extends AbstractListModel { removeAll(); add(elements); } - - @Override - public String toString() { - return getClass().getName() + " (" + getSize() + " elements)"; - } } diff --git a/platform/testFramework/src/com/intellij/mock/MockRunManager.java b/platform/testFramework/src/com/intellij/mock/MockRunManager.java index 7ceb5eb0b85c..4f47bbd45014 100644 --- a/platform/testFramework/src/com/intellij/mock/MockRunManager.java +++ b/platform/testFramework/src/com/intellij/mock/MockRunManager.java @@ -111,12 +111,18 @@ public class MockRunManager extends RunManagerEx { @NotNull @Override public List getBeforeRunTasks(RunConfiguration settings) { + return null; + } + + @NotNull + @Override + public List getBeforeRunTasks(RunConfiguration settings, boolean includeOnlyActiveTasks) { return Collections.emptyList(); } @NotNull @Override - public List getBeforeRunTasks(Key taskProviderID) { + public List getBeforeRunTasks(Key taskProviderID, boolean includeOnlyActiveTasks) { return Collections.emptyList(); } diff --git a/plugins/ant/src/com/intellij/lang/ant/config/explorer/AntTargetNodeDescriptor.java b/plugins/ant/src/com/intellij/lang/ant/config/explorer/AntTargetNodeDescriptor.java index 12450fafdb4b..b5fe79ba9959 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/explorer/AntTargetNodeDescriptor.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/explorer/AntTargetNodeDescriptor.java @@ -97,7 +97,7 @@ final class AntTargetNodeDescriptor extends AntNodeDescriptor { final RunManagerEx runManager = RunManagerEx.getInstanceEx(myProject); final VirtualFile vFile = buildFile.getVirtualFile(); if (vFile != null) { - for (AntBeforeRunTask task : runManager.getBeforeRunTasks(AntBeforeRunTaskProvider.ID)) { + for (AntBeforeRunTask task : runManager.getBeforeRunTasks(AntBeforeRunTaskProvider.ID, true)) { if (task.isRunningTarget(myTarget)) { myHighlightedText.getEnding().addText(" (Before Run/Debug)", ourPostfixAttributes); break; diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntBeforeRunTask.java b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntBeforeRunTask.java index 9612ca7417f2..da5fe11c2bc6 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntBeforeRunTask.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntBeforeRunTask.java @@ -69,6 +69,9 @@ public class AntBeforeRunTask extends BeforeRunTask{ } public boolean isRunningTarget(AntBuildTarget target) { + if (!isEnabled()) { + return false; + } final VirtualFile vFile = target.getModel().getBuildFile().getVirtualFile(); if (vFile == null) { return false; diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntBeforeRunTaskProvider.java b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntBeforeRunTaskProvider.java index d1b589dba850..96dffca033d0 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/AntBeforeRunTaskProvider.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/AntBeforeRunTaskProvider.java @@ -66,7 +66,7 @@ public class AntBeforeRunTaskProvider extends BeforeRunTaskProvider"); @@ -144,7 +144,7 @@ public class AntBeforeRunTaskProvider extends BeforeRunTaskProvider projectAndGoal = getProjectAndGoalChecked(task); - if (projectAndGoal != null) desc = projectAndGoal.first.getDisplayName() + ":" + projectAndGoal.second; + if (task.isEnabled()) { + Pair projectAndGoal = getProjectAndGoalChecked(task); + if (projectAndGoal != null) desc = projectAndGoal.first.getDisplayName() + ":" + projectAndGoal.second; + } return desc == null ? TasksBundle.message("maven.tasks.before.run.empty") : TasksBundle.message("maven.tasks.before.run", desc); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/MavenTasksManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/MavenTasksManager.java index 303d91189726..55cdc3ae5d16 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/MavenTasksManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/MavenTasksManager.java @@ -162,7 +162,7 @@ public class MavenTasksManager extends MavenSimpleProjectComponent implements Pe } } RunManagerEx runManager = RunManagerEx.getInstanceEx(myProject); - for (MavenBeforeRunTask each : runManager.getBeforeRunTasks(MavenBeforeRunTasksProvider.ID)) { + for (MavenBeforeRunTask each : runManager.getBeforeRunTasks(MavenBeforeRunTasksProvider.ID, true)) { if (each.isFor(project, goal)) { result.add(TasksBundle.message("maven.tasks.goal.before.run")); break; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/actions/ToggleBeforeRunTaskAction.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/actions/ToggleBeforeRunTaskAction.java index cbbf24fc8c6a..62949c591b88 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/actions/ToggleBeforeRunTaskAction.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/actions/ToggleBeforeRunTaskAction.java @@ -40,8 +40,8 @@ public class ToggleBeforeRunTaskAction extends MavenToggleAction { final DataContext context = e.getDataContext(); final Pair desc = getTaskDesc(context); if (desc != null) { - for (MavenBeforeRunTask each : getRunManager(context).getBeforeRunTasks(MavenBeforeRunTasksProvider.ID)) { - if (each.isFor(desc.first, desc.second)) return true; + for (MavenBeforeRunTask each : getRunManager(context).getBeforeRunTasks(MavenBeforeRunTasksProvider.ID, true)) { + if (each.isEnabled() && each.isFor(desc.first, desc.second)) return true; } } return false; diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationType.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationType.java index 7dfc48dfa35b..08cb9c134888 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationType.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationType.java @@ -23,7 +23,9 @@ package com.theoryinpractice.testng.configuration; import com.intellij.execution.Location; +import com.intellij.execution.RunConfigurationExtension; import com.intellij.execution.RunManagerEx; +import com.intellij.execution.RunnerAndConfigurationSettings; import com.intellij.execution.configuration.ConfigurationFactoryEx; import com.intellij.execution.configurations.*; import com.intellij.execution.impl.RunManagerImpl; @@ -55,6 +57,11 @@ public class TestNGConfigurationType implements ConfigurationType return new TestNGConfiguration("", project, this); } + @Override + public Icon getIcon(@NotNull final RunConfiguration configuration) { + return ICON; + } + @Override public void onNewConfigurationCreated(@NotNull RunConfiguration configuration) { ((ModuleBasedConfiguration)configuration).onNewConfigurationCreated();