Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
cd24d56
WIP
PerfectSlayer Oct 1, 2026
eb82d39
feat(ffe): Add new instrumentation config
PerfectSlayer Oct 1, 2026
90c1f31
feat(ffe): Allow vm props and env vars access
PerfectSlayer Oct 1, 2026
ff86e4f
feat(ffe): Suppress static sync warning
PerfectSlayer Oct 1, 2026
f9a0f80
fix(ffe): Fix dd-openfeature system test versions
PerfectSlayer Oct 1, 2026
4704d9a
fix(ffe): Fix reader not closed
PerfectSlayer Oct 1, 2026
b9604aa
fix(ffe): Fix code test coverage
PerfectSlayer Oct 2, 2026
8f6d55b
feat(ffe): Refine instrumentation
PerfectSlayer Oct 2, 2026
4e6c0de
feat(ffe): Refine gradle configuration
PerfectSlayer Oct 2, 2026
e5403cc
feat(ffe): Clean up config
PerfectSlayer Oct 2, 2026
c86267f
feat(ffe): Add support for older OTel APIs
PerfectSlayer Oct 2, 2026
570ac5d
feat(ffe): Clean up config
PerfectSlayer Oct 2, 2026
1227691
feat(doc): Update ARCHITECTURE.md
PerfectSlayer Oct 2, 2026
8410be5
chore(ffe): Clean up code
PerfectSlayer Oct 2, 2026
c5fcf22
feat(ffe): Port benchmarks
PerfectSlayer Oct 2, 2026
8eed26a
fix(ffe): Fix failed start leaving broken runtime
PerfectSlayer Oct 2, 2026
beadf46
fix(ffe): Fix no rollback when backend start fails
PerfectSlayer Oct 2, 2026
5c03ef0
fix(ffe): Fix config on agent initialization
PerfectSlayer Oct 2, 2026
8c8dddd
chore: Update CODEOWNERS
PerfectSlayer Oct 2, 2026
3db3662
chore(ffe): Remove dead fixtures
PerfectSlayer Oct 2, 2026
c21205e
fix(ffe): Deduplicate retry mechanism
PerfectSlayer Oct 2, 2026
d6f7005
fix(ffe): Drop EvaluationMetadata in favor of OpenFeature metadata
PerfectSlayer Oct 13, 2026
cb45873
fix(ffe): Evaluate flags on OpenFeature types directly
PerfectSlayer Oct 13, 2026
8f13153
fix(ffe): Reject flags with an explicit null enabled field
PerfectSlayer Oct 13, 2026
2b91f39
fix(ffe): Reject flags with non-string allocation dates
PerfectSlayer Oct 13, 2026
85bebd9
fix(ffe): Reject configurations with non-finite numbers
PerfectSlayer Oct 13, 2026
2b601fd
fix(ffe): Detect Feature Flags activation like other products
PerfectSlayer Oct 14, 2026
7af9380
refactor(ffe): Remove the feature-flagging-config module
PerfectSlayer Oct 14, 2026
31d0840
refactor(ffe): Parse the Feature Flags configuration source as an enum
PerfectSlayer Oct 14, 2026
c2682ef
fix(ffe): Fix FFE activation on the product switch only
PerfectSlayer Oct 14, 2026
03695e8
chore(ffe): Sort ConfigTest feature flags imports
PerfectSlayer Oct 14, 2026
530ac88
feat(ffe): Parse features on UFC splits
PerfectSlayer Oct 14, 2026
4fdfe4d
fix(ffe): Initialize FeatureFlaggingSource at native-image build time
PerfectSlayer Oct 14, 2026
b993ef3
fix(ffe): Cap UFC document nesting depth
PerfectSlayer Oct 14, 2026
33db44b
fix(ffe): Validate Feature Flags endpoint URLs
PerfectSlayer Oct 14, 2026
3f59855
fix(ffe): Parse boolean and integer settings like the agent
PerfectSlayer Oct 14, 2026
6097263
fix(ffe): Report only parsing failures as malformed Remote Configuration
PerfectSlayer Oct 14, 2026
18cc8ac
fix(ffe): Isolate Feature Flags configuration listeners
PerfectSlayer Oct 14, 2026
b5394ad
fix(ffe): Fix HTTP timeouts, cancellations, and retries
sarahchen6 Oct 14, 2026
c01c5b4
fix(ffe): Reject null events before reserving queue capacity
sarahchen6 Oct 15, 2026
fab4025
feat(ffe): Add a setting to stop sending exposures to Datadog
PerfectSlayer Oct 15, 2026
271f673
feat(ffe): Send split features with exposures and flag evaluations
PerfectSlayer Oct 15, 2026
2bf0025
feat(ffe): Declare the exposures Datadog logging setting for the agent
PerfectSlayer Oct 15, 2026
810145b
feat(ffe): Send exposures after evaluation and add ExposureHook
PerfectSlayer Oct 15, 2026
40aeacb
refactor(ffe): Rename the SDK connector to agent bridge
PerfectSlayer Oct 15, 2026
9c686e6
refactor(ffe): Use the agent bridge in the event pipelines
PerfectSlayer Oct 15, 2026
f828274
refactor(ffe): Use the agent bridge in the provider
PerfectSlayer Oct 15, 2026
fff162e
refactor(ffe): Rename the dd-openfeature-connector instrumentation to…
PerfectSlayer Oct 15, 2026
d5f9908
fix(ffe): Log ignored Feature Flags settings and configuration responses
PerfectSlayer Oct 15, 2026
620390b
fix(ffe): Fix HTTP call deadlock on cancellation
PerfectSlayer Oct 15, 2026
0ed7c9c
fix(ffe): Omit null map entries from event payloads
sarahchen6 Oct 15, 2026
acff90e
fix(ffe): Allow shutdown while initialization waits for configuration
sarahchen6 Oct 16, 2026
a382bde
fix(ffe): Flush pending exposures when releasing the runtime
sarahchen6 Oct 16, 2026
7e8844a
chore(ffe): Remove unused supported resolution types from DDEvaluator
PerfectSlayer Oct 20, 2026
b45e861
chore(ffe): Keep the OpenTelemetry API out of the SDK public API
PerfectSlayer Oct 20, 2026
be68535
feat(ffe): Port the per-subject evaluation telemetry opt-out
PerfectSlayer Oct 20, 2026
04b52ac
Merge master into bbujon/ffe
PerfectSlayer Oct 20, 2026
bd2be0e
feat(ffe): Port the agentless Feature Flags EVP delivery hardening
PerfectSlayer Oct 20, 2026
62d0d65
feat(ffe): Flush pending Feature Flags events at application shutdown
PerfectSlayer Oct 20, 2026
879edf4
test: Reduce the shutdown instrumentation test to its target system
PerfectSlayer Oct 20, 2026
23755bf
test(ffe): Test the Feature Flags shutdown hook when tracing is disabled
PerfectSlayer Oct 20, 2026
bfbab4e
fix(ffe): Register the Feature Flags shutdown hook once the SDK subsc…
PerfectSlayer Oct 20, 2026
621d788
test(ffe): Drop the shutdown probe relying on the removed gateway API
PerfectSlayer Oct 20, 2026
e67a076
refactor(ffe): Make the bridge shutdown component abstract like the o…
PerfectSlayer Oct 20, 2026
7e84979
fix(ffe): Share one shutdown budget between the Feature Flags event p…
PerfectSlayer Oct 20, 2026
8ca5fba
fix(ffe): Fall back to a JVM shutdown hook when the agent shutdown su…
PerfectSlayer Oct 20, 2026
f22f250
test(ffe): Test the Feature Flags shutdown flush in the OpenFeature s…
PerfectSlayer Oct 20, 2026
4f4f401
fix(ffe): Prevent startup failures with older Java agents by returnin…
sarahchen6 Oct 20, 2026
ea3b868
Prevent application crashes with legacy dd-openfeature SDKs
sarahchen6 Oct 20, 2026
40955c9
fix(ffe): Preserve the legacy OpenFeature opt-out setter signature
sarahchen6 Oct 20, 2026
39eebc1
test(ffe): Cover shutdown lifecycle and EVP recovery
sarahchen6 Oct 21, 2026
0cedfb0
fix(ffe): Fix OpenFeature static analysis failures
sarahchen6 Oct 21, 2026
8d3ebfe
refactor(ffe): Drop the unreachable event proxy conditions
PerfectSlayer Oct 21, 2026
0f17db3
refactor(ffe): Split the OpenFeature instrumentation by SDK version
PerfectSlayer Oct 21, 2026
62606f3
Merge master into bbujon/ffe
PerfectSlayer Oct 21, 2026
bb34cf7
feat(ffe): Send the Java SDK identity with Feature Flags events
PerfectSlayer Oct 21, 2026
e262f26
chore(ffe): Drop a stale Feature Flags lockfile entry
PerfectSlayer Oct 21, 2026
6947b97
chore(ci): Stage the system tests binaries in a dedicated folder
PerfectSlayer Oct 21, 2026
2df734b
feat(ffe): Keep the former exposure hook class name
PerfectSlayer Oct 22, 2026
ec69371
chore(ci): Compare the dd-openfeature jar to the build job one
PerfectSlayer Oct 22, 2026
e51daef
chore(ffe): Remove the redundant IDEA module configuration
PerfectSlayer Oct 22, 2026
3ef095f
test(ffe): Check released providers with a smoke test
PerfectSlayer Oct 22, 2026
5b036a7
style(ffe): Follow the instrumentation conventions
PerfectSlayer Oct 22, 2026
e942464
chore(ffe): Own the released provider smoke tests
PerfectSlayer Oct 22, 2026
b52a36e
chore(ffe): Own the Feature Flags settings in dd-trace-api
PerfectSlayer Oct 22, 2026
edf910f
fix(ffe): Guard OpenFeature agent bridge against incompatible SDK int…
sarahchen6 Oct 22, 2026
b41ef71
fix(ffe): Order initial configuration replay before live updates
sarahchen6 Oct 22, 2026
0c7635e
fix(ffe): Keep legacy OpenFeature fallback safe
sarahchen6 Oct 22, 2026
c3db824
fix(ffe): Expose resolved Feature Flags settings through the agent br…
sarahchen6 Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -399,9 +399,12 @@
**/kafka*/**/*Iast* @DataDog/asm-java @DataDog/data-streams-monitoring @DataDog/apm-idm-java

