Skip to content

Commit 0893e4c

Browse files
committed
chore: Tweak some API to use kotlin friendly functions
1 parent 88732c5 commit 0893e4c

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

buildSrc/src/main/kotlin/datadog/gradle/plugin/csi/CallSiteInstrumentationExtension.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@ abstract class CallSiteInstrumentationExtension @Inject constructor(
4040
/**
4141
* The generated call site source file suffix (#CALL_SITE_CLASS_SUFFIX by default).
4242
*/
43-
val suffix: Property<String> = objectFactory.property(String::class.java).convention(CALL_SITE_CLASS_SUFFIX)
43+
val suffix: Property<String> = objectFactory.property<String>().convention(CALL_SITE_CLASS_SUFFIX)
4444

4545
/**
4646
* The reporters to use after call site instrumenter run (only #CALL_SITE_CONSOLE_REPORTER and #CALL_SITE_ERROR_CONSOLE_REPORTER supported for now).
4747
*/
48-
val reporters: ListProperty<String> = objectFactory.listProperty(String::class.java).convention(
48+
val reporters: ListProperty<String> = objectFactory.listProperty<String>().convention(
4949
listOf(
5050
CALL_SITE_ERROR_CONSOLE_REPORTER
5151
)
@@ -65,5 +65,5 @@ abstract class CallSiteInstrumentationExtension @Inject constructor(
6565
* The JVM arguments to run the call site instrumenter.
6666
*/
6767
val jvmArgs: ListProperty<String> =
68-
objectFactory.listProperty(String::class.java).convention(listOf("-Xmx128m", "-Xms64m"))
68+
objectFactory.listProperty<String>().convention(listOf("-Xmx128m", "-Xms64m"))
6969
}

buildSrc/src/main/kotlin/datadog/gradle/plugin/csi/CallSiteInstrumentationPlugin.kt

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.gradle.api.GradleException
44
import org.gradle.api.JavaVersion
55
import org.gradle.api.Plugin
66
import org.gradle.api.Project
7+
import org.gradle.api.file.FileSystemOperations
78
import org.gradle.api.plugins.JavaPluginExtension
89
import org.gradle.api.tasks.JavaExec
910
import org.gradle.api.tasks.SourceSet
@@ -13,6 +14,11 @@ import org.gradle.api.tasks.testing.Test
1314
import org.gradle.jvm.tasks.Jar
1415
import org.gradle.jvm.toolchain.JavaLanguageVersion
1516
import org.gradle.jvm.toolchain.JavaToolchainService
17+
import org.gradle.kotlin.dsl.create
18+
import org.gradle.kotlin.dsl.getByType
19+
import org.gradle.kotlin.dsl.named
20+
import org.gradle.kotlin.dsl.register
21+
import org.gradle.kotlin.dsl.withType
1622
import java.io.File
1723
import java.nio.file.Files
1824
import java.nio.file.Paths
@@ -26,7 +32,7 @@ abstract class CallSiteInstrumentationPlugin : Plugin<Project>{
2632

2733
override fun apply(project: Project) {
2834
// Create plugin extension
29-
val extension = project.extensions.create("csi", CallSiteInstrumentationExtension::class.java)
35+
val extension = project.extensions.create<CallSiteInstrumentationExtension>("csi")
3036
project.afterEvaluate {
3137
configureSourceSets(project, extension)
3238
createTasks(project, extension)
@@ -48,7 +54,7 @@ abstract class CallSiteInstrumentationPlugin : Plugin<Project>{
4854
extendsFrom(project.configurations.named(mainSourceSet.compileClasspathConfigurationName).get())
4955
}
5056

51-
project.tasks.named(csiSourceSet.getCompileTaskName("java"), AbstractCompile::class.java) {
57+
project.tasks.named<AbstractCompile>(csiSourceSet.getCompileTaskName("java")) {
5258
sourceCompatibility = JavaVersion.VERSION_1_8.toString()
5359
targetCompatibility = JavaVersion.VERSION_1_8.toString()
5460
}
@@ -61,7 +67,7 @@ abstract class CallSiteInstrumentationPlugin : Plugin<Project>{
6167
project.dependencies.add("testImplementation", csiSourceSet.output)
6268

6369
// include classes in final JAR
64-
project.tasks.named("jar", Jar::class.java) {
70+
project.tasks.named<Jar>("jar") {
6571
from(csiSourceSet.output.classesDirs)
6672
}
6773
}
@@ -86,19 +92,21 @@ abstract class CallSiteInstrumentationPlugin : Plugin<Project>{
8692
}
8793

8894
private fun getSourceSets(project: Project): SourceSetContainer {
89-
return project.extensions.getByType(JavaPluginExtension::class.java).sourceSets
95+
return project.extensions.getByType<JavaPluginExtension>().sourceSets
9096
}
9197

9298
private fun createTasks(project: Project, extension: CallSiteInstrumentationExtension) {
9399
registerGenerateCallSiteTask(project, extension, "compileJava")
94100
val targetFolder = extension.targetFolder.get().asFile
95-
project.tasks.withType(AbstractCompile::class.java).matching {
101+
102+
project.tasks.withType<AbstractCompile>().matching {
96103
task -> task.name.startsWith("compileTest")
97104
}.configureEach {
98105
inputs.dir(extension.targetFolder)
99106
classpath += project.files(targetFolder)
100107
}
101-
project.tasks.withType(Test::class.java).configureEach {
108+
109+
project.tasks.withType<Test>().configureEach {
102110
inputs.dir(extension.targetFolder)
103111
classpath += project.files(targetFolder)
104112
}
@@ -123,23 +131,25 @@ abstract class CallSiteInstrumentationPlugin : Plugin<Project>{
123131
"libs",
124132
"call-site-instrumentation-plugin-all.jar"
125133
).toFile()
126-
val compileTask = project.tasks.named(compileTaskName, AbstractCompile::class.java)
127-
val callSiteGeneratorTask = project.tasks.register(taskName, JavaExec::class.java) {
134+
val compileTask = project.tasks.named<AbstractCompile>(compileTaskName)
135+
val callSiteGeneratorTask = project.tasks.register<JavaExec>(taskName) {
128136
// Task description
129137
group = "call site instrumentation"
130-
description = "Generates call sites from ${compileTaskName}"
138+
description = "Generates call sites from $compileTaskName"
131139
// Task input & output
132140
val output = extension.targetFolder
133141
val inputProvider = compileTask.map { it.destinationDirectory.get() }
134142
inputs.dir(inputProvider)
135143
outputs.dir(output)
144+
136145
// JavaExec configuration
137146
if (extension.javaVersion.isPresent) {
138147
configureLanguage(this, extension.javaVersion.get())
139148
}
140149
jvmArgumentProviders.add({ extension.jvmArgs.get() })
141150
classpath(pluginJarFile)
142151
mainClass.set(CALL_SITE_INSTRUMENTER_MAIN_CLASS)
152+
143153
// Write the call site instrumenter arguments into a temporary file
144154
doFirst {
145155
val programClassPath = getProgramClasspath(project).map { it.toString() }
@@ -179,12 +189,12 @@ abstract class CallSiteInstrumentationPlugin : Plugin<Project>{
179189
private fun getProgramClasspath(project: Project): List<File> {
180190
val classpath = ArrayList<File>()
181191
// 1. Compilation outputs - exclude latestDep and forked test variants
182-
project.tasks.withType(AbstractCompile::class.java)
192+
project.tasks.withType<AbstractCompile>()
183193
.filter { task -> !task.name.contains("LatestDep", ignoreCase = true) && !task.name.contains("Forked", ignoreCase = true) }
184194
.map { it.destinationDirectory.asFile.get() }
185195
.forEach(classpath::add)
186196
// 2. Compile time dependencies - exclude latestDep and forked test variants
187-
project.tasks.withType(AbstractCompile::class.java)
197+
project.tasks.withType<AbstractCompile>()
188198
.filter { task -> !task.name.contains("LatestDep", ignoreCase = true) && !task.name.contains("Forked", ignoreCase = true) }
189199
.flatMap { it.classpath }
190200
.forEach(classpath::add)

0 commit comments

Comments
 (0)