mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
move application RC importer to execution-impl
This commit is contained in:
@@ -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>
|
||||
|
||||
+46
@@ -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]
|
||||
}
|
||||
-36
@@ -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"/>
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user