diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 694f1b77ec2..ae5c6569695 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,7 +25,7 @@ variables: BUILD_JOB_NAME: "build" DEPENDENCY_CACHE_POLICY: pull BUILD_CACHE_POLICY: pull - GRADLE_VERSION: "8.5" # must match gradle-wrapper.properties + GRADLE_VERSION: "8.14.3" # must match gradle-wrapper.properties MAVEN_REPOSITORY_PROXY: "http://artifactual.artifactual.all-clusters.local-dc.fabric.dog:8081/repository/maven-central/" GRADLE_PLUGIN_PROXY: "http://artifactual.artifactual.all-clusters.local-dc.fabric.dog:8081/repository/gradle-plugin-portal-proxy/" BUILDER_IMAGE_VERSION_PREFIX: "v25.06-" # use either an empty string (e.g. "") for latest images or a version followed by a hyphen (e.g. "v25.05-") diff --git a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/CiVisibilityGradleListenerInjector_8_3.java b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/CiVisibilityGradleListenerInjector_8_3.java index 8b228c60190..225004ce44b 100644 --- a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/CiVisibilityGradleListenerInjector_8_3.java +++ b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/CiVisibilityGradleListenerInjector_8_3.java @@ -1,14 +1,23 @@ package datadog.trace.instrumentation.gradle; +import datadog.trace.util.MethodHandles; +import java.lang.invoke.MethodHandle; import java.util.Arrays; +import org.gradle.api.Action; import org.gradle.initialization.ClassLoaderRegistry; import org.gradle.internal.service.DefaultServiceRegistry; +import org.gradle.internal.service.ServiceRegistration; import org.gradle.internal.service.ServiceRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CiVisibilityGradleListenerInjector_8_3 { + private static final MethodHandles METHOD_HANDLES = + new MethodHandles(DefaultServiceRegistry.class.getClassLoader()); + private static final MethodHandle REGISTER_SERVICE = + METHOD_HANDLES.method(DefaultServiceRegistry.class, "register", Action.class); + private static final Logger LOGGER = LoggerFactory.getLogger(CiVisibilityGradleListenerInjector_8_3.class); @@ -21,8 +30,9 @@ public static void injectCiVisibilityGradleListener( Class ciVisibilityGradleListener = CiVisibilityGradleListenerInjector_8_3.loadCiVisibilityGradleListener( classLoaderRegistry); - buildScopeServices.register( - serviceRegistration -> serviceRegistration.add(ciVisibilityGradleListener)); + Action registrationAction = + serviceRegistration -> serviceRegistration.add(ciVisibilityGradleListener); + METHOD_HANDLES.invoke(REGISTER_SERVICE, buildScopeServices, registrationAction); } catch (Exception e) { LOGGER.warn("Could not inject CI Visibility Gradle listener", e); } diff --git a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_3_Instrumentation.java b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_3_Instrumentation.java index 6fd2b89398c..4fb258e70ef 100644 --- a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_3_Instrumentation.java +++ b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleBuildScopeServices_8_3_Instrumentation.java @@ -11,8 +11,8 @@ import java.util.Set; import net.bytebuddy.asm.Advice; import net.bytebuddy.matcher.ElementMatcher; +import org.gradle.internal.service.DefaultServiceRegistry; import org.gradle.internal.service.ServiceRegistry; -import org.gradle.internal.service.scopes.BuildScopeServices; @AutoService(InstrumenterModule.class) public class GradleBuildScopeServices_8_3_Instrumentation extends InstrumenterModule.CiVisibility @@ -55,10 +55,15 @@ public void methodAdvice(MethodTransformer transformer) { public static class Construct { @Advice.OnMethodExit(suppress = Throwable.class) public static void afterConstructor( - @Advice.This final BuildScopeServices buildScopeServices, + @Advice.This final DefaultServiceRegistry buildScopeServices, @Advice.Argument(0) final ServiceRegistry parentServices) { CiVisibilityGradleListenerInjector_8_3.injectCiVisibilityGradleListener( buildScopeServices, parentServices); } } + + @Override + public String muzzleDirective() { + return "skipMuzzle"; + } } diff --git a/dd-java-agent/instrumentation/junit-5.3/build.gradle b/dd-java-agent/instrumentation/junit-5.3/build.gradle index 10e805e4010..20560456845 100644 --- a/dd-java-agent/instrumentation/junit-5.3/build.gradle +++ b/dd-java-agent/instrumentation/junit-5.3/build.gradle @@ -1,4 +1,3 @@ - apply from: "$rootDir/gradle/java.gradle" // JUnit5 5.3.0+ version is needed because of the fix in the TestInheritance test suite names. @@ -33,9 +32,9 @@ dependencies { // versions used below are not the minimum ones that we support, // but the tests need to use them in order to be compliant with Spock 2.x - testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.9.2' - testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.9.2' - testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.9.2' + testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.12.0' + testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.12.0' + testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.12.0' latestDepTestImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '+' latestDepTestImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '+' @@ -44,8 +43,8 @@ dependencies { configurations.matching({ it.name.startsWith('test') }).each({ it.resolutionStrategy { - force group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.9.2' - force group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.9.2' - force group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.9.2' + force group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.12.0' + force group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.12.0' + force group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.12.0' } }) diff --git a/dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/build.gradle b/dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/build.gradle index 53e87629257..2d558b68c21 100644 --- a/dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/build.gradle +++ b/dd-java-agent/instrumentation/junit-5.3/cucumber-junit-5/build.gradle @@ -5,7 +5,7 @@ muzzle { group = 'io.cucumber' module = 'cucumber-junit-platform-engine' versions = '[5.4.0,)' - extraDependency "org.junit.platform:junit-platform-launcher:1.9.2" + extraDependency "org.junit.platform:junit-platform-launcher:1.12.0" } } @@ -19,9 +19,9 @@ dependencies { testImplementation testFixtures(project(':dd-java-agent:agent-ci-visibility')) - testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.9.2' - testImplementation group: 'org.junit.platform', name: 'junit-platform-suite', version: '1.9.2' - testImplementation group: 'org.junit.platform', name: 'junit-platform-suite-engine', version: '1.9.2' + testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.12.0' + testImplementation group: 'org.junit.platform', name: 'junit-platform-suite', version: '1.12.0' + testImplementation group: 'org.junit.platform', name: 'junit-platform-suite-engine', version: '1.12.0' testImplementation group: 'io.cucumber', name: 'cucumber-junit-platform-engine', version: '5.4.0' testImplementation group: 'io.cucumber', name: 'cucumber-java', version: '5.4.0' @@ -33,8 +33,7 @@ dependencies { configurations.matching({ it.name.startsWith('test') }).each({ it.resolutionStrategy { - force group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.9.2' - force group: 'org.junit.platform', name: 'junit-platform-suite', version: '1.9.2' - force group: 'org.junit.platform', name: 'junit-platform-suite', version: '1.9.2' + force group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.12.0' + force group: 'org.junit.platform', name: 'junit-platform-suite', version: '1.12.0' } }) diff --git a/dd-java-agent/instrumentation/junit-5.3/junit-5.8/build.gradle b/dd-java-agent/instrumentation/junit-5.3/junit-5.8/build.gradle index 9ef5699a265..7a236d02e8b 100644 --- a/dd-java-agent/instrumentation/junit-5.3/junit-5.8/build.gradle +++ b/dd-java-agent/instrumentation/junit-5.3/junit-5.8/build.gradle @@ -36,9 +36,9 @@ dependencies { // versions used below are not the minimum ones that we support, // but the tests need to use them in order to be compliant with Spock 2.x - testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.9.2' - testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.9.2' - testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.9.2' + testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.12.0' + testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.12.0' + testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.12.0' latestDepTestImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '+' latestDepTestImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '+' @@ -47,8 +47,8 @@ dependencies { configurations.matching({ it.name.startsWith('test') }).each({ it.resolutionStrategy { - force group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.9.2' - force group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.9.2' - force group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.9.2' + force group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.12.0' + force group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.12.0' + force group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.12.0' } }) diff --git a/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/build.gradle b/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/build.gradle index 3419895640f..40134ed7360 100644 --- a/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/build.gradle +++ b/dd-java-agent/instrumentation/junit-5.3/spock-junit-5/build.gradle @@ -7,7 +7,7 @@ muzzle { group = 'org.spockframework' module = 'spock-core' versions = "[2.0-groovy-${spockGroovyVersion},)" - extraDependency "org.junit.platform:junit-platform-launcher:1.9.2" + extraDependency "org.junit.platform:junit-platform-launcher:1.12.0" } } @@ -22,7 +22,7 @@ dependencies { testImplementation testFixtures(project(':dd-java-agent:agent-ci-visibility')) - testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.9.2' + testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.12.0' testImplementation group: 'org.spockframework', name: 'spock-core', version: "2.2-groovy-${spockGroovyVersion}" // Broken from 2.4: https://datadoghq.atlassian.net/browse/AIDM-163 @@ -31,7 +31,7 @@ dependencies { configurations.matching({ it.name.startsWith('test') }).each({ it.resolutionStrategy { - force group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.9.2' + force group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.12.0' force group: 'org.spockframework', name: 'spock-core', version: "2.2-groovy-${spockGroovyVersion}" } }) diff --git a/dd-java-agent/instrumentation/netty-promise-4/src/test/groovy/NettyProgressivePromiseTest.groovy b/dd-java-agent/instrumentation/netty-promise-4/src/test/groovy/NettyProgressivePromiseTest.groovy index 5caffc12617..cd768b10195 100644 --- a/dd-java-agent/instrumentation/netty-promise-4/src/test/groovy/NettyProgressivePromiseTest.groovy +++ b/dd-java-agent/instrumentation/netty-promise-4/src/test/groovy/NettyProgressivePromiseTest.groovy @@ -1,7 +1,7 @@ import datadog.trace.agent.test.base.AbstractPromiseTest import io.netty.util.concurrent.DefaultEventExecutorGroup -import io.netty.util.concurrent.Future import io.netty.util.concurrent.GenericProgressiveFutureListener +import io.netty.util.concurrent.ProgressiveFuture import io.netty.util.concurrent.ProgressivePromise import spock.lang.Shared @@ -61,15 +61,12 @@ class NettyProgressivePromiseTest extends AbstractPromiseTest - return new GenericProgressiveFutureListener>() { - - @Override - void operationComplete(Future future) throws Exception { + return new GenericProgressiveFutureListener>() { + void operationComplete(ProgressiveFuture future) throws Exception { runUnderTrace("listen$i") {} } - @Override - void operationProgressed(Future future, long progress, long total) throws Exception { + void operationProgressed(ProgressiveFuture future, long progress, long total) throws Exception { runUnderTrace("progress$i") {} } } diff --git a/dd-java-agent/instrumentation/scala/build.gradle b/dd-java-agent/instrumentation/scala/build.gradle index 8620cd7cffa..6042eda2234 100644 --- a/dd-java-agent/instrumentation/scala/build.gradle +++ b/dd-java-agent/instrumentation/scala/build.gradle @@ -27,7 +27,7 @@ final testTasks = scalaVersions.collect { scalaLibrary -> def (major, minor) = version.split('_').collect(Integer.&valueOf) final javaConcatenation = major > 2 || minor > 11 // after 2.11 scala uses java.lang.StringBuilder to perform concatenation - final configuration = configurations.create("${version}Implementation") { + final implementationConfiguration = configurations.create("${version}Implementation") { canBeConsumed = false canBeResolved = false canBeDeclared = true @@ -36,14 +36,14 @@ final testTasks = scalaVersions.collect { scalaLibrary -> canBeConsumed = false canBeResolved = true canBeDeclared = false - extendsFrom(configuration) + extendsFrom(implementationConfiguration) } dependencies { handler -> - handler.add(configuration.name, scalaLibrary) - handler.add(configuration.name, libs.slf4j) + handler.add(implementationConfiguration.name, scalaLibrary) + handler.add(implementationConfiguration.name, libs.slf4j) if (javaConcatenation) { - handler.add(configuration.name, project(':dd-java-agent:instrumentation:java-lang')) + handler.add(implementationConfiguration.name, project(':dd-java-agent:instrumentation:java-lang')) } } @@ -59,7 +59,7 @@ final testTasks = scalaVersions.collect { scalaLibrary -> .filter { !it.toString().contains('scala-library') } // exclude default scala-library .minus(files(sourceSets.test.scala.classesDirectory)) // exclude default /build/classes/scala/test folder .plus(customSourceSet.output.classesDirs) // add /build/classes/scala/${version} folder - .plus(classPathConfiguration) // add new scala-library configuration + .plus(classPathConfiguration) // add new scala-library configuration systemProperty('uses.java.concat', javaConcatenation) dependsOn(tasks.named("compile${version.capitalize()}Scala")) group = 'verification' diff --git a/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleLauncherSmokeTest.groovy b/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleLauncherSmokeTest.groovy index 0fe155ab45e..13f017d4ae3 100644 --- a/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleLauncherSmokeTest.groovy +++ b/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleLauncherSmokeTest.groovy @@ -60,7 +60,7 @@ class GradleLauncherSmokeTest extends AbstractGradleTest { ]) String[] command = ["./gradlew", "--no-daemon", "--info"] if (gradleDaemonCmdLineParams) { - command += "-Dorg.gradle.jvmargs=$gradleDaemonCmdLineParams" + command += "-Dorg.gradle.jvmargs=$gradleDaemonCmdLineParams".toString() } return shellCommandExecutor.executeCommand(IOUtils::readFully, command) } diff --git a/dd-smoke-tests/log-injection/build.gradle b/dd-smoke-tests/log-injection/build.gradle index 7848f8c1c24..5c145372b46 100644 --- a/dd-smoke-tests/log-injection/build.gradle +++ b/dd-smoke-tests/log-injection/build.gradle @@ -7,15 +7,6 @@ plugins { apply from: "$rootDir/gradle/java.gradle" description = 'Log injection Smoke Tests.' -// 3.0.24 added support for JDK 24 via ASM 9.7.1 -// https://groovy-lang.org/changelogs/changelog-3.0.24.html -// https://asm.ow2.io/versions.html#9.7.1 -configurations.all { - resolutionStrategy { - force 'org.codehaus.groovy:groovy-all:3.0.24' - } -} - configurations { jcl log4j1 diff --git a/gradle/java_no_deps.gradle b/gradle/java_no_deps.gradle index 895ff430627..8090a55e618 100644 --- a/gradle/java_no_deps.gradle +++ b/gradle/java_no_deps.gradle @@ -1,3 +1,4 @@ +import org.gradle.api.internal.provider.PropertyFactory import org.gradle.jvm.toolchain.internal.SpecificInstallationToolchainSpec apply plugin: 'java-library' @@ -175,7 +176,7 @@ project.afterEvaluate { def testJvmHomePath = getJavaHomePath(testJvmHome) // Only change test JVM if it's not the one we are running the gradle build with if (currentJavaHomePath != testJvmHomePath) { - def jvmSpec = new SpecificInstallationToolchainSpec(project.getObjects(), file(testJvmHomePath)) + def jvmSpec = new SpecificInstallationToolchainSpec(project.services.get(PropertyFactory), file(testJvmHomePath)) // The provider always says that a value is present so we need to wrap it for proper error messages Provider launcher = providers.provider { try { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 22a1ddc41e9..e0b2ac48c07 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ okhttp-legacy = "[3.0,3.12.12]" # 3.12.x is last version to support Java7 okio = "1.17.6" # Datadog fork spock = "2.3-groovy-3.0" -groovy = "3.0.17" +groovy = "3.0.24" junit5 = "5.9.2" logback = "1.2.3" bytebuddy = "1.17.5" diff --git a/gradle/test-suites.gradle b/gradle/test-suites.gradle index 2e4f7f56421..2ffd077fd19 100644 --- a/gradle/test-suites.gradle +++ b/gradle/test-suites.gradle @@ -1,6 +1,6 @@ import org.gradle.api.plugins.jvm.JvmTestSuite -ext.addTestSuiteExtendingForDir = (String testSuiteName, String parentSuiteName, String dirName) -> { +ext.addTestSuiteExtendingForDir = { testSuiteName, parentSuiteName, dirName -> testing { suites { create(testSuiteName, JvmTestSuite, { @@ -27,16 +27,12 @@ ext.addTestSuiteExtendingForDir = (String testSuiteName, String parentSuiteName, } } } - dependencies { - implementation project(project.path) - } }) } } configurations { - def extendConf = { - String suffix -> + def extendConf = { suffix -> def config = named("${testSuiteName}${suffix}") def parentConfig = named("${parentSuiteName}${suffix}") if (parentConfig.present) { @@ -65,12 +61,19 @@ ext.addTestSuiteExtendingForDir = (String testSuiteName, String parentSuiteName, from(sourceSets.named(testSuiteName).get().output) archiveClassifier = testSuiteName } + + // The project dependency definition cannot sit inside previous blocks. As of Gradle 8.8, configurations cannot be mutated after they have been used as part of the dependency graph. + // See: https://docs.gradle.org/current/userguide/upgrading_version_8.html#mutate_configuration_after_locking + // And related issue: https://github.com/gradle/gradle/issues/28867 + project.dependencies { + "${testSuiteName}Implementation"(project(project.path)) + } } -ext.addTestSuiteForDir = (String testSuiteName, String dirName) -> { +ext.addTestSuiteForDir = { testSuiteName, dirName -> ext.addTestSuiteExtendingForDir(testSuiteName, 'test', dirName) } -ext.addTestSuite = (String testSuiteName) -> { +ext.addTestSuite = { testSuiteName -> ext.addTestSuiteForDir(testSuiteName, testSuiteName) } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7f93135c49b..1b33c55baab 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 74bda5be9a9..8c8a94a0f2e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -2,8 +2,8 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists # Please note that the version specific cache directory in # .gitlab-ci.yml needs to match this version. -distributionSha256Sum=c16d517b50dd28b3f5838f0e844b7520b8f1eb610f2f29de7e4e04a1b7c9c79b -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip +distributionSha256Sum=bd71102213493060956ec229d946beee57158dbd89d0e62b91bca0fa2c5f3531 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a42690..23d15a93670 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -112,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -203,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -211,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 6689b85beec..5eed7ee8452 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,22 +59,22 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/telemetry/src/test/groovy/datadog/telemetry/metric/MetricPeriodicActionTest.groovy b/telemetry/src/test/groovy/datadog/telemetry/metric/MetricPeriodicActionTest.groovy index d9e757b00e8..0bc65695f55 100644 --- a/telemetry/src/test/groovy/datadog/telemetry/metric/MetricPeriodicActionTest.groovy +++ b/telemetry/src/test/groovy/datadog/telemetry/metric/MetricPeriodicActionTest.groovy @@ -157,15 +157,15 @@ class MetricPeriodicActionTest extends Specification { class DefaultMetricPeriodicAction extends MetricPeriodicAction { - private final MetricCollector collector + private final MetricCollector collector - DefaultMetricPeriodicAction(@NonNull final MetricCollector collector) { + DefaultMetricPeriodicAction(@NonNull final MetricCollector collector) { this.collector = collector } @Override @NonNull - MetricCollector collector() { + MetricCollector collector() { return collector } }