move application RC importer to execution-impl

This commit is contained in:
Nikita Skvortsov
2018-02-02 15:57:22 +03:00
parent bdc0bc5f81
commit 22c2df51d8
5 changed files with 49 additions and 38 deletions
@@ -20,6 +20,7 @@
<orderEntry type="module" module-name="intellij.java.jshell.protocol" />
<orderEntry type="library" name="Coverage" level="project" />
<orderEntry type="library" scope="RUNTIME" name="precompiled_jshell-frontend" level="project" />
<orderEntry type="module" module-name="external-system-api" />
</component>
<component name="copyright">
<Base>
@@ -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<String, *>, 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<String, String> }
if (!isDefaults) {
runConfiguration.setModule(module)
}
}
override fun canImport(typeName: String): Boolean = typeName == "application"
override fun getConfigurationFactory(): ConfigurationFactory =
ConfigurationTypeUtil.findConfigurationType<ApplicationConfigurationType>(
ApplicationConfigurationType::class.java)
.configurationFactories[0]
}
@@ -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<String, *>, 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<String, String> }
if (!isDefaults) {
runConfiguration.setModule(module)
}
}
override fun canImport(typeName: String): Boolean = typeName == "application"
override fun getConfigurationFactory(): ConfigurationFactory =
ConfigurationTypeUtil
.findConfigurationType<ApplicationConfigurationType>(ApplicationConfigurationType::class.java)
.configurationFactories[0]
}
@@ -41,7 +41,7 @@
<externalSystemConfigurationHandler implementation="com.intellij.openapi.externalSystem.service.project.settings.RunConfigurationHandler"/>
<externalSystemConfigurationHandler implementation="com.intellij.openapi.externalSystem.service.project.settings.FacetConfigurationHandler"/>
<externalSystemConfigurationHandler implementation="com.intellij.profile.codeInspection.InspectionsProfileConfigurationHandler"/>
<runConfigurationImporter implementation="com.intellij.openapi.externalSystem.service.project.settings.ApplicationRunConfigurationImporter"/>
<runConfigurationImporter implementation="com.intellij.execution.application.ApplicationRunConfigurationImporter"/>
<configuration.ModuleStructureExtension implementation="com.intellij.openapi.externalSystem.service.project.manage.ExternalModuleStructureExtension"/>
@@ -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;