Skip to content
Open
Show file tree
Hide file tree
Changes from 45 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
fd62009
saving work
mhlidd Jul 14, 2025
a756eb2
init: adding System.getenv forbiddenAPI, ConfigHelper, ParseSupported…
mhlidd Jul 15, 2025
96e2546
Fixing java6 incompatibility with EnvironmentVariables component
mhlidd Jul 15, 2025
6a87970
parsing JSON at buildtime
mhlidd Jul 17, 2025
b062c96
fixing invocationtargetexception
mhlidd Jul 17, 2025
6769bda
spotless
mhlidd Jul 17, 2025
06ed2fd
updating linter to include OTEL_
mhlidd Jul 18, 2025
8dd50e0
adding EnvironmentVariables linter
mhlidd Jul 18, 2025
9660b1a
adding flag for strictness
mhlidd Jul 23, 2025
f8d2a8c
updating supported-configurations
mhlidd Jul 24, 2025
b68f0b2
updated all discoverable configs
mhlidd Jul 29, 2025
dc5d83b
updating jmxfetch configs
mhlidd Jul 30, 2025
fe2eeb9
fixing config helper
mhlidd Jul 31, 2025
229c38d
adding unit tests for ConfigHelper
mhlidd Aug 1, 2025
77ddecd
fixing tests pt 1
mhlidd Aug 5, 2025
eb6908a
adding configs and updating specific tests to TEST strictness
mhlidd Aug 5, 2025
972eef4
cleanup and removing system.getenv call
mhlidd Aug 5, 2025
81c12f4
adding more supported-configurations
mhlidd Aug 5, 2025
98c57b5
adding more configs
mhlidd Aug 5, 2025
990c0ce
adding configs and updating tests
mhlidd Aug 6, 2025
5bdd8cf
adding branch coverage
mhlidd Aug 6, 2025
52c05b4
updating code coverage again
mhlidd Aug 6, 2025
5192a8a
test
mhlidd Aug 7, 2025
f128de8
rebasing
mhlidd Aug 7, 2025
734f9c7
adding more configs post-rebase
mhlidd Aug 7, 2025
e9ce233
initialize GeneratedSupportedConfiguratons at buildtime
mhlidd Aug 12, 2025
90f536d
fixing buildtests
mhlidd Aug 12, 2025
7a1517e
adding ConfigInversionStrictStyle
mhlidd Aug 12, 2025
5ca61c0
refactor ConfigHelper to datadog.trace.api
mhlidd Aug 13, 2025
abc0b64
adding configs and updating gradle files to reflect ConfigHelper refa…
mhlidd Aug 13, 2025
97db41f
adding telemetry
mhlidd Aug 13, 2025
04bde01
reverting agent-bootstrap to directly invoke EnvironmentVariables com…
mhlidd Aug 14, 2025
9a764c9
Merge branch 'master' into mhlidd/config_inversion
mhlidd Aug 14, 2025
e10e0a9
updating ConfigHelper to use getAll()
mhlidd Aug 14, 2025
340eeef
adding classes to native build time and adding suppressforbidden
mhlidd Aug 14, 2025
ea83e25
Adding SupportedConfigurationsSource to buildtime
mhlidd Aug 14, 2025
4b602c1
testing
mhlidd Aug 14, 2025
4bdb960
attempt to fix native image
mhlidd Aug 14, 2025
962490d
attempt to fix native build
mhlidd Aug 15, 2025
c7aa94d
cleanup pt 1
mhlidd Aug 18, 2025
8068724
cleanup pt 2
mhlidd Aug 18, 2025
47a8f6a
moving buildtime parser out of environment component
mhlidd Aug 20, 2025
94f392c
updating tests bootstrap constants and spock runner
mhlidd Aug 20, 2025
6c2a551
undo migration to configHelper
mhlidd Aug 25, 2025
fe697ff
pushing changes for new module
mhlidd Aug 26, 2025
1aefa7e
updating gradle tasks to kotlin plugins
mhlidd Aug 27, 2025
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
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ with(extensions["spotlessPredeclare"] as SpotlessExtension) {
}
}
apply(from = rootDir.resolve("gradle/spotless.gradle"))
apply(from = rootDir.resolve("gradle/configInversionLinter.gradle"))

