Skip to content

Commit 154c14b

Browse files
committed
Add baseVersion(...) DSL helper for JvmTestSuite latest-deps selection
Replaces the 'if (otelProps.testLatestDeps) "latest.release" else "X.Y.Z"' ternary used inside JvmTestSuite dependency blocks with a dedicated DSL helper: baseVersion("4.0.0").orLatest() // -> "latest.release" or "4.0.0" baseVersion("4.0.0").orLatest("5.+") // -> "5.+" or "4.0.0" Implemented as a Project extension registered alongside otelProps. Renames otel.props-conventions to otel.dsl-conventions to reflect the broader role.
1 parent d85abc6 commit 154c14b

16 files changed

Lines changed: 58 additions & 22 deletions

File tree

conventions/src/main/kotlin/io.opentelemetry.instrumentation.base.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import io.opentelemetry.javaagent.muzzle.AcceptableVersions
55

66
plugins {
77
`java-library`
8-
id("otel.props-conventions")
8+
id("otel.dsl-conventions")
99
}
1010

1111
val otelProps = the<OtelPropsExtension>()
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.gradle
7+
8+
import org.gradle.api.Project
9+
10+
/**
11+
* Project extension that produces a version string suitable for use inside `JvmTestSuite`
12+
* dependency blocks (where `library()` / `testLibrary()` are unavailable).
13+
*
14+
* In `build.gradle.kts`:
15+
* ```
16+
* implementation("g:a:${baseVersion("4.0.0").orLatest()}")
17+
* implementation("g:a:${baseVersion("4.0.0").orLatest("5.+")}")
18+
* ```
19+
*
20+
* `orLatest()` resolves to `"latest.release"` when `-PtestLatestDeps=true`, otherwise to the
21+
* base version. `orLatest(constraint)` lets the caller cap the latest-deps resolution to a
22+
* specific range (e.g. `"5.+"`) instead of letting it float to whatever the newest release
23+
* happens to be.
24+
*/
25+
open class BaseVersionExtension(private val project: Project) {
26+
operator fun invoke(baseVersion: String): BaseVersion = BaseVersion(project, baseVersion)
27+
}
28+
29+
class BaseVersion(private val project: Project, private val baseVersion: String) {
30+
fun orLatest(): String = orLatest("latest.release")
31+
32+
fun orLatest(latestConstraint: String): String =
33+
if (project.findProperty("testLatestDeps") == "true") latestConstraint else baseVersion
34+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import io.opentelemetry.instrumentation.gradle.BaseVersionExtension
2+
import io.opentelemetry.instrumentation.gradle.OtelPropsExtension
3+
4+
extensions.create<OtelPropsExtension>("otelProps", project)
5+
extensions.create<BaseVersionExtension>("baseVersion", project)

conventions/src/main/kotlin/otel.errorprone-conventions.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import io.opentelemetry.instrumentation.gradle.OtelPropsExtension
22
import net.ltgt.gradle.errorprone.errorprone
33

44
plugins {
5-
id("otel.props-conventions")
5+
id("otel.dsl-conventions")
66
id("net.ltgt.errorprone")
77
}
88

conventions/src/main/kotlin/otel.java-conventions.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99
checkstyle
1010
idea
1111

12-
id("otel.props-conventions")
12+
id("otel.dsl-conventions")
1313
id("otel.errorprone-conventions")
1414
id("otel.spotless-conventions")
1515
id("org.sonatype.gradle.plugins.scan")

conventions/src/main/kotlin/otel.props-conventions.gradle.kts

Lines changed: 0 additions & 3 deletions
This file was deleted.

instrumentation/aws-sdk/aws-sdk-1.11/library/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ testing {
4343
dependencies {
4444
implementation(project())
4545
implementation(project(":instrumentation:aws-sdk:aws-sdk-1.11:testing"))
46-
val version = if (otelProps.testLatestDeps) "latest.release" else "1.12.80"
46+
val version = baseVersion("1.12.80").orLatest()
4747
implementation("com.amazonaws:aws-java-sdk-secretsmanager:$version")
4848
}
4949
}

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,16 +120,16 @@ testing {
120120
suites {
121121
val s3PresignerTest by registering(JvmTestSuite::class) {
122122
dependencies {
123-
val version = if (otelProps.testLatestDeps) "latest.release" else "2.10.12"
123+
val version = baseVersion("2.10.12").orLatest()
124124
implementation("software.amazon.awssdk:s3:$version")
125125
implementation(project(":instrumentation:aws-sdk:aws-sdk-2.2:library"))
126126
}
127127
}
128128

129129
val s3CrtTest by registering(JvmTestSuite::class) {
130130
dependencies {
131-
implementation("software.amazon.awssdk:s3:" + if (otelProps.testLatestDeps) "latest.release" else "2.27.21")
132-
implementation("software.amazon.awssdk.crt:aws-crt:" + if (otelProps.testLatestDeps) "latest.release" else "0.30.11")
131+
implementation("software.amazon.awssdk:s3:${baseVersion("2.27.21").orLatest()}")
132+
implementation("software.amazon.awssdk.crt:aws-crt:${baseVersion("0.30.11").orLatest()}")
133133
implementation(project(":instrumentation:aws-sdk:aws-sdk-2.2:library"))
134134
implementation("org.testcontainers:testcontainers-localstack")
135135
}
@@ -147,7 +147,7 @@ testing {
147147
dependencies {
148148
implementation(project(":instrumentation:aws-sdk:aws-sdk-2.2:testing"))
149149
// 2.25.63 is the first release with Converse API
150-
val version = if (otelProps.testLatestDeps) "latest.release" else "2.25.63"
150+
val version = baseVersion("2.25.63").orLatest()
151151
implementation("software.amazon.awssdk:bedrockruntime:$version")
152152
}
153153

instrumentation/aws-sdk/aws-sdk-2.2/library/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ testing {
3939
implementation(project())
4040
implementation(project(":instrumentation:aws-sdk:aws-sdk-2.2:testing"))
4141
compileOnly("software.amazon.awssdk:sqs:2.2.0")
42-
val version = if (otelProps.testLatestDeps) "latest.release" else "2.2.0"
42+
val version = baseVersion("2.2.0").orLatest()
4343
implementation("software.amazon.awssdk:aws-core:$version")
4444
implementation("software.amazon.awssdk:aws-json-protocol:$version")
4545
implementation("software.amazon.awssdk:dynamodb:$version")
@@ -51,7 +51,7 @@ testing {
5151
dependencies {
5252
implementation(project())
5353
implementation(project(":instrumentation:aws-sdk:aws-sdk-2.2:testing"))
54-
val version = if (otelProps.testLatestDeps) "latest.release" else "2.17.0"
54+
val version = baseVersion("2.17.0").orLatest()
5555
implementation("software.amazon.awssdk:lambda:$version")
5656
}
5757
}
@@ -60,7 +60,7 @@ testing {
6060
dependencies {
6161
implementation(project())
6262
implementation(project(":instrumentation:aws-sdk:aws-sdk-2.2:testing"))
63-
val version = if (otelProps.testLatestDeps) "latest.release" else "2.25.63"
63+
val version = baseVersion("2.25.63").orLatest()
6464
implementation("software.amazon.awssdk:bedrockruntime:$version")
6565
}
6666
}

instrumentation/reactor/reactor-3.1/javaagent/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ testing {
4848
dependencies {
4949
implementation(project(":instrumentation:reactor:reactor-3.1:library"))
5050
implementation(project(":instrumentation-annotations"))
51-
val version = if (otelProps.testLatestDeps) "latest.release" else "3.1.0.RELEASE"
51+
val version = baseVersion("3.1.0.RELEASE").orLatest()
5252
implementation("io.projectreactor:reactor-test:$version")
5353
}
5454
}

0 commit comments

Comments
 (0)