# @DataDog/feature-flagging-and-experimentation-sdk
/dd-openfeature/ @DataDog/feature-flagging-and-experimentation-sdk
/dd-smoke-tests/openfeature/ @DataDog/feature-flagging-and-experimentation-sdk
/products/feature-flagging/ @DataDog/feature-flagging-and-experimentation-sdk
/dd-java-agent/instrumentation/datadog/openfeature/ @DataDog/feature-flagging-and-experimentation-sdk
/dd-openfeature/ @DataDog/feature-flagging-and-experimentation-sdk
/dd-smoke-tests/openfeature/ @DataDog/feature-flagging-and-experimentation-sdk
/dd-smoke-tests/openfeature-legacy/ @DataDog/feature-flagging-and-experimentation-sdk
/dd-trace-api/**/config/FeatureFlaggingConfig* @DataDog/feature-flagging-and-experimentation-sdk
/products/feature-flagging/ @DataDog/feature-flagging-and-experimentation-sdk

# @DataDog/profiling-java
/dd-java-agent/ddprof-lib/ @DataDog/profiling-java
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/run-system-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,18 @@ jobs:
JAVA_11_HOME=$JAVA_HOME_11_X64 \
JAVA_17_HOME=$JAVA_HOME_17_X64 \
JAVA_21_HOME=$JAVA_HOME_21_X64 \
./gradlew clean :dd-java-agent:shadowJar \
./gradlew clean :dd-java-agent:shadowJar :dd-openfeature:jar \
--build-cache --parallel --stacktrace --no-daemon --max-workers=4
mkdir -p workspace/system-tests-binaries
cp workspace/dd-java-agent/build/libs/dd-java-agent-*.jar \
workspace/dd-openfeature/build/libs/dd-openfeature-*.jar \
workspace/system-tests-binaries/

