diff --git a/README.md b/README.md index 73a813f..71c7ad9 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ This repository contains helpers for working with the [Instrumentation](https:// ## Features * [`ClassInjector`](class-inject/src/main/java/datadog/instrument/classinject/ClassInjector.java) - * Supports injection of auxiliary classes, even in the bootstrap class-loader + * Supports injection of auxiliary classes, even on the bootstrap classpath * [`ClassFile`](class-match/src/main/java/datadog/instrument/classmatch/ClassFile.java) * Optimized class-file parser for extracting the header or outline of a class * [`ClassLoaderValue`](utils/src/main/java/datadog/instrument/utils/ClassLoaderValue.java) diff --git a/build.gradle.kts b/build.gradle.kts index 4f01f12..19c1886 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,7 +23,7 @@ java { withSourcesJar() } -val embed by configurations.creating { +val embed = configurations.create("embed") { isTransitive = false } diff --git a/buildSrc/src/main/kotlin/instrument-glue.gradle.kts b/buildSrc/src/main/kotlin/instrument-glue.gradle.kts index 64d16f7..0a12e92 100644 --- a/buildSrc/src/main/kotlin/instrument-glue.gradle.kts +++ b/buildSrc/src/main/kotlin/instrument-glue.gradle.kts @@ -17,7 +17,7 @@ sourceSets { } } -val glueImplementation by configurations +val glueImplementation = configurations.getByName("glueImplementation") dependencies { glueImplementation(libs.asm) glueImplementation(libs.spotbugs.annotations) @@ -25,7 +25,7 @@ dependencies { } val generateGlue = tasks.register("generateGlue") { - val glue: List by project.extra + @Suppress("UNCHECKED_CAST") val glue = project.extra["glue"] as List // generate glue files under a consistent packaging location val resourcePath = generatedGlueResources.dir("datadog/instrument/glue/") diff --git a/buildSrc/src/main/kotlin/java-common.gradle.kts b/buildSrc/src/main/kotlin/java-common.gradle.kts index b63e2bc..9b818d2 100644 --- a/buildSrc/src/main/kotlin/java-common.gradle.kts +++ b/buildSrc/src/main/kotlin/java-common.gradle.kts @@ -83,7 +83,7 @@ spotbugs { } // dependency configuration to help pull sample bytecode in for testing -val sampleBytecode by configurations.creating { +val sampleBytecode = configurations.create("sampleBytecode") { isTransitive = false } diff --git a/class-inject/src/main/java/datadog/instrument/classinject/package-info.java b/class-inject/src/main/java/datadog/instrument/classinject/package-info.java index dac013b..1c7a0a3 100644 --- a/class-inject/src/main/java/datadog/instrument/classinject/package-info.java +++ b/class-inject/src/main/java/datadog/instrument/classinject/package-info.java @@ -1,3 +1,4 @@ +/** Supports injection of auxiliary classes, even on the bootstrap classpath. */ @ParametersAreNonnullByDefault package datadog.instrument.classinject; diff --git a/class-match/build.gradle.kts b/class-match/build.gradle.kts index 776bad8..d405807 100644 --- a/class-match/build.gradle.kts +++ b/class-match/build.gradle.kts @@ -6,7 +6,7 @@ dependencies { implementation(project(":utils")) sampleBytecode("org.ow2.asm:asm-test:9.10.1") - sampleBytecode("org.springframework:spring-web:7.0.7") + sampleBytecode("org.springframework:spring-web:7.0.8") jmh(project(":testing")) jmh(libs.asm) } diff --git a/class-match/src/main/java/datadog/instrument/classmatch/package-info.java b/class-match/src/main/java/datadog/instrument/classmatch/package-info.java index bf3b293..54356f3 100644 --- a/class-match/src/main/java/datadog/instrument/classmatch/package-info.java +++ b/class-match/src/main/java/datadog/instrument/classmatch/package-info.java @@ -1,3 +1,4 @@ +/** Supports matching classes by name, hierarchy, annotations, methods, or fields. */ @ParametersAreNonnullByDefault package datadog.instrument.classmatch; diff --git a/field-inject/build.gradle.kts b/field-inject/build.gradle.kts index 251063c..ed5f91a 100644 --- a/field-inject/build.gradle.kts +++ b/field-inject/build.gradle.kts @@ -3,5 +3,5 @@ plugins { } dependencies { - jmh (group = "com.blogspot.mydailyjava", name = "weak-lock-free", version = "0.18") + jmh("com.blogspot.mydailyjava:weak-lock-free:0.18") } diff --git a/field-inject/src/main/java/datadog/instrument/fieldinject/package-info.java b/field-inject/src/main/java/datadog/instrument/fieldinject/package-info.java index fbfd85a..7b78b2f 100644 --- a/field-inject/src/main/java/datadog/instrument/fieldinject/package-info.java +++ b/field-inject/src/main/java/datadog/instrument/fieldinject/package-info.java @@ -1,3 +1,4 @@ +/** Supports Key-value object stores where keys and values have specific types. */ @ParametersAreNonnullByDefault package datadog.instrument.fieldinject; diff --git a/gradle.properties b/gradle.properties index 4fcacd2..651eaac 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,7 @@ org.gradle.configuration-cache=true org.gradle.caching=true org.gradle.parallel=true +org.gradle.workers.max=4 org.gradle.java.installations.auto-detect=false org.gradle.java.installations.auto-download=false org.gradle.java.installations.fromEnv=JAVA_8_HOME,JAVA_11_HOME,JAVA_17_HOME,JAVA_21_HOME,JAVA_25_HOME diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 83dab4b..04b0edb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,10 +3,10 @@ asm = "9.10.1" junit-jupiter = "5.14.4" junit-platform = "1.14.4" assertj = "3.27.7" -spotless = "8.8.0" -spotbugs = "6.5.8" -spotbugs-annotations = "4.10.2" -axion-release = "1.21.2" +spotless = "8.10.0" +spotbugs = "6.5.10" +spotbugs-annotations = "4.10.3" +axion-release = "1.21.3" nexus-publish = "2.0.0" jmh-plugin = "0.7.3" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index b1b8ef5..eddabd2 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 dbe66e1..84c5a9c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=9c0f7faeeb306cb14e4279a3e084ca6b596894089a0638e68a07c945a32c9e14 -distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip +distributionSha256Sum=84fbba45c7f4c64abc77460e1c00f541e9f960e3c7ed2538f1ede19eacd873ae +distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.0-bin.zip networkTimeout=10000 retries=0 retryBackOffMs=500 diff --git a/gradlew b/gradlew index b9bb139..249efbb 100755 --- a/gradlew +++ b/gradlew @@ -20,7 +20,7 @@ ############################################################################## # -# Gradle start up script for POSIX generated by Gradle. +# gradlew start up script for POSIX generated by Gradle. # # Important for running: # @@ -29,7 +29,7 @@ # bash, then to run this script, type that shell name before the whole # command line, like: # -# ksh Gradle +# ksh gradlew # # Busybox and similar reduced shells will NOT work, because this script # requires all of these POSIX shell features: diff --git a/gradlew.bat b/gradlew.bat index 24c62d5..a51ec4f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -19,7 +19,7 @@ @if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem -@rem Gradle startup script for Windows +@rem gradlew startup script for Windows @rem @rem ########################################################################## @@ -72,7 +72,7 @@ echo location of your Java installation. 1>&2 -@rem Execute Gradle +@rem Execute gradlew @rem endlocal doesn't take effect until after the line is parsed and variables are expanded @rem which allows us to clear the local environment before executing the java command endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel diff --git a/utils/build.gradle.kts b/utils/build.gradle.kts index 1e465b0..e6ae394 100644 --- a/utils/build.gradle.kts +++ b/utils/build.gradle.kts @@ -3,7 +3,7 @@ plugins { } dependencies { - sampleBytecode("org.springframework:spring-web:7.0.7") + sampleBytecode("org.springframework:spring-web:7.0.8") jmh(project(":testing")) } diff --git a/utils/src/main/java/datadog/instrument/utils/package-info.java b/utils/src/main/java/datadog/instrument/utils/package-info.java index 3783a8f..bf4ecaa 100644 --- a/utils/src/main/java/datadog/instrument/utils/package-info.java +++ b/utils/src/main/java/datadog/instrument/utils/package-info.java @@ -1,3 +1,4 @@ +/** Utilities shared across instrumentation helpers. */ @ParametersAreNonnullByDefault package datadog.instrument.utils; diff --git a/utils/src/test/java/datadog/instrument/utils/ClassNameTrieTest.java b/utils/src/test/java/datadog/instrument/utils/ClassNameTrieTest.java index 263d6cb..4c30ae1 100644 --- a/utils/src/test/java/datadog/instrument/utils/ClassNameTrieTest.java +++ b/utils/src/test/java/datadog/instrument/utils/ClassNameTrieTest.java @@ -10,6 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; @@ -40,6 +41,7 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +@SuppressFBWarnings("NP_NONNULL_PARAM_VIOLATION") class ClassNameTrieTest { static ClassNameTrie testClassNamesTrie;