val compileTask = tasks.register("compile")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
import datadog.communication.monitor.DDAgentStatsDClientManager;
import datadog.communication.monitor.Monitoring;
import datadog.communication.monitor.Recording;
import datadog.config.util.Strings;
import datadog.trace.api.telemetry.LogCollector;
import datadog.trace.util.Strings;
import java.nio.ByteBuffer;
import java.security.NoSuchAlgorithmException;
import java.util.HashSet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import datadog.communication.serialization.EncodingCache;
import datadog.communication.serialization.ValueWriter;
import datadog.communication.serialization.Writable;
import datadog.trace.util.Strings;
import datadog.config.util.Strings;
import datadog.trace.util.stacktrace.StackTraceFrame;

public class StackTraceEventFrameWriter implements ValueWriter<StackTraceFrame> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import datadog.communication.serialization.EncodingCache;
import datadog.communication.serialization.ValueWriter;
import datadog.communication.serialization.Writable;
import datadog.trace.util.Strings;
import datadog.config.util.Strings;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thought: Is it needed to move Strings ?

Also, need to check with bootstrap there, as some packages maybe relocated.

import datadog.trace.util.stacktrace.StackTraceEvent;

public class StackTraceEventWriter implements ValueWriter<StackTraceEvent> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package datadog.communication.ddagent
import datadog.common.container.ContainerInfo
import datadog.communication.monitor.Monitoring
import datadog.trace.test.util.DDSpecification
import datadog.trace.util.Strings
import Strings
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: This feels wrong

import okhttp3.Call
import okhttp3.Headers
import okhttp3.HttpUrl
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static java.util.Collections.emptyMap;
import static java.util.Collections.unmodifiableMap;