- name: Upload artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: binaries
path: workspace/dd-java-agent/build/libs/
path: workspace/system-tests-binaries/

main:
needs:
Expand Down
10 changes: 6 additions & 4 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ build:
script:
- if [ $CI_PIPELINE_SOURCE == "schedule" ] ; then ./gradlew resolveAndLockAll --write-locks $GRADLE_ARGS; fi
- ./gradlew --version
- ./gradlew clean :dd-java-agent:shadowJar :dd-java-agent:check :dd-trace-api:jar :dd-trace-ot:shadowJar :products:feature-flagging:feature-flagging-api:jar -PskipTests -x spotlessCheck $GRADLE_ARGS
- ./gradlew clean :dd-java-agent:shadowJar :dd-java-agent:check :dd-trace-api:jar :dd-trace-ot:shadowJar :dd-openfeature:jar -PskipTests -x spotlessCheck $GRADLE_ARGS
- echo UPSTREAM_TRACER_VERSION=$(java -jar workspace/dd-java-agent/build/libs/*.jar) >> upstream.env
- echo "BUILD_JOB_NAME=$CI_JOB_NAME" >> build.env
- echo "BUILD_JOB_ID=$CI_JOB_ID" >> build.env
Expand All @@ -364,7 +364,7 @@ build:
- 'workspace/dd-java-agent/build/libs/*.jar'
- 'workspace/dd-trace-api/build/libs/*.jar'
- 'workspace/dd-trace-ot/build/libs/*.jar'
- 'workspace/products/feature-flagging/feature-flagging-api/build/libs/*.jar'
- 'workspace/dd-openfeature/build/libs/*.jar'
- 'upstream.env'
- '.gradle/daemon/*/*.out.log'
reports:
Expand Down Expand Up @@ -481,11 +481,11 @@ publish-artifacts-to-s3:
- aws s3 cp workspace/dd-java-agent/build/libs/dd-java-agent-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-java-agent.jar
- aws s3 cp workspace/dd-trace-api/build/libs/dd-trace-api-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-trace-api.jar
- aws s3 cp workspace/dd-trace-ot/build/libs/dd-trace-ot-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-trace-ot.jar
- aws s3 cp workspace/products/feature-flagging/feature-flagging-api/build/libs/dd-openfeature-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-openfeature.jar
- aws s3 cp workspace/dd-openfeature/build/libs/dd-openfeature-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-openfeature.jar
- aws s3 cp workspace/dd-java-agent/build/libs/dd-java-agent-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-java-agent.jar
- aws s3 cp workspace/dd-trace-api/build/libs/dd-trace-api-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-trace-api.jar
- aws s3 cp workspace/dd-trace-ot/build/libs/dd-trace-ot-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-trace-ot.jar
- aws s3 cp workspace/products/feature-flagging/feature-flagging-api/build/libs/dd-openfeature-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-openfeature.jar
- aws s3 cp workspace/dd-openfeature/build/libs/dd-openfeature-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-openfeature.jar
- |
cat << EOF > links.json
{
Expand Down Expand Up @@ -583,6 +583,7 @@ validate_build:
- cp workspace/dd-java-agent/build/libs/*.jar reference-artifacts/
- cp workspace/dd-trace-api/build/libs/*.jar reference-artifacts/
- cp workspace/dd-trace-ot/build/libs/*.jar reference-artifacts/
- cp workspace/dd-openfeature/build/libs/*.jar reference-artifacts/
# Scheduled builds refresh dependency locks before creating the reference artifacts.
# Refresh them here as well so the candidate uses the same dependency resolution.
- if [ $CI_PIPELINE_SOURCE == "schedule" ] ; then ./gradlew resolveAndLockAll --write-locks $GRADLE_ARGS; fi
Expand All @@ -596,6 +597,7 @@ validate_build:
cp workspace/dd-java-agent/build/libs/*.jar check_reports/jar-comparison-artifacts/candidate/
cp workspace/dd-trace-api/build/libs/*.jar check_reports/jar-comparison-artifacts/candidate/
cp workspace/dd-trace-ot/build/libs/*.jar check_reports/jar-comparison-artifacts/candidate/
cp workspace/dd-openfeature/build/libs/*.jar check_reports/jar-comparison-artifacts/candidate/
exit 1
fi
after_script:
Expand Down
14 changes: 10 additions & 4 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ to `.classdata` to prevent unintended loading. See [`docs/how_to_work_with_gradl

- **`agent-tooling/`** — Instrumentation framework. Key types:
- `InstrumenterModule` — Base class for all instrumentation modules. Declares a target system
(Tracing, AppSec, IAST, Profiling, CiVisibility, USM, etc.) and one or more instrumentations.
(Tracing, AppSec, IAST, Profiling, CiVisibility, USM, FeatureFlags, etc.) and one or more
instrumentations.
- `Instrumenter` — Type matching interface: `ForSingleType`, `ForKnownTypes`,
`ForTypeHierarchy`, `ForBootstrap`.
- `muzzle/` — Build-time and runtime safety checks. Verifies that expected types and methods
Expand Down Expand Up @@ -229,9 +230,8 @@ Current products:

- `metrics/` — StatsD client and monitoring abstraction. Provides `Monitoring` interface with
counters, timers, and histograms for internal agent metrics collection.
- `feature-flagging/` — Server-side feature flag evaluation driven by remote configuration.
Implements the OpenFeature SDK, handles the Unified Feature Control (UFC) protocol,
and tracks flag exposure per user/session.
- `feature-flagging/` — Agent services for the [`dd-openfeature/`](#dd-openfeature) SDK:
remote configuration, event delivery through the Datadog Agent, and span enrichment.

### `communication/`

Expand Down Expand Up @@ -279,6 +279,12 @@ that implements the `io.opentracing.Tracer` interface by wrapping the Datadog `C
This is a pure library for manual instrumentation only — there is no auto-instrumentation or
bytecode advice.

### `dd-openfeature/`

Feature Flags OpenFeature provider. Publishes a standalone JAR artifact (`dd-openfeature.jar`, Java 11+)
that works without the agent. When the agent is attached, an instrumentation connects it to the
`products/feature-flagging/` agent services.

### `dd-smoke-tests/`

End-to-end smoke tests. Each boots a real application with the agent jar and verifies traces, spans,
Expand Down
1 change: 0 additions & 1 deletion dd-java-agent/agent-bootstrap/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ dependencies {
api project(':dd-java-agent:agent-debugger:debugger-bootstrap')
api project(':components:environment')
api project(':components:json')
api project(':products:feature-flagging:feature-flagging-config')
api project(':products:metrics:metrics-agent')
api libs.instrument.java
api libs.slf4j
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import datadog.trace.api.config.CrashTrackingConfig;
import datadog.trace.api.config.CwsConfig;
import datadog.trace.api.config.DebuggerConfig;
import datadog.trace.api.config.FeatureFlaggingConfig;
import datadog.trace.api.config.GeneralConfig;
import datadog.trace.api.config.IastConfig;
import datadog.trace.api.config.JmxFetchConfig;
Expand All @@ -44,7 +45,6 @@
import datadog.trace.api.config.TraceInstrumentationConfig;
import datadog.trace.api.config.TracerConfig;
import datadog.trace.api.config.UsmConfig;
import datadog.trace.api.featureflag.config.FeatureFlaggingConfig;
import datadog.trace.api.gateway.RequestContextSlot;
import datadog.trace.api.gateway.SubscriptionService;
import datadog.trace.api.git.EmbeddedGitInfoBuilder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
1 datadog.opentracing.*
1 datadog.slf4j.*
1 datadog.trace.*
# Legacy OpenFeature providers need compatibility advice after their bootstrap API was removed.
0 datadog.trace.api.openfeature.Provider
# remove this once https://github.com/raphw/byte-buddy/issues/558 is fixed
0 datadog.trace.bootstrap.instrumentation.java.concurrent.RunnableWrapper
1 datadog.trace.core.*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import static org.gradle.api.JavaVersion.VERSION_11

plugins {
id 'dd-trace-java.module.instrumentation'
}

// The providers released before the SDK bridge, linked to the agent bootstrap API it removed.
muzzle {
pass {
group = 'com.datadoghq'
module = 'dd-openfeature'
versions = '[1.56.0,1.69.0)'
}
}

tracerJava {
addSourceSetFor(VERSION_11)
}

dependencies {
main_java11CompileOnly 'com.datadoghq:dd-openfeature:1.56.0'
}

tasks.named("compileMain_java11Java", JavaCompile) {
configureCompiler(it, VERSION_11)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
# To regenerate this file, run: ./gradlew :dd-java-agent:instrumentation:datadog:openfeature:dd-openfeature-1.56:dependencies --write-locks
cafe.cryptography:curve25519-elisabeth:0.1.0=testRuntimeClasspath
cafe.cryptography:ed25519-elisabeth:0.1.0=testRuntimeClasspath
ch.qos.logback:logback-classic:1.2.13=testCompileClasspath,testRuntimeClasspath
ch.qos.logback:logback-core:1.2.13=testCompileClasspath,testRuntimeClasspath
com.blogspot.mydailyjava:weak-lock-free:0.17=buildTimeInstrumentationPlugin,compileClasspath,main_java11CompileClasspath,main_java11RuntimeClasspath,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.datadoghq.okhttp3:okhttp:3.12.15=testCompileClasspath,testRuntimeClasspath
com.datadoghq.okio:okio:1.17.6=testCompileClasspath,testRuntimeClasspath
com.datadoghq:dd-instrument-java:0.0.6=buildTimeInstrumentationPlugin,compileClasspath,main_java11CompileClasspath,main_java11RuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.datadoghq:dd-javac-plugin-client:0.2.2=buildTimeInstrumentationPlugin,compileClasspath,main_java11CompileClasspath,main_java11RuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.datadoghq:dd-openfeature:1.56.0=main_java11CompileClasspath
com.datadoghq:dd-openfeature:1.67.0=legacySdk
com.datadoghq:java-dogstatsd-client:4.4.5=testRuntimeClasspath
com.datadoghq:sketches-java:0.8.3=testRuntimeClasspath
com.github.javaparser:javaparser-core:3.25.6=codenarc
com.github.jnr:jffi:1.3.15=testRuntimeClasspath
com.github.jnr:jnr-a64asm:1.0.0=testRuntimeClasspath
com.github.jnr:jnr-constants:0.10.4=testRuntimeClasspath
com.github.jnr:jnr-enxio:0.32.20=testRuntimeClasspath
com.github.jnr:jnr-ffi:2.2.19=testRuntimeClasspath
com.github.jnr:jnr-posix:3.1.22=testRuntimeClasspath
com.github.jnr:jnr-unixsocket:0.38.25=testRuntimeClasspath
com.github.jnr:jnr-x86asm:1.0.2=testRuntimeClasspath
com.github.spotbugs:spotbugs-annotations:4.10.4=compileClasspath,spotbugs
com.github.spotbugs:spotbugs:4.10.4=spotbugs
com.github.stephenc.jcip:jcip-annotations:1.0-1=spotbugs
com.google.auto.service:auto-service-annotations:1.1.1=annotationProcessor,compileClasspath,testAnnotationProcessor,testCompileClasspath
com.google.auto.service:auto-service:1.1.1=annotationProcessor,testAnnotationProcessor
com.google.auto:auto-common:1.2.1=annotationProcessor,testAnnotationProcessor
com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,compileClasspath,spotbugs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.code.gson:gson:2.14.0=spotbugs
com.google.errorprone:error_prone_annotations:2.18.0=annotationProcessor,testAnnotationProcessor
com.google.errorprone:error_prone_annotations:2.47.0=testCompileClasspath,testRuntimeClasspath
com.google.errorprone:error_prone_annotations:2.48.0=spotbugs
com.google.guava:failureaccess:1.0.1=annotationProcessor,testAnnotationProcessor
com.google.guava:failureaccess:1.0.3=testCompileClasspath,testRuntimeClasspath
com.google.guava:guava:32.0.1-jre=annotationProcessor,testAnnotationProcessor
com.google.guava:guava:33.6.0-jre=testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.j2objc:j2objc-annotations:2.8=annotationProcessor,testAnnotationProcessor
com.google.j2objc:j2objc-annotations:3.1=testCompileClasspath,testRuntimeClasspath
com.google.re2j:re2j:1.8=testRuntimeClasspath
com.squareup.moshi:moshi:1.11.0=testCompileClasspath,testRuntimeClasspath
com.squareup.okhttp3:logging-interceptor:3.12.12=testCompileClasspath,testRuntimeClasspath
com.squareup.okhttp3:okhttp:3.12.12=testCompileClasspath,testRuntimeClasspath
com.squareup.okio:okio:1.17.5=testCompileClasspath,testRuntimeClasspath
com.thoughtworks.qdox:qdox:1.12.1=codenarc
commons-fileupload:commons-fileupload:1.5=testCompileClasspath,testRuntimeClasspath
commons-io:commons-io:2.11.0=testCompileClasspath,testRuntimeClasspath
commons-io:commons-io:2.21.0=spotbugs
de.thetaphi:forbiddenapis:3.11=compileClasspath,testCompileClasspath,testRuntimeClasspath
dev.openfeature:sdk:1.18.2=main_java11CompileClasspath
io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
io.sqreen:libsqreen:17.5.0=testRuntimeClasspath
javax.servlet:javax.servlet-api:3.1.0=testCompileClasspath,testRuntimeClasspath
jaxen:jaxen:2.0.6=spotbugs
junit:junit:4.13.2=testRuntimeClasspath
net.bytebuddy:byte-buddy-agent:1.18.12=buildTimeInstrumentationPlugin,compileClasspath,main_java11CompileClasspath,main_java11RuntimeClasspath,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
net.bytebuddy:byte-buddy:1.18.12=buildTimeInstrumentationPlugin,compileClasspath,main_java11CompileClasspath,main_java11RuntimeClasspath,muzzleTooling,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
net.java.dev.jna:jna-platform:5.8.0=testRuntimeClasspath
net.java.dev.jna:jna:5.8.0=testRuntimeClasspath
net.sf.saxon:Saxon-HE:12.10=spotbugs
org.apache.ant:ant-antlr:1.10.14=codenarc
org.apache.ant:ant-junit:1.10.14=codenarc
org.apache.bcel:bcel:6.12.0=spotbugs
org.apache.commons:commons-lang3:3.20.0=spotbugs
org.apache.commons:commons-text:1.15.0=spotbugs
org.apache.logging.log4j:log4j-api:2.26.1=spotbugs
org.apache.logging.log4j:log4j-core:2.26.1=spotbugs
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testRuntimeClasspath
org.checkerframework:checker-qual:3.33.0=annotationProcessor,testAnnotationProcessor
org.codehaus.groovy:groovy-ant:3.0.23=codenarc
org.codehaus.groovy:groovy-docgenerator:3.0.23=codenarc
org.codehaus.groovy:groovy-groovydoc:3.0.23=codenarc
org.codehaus.groovy:groovy-json:3.0.23=codenarc
org.codehaus.groovy:groovy-json:3.0.25=testCompileClasspath,testRuntimeClasspath
org.codehaus.groovy:groovy-templates:3.0.23=codenarc
org.codehaus.groovy:groovy-xml:3.0.23=codenarc
org.codehaus.groovy:groovy:3.0.23=codenarc
org.codehaus.groovy:groovy:3.0.25=testCompileClasspath,testRuntimeClasspath
org.codenarc:CodeNarc:3.7.0=codenarc
org.dom4j:dom4j:2.2.0=spotbugs
org.gmetrics:GMetrics:2.1.0=codenarc
org.hamcrest:hamcrest-core:1.3=testRuntimeClasspath
org.hamcrest:hamcrest:3.0=testCompileClasspath,testRuntimeClasspath
org.jctools:jctools-core-jdk11:4.0.6=testRuntimeClasspath
org.jctools:jctools-core:4.0.6=testRuntimeClasspath
org.jspecify:jspecify:1.0.0=testCompileClasspath,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:5.14.1=testCompileClasspath,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:5.14.1=testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:5.14.1=testCompileClasspath,testRuntimeClasspath
org.junit.jupiter:junit-jupiter:5.14.1=testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-commons:1.14.1=testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-engine:1.14.1=testCompileClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-launcher:1.14.1=testRuntimeClasspath
org.junit.platform:junit-platform-runner:1.14.1=testRuntimeClasspath
org.junit.platform:junit-platform-suite-api:1.14.1=testRuntimeClasspath
org.junit.platform:junit-platform-suite-commons:1.14.1=testRuntimeClasspath
org.junit:junit-bom:5.14.1=testCompileClasspath,testRuntimeClasspath
org.mockito:mockito-core:4.4.0=testRuntimeClasspath
org.objenesis:objenesis:3.3=testCompileClasspath,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
org.ow2.asm:asm-analysis:9.10.1=spotbugs
org.ow2.asm:asm-analysis:9.7.1=testRuntimeClasspath
org.ow2.asm:asm-commons:9.10.1=spotbugs,testRuntimeClasspath
org.ow2.asm:asm-tree:9.10.1=spotbugs,testRuntimeClasspath
org.ow2.asm:asm-util:9.10.1=spotbugs
org.ow2.asm:asm-util:9.7.1=testRuntimeClasspath
org.ow2.asm:asm:9.10.1=buildTimeInstrumentationPlugin,compileClasspath,main_java11CompileClasspath,main_java11RuntimeClasspath,muzzleTooling,runtimeClasspath,spotbugs,testCompileClasspath,testRuntimeClasspath
org.slf4j:jcl-over-slf4j:1.7.30=testCompileClasspath,testRuntimeClasspath
org.slf4j:jul-to-slf4j:1.7.30=testCompileClasspath,testRuntimeClasspath
org.slf4j:log4j-over-slf4j:1.7.30=testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:1.7.30=buildTimeInstrumentationPlugin,compileClasspath,main_java11RuntimeClasspath,muzzleBootstrap,muzzleTooling,runtimeClasspath
org.slf4j:slf4j-api:1.7.32=testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.17=main_java11CompileClasspath,spotbugsSlf4j
org.slf4j:slf4j-api:2.0.18=spotbugs
org.slf4j:slf4j-simple:2.0.17=spotbugsSlf4j
org.snakeyaml:snakeyaml-engine:2.9=buildTimeInstrumentationPlugin,main_java11RuntimeClasspath,muzzleTooling,runtimeClasspath,testRuntimeClasspath
org.spockframework:spock-bom:2.4-groovy-3.0=testCompileClasspath,testRuntimeClasspath
org.spockframework:spock-core:2.4-groovy-3.0=testCompileClasspath,testRuntimeClasspath
org.tabletest:tabletest-junit:1.2.2=testCompileClasspath,testRuntimeClasspath
org.tabletest:tabletest-parser:1.2.1=testCompileClasspath,testRuntimeClasspath
org.xmlresolver:xmlresolver:5.3.3=spotbugs
empty=main_java11AnnotationProcessor,spotbugsPlugins
Loading
Loading