diff --git a/plugins/allopen/allopen.cli/build.gradle.kts b/plugins/allopen/allopen.cli/build.gradle.kts index a338871ca7a..d033d581b36 100644 --- a/plugins/allopen/allopen.cli/build.gradle.kts +++ b/plugins/allopen/allopen.cli/build.gradle.kts @@ -6,6 +6,7 @@ plugins { } dependencies { + implementation(project(":kotlin-allopen-compiler-plugin.common")) implementation(project(":kotlin-allopen-compiler-plugin.k1")) implementation(project(":kotlin-allopen-compiler-plugin.k2")) compileOnly(project(":compiler:plugin-api")) diff --git a/plugins/allopen/allopen.cli/src/org/jetbrains/kotlin/allopen/AllOpenPlugin.kt b/plugins/allopen/allopen.cli/src/org/jetbrains/kotlin/allopen/AllOpenPlugin.kt index 9ddcf9311bb..e35189a4426 100644 --- a/plugins/allopen/allopen.cli/src/org/jetbrains/kotlin/allopen/AllOpenPlugin.kt +++ b/plugins/allopen/allopen.cli/src/org/jetbrains/kotlin/allopen/AllOpenPlugin.kt @@ -6,9 +6,10 @@ package org.jetbrains.kotlin.allopen import com.intellij.mock.MockProject -import org.jetbrains.kotlin.allopen.AllOpenCommandLineProcessor.Companion.SUPPORTED_PRESETS import org.jetbrains.kotlin.allopen.AllOpenConfigurationKeys.ANNOTATION import org.jetbrains.kotlin.allopen.AllOpenConfigurationKeys.PRESET +import org.jetbrains.kotlin.allopen.AllOpenPluginNames.ANNOTATION_OPTION_NAME +import org.jetbrains.kotlin.allopen.AllOpenPluginNames.SUPPORTED_PRESETS import org.jetbrains.kotlin.allopen.fir.FirAllOpenExtensionRegistrar import org.jetbrains.kotlin.compiler.plugin.* import org.jetbrains.kotlin.config.CompilerConfiguration @@ -23,29 +24,8 @@ object AllOpenConfigurationKeys { class AllOpenCommandLineProcessor : CommandLineProcessor { companion object { - val SUPPORTED_PRESETS = mapOf( - "spring" to listOf( - "org.springframework.stereotype.Component", - "org.springframework.transaction.annotation.Transactional", - "org.springframework.scheduling.annotation.Async", - "org.springframework.cache.annotation.Cacheable", - "org.springframework.boot.test.context.SpringBootTest", - "org.springframework.validation.annotation.Validated" - ), - "quarkus" to listOf( - "javax.enterprise.context.ApplicationScoped", - "javax.enterprise.context.RequestScoped" - ), - "micronaut" to listOf( - "io.micronaut.aop.Around", - "io.micronaut.aop.Introduction", - "io.micronaut.aop.InterceptorBinding", - "io.micronaut.aop.InterceptorBindingDefinitions" - ) - ) - val ANNOTATION_OPTION = CliOption( - "annotation", "", "Annotation qualified names", + ANNOTATION_OPTION_NAME, "", "Annotation qualified names", required = false, allowMultipleOccurrences = true ) @@ -53,11 +33,9 @@ class AllOpenCommandLineProcessor : CommandLineProcessor { "preset", "", "Preset name (${SUPPORTED_PRESETS.keys.joinToString()})", required = false, allowMultipleOccurrences = true ) - - const val PLUGIN_ID = "org.jetbrains.kotlin.allopen" } - override val pluginId = PLUGIN_ID + override val pluginId = AllOpenPluginNames.PLUGIN_ID override val pluginOptions = listOf(ANNOTATION_OPTION, PRESET_OPTION) override fun processOption(option: AbstractCliOption, value: String, configuration: CompilerConfiguration) = when (option) { diff --git a/plugins/allopen/allopen.common/build.gradle.kts b/plugins/allopen/allopen.common/build.gradle.kts new file mode 100644 index 00000000000..bc99536c407 --- /dev/null +++ b/plugins/allopen/allopen.common/build.gradle.kts @@ -0,0 +1,20 @@ +description = "Kotlin NoArg Compiler Plugin (Common)" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + compileOnly(project(":compiler:util")) + compileOnly(project(":core:compiler.common")) +} + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} + +runtimeJar() +javadocJar() +sourcesJar() diff --git a/plugins/allopen/allopen.common/src/org/jetbrains/kotlin/allopen/AllOpenPluginNames.kt b/plugins/allopen/allopen.common/src/org/jetbrains/kotlin/allopen/AllOpenPluginNames.kt new file mode 100644 index 00000000000..0d35710309a --- /dev/null +++ b/plugins/allopen/allopen.common/src/org/jetbrains/kotlin/allopen/AllOpenPluginNames.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.allopen + +object AllOpenPluginNames { + val SUPPORTED_PRESETS = mapOf( + "spring" to listOf( + "org.springframework.stereotype.Component", + "org.springframework.transaction.annotation.Transactional", + "org.springframework.scheduling.annotation.Async", + "org.springframework.cache.annotation.Cacheable", + "org.springframework.boot.test.context.SpringBootTest", + "org.springframework.validation.annotation.Validated" + ), + "quarkus" to listOf( + "javax.enterprise.context.ApplicationScoped", + "javax.enterprise.context.RequestScoped" + ), + "micronaut" to listOf( + "io.micronaut.aop.Around", + "io.micronaut.aop.Introduction", + "io.micronaut.aop.InterceptorBinding", + "io.micronaut.aop.InterceptorBindingDefinitions" + ) + ) + + const val PLUGIN_ID = "org.jetbrains.kotlin.allopen" + const val ANNOTATION_OPTION_NAME = "annotation" +} diff --git a/plugins/allopen/build.gradle.kts b/plugins/allopen/build.gradle.kts index 43aa4c174a8..b6b8f2fa420 100644 --- a/plugins/allopen/build.gradle.kts +++ b/plugins/allopen/build.gradle.kts @@ -6,11 +6,13 @@ plugins { } dependencies { + embedded(project(":kotlin-allopen-compiler-plugin.common")) { isTransitive = false } embedded(project(":kotlin-allopen-compiler-plugin.cli")) { isTransitive = false } embedded(project(":kotlin-allopen-compiler-plugin.k1")) { isTransitive = false } embedded(project(":kotlin-allopen-compiler-plugin.k2")) { isTransitive = false } testImplementation(project(":kotlin-allopen-compiler-plugin")) + testImplementation(project(":kotlin-allopen-compiler-plugin.common")) testImplementation(project(":kotlin-allopen-compiler-plugin.k1")) testImplementation(project(":kotlin-allopen-compiler-plugin.k2")) testImplementation(project(":kotlin-allopen-compiler-plugin.cli")) diff --git a/plugins/allopen/test/org/jetbrains/kotlin/allopen/AllOpenEnvironmentConfigurator.kt b/plugins/allopen/test/org/jetbrains/kotlin/allopen/AllOpenEnvironmentConfigurator.kt index 171362424d6..ed901dbe5b5 100644 --- a/plugins/allopen/test/org/jetbrains/kotlin/allopen/AllOpenEnvironmentConfigurator.kt +++ b/plugins/allopen/test/org/jetbrains/kotlin/allopen/AllOpenEnvironmentConfigurator.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.test.services.TestServices class AllOpenEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfigurator(testServices) { override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) { val annotations = AbstractAllOpenDeclarationAttributeAltererExtension.ANNOTATIONS_FOR_TESTS + - AllOpenCommandLineProcessor.SUPPORTED_PRESETS.flatMap { it.value } + AllOpenPluginNames.SUPPORTED_PRESETS.flatMap { it.value } DeclarationAttributeAltererExtension.registerExtension( project, diff --git a/plugins/lombok/lombok.cli/src/org/jetbrains/kotlin/lombok/LombokPlugin.kt b/plugins/lombok/lombok.cli/src/org/jetbrains/kotlin/lombok/LombokPlugin.kt index 38f0166497c..c83b1021e63 100644 --- a/plugins/lombok/lombok.cli/src/org/jetbrains/kotlin/lombok/LombokPlugin.kt +++ b/plugins/lombok/lombok.cli/src/org/jetbrains/kotlin/lombok/LombokPlugin.kt @@ -17,6 +17,8 @@ import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.CompilerConfigurationKey import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar import org.jetbrains.kotlin.lombok.LombokConfigurationKeys.CONFIG_FILE +import org.jetbrains.kotlin.lombok.LombokPluginNames.CONFIG_OPTION_NAME +import org.jetbrains.kotlin.lombok.LombokPluginNames.PLUGIN_ID import org.jetbrains.kotlin.lombok.k2.FirLombokRegistrar import org.jetbrains.kotlin.resolve.jvm.extensions.SyntheticJavaResolveExtension import java.io.File @@ -50,10 +52,8 @@ object LombokConfigurationKeys { class LombokCommandLineProcessor : CommandLineProcessor { companion object { - const val PLUGIN_ID = "org.jetbrains.kotlin.lombok" - val CONFIG_FILE_OPTION = CliOption( - optionName = "config", + optionName = CONFIG_OPTION_NAME, valueDescription = "", description = "Lombok configuration file location", required = false diff --git a/plugins/lombok/lombok.common/src/org/jetbrains/kotlin/lombok/LombokPluginNames.kt b/plugins/lombok/lombok.common/src/org/jetbrains/kotlin/lombok/LombokPluginNames.kt new file mode 100644 index 00000000000..d99b97a64ef --- /dev/null +++ b/plugins/lombok/lombok.common/src/org/jetbrains/kotlin/lombok/LombokPluginNames.kt @@ -0,0 +1,11 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.lombok + +object LombokPluginNames { + const val PLUGIN_ID = "org.jetbrains.kotlin.lombok" + const val CONFIG_OPTION_NAME = "config" +} diff --git a/plugins/noarg/build.gradle.kts b/plugins/noarg/build.gradle.kts index 9bb4cedb86e..045947cde1c 100644 --- a/plugins/noarg/build.gradle.kts +++ b/plugins/noarg/build.gradle.kts @@ -6,6 +6,7 @@ plugins { } dependencies { + embedded(project(":kotlin-noarg-compiler-plugin.common")) embedded(project(":kotlin-noarg-compiler-plugin.k1")) embedded(project(":kotlin-noarg-compiler-plugin.k2")) embedded(project(":kotlin-noarg-compiler-plugin.backend")) diff --git a/plugins/noarg/noarg.cli/build.gradle.kts b/plugins/noarg/noarg.cli/build.gradle.kts index b79ad3d8fa1..4ce43ad4973 100644 --- a/plugins/noarg/noarg.cli/build.gradle.kts +++ b/plugins/noarg/noarg.cli/build.gradle.kts @@ -6,6 +6,7 @@ plugins { } dependencies { + api(project(":kotlin-noarg-compiler-plugin.common")) api(project(":kotlin-noarg-compiler-plugin.k1")) api(project(":kotlin-noarg-compiler-plugin.k2")) api(project(":kotlin-noarg-compiler-plugin.backend")) diff --git a/plugins/noarg/noarg.cli/src/org/jetbrains/kotlin/noarg/NoArgPlugin.kt b/plugins/noarg/noarg.cli/src/org/jetbrains/kotlin/noarg/NoArgPlugin.kt index f01a3508c25..5d4f041c58c 100644 --- a/plugins/noarg/noarg.cli/src/org/jetbrains/kotlin/noarg/NoArgPlugin.kt +++ b/plugins/noarg/noarg.cli/src/org/jetbrains/kotlin/noarg/NoArgPlugin.kt @@ -18,16 +18,17 @@ import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar -import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarAdapter -import org.jetbrains.kotlin.noarg.NoArgCommandLineProcessor.Companion.SUPPORTED_PRESETS import org.jetbrains.kotlin.noarg.NoArgConfigurationKeys.ANNOTATION import org.jetbrains.kotlin.noarg.NoArgConfigurationKeys.INVOKE_INITIALIZERS import org.jetbrains.kotlin.noarg.NoArgConfigurationKeys.PRESET +import org.jetbrains.kotlin.noarg.NoArgPluginNames.ANNOTATION_OPTION_NAME +import org.jetbrains.kotlin.noarg.NoArgPluginNames.INVOKE_INITIALIZERS_OPTION_NAME +import org.jetbrains.kotlin.noarg.NoArgPluginNames.PLUGIN_ID +import org.jetbrains.kotlin.noarg.NoArgPluginNames.SUPPORTED_PRESETS import org.jetbrains.kotlin.noarg.diagnostic.CliNoArgDeclarationChecker import org.jetbrains.kotlin.noarg.fir.FirNoArgExtensionRegistrar import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.platform.jvm.isJvm -import java.util.concurrent.Executors object NoArgConfigurationKeys { val ANNOTATION: CompilerConfigurationKey> = @@ -42,12 +43,8 @@ object NoArgConfigurationKeys { class NoArgCommandLineProcessor : CommandLineProcessor { companion object { - val SUPPORTED_PRESETS = mapOf( - "jpa" to listOf("javax.persistence.Entity", "javax.persistence.Embeddable", "javax.persistence.MappedSuperclass") - ) - val ANNOTATION_OPTION = CliOption( - "annotation", "", "Annotation qualified names", + ANNOTATION_OPTION_NAME, "", "Annotation qualified names", required = false, allowMultipleOccurrences = true ) @@ -57,12 +54,10 @@ class NoArgCommandLineProcessor : CommandLineProcessor { ) val INVOKE_INITIALIZERS_OPTION = CliOption( - "invokeInitializers", "true/false", + INVOKE_INITIALIZERS_OPTION_NAME, "true/false", "Invoke instance initializers in a no-arg constructor", required = false, allowMultipleOccurrences = false ) - - const val PLUGIN_ID = "org.jetbrains.kotlin.noarg" } override val pluginId = PLUGIN_ID diff --git a/plugins/noarg/noarg.common/build.gradle.kts b/plugins/noarg/noarg.common/build.gradle.kts new file mode 100644 index 00000000000..bc99536c407 --- /dev/null +++ b/plugins/noarg/noarg.common/build.gradle.kts @@ -0,0 +1,20 @@ +description = "Kotlin NoArg Compiler Plugin (Common)" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + compileOnly(project(":compiler:util")) + compileOnly(project(":core:compiler.common")) +} + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} + +runtimeJar() +javadocJar() +sourcesJar() diff --git a/plugins/noarg/noarg.common/src/org/jetbrains/kotlin/noarg/NoArgPluginNames.kt b/plugins/noarg/noarg.common/src/org/jetbrains/kotlin/noarg/NoArgPluginNames.kt new file mode 100644 index 00000000000..28734cb367d --- /dev/null +++ b/plugins/noarg/noarg.common/src/org/jetbrains/kotlin/noarg/NoArgPluginNames.kt @@ -0,0 +1,16 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.noarg + +object NoArgPluginNames { + val SUPPORTED_PRESETS = mapOf( + "jpa" to listOf("javax.persistence.Entity", "javax.persistence.Embeddable", "javax.persistence.MappedSuperclass") + ) + + const val PLUGIN_ID = "org.jetbrains.kotlin.noarg" + const val ANNOTATION_OPTION_NAME = "annotation" + const val INVOKE_INITIALIZERS_OPTION_NAME = "invokeInitializers" +} diff --git a/prepare/ide-plugin-dependencies/allopen-compiler-plugin-for-ide/build.gradle.kts b/prepare/ide-plugin-dependencies/allopen-compiler-plugin-for-ide/build.gradle.kts index d5cecf60e4e..76d37d76449 100644 --- a/prepare/ide-plugin-dependencies/allopen-compiler-plugin-for-ide/build.gradle.kts +++ b/prepare/ide-plugin-dependencies/allopen-compiler-plugin-for-ide/build.gradle.kts @@ -2,4 +2,9 @@ plugins { kotlin("jvm") } -publishJarsForIde(listOf(":kotlin-allopen-compiler-plugin.k1")) +publishJarsForIde( + listOf( + ":kotlin-allopen-compiler-plugin.common", + ":kotlin-allopen-compiler-plugin.k1", + ) +) diff --git a/prepare/ide-plugin-dependencies/noarg-compiler-plugin-for-ide/build.gradle.kts b/prepare/ide-plugin-dependencies/noarg-compiler-plugin-for-ide/build.gradle.kts index 54d9fa30da3..39e4283c662 100644 --- a/prepare/ide-plugin-dependencies/noarg-compiler-plugin-for-ide/build.gradle.kts +++ b/prepare/ide-plugin-dependencies/noarg-compiler-plugin-for-ide/build.gradle.kts @@ -2,4 +2,10 @@ plugins { kotlin("jvm") } -publishJarsForIde(listOf(":kotlin-noarg-compiler-plugin.k1", ":kotlin-noarg-compiler-plugin.backend")) +publishJarsForIde( + listOf( + ":kotlin-noarg-compiler-plugin.common", + ":kotlin-noarg-compiler-plugin.k1", + ":kotlin-noarg-compiler-plugin.backend" + ) +) diff --git a/settings.gradle b/settings.gradle index 72d783654d6..2ffa9441e67 100644 --- a/settings.gradle +++ b/settings.gradle @@ -189,11 +189,13 @@ include ":benchmarks", ":kotlin-android-extensions-runtime" include ":kotlin-allopen-compiler-plugin", - ":kotlin-allopen-compiler-plugin.cli", + ":kotlin-allopen-compiler-plugin.common", ":kotlin-allopen-compiler-plugin.k1", - ":kotlin-allopen-compiler-plugin.k2" + ":kotlin-allopen-compiler-plugin.k2", + ":kotlin-allopen-compiler-plugin.cli" include ":kotlin-noarg-compiler-plugin", + ":kotlin-noarg-compiler-plugin.common", ":kotlin-noarg-compiler-plugin.k1", ":kotlin-noarg-compiler-plugin.k2", ":kotlin-noarg-compiler-plugin.backend", @@ -693,9 +695,10 @@ project(':kotlin-parcelize-compiler').projectDir = "$rootDir/prepare/parcelize-c project(':kotlin-android-extensions-runtime').projectDir = "$rootDir/plugins/android-extensions/android-extensions-runtime" as File project(':kotlin-allopen-compiler-plugin').projectDir = "$rootDir/plugins/allopen" as File -project(':kotlin-allopen-compiler-plugin.cli').projectDir = "$rootDir/plugins/allopen/allopen.cli" as File +project(':kotlin-allopen-compiler-plugin.common').projectDir = "$rootDir/plugins/allopen/allopen.common" as File project(':kotlin-allopen-compiler-plugin.k1').projectDir = "$rootDir/plugins/allopen/allopen.k1" as File project(':kotlin-allopen-compiler-plugin.k2').projectDir = "$rootDir/plugins/allopen/allopen.k2" as File +project(':kotlin-allopen-compiler-plugin.cli').projectDir = "$rootDir/plugins/allopen/allopen.cli" as File project(':kotlin-lombok-compiler-plugin').projectDir = "$rootDir/plugins/lombok" as File project(':kotlin-lombok-compiler-plugin.cli').projectDir = "$rootDir/plugins/lombok/lombok.cli" as File @@ -704,6 +707,7 @@ project(':kotlin-lombok-compiler-plugin.k2').projectDir = "$rootDir/plugins/lomb project(':kotlin-lombok-compiler-plugin.common').projectDir = "$rootDir/plugins/lombok/lombok.common" as File project(':kotlin-noarg-compiler-plugin').projectDir = "$rootDir/plugins/noarg" as File +project(':kotlin-noarg-compiler-plugin.common').projectDir = "$rootDir/plugins/noarg/noarg.common" as File project(':kotlin-noarg-compiler-plugin.k1').projectDir = "$rootDir/plugins/noarg/noarg.k1" as File project(':kotlin-noarg-compiler-plugin.k2').projectDir = "$rootDir/plugins/noarg/noarg.k2" as File project(':kotlin-noarg-compiler-plugin.backend').projectDir = "$rootDir/plugins/noarg/noarg.backend" as File