12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
- import me.champeau.jmh.JMHTask
- import net.ltgt.gradle.errorprone.errorprone
- plugins {
- id("otel.java-conventions")
- id("otel.jmh-conventions")
- }
- dependencies {
- jmhImplementation("org.springframework.boot:spring-boot-starter-web:2.5.2")
- }
- tasks {
-
-
-
- withType<JavaCompile>().configureEach {
- options.errorprone {
- isEnabled.set(false)
- }
- }
-
- val jmhFork = gradle.startParameter.projectProperties["jmh.fork"]?.toInt()
- val jmhWarmupIterations = gradle.startParameter.projectProperties["jmh.warmupIterations"]?.toInt()
- val jmhIterations = gradle.startParameter.projectProperties["jmh.iterations"]?.toInt()
- val jmhIncludes = gradle.startParameter.projectProperties["jmh.includes"]
-
-
-
-
-
-
-
-
- val jmhStartFlightRecording = gradle.startParameter.projectProperties.get("jmh.startFlightRecording")
- named<JMHTask>("jmh") {
- val shadowTask = project(":javaagent").tasks.named<ShadowJar>("shadowJar").get()
- inputs.files(layout.files(shadowTask))
-
-
- val args = mutableListOf(
- "-javaagent:${shadowTask.archiveFile.get()}",
- "-Dotel.traces.exporter=none",
- "-Dotel.metrics.exporter=none",
-
-
- "-Dotel.instrumentation.http-url-connection.enabled=false"
- )
- if (jmhStartFlightRecording != null) {
- args.addAll(
- listOf(
- "-XX:+FlightRecorder",
- "-XX:StartFlightRecording=$jmhStartFlightRecording",
-
- "-XX:+UnlockDiagnosticVMOptions",
- "-XX:+DebugNonSafepoints"
- )
- )
- }
-
- jvmArgsPrepend.add(args.joinToString(" "))
- if (jmhFork != null) {
- fork.set(jmhFork)
- }
- if (jmhWarmupIterations != null) {
- warmupIterations.set(jmhWarmupIterations)
- }
- if (jmhIterations != null) {
- iterations.set(jmhIterations)
- }
- if (jmhIncludes != null) {
- includes.addAll(jmhIncludes.split(','))
- }
-
- outputs.upToDateWhen { false }
- }
- }
|