import de.thetaphi.forbiddenapis.SuppressForbidden;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -36,6 +37,7 @@ private EnvironmentVariables() {}
* @return The environment variable value, {@code defaultValue} if missing, can't be retrieved or
* the environment variable name is {@code null}.
*/
@SuppressForbidden
public static String getOrDefault(String name, String defaultValue) {
if (name == null) {
return defaultValue;
Expand All @@ -54,6 +56,7 @@ public static String getOrDefault(String name, String defaultValue) {
* @return All environment variables captured in an unmodifiable {@link Map}, or an empty {@link
* Map} if they can't be retrieved.
*/
@SuppressForbidden
public static Map<String, String> getAll() {
try {
return unmodifiableMap(new HashMap<>(System.getenv()));
Expand Down
9 changes: 0 additions & 9 deletions components/yaml/build.gradle.kts

This file was deleted.

158 changes: 0 additions & 158 deletions components/yaml/gradle.lockfile

This file was deleted.

1 change: 1 addition & 0 deletions dd-java-agent/agent-bootstrap/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ dependencies {
api project(':dd-java-agent:agent-debugger:debugger-bootstrap')
api project(':components:environment')
api project(':components:json')
api project(':utils:test-utils')
api libs.slf4j
// ^ Generally a bad idea for libraries, but we're shadowing.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package datadog.trace.bootstrap;

import static datadog.config.StableConfigSource.FLEET;
import static datadog.config.StableConfigSource.LOCAL;
import static datadog.config.util.Strings.propertyNameToSystemPropertyName;
import static datadog.config.util.Strings.toEnvVar;
import static datadog.environment.JavaVirtualMachine.isJavaVersionAtLeast;
import static datadog.environment.JavaVirtualMachine.isOracleJDK8;
import static datadog.trace.api.ConfigDefaults.DEFAULT_STARTUP_LOGS_ENABLED;
Expand All @@ -8,15 +12,12 @@
import static datadog.trace.api.telemetry.LogCollector.SEND_TELEMETRY;
import static datadog.trace.bootstrap.Library.WILDFLY;
import static datadog.trace.bootstrap.Library.detectLibraries;
import static datadog.trace.bootstrap.config.provider.StableConfigSource.FLEET;
import static datadog.trace.bootstrap.config.provider.StableConfigSource.LOCAL;
import static datadog.trace.util.AgentThreadFactory.AgentThread.JMX_STARTUP;
import static datadog.trace.util.AgentThreadFactory.AgentThread.PROFILER_STARTUP;
import static datadog.trace.util.AgentThreadFactory.AgentThread.TRACE_STARTUP;
import static datadog.trace.util.AgentThreadFactory.newAgentThread;
import static datadog.trace.util.Strings.propertyNameToSystemPropertyName;
import static datadog.trace.util.Strings.toEnvVar;

import datadog.config.StableConfigSource;
import datadog.environment.EnvironmentVariables;
import datadog.environment.JavaVirtualMachine;
import datadog.environment.OperatingSystem;
Expand Down Expand Up @@ -47,7 +48,6 @@
import datadog.trace.api.profiling.ProfilingEnablement;
import datadog.trace.api.scopemanager.ScopeListener;
import datadog.trace.bootstrap.benchmark.StaticEventLogger;
import datadog.trace.bootstrap.config.provider.StableConfigSource;
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
import datadog.trace.bootstrap.instrumentation.api.AgentTracer.TracerAPI;
import datadog.trace.bootstrap.instrumentation.api.ProfilingContextIntegration;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public final class Constants {
"datadog.environment",
"datadog.json",
"datadog.yaml",
"datadog.generator",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Is this correct? The generator code shouldn't be packaged, only the generated file which is currently not in this package anyway:

  val outputFile = layout.buildDirectory.file("generated/sources/supported/GeneratedSupportedConfigurations.java")

"datadog.appsec.api",
"datadog.trace.api",
"datadog.trace.bootstrap",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package datadog.trace.bootstrap.instrumentation.java.concurrent;

import datadog.config.ConfigProvider;
import datadog.trace.api.Platform;
import datadog.trace.api.config.ProfilingConfig;
import datadog.trace.api.profiling.QueueTiming;
import datadog.trace.api.profiling.Timer;
import datadog.trace.api.profiling.Timing;
import datadog.trace.api.sampling.PerRecordingRateLimiter;
import datadog.trace.bootstrap.ContextStore;
import datadog.trace.bootstrap.config.provider.ConfigProvider;
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
import datadog.trace.bootstrap.instrumentation.jfr.InstrumentationBasedProfiling;
import java.time.Duration;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package datadog.trace.civisibility;

import datadog.communication.BackendApi;
import datadog.config.util.Strings;
import datadog.trace.api.Config;
import datadog.trace.api.civisibility.telemetry.CiVisibilityMetricCollector;
import datadog.trace.api.civisibility.telemetry.tag.Provider;
Expand Down Expand Up @@ -35,7 +36,6 @@
import datadog.trace.civisibility.source.SourcePathResolver;
import datadog.trace.civisibility.source.index.RepoIndexProvider;
import datadog.trace.civisibility.source.index.RepoIndexSourcePathResolver;
import datadog.trace.util.Strings;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package datadog.trace.civisibility;

import static datadog.config.util.Strings.propertyNameToSystemPropertyName;
import static datadog.trace.api.config.CiVisibilityConfig.CIVISIBILITY_SIGNAL_SERVER_HOST;
import static datadog.trace.api.config.CiVisibilityConfig.CIVISIBILITY_SIGNAL_SERVER_PORT;
import static datadog.trace.bootstrap.instrumentation.api.AgentPropagation.extractContextAndGetSpanContext;
import static datadog.trace.util.Strings.propertyNameToSystemPropertyName;

import datadog.environment.SystemProperties;
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.config.util.Strings;
import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
import datadog.trace.civisibility.ci.env.CiEnvironment;
import datadog.trace.util.Strings;
import javax.annotation.Nonnull;

class AppVeyorInfo implements CIProviderInfo {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
import static datadog.trace.api.git.GitUtils.normalizeTag;
import static datadog.trace.civisibility.utils.FileUtils.expandTilde;

import datadog.config.util.Strings;
import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.civisibility.ci.env.CiEnvironment;
import datadog.trace.util.Strings;
import javax.annotation.Nonnull;

class BitBucketInfo implements CIProviderInfo {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
import com.squareup.moshi.JsonAdapter;
import com.squareup.moshi.Moshi;
import com.squareup.moshi.Types;
import datadog.config.util.Strings;
import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.civisibility.ci.env.CiEnvironment;
import datadog.trace.util.Strings;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package datadog.trace.civisibility.ci;

import datadog.config.util.Strings;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.util.Strings;
import java.util.Objects;
import javax.annotation.Nonnull;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package datadog.trace.civisibility.config;

import datadog.config.util.Strings;
import datadog.trace.api.Config;
import datadog.trace.api.civisibility.CIConstants;
import datadog.trace.api.civisibility.CiVisibilityWellKnownTags;
Expand All @@ -12,7 +13,6 @@
import datadog.trace.civisibility.git.tree.GitClient;
import datadog.trace.civisibility.git.tree.GitDataUploader;
import datadog.trace.civisibility.git.tree.GitRepoUnshallow;
import datadog.trace.util.Strings;
import java.nio.file.Paths;
import java.util.Collection;
import java.util.Collections;
Expand Down
Loading