From 22c2df51d85aa9c74191f2c7d5f1a85913b2f817 Mon Sep 17 00:00:00 2001 From: Nikita Skvortsov Date: Tue, 16 Jan 2018 15:06:04 +0300 Subject: [PATCH] move application RC importer to execution-impl --- .../impl/intellij.java.execution.impl.iml | 1 + .../ApplicationRunConfigurationImporter.kt | 46 +++++++++++++++++++ .../settings/RunConfigurationHandler.kt | 36 --------------- .../src/META-INF/ExternalSystemExtensions.xml | 2 +- .../GradleSettingsImportingTest.java | 2 +- 5 files changed, 49 insertions(+), 38 deletions(-) create mode 100644 java/execution/impl/src/com/intellij/execution/application/ApplicationRunConfigurationImporter.kt diff --git a/java/execution/impl/intellij.java.execution.impl.iml b/java/execution/impl/intellij.java.execution.impl.iml index 3d5c1086d989..d7b4e5a8f467 100644 --- a/java/execution/impl/intellij.java.execution.impl.iml +++ b/java/execution/impl/intellij.java.execution.impl.iml @@ -20,6 +20,7 @@ + diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationRunConfigurationImporter.kt b/java/execution/impl/src/com/intellij/execution/application/ApplicationRunConfigurationImporter.kt new file mode 100644 index 000000000000..82f6ed408173 --- /dev/null +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationRunConfigurationImporter.kt @@ -0,0 +1,46 @@ +/* + * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. + */ +package com.intellij.execution.application + +import com.intellij.execution.RunManager +import com.intellij.execution.RunManagerEx +import com.intellij.execution.configurations.ConfigurationFactory +import com.intellij.execution.configurations.ConfigurationTypeUtil +import com.intellij.execution.configurations.RunConfiguration +import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider +import com.intellij.openapi.externalSystem.service.project.settings.RunConfigurationImporter +import com.intellij.openapi.project.Project + +class ApplicationRunConfigurationImporter : RunConfigurationImporter { + override fun process(project: Project, runConfiguration: RunConfiguration, cfg: Map, modelsProvider: IdeModifiableModelsProvider) { + if (runConfiguration !is ApplicationConfiguration) { + throw IllegalArgumentException("Unexpected type of run configuration: ${runConfiguration::class.java}") + } + + val isDefaults = (cfg["defaults"] as? Boolean) ?: false + + val module = (cfg["moduleName"] as? String)?.let { modelsProvider.modifiableModuleModel.findModuleByName(it) } + if (module == null && !isDefaults) { + throw IllegalArgumentException("Module with name ${cfg["moduleName"]} can not be found") + } + + val runManager = RunManager.getInstance(project) as RunManagerEx + + (cfg["mainClass"] as? String)?.let { runConfiguration.mainClassName = it } + (cfg["jvmArgs"] as? String)?.let { runConfiguration.vmParameters = it } + (cfg["programParameters"] as? String)?.let { runConfiguration.programParameters = it } + (cfg["envs"] as? Map<*,*>)?.let { runConfiguration.envs = it as MutableMap } + + if (!isDefaults) { + runConfiguration.setModule(module) + } + } + + override fun canImport(typeName: String): Boolean = typeName == "application" + + override fun getConfigurationFactory(): ConfigurationFactory = + ConfigurationTypeUtil.findConfigurationType( + ApplicationConfigurationType::class.java) + .configurationFactories[0] +} \ No newline at end of file diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/settings/RunConfigurationHandler.kt b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/settings/RunConfigurationHandler.kt index e162e3c56b8e..df0cedd91a70 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/settings/RunConfigurationHandler.kt +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/settings/RunConfigurationHandler.kt @@ -6,10 +6,6 @@ package com.intellij.openapi.externalSystem.service.project.settings import com.intellij.compiler.options.CompileStepBeforeRun import com.intellij.execution.RunManager import com.intellij.execution.RunManagerEx -import com.intellij.execution.application.ApplicationConfiguration -import com.intellij.execution.application.ApplicationConfigurationType -import com.intellij.execution.configurations.ConfigurationFactory -import com.intellij.execution.configurations.ConfigurationTypeUtil import com.intellij.execution.configurations.RunConfiguration import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.extensions.Extensions @@ -111,35 +107,3 @@ class RunConfigImporterExtensionManager { } } -class ApplicationRunConfigurationImporter : RunConfigurationImporter { - override fun process(project: Project, runConfiguration: RunConfiguration, cfg: Map, modelsProvider: IdeModifiableModelsProvider) { - if (runConfiguration !is ApplicationConfiguration) { - throw IllegalArgumentException("Unexpected type of run configuration: ${runConfiguration::class.java}") - } - - val isDefaults = (cfg["defaults"] as? Boolean) ?: false - - val module = (cfg["moduleName"] as? String)?.let { modelsProvider.modifiableModuleModel.findModuleByName(it) } - if (module == null && !isDefaults) { - throw IllegalArgumentException("Module with name ${cfg["moduleName"]} can not be found") - } - - val runManager = RunManager.getInstance(project) as RunManagerEx - - (cfg["mainClass"] as? String)?.let { runConfiguration.mainClassName = it } - (cfg["jvmArgs"] as? String)?.let { runConfiguration.vmParameters = it } - (cfg["programParameters"] as? String)?.let { runConfiguration.programParameters = it } - (cfg["envs"] as? Map<*,*>)?.let { runConfiguration.envs = it as MutableMap } - - if (!isDefaults) { - runConfiguration.setModule(module) - } - } - - override fun canImport(typeName: String): Boolean = typeName == "application" - - override fun getConfigurationFactory(): ConfigurationFactory = - ConfigurationTypeUtil - .findConfigurationType(ApplicationConfigurationType::class.java) - .configurationFactories[0] -} \ No newline at end of file diff --git a/platform/platform-resources/src/META-INF/ExternalSystemExtensions.xml b/platform/platform-resources/src/META-INF/ExternalSystemExtensions.xml index 1739ffc57f5d..88ee40e88c4b 100644 --- a/platform/platform-resources/src/META-INF/ExternalSystemExtensions.xml +++ b/platform/platform-resources/src/META-INF/ExternalSystemExtensions.xml @@ -41,7 +41,7 @@ - + diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleSettingsImportingTest.java b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleSettingsImportingTest.java index cde5736bb45c..6c4393844fae 100644 --- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleSettingsImportingTest.java +++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleSettingsImportingTest.java @@ -30,7 +30,7 @@ import com.intellij.facet.FacetManager; import com.intellij.openapi.extensions.ExtensionPoint; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider; -import com.intellij.openapi.externalSystem.service.project.settings.ApplicationRunConfigurationImporter; +import com.intellij.execution.application.ApplicationRunConfigurationImporter; import com.intellij.openapi.externalSystem.service.project.settings.FacetConfigurationImporter; import com.intellij.openapi.externalSystem.service.project.settings.RunConfigurationImporter; import com.intellij.openapi.module.Module;