Skip to content

Commit c0a3140

Browse files
committed
Added gradle plugin and fixed package naming errors
1 parent 2a878f1 commit c0a3140

File tree

30 files changed

+251
-57
lines changed

30 files changed

+251
-57
lines changed

Diff for: build.gradle.kts

+8-5
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ plugins {
2121
idea
2222
kotlin version Versions.kotlin apply false
2323
buildconfig version Versions.buildconfig apply false
24+
25+
// Needs to be installed in the local maven repository
26+
id("org.jetbrains.kotlinx.spark.api") version Versions.project apply false
2427
}
2528

2629
group = Versions.groupID
@@ -127,17 +130,17 @@ subprojects {
127130
val projectVersion = Versions.project
128131
val groupId = Versions.groupID
129132

130-
val compilerPluginId = "$groupId.compilerPlugin"
131-
132133
val compilerPluginArtifactId = compilerPlugin.name
133134
val gradlePluginArtifactId = gradlePlugin.name
134135

135-
val defaultSparkifyFqName = "$groupId.plugin.annotations.Sparkify"
136-
val defaultColumnNameFqName = "$groupId.plugin.annotations.ColumnName"
136+
val compilerPluginId = "$groupId.api"
137+
138+
val defaultSparkifyFqName = "$groupId.api.plugin.annotations.Sparkify"
139+
val defaultColumnNameFqName = "$groupId.api.plugin.annotations.ColumnName"
137140

138141
val projectRoot = project.rootDir.absolutePath
139142

140-
packageName(groupId)
143+
packageName("$groupId.api")
141144
className("Artifacts")
142145

143146
buildConfigField("compilerPluginId", compilerPluginId)

Diff for: buildSrc/build.gradle.kts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import org.gradle.kotlin.dsl.`kotlin-dsl`
2-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
3-
41
plugins {
52
`kotlin-dsl`
63
}
74

85
repositories {
96
mavenCentral()
7+
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap")
108
}

Diff for: buildSrc/src/main/kotlin/Dependencies.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
object Dependencies {
1+
object Dependencies : Dsl<Dependencies> {
22
inline val kotlinStdLib get() = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${Versions.kotlin}"
33
inline val reflect get() = "org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlin}"
44
inline val scalaLibrary get() = "org.scala-lang:scala-library:${Versions.scala}"
@@ -35,6 +35,7 @@ object Dependencies {
3535
inline val kotlinScriptRuntime get() = "org.jetbrains.kotlin:kotlin-script-runtime:${Versions.kotlin}"
3636
inline val kotlinAnnotationsJvm get() = "org.jetbrains.kotlin:kotlin-annotations-jvm:${Versions.kotlin}"
3737
inline val kotlinCompilerInternalTestFramework get() = "org.jetbrains.kotlin:kotlin-compiler-internal-test-framework:${Versions.kotlin}"
38+
inline val kotlinGradlePlugin get() = "org.jetbrains.kotlin:kotlin-gradle-plugin"
3839
}
3940

4041

Diff for: buildSrc/src/main/kotlin/Helpers.kt

+10-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import org.gradle.api.artifacts.Dependency
22
import org.gradle.api.artifacts.ProjectDependency
33
import org.gradle.api.artifacts.dsl.DependencyHandler
44

5+
interface Dsl<T> {
6+
operator fun invoke(block: T.() -> Unit) = block(this as T)
7+
}
8+
59
fun DependencyHandler.testApi(vararg dependencyNotations: Any): List<Dependency?> =
610
dependencyNotations.map {
711
add("testApi", it)
@@ -33,10 +37,15 @@ fun DependencyHandler.runtimeOnly(vararg dependencyNotations: Any): List<Depende
3337
add("runtimeOnly", it)
3438
}
3539

40+
fun DependencyHandler.compileOnly(vararg dependencyNotations: Any): List<Dependency?> =
41+
dependencyNotations.map {
42+
add("compileOnly", it)
43+
}
44+
3645
fun DependencyHandler.project(
3746
path: String,
3847
configuration: String? = null
3948
): ProjectDependency = project(
4049
if (configuration != null) mapOf("path" to path, "configuration" to configuration)
4150
else mapOf("path" to path)
42-
) as ProjectDependency
51+
) as ProjectDependency

Diff for: buildSrc/src/main/kotlin/Plugins.kt

+5
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,8 @@ inline val PluginDependenciesSpec.jupyter
3636
inline val PluginDependenciesSpec.buildconfig
3737
get() = id("com.github.gmazzo.buildconfig")
3838

39+
inline val PluginDependenciesSpec.gradlePublishPlugin
40+
get() = id("com.gradle.plugin-publish") version Versions.gradlePublishPlugin
41+
42+
inline val PluginDependenciesSpec.shadow
43+
get() = id("com.github.johnrengelman.shadow") version Versions.shadow

Diff for: buildSrc/src/main/kotlin/Projects.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.gradle.api.Project
44

5-
object Projects {
5+
object Projects : Dsl<Projects> {
66

77
inline fun Project.searchProject(name: String): Project =
88
rootProject

Diff for: buildSrc/src/main/kotlin/Versions.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
object Versions {
2-
const val project = "1.2.5-SNAPSHOT"
1+
object Versions : Dsl<Versions> {
2+
const val project = "2.0.0-SNAPSHOT"
33
const val groupID = "org.jetbrains.kotlinx.spark"
44
const val kotlin = "2.0.0-Beta5"
55
const val jvmTarget = "8"
@@ -13,7 +13,9 @@ object Versions {
1313
inline val sparkConnect get() = System.getProperty("sparkConnect", "false").toBoolean()
1414
const val jupyter = "0.12.0-32-1"
1515

16+
const val gradlePublishPlugin = "1.1.0"
1617
const val kotest = "5.5.4"
18+
const val shadow = "8.1.1"
1719

1820
const val buildconfig = "5.3.5"
1921

Diff for: compiler-plugin/build.gradle.kts

+21-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
12
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
23

34
plugins {
45
java
56
kotlin
6-
mavenPublishBase
7+
mavenPublish
78
buildconfig
89
}
910

@@ -24,7 +25,7 @@ sourceSets {
2425
}
2526

2627
dependencies {
27-
with(Dependencies) {
28+
Dependencies {
2829
compileOnly(kotlinCompiler)
2930

3031
testRuntimeOnly(
@@ -62,17 +63,29 @@ tasks.test {
6263
}
6364

6465
tasks.withType<KotlinCompile>().configureEach {
65-
kotlinOptions {
66-
languageVersion = "2.0"
67-
freeCompilerArgs = freeCompilerArgs +
68-
"-opt-in=org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi" +
69-
"-Xcontext-receivers"
66+
compilerOptions {
67+
freeCompilerArgs.addAll(
68+
"-opt-in=org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi",
69+
"-Xcontext-receivers"
70+
)
71+
languageVersion = KotlinVersion.KOTLIN_2_0
72+
}
73+
}
74+
75+
kotlin {
76+
jvmToolchain {
77+
languageVersion = JavaLanguageVersion.of(8)
78+
}
79+
}
80+
java {
81+
toolchain {
82+
languageVersion = JavaLanguageVersion.of(8)
7083
}
7184
}
7285

7386
val generateTests by tasks.creating(JavaExec::class) {
7487
classpath = sourceSets.test.get().runtimeClasspath
75-
mainClass.set("org.jetbrains.kotlinx.spark.compilerPlugin.GenerateTestsKt")
88+
mainClass.set("org.jetbrains.kotlinx.spark.api.compilerPlugin.GenerateTestsKt")
7689
}
7790

7891
val compileTestKotlin by tasks.getting {

Diff for: compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/SimplePluginRegistrar.kt renamed to compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/SimplePluginRegistrar.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin
22

33
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
44

Diff for: compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/SparkifyCommandLineProcessor.kt renamed to compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/SparkifyCommandLineProcessor.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin
22

33
import org.jetbrains.kotlin.compiler.plugin.AbstractCliOption
44
import org.jetbrains.kotlin.compiler.plugin.CliOption
55
import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
66
import org.jetbrains.kotlin.config.CompilerConfiguration
77
import org.jetbrains.kotlin.config.CompilerConfigurationKey
8-
import org.jetbrains.kotlinx.spark.Artifacts
8+
import org.jetbrains.kotlinx.spark.api.Artifacts
99

1010
open class SparkifyCommandLineProcessor : CommandLineProcessor {
1111

Diff for: compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/SparkifyCompilerPluginRegistrar.kt renamed to compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/SparkifyCompilerPluginRegistrar.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin
22

33
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
44
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
55
import org.jetbrains.kotlin.config.CompilerConfiguration
6-
import org.jetbrains.kotlinx.spark.Artifacts
7-
import org.jetbrains.kotlinx.spark.compilerPlugin.ir.SparkifyIrGenerationExtension
6+
import org.jetbrains.kotlinx.spark.api.Artifacts
7+
import org.jetbrains.kotlinx.spark.api.compilerPlugin.ir.SparkifyIrGenerationExtension
88

99
open class SparkifyCompilerPluginRegistrar: CompilerPluginRegistrar() {
1010
init {

Diff for: compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/ir/DataClassPropertyAnnotationGenerator.kt renamed to compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/ir/DataClassPropertyAnnotationGenerator.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin.ir
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin.ir
22

33
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
44
import org.jetbrains.kotlin.ir.IrElement

Diff for: compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/ir/SparkifyIrGenerationExtension.kt renamed to compiler-plugin/src/main/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/ir/SparkifyIrGenerationExtension.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin.ir
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin.ir
22

33
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
44
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
55
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
66
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
7+
import org.jetbrains.kotlinx.spark.api.compilerPlugin.ir.DataClassPropertyAnnotationGenerator
78

89
class SparkifyIrGenerationExtension(
910
private val sparkifyAnnotationFqNames: List<String>,
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
org.jetbrains.kotlinx.spark.compilerPlugin.SparkifyCommandLineProcessor
1+
org.jetbrains.kotlinx.spark.api.compilerPlugin.SparkifyCommandLineProcessor
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
org.jetbrains.kotlinx.spark.compilerPlugin.SparkifyCompilerPluginRegistrar
1+
org.jetbrains.kotlinx.spark.api.compilerPlugin.SparkifyCompilerPluginRegistrar

Diff for: compiler-plugin/src/test-gen/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/runners/BoxTestGenerated.java renamed to compiler-plugin/src/test-gen/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/runners/BoxTestGenerated.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22

3-
package org.jetbrains.kotlinx.spark.compilerPlugin.runners;
3+
package org.jetbrains.kotlinx.spark.api.compilerPlugin.runners;
44

55
import com.intellij.testFramework.TestDataPath;
66
import org.jetbrains.kotlin.test.util.KtTestUtil;
@@ -11,7 +11,7 @@
1111
import java.io.File;
1212
import java.util.regex.Pattern;
1313

14-
/** This class is generated by {@link org.jetbrains.kotlinx.spark.compilerPlugin.GenerateTestsKt}. DO NOT MODIFY MANUALLY */
14+
/** This class is generated by {@link org.jetbrains.kotlinx.spark.api.compilerPlugin.GenerateTestsKt}. DO NOT MODIFY MANUALLY */
1515
@SuppressWarnings("all")
1616
@TestMetadata("/mnt/data/Projects/kotlin-spark-api/compiler-plugin/src/test/resources/testData/box")
1717
@TestDataPath("$PROJECT_ROOT")

Diff for: compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/GenerateTests.kt renamed to compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/GenerateTests.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin
22

33
import org.jetbrains.kotlin.generators.generateTestGroupSuiteWithJUnit5
4-
import org.jetbrains.kotlinx.spark.Artifacts
5-
import org.jetbrains.kotlinx.spark.compilerPlugin.runners.AbstractBoxTest
4+
import org.jetbrains.kotlinx.spark.api.Artifacts
5+
import org.jetbrains.kotlinx.spark.api.compilerPlugin.runners.AbstractBoxTest
66

77
fun main() {
88
generateTestGroupSuiteWithJUnit5 {

Diff for: compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/runners/AbstractBoxTest.kt renamed to compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/runners/AbstractBoxTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin.runners
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin.runners
22

33
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
44
import org.jetbrains.kotlin.test.FirParser

Diff for: compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/runners/AbstractDiagnosticTest.kt renamed to compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/runners/AbstractDiagnosticTest.kt

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin.runners
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin.runners
22

33
import org.jetbrains.kotlin.test.FirParser
44
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
5-
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
6-
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP
75
import org.jetbrains.kotlin.test.directives.configureFirParser
8-
import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration
96
import org.jetbrains.kotlin.test.services.EnvironmentBasedStandardLibrariesPathProvider
107
import org.jetbrains.kotlin.test.services.KotlinStandardLibrariesPathProvider
118

Diff for: compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/runners/BaseTestRunner.kt renamed to compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/runners/BaseTestRunner.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin.runners
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin.runners
22

33
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
44
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
@@ -8,7 +8,7 @@ import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
88
import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration
99
import org.jetbrains.kotlin.test.services.EnvironmentBasedStandardLibrariesPathProvider
1010
import org.jetbrains.kotlin.test.services.KotlinStandardLibrariesPathProvider
11-
import org.jetbrains.kotlinx.spark.compilerPlugin.services.ExtensionRegistrarConfigurator
11+
import org.jetbrains.kotlinx.spark.api.compilerPlugin.services.ExtensionRegistrarConfigurator
1212
import org.junit.jupiter.api.BeforeAll
1313

1414
abstract class BaseTestRunner : AbstractKotlinCompilerTest() {

Diff for: compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/compilerPlugin/services/ExtensionRegistrarConfigurator.kt renamed to compiler-plugin/src/test/kotlin/org/jetbrains/kotlinx/spark/api/compilerPlugin/services/ExtensionRegistrarConfigurator.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package org.jetbrains.kotlinx.spark.compilerPlugin.services
1+
package org.jetbrains.kotlinx.spark.api.compilerPlugin.services
22

33
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
44
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
55
import org.jetbrains.kotlin.config.CompilerConfiguration
66
import org.jetbrains.kotlin.test.model.TestModule
77
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
88
import org.jetbrains.kotlin.test.services.TestServices
9-
import org.jetbrains.kotlinx.spark.compilerPlugin.ir.SparkifyIrGenerationExtension
9+
import org.jetbrains.kotlinx.spark.api.compilerPlugin.ir.SparkifyIrGenerationExtension
1010

1111
class ExtensionRegistrarConfigurator(testServices: TestServices) : EnvironmentConfigurator(testServices) {
1212
override fun CompilerPluginRegistrar.ExtensionStorage.registerCompilerExtensions(

Diff for: examples/build.gradle.kts

+14-6
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,34 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4+
// Needs to be installed in the local maven repository
5+
id("org.jetbrains.kotlinx.spark.api")
46
kotlin
5-
idea
67
}
78

9+
//kotlinSparkApi {
10+
// enabled = true
11+
// sparkifyAnnotationFqNames = listOf(
12+
// "org.jetbrains.kotlinx.spark.api.plugin.annotations.Sparkify",
13+
// )
14+
//}
15+
816
group = Versions.groupID
917
version = Versions.project
1018

1119
repositories {
20+
mavenLocal()
1221
mavenCentral()
1322
}
1423

1524
dependencies {
16-
17-
with(Projects) {
25+
Projects {
1826
implementation(
1927
kotlinSparkApi,
2028
)
2129
}
2230

23-
with(Dependencies) {
31+
Dependencies {
2432

2533
// https://github.com/FasterXML/jackson-bom/issues/52
2634
if (Versions.spark == "3.3.1") implementation(jacksonDatabind)
@@ -31,12 +39,12 @@ dependencies {
3139
sparkStreaming,
3240
sparkStreamingKafka,
3341
)
34-
3542
}
3643
}
3744

3845
kotlin {
46+
jvmToolchain(8)
3947
jvmToolchain {
4048
languageVersion = JavaLanguageVersion.of(Versions.jvmTarget)
4149
}
42-
}
50+
}

0 commit comments

Comments
 (0)