diff --git a/communication/src/main/java/datadog/communication/http/OkHttpUtils.java b/communication/src/main/java/datadog/communication/http/OkHttpUtils.java index 63a8e613ba4..1e723728819 100644 --- a/communication/src/main/java/datadog/communication/http/OkHttpUtils.java +++ b/communication/src/main/java/datadog/communication/http/OkHttpUtils.java @@ -7,6 +7,7 @@ import datadog.common.container.ContainerInfo; import datadog.common.socket.NamedPipeSocketFactory; import datadog.common.socket.UnixDomainSocketFactory; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import datadog.trace.util.AgentProxySelector; import java.io.File; @@ -49,9 +50,12 @@ public final class OkHttpUtils { private static final String DD_API_KEY = "DD-API-KEY"; - private static final String JAVA_VERSION = System.getProperty("java.version", "unknown"); - private static final String JAVA_VM_NAME = System.getProperty("java.vm.name", "unknown"); - private static final String JAVA_VM_VENDOR = System.getProperty("java.vm.vendor", "unknown"); + private static final String JAVA_VERSION = + SystemProperties.getOrDefault("java.version", "unknown"); + private static final String JAVA_VM_NAME = + SystemProperties.getOrDefault("java.vm.name", "unknown"); + private static final String JAVA_VM_VENDOR = + SystemProperties.getOrDefault("java.vm.vendor", "unknown"); public static OkHttpClient buildHttpClient(final HttpUrl url, final long timeoutMillis) { return buildHttpClient(url, null, null, timeoutMillis); diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/CiVisibilityServices.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/CiVisibilityServices.java index f46986f31a5..2cd94ba8799 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/CiVisibilityServices.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/CiVisibilityServices.java @@ -144,6 +144,7 @@ private static GitClient.Factory buildGitClientFactory( @Nonnull private static CiEnvironment buildCiEnvironment(Config config, SharedCommunicationObjects sco) { + CiEnvironment localEnvironment = CiEnvironmentImpl.local(); String remoteEnvVarsProviderUrl = config.getCiVisibilityRemoteEnvVarsProviderUrl(); if (remoteEnvVarsProviderUrl != null) { String remoteEnvVarsProviderKey = config.getCiVisibilityRemoteEnvVarsProviderKey(); @@ -151,10 +152,9 @@ private static CiEnvironment buildCiEnvironment(Config config, SharedCommunicati new CiEnvironmentImpl( getRemoteEnvironment( remoteEnvVarsProviderUrl, remoteEnvVarsProviderKey, sco.okHttpClient)); - CiEnvironment localEnvironment = new CiEnvironmentImpl(System.getenv()); return new CompositeCiEnvironment(remoteEnvironment, localEnvironment); } else { - return new CiEnvironmentImpl(System.getenv()); + return localEnvironment; } } diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ProcessHierarchy.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ProcessHierarchy.java index 7ba2837e4f9..ba35ceeb6b3 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ProcessHierarchy.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ProcessHierarchy.java @@ -1,11 +1,13 @@ package datadog.trace.civisibility; +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.trace.api.config.CiVisibilityConfig; +import datadog.environment.SystemProperties; import datadog.trace.bootstrap.instrumentation.api.AgentPropagation; import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext; -import datadog.trace.util.Strings; import java.net.InetSocketAddress; import java.util.Properties; import javax.annotation.Nullable; @@ -69,8 +71,8 @@ private boolean isWrapper() { } private boolean isMavenParent() { - return System.getProperty("maven.home") != null - && System.getProperty("classworlds.conf") != null + return SystemProperties.get("maven.home") != null + && SystemProperties.get("classworlds.conf") != null // when using Maven Wrapper || ClassLoader.getSystemClassLoader() .getResource("org/apache/maven/wrapper/WrapperExecutor.class") @@ -82,7 +84,7 @@ private boolean isGradleDaemon() { .getResource("org/gradle/launcher/daemon/bootstrap/GradleDaemon.class") != null // double-check this is not a Gradle Worker - && System.getProperties().getProperty("org.gradle.internal.worker.tmpdir") == null; + && SystemProperties.get("org.gradle.internal.worker.tmpdir") == null; } private boolean isGradleLauncher() { @@ -93,16 +95,12 @@ private boolean isGradleLauncher() { @Nullable public InetSocketAddress getSignalServerAddress() { - // System.getProperty is used rather than Config, + // System properties are used rather than Config, // because system variables can be set after config was initialized String host = - System.getProperty( - Strings.propertyNameToSystemPropertyName( - CiVisibilityConfig.CIVISIBILITY_SIGNAL_SERVER_HOST)); + SystemProperties.get(propertyNameToSystemPropertyName(CIVISIBILITY_SIGNAL_SERVER_HOST)); String port = - System.getProperty( - Strings.propertyNameToSystemPropertyName( - CiVisibilityConfig.CIVISIBILITY_SIGNAL_SERVER_PORT)); + SystemProperties.get(propertyNameToSystemPropertyName(CIVISIBILITY_SIGNAL_SERVER_PORT)); if (host != null && port != null) { return new InetSocketAddress(host, Integer.parseInt(port)); } else { diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/env/CiEnvironmentImpl.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/env/CiEnvironmentImpl.java index 0030df98768..cc26a631490 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/env/CiEnvironmentImpl.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/env/CiEnvironmentImpl.java @@ -1,5 +1,6 @@ package datadog.trace.civisibility.ci.env; +import java.util.Collections; import java.util.Map; public class CiEnvironmentImpl implements CiEnvironment { @@ -10,6 +11,16 @@ public CiEnvironmentImpl(Map env) { this.env = env; } + public static CiEnvironment local() { + Map env; + try { + env = System.getenv(); + } catch (SecurityException e) { + env = Collections.emptyMap(); + } + return new CiEnvironmentImpl(env); + } + @Override public String get(String name) { return env.get(name); diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java index 4fc0c27f59a..138420d3416 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java @@ -138,15 +138,18 @@ private Map getPropertiesPropagatedToChildProcess( ExecutionSettings executionSettings, BuildSessionSettings sessionSettings) { Map propagatedSystemProperties = new HashMap<>(); - Properties systemProperties = System.getProperties(); - for (Map.Entry e : systemProperties.entrySet()) { - String propertyName = (String) e.getKey(); - Object propertyValue = e.getValue(); - if ((propertyName.startsWith(Config.PREFIX) - || propertyName.startsWith("datadog.slf4j.simpleLogger.defaultLogLevel")) - && propertyValue != null) { - propagatedSystemProperties.put(propertyName, propertyValue.toString()); + try { + Properties systemProperties = System.getProperties(); + for (Map.Entry e : systemProperties.entrySet()) { + String propertyName = (String) e.getKey(); + Object propertyValue = e.getValue(); + if ((propertyName.startsWith(Config.PREFIX) + || propertyName.startsWith("datadog.slf4j.simpleLogger.defaultLogLevel")) + && propertyValue != null) { + propagatedSystemProperties.put(propertyName, propertyValue.toString()); + } } + } catch (SecurityException ignored) { } propagatedSystemProperties.put( diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/utils/FileUtils.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/utils/FileUtils.java index dbb6dfda2e6..eb668ac8b4b 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/utils/FileUtils.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/utils/FileUtils.java @@ -1,5 +1,6 @@ package datadog.trace.civisibility.utils; +import datadog.environment.SystemProperties; import de.thetaphi.forbiddenapis.SuppressForbidden; import java.io.IOException; import java.nio.file.FileVisitResult; @@ -77,7 +78,7 @@ public static String expandTilde(final String path) { return path; } - return path.replaceFirst("^~", System.getProperty("user.home")); + return path.replaceFirst("^~", SystemProperties.getOrDefault("user.home", "")); } public static String toRealPath(String path) { diff --git a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploader.java b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploader.java index b8cf20dd8f9..fc0f1d64e46 100644 --- a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploader.java +++ b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploader.java @@ -12,6 +12,7 @@ import datadog.common.version.VersionInfo; import datadog.communication.http.OkHttpUtils; import datadog.crashtracking.dto.CrashLog; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import datadog.trace.api.DDTags; import datadog.trace.bootstrap.config.provider.ConfigProvider; @@ -302,7 +303,9 @@ private RequestBody makeTelemetryRequestBody(@Nonnull String content) throws IOE writer.beginObject(); writer.name("env").value(config.getEnv()); writer.name("language_name").value("jvm"); - writer.name("language_version").value(System.getProperty("java.version", "unknown")); + writer + .name("language_version") + .value(SystemProperties.getOrDefault("java.version", "unknown")); writer.name("service_name").value(config.getServiceName()); writer.name("service_version").value(config.getVersion()); writer.name("tracer_version").value(VersionInfo.VERSION); diff --git a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploaderScriptInitializer.java b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploaderScriptInitializer.java index d65d4f02f7d..681c211c42f 100644 --- a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploaderScriptInitializer.java +++ b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/CrashUploaderScriptInitializer.java @@ -11,6 +11,7 @@ import static java.nio.file.attribute.PosixFilePermissions.fromString; import static java.util.Locale.ROOT; +import datadog.environment.SystemProperties; import datadog.trace.util.PidHelper; import datadog.trace.util.Strings; import java.io.BufferedReader; @@ -36,7 +37,7 @@ static void initialize(String onErrorVal, String onErrorFile) { return; } if (onErrorFile == null || onErrorFile.isEmpty()) { - onErrorFile = System.getProperty("user.dir") + "/hs_err_pid" + PidHelper.getPid() + ".log"; + onErrorFile = SystemProperties.get("user.dir") + "/hs_err_pid" + PidHelper.getPid() + ".log"; LOG.debug("No -XX:ErrorFile value, defaulting to {}", onErrorFile); } else { onErrorFile = Strings.replace(onErrorFile, "%p", PidHelper.getPid()); @@ -120,7 +121,7 @@ private static void writeCrashUploaderScript( private static String template(String line, String execClass, String crashFile) { line = Strings.replace(line, "!AGENT_JAR!", execClass); - line = Strings.replace(line, "!JAVA_HOME!", System.getProperty("java.home")); + line = Strings.replace(line, "!JAVA_HOME!", SystemProperties.get("java.home")); if (crashFile != null) { line = Strings.replace(line, "!JAVA_ERROR_FILE!", crashFile); } diff --git a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/Initializer.java b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/Initializer.java index bacf59234cb..d7dade2dc81 100644 --- a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/Initializer.java +++ b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/Initializer.java @@ -8,6 +8,7 @@ import com.datadoghq.profiler.JVMAccess; import com.sun.management.HotSpotDiagnosticMXBean; import datadog.environment.OperatingSystem; +import datadog.environment.SystemProperties; import datadog.libs.ddprof.DdprofLibraryLoader; import datadog.trace.util.PidHelper; import datadog.trace.util.TempLocationManager; @@ -162,7 +163,7 @@ static void writeConfig(Path scriptPath, String... entries) { bw.write(entries[i + 1]); bw.newLine(); } - bw.write("java_home=" + System.getProperty("java.home")); + bw.write("java_home=" + SystemProperties.get("java.home")); bw.newLine(); Runtime.getRuntime() diff --git a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/parsers/HotspotCrashLogParser.java b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/parsers/HotspotCrashLogParser.java index bd9dc47bfaf..8e9c48724a5 100644 --- a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/parsers/HotspotCrashLogParser.java +++ b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/parsers/HotspotCrashLogParser.java @@ -11,6 +11,7 @@ import datadog.crashtracking.dto.SemanticVersion; import datadog.crashtracking.dto.StackFrame; import datadog.crashtracking.dto.StackTrace; +import datadog.environment.SystemProperties; import java.time.OffsetDateTime; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; @@ -214,10 +215,10 @@ public CrashLog parse(String crashLog) { Metadata metadata = new Metadata("dd-trace-java", VersionInfo.VERSION, "java", null); OSInfo osInfo = new OSInfo( - System.getProperty("os.arch"), - System.getProperty("sun.arch.data.model"), - System.getProperty("os.name"), - SemanticVersion.of(System.getProperty("os.version"))); + SystemProperties.get("os.arch"), + SystemProperties.get("sun.arch.data.model"), + SystemProperties.get("os.name"), + SemanticVersion.of(SystemProperties.get("os.version"))); ProcInfo procInfo = pid != null ? new ProcInfo(pid) : null; return new CrashLog(false, datetime, error, metadata, osInfo, procInfo); } diff --git a/dd-java-agent/agent-crashtracking/src/test/java/datadog/crashtracking/CrashUploaderTest.java b/dd-java-agent/agent-crashtracking/src/test/java/datadog/crashtracking/CrashUploaderTest.java index 8aef67b2301..ddd0ddfcf49 100644 --- a/dd-java-agent/agent-crashtracking/src/test/java/datadog/crashtracking/CrashUploaderTest.java +++ b/dd-java-agent/agent-crashtracking/src/test/java/datadog/crashtracking/CrashUploaderTest.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import datadog.common.version.VersionInfo; import datadog.crashtracking.dto.CrashLog; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import datadog.trace.bootstrap.config.provider.ConfigProvider; import java.io.BufferedReader; @@ -184,7 +185,7 @@ public void testTelemetryHappyPath(String log) throws Exception { assertEquals(ENV, event.get("application").get("env").asText()); assertEquals("jvm", event.get("application").get("language_name").asText()); assertEquals( - System.getProperty("java.version", "unknown"), + SystemProperties.getOrDefault("java.version", "unknown"), event.get("application").get("language_version").asText()); assertEquals(SERVICE, event.get("application").get("service_name").asText()); assertEquals(VERSION, event.get("application").get("service_version").asText()); diff --git a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerTransformer.java b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerTransformer.java index 3bc4d49804c..4ae05865d22 100644 --- a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerTransformer.java +++ b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerTransformer.java @@ -25,6 +25,7 @@ import com.datadog.debugger.util.ClassFileLines; import com.datadog.debugger.util.DebuggerMetrics; import com.datadog.debugger.util.ExceptionHelper; +import datadog.environment.SystemProperties; import datadog.trace.agent.tooling.AgentStrategies; import datadog.trace.api.Config; import datadog.trace.bootstrap.debugger.MethodLocation; @@ -89,7 +90,7 @@ public class DebuggerTransformer implements ClassFileTransformer { SpanProbe.class); private static final String JAVA_IO_TMPDIR = "java.io.tmpdir"; - public static Path DUMP_PATH = Paths.get(System.getProperty(JAVA_IO_TMPDIR), "debugger"); + public static Path DUMP_PATH = Paths.get(SystemProperties.get(JAVA_IO_TMPDIR), "debugger"); private final Config config; private final TransformerDefinitionMatcher definitionMatcher; diff --git a/dd-java-agent/agent-jmxfetch/src/main/java/datadog/trace/agent/jmxfetch/JMXFetch.java b/dd-java-agent/agent-jmxfetch/src/main/java/datadog/trace/agent/jmxfetch/JMXFetch.java index 319f455c85e..77ff44c442f 100644 --- a/dd-java-agent/agent-jmxfetch/src/main/java/datadog/trace/agent/jmxfetch/JMXFetch.java +++ b/dd-java-agent/agent-jmxfetch/src/main/java/datadog/trace/agent/jmxfetch/JMXFetch.java @@ -4,6 +4,7 @@ import static datadog.trace.util.AgentThreadFactory.newAgentThread; import static org.datadog.jmxfetch.AppConfig.ACTION_COLLECT; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import datadog.trace.api.GlobalTracer; import datadog.trace.api.StatsDClient; @@ -47,9 +48,9 @@ private static void run(final StatsDClientManager statsDClientManager, final Con } if (!log.isDebugEnabled() - && System.getProperty("org.slf4j.simpleLogger.log.org.datadog.jmxfetch") == null) { + && SystemProperties.get("org.slf4j.simpleLogger.log.org.datadog.jmxfetch") == null) { // Reduce noisiness of jmxfetch logging. - System.setProperty("org.slf4j.simpleLogger.log.org.datadog.jmxfetch", "warn"); + SystemProperties.set("org.slf4j.simpleLogger.log.org.datadog.jmxfetch", "warn"); } final String jmxFetchConfigDir = config.getJmxFetchConfigDir(); @@ -217,10 +218,11 @@ private static List getInternalMetricFiles() { } private static String getLogLocation() { - return System.getProperty("org.slf4j.simpleLogger.logFile", "System.err"); + return SystemProperties.getOrDefault("org.slf4j.simpleLogger.logFile", "System.err"); } private static String getLogLevel() { - return System.getProperty("org.slf4j.simpleLogger.defaultLogLevel", "info").toUpperCase(); + return SystemProperties.getOrDefault("org.slf4j.simpleLogger.defaultLogLevel", "info") + .toUpperCase(); } } diff --git a/dd-java-agent/agent-logging/src/main/java/datadog/trace/logging/LogReporter.java b/dd-java-agent/agent-logging/src/main/java/datadog/trace/logging/LogReporter.java index 0ea9f531e76..0e6c9892dff 100644 --- a/dd-java-agent/agent-logging/src/main/java/datadog/trace/logging/LogReporter.java +++ b/dd-java-agent/agent-logging/src/main/java/datadog/trace/logging/LogReporter.java @@ -2,6 +2,7 @@ import static java.nio.file.Files.readAllBytes; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import datadog.trace.api.flare.TracerFlare; import java.io.File; @@ -45,7 +46,7 @@ public void prepareForFlare() { String captureFilename = "tracer" + "-" + Config.get().getRuntimeId() + "-" + endMillis + ".log"; try { - Path tempPath = Paths.get(System.getProperty("java.io.tmpdir"), captureFilename); + Path tempPath = Paths.get(SystemProperties.get("java.io.tmpdir"), captureFilename); Path parentPath = tempPath.getParent(); if (parentPath != null && !Files.isDirectory(parentPath)) { Files.createDirectories(parentPath); diff --git a/dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/Arch.java b/dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/Arch.java index 521addd1133..a1f1bb4dd1e 100644 --- a/dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/Arch.java +++ b/dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/Arch.java @@ -1,5 +1,6 @@ package com.datadog.profiling.ddprof; +import datadog.environment.SystemProperties; import java.util.Arrays; import java.util.EnumSet; import java.util.HashSet; @@ -29,6 +30,6 @@ public static Arch of(String identifier) { } public static Arch current() { - return Arch.of(System.getProperty("os.arch")); + return Arch.of(SystemProperties.get("os.arch")); } } diff --git a/dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/OperatingSystem.java b/dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/OperatingSystem.java index f58445c6a95..d0443533933 100644 --- a/dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/OperatingSystem.java +++ b/dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/OperatingSystem.java @@ -1,5 +1,6 @@ package com.datadog.profiling.ddprof; +import datadog.environment.SystemProperties; import java.util.Arrays; import java.util.EnumSet; import java.util.HashSet; @@ -27,6 +28,6 @@ public static OperatingSystem of(String identifier) { } public static OperatingSystem current() { - return OperatingSystem.of(System.getProperty("os.name")); + return OperatingSystem.of(SystemProperties.get("os.name")); } } diff --git a/dd-java-agent/agent-profiling/profiling-uploader/src/main/java/com/datadog/profiling/uploader/util/JfrCliHelper.java b/dd-java-agent/agent-profiling/profiling-uploader/src/main/java/com/datadog/profiling/uploader/util/JfrCliHelper.java index 0781bd5f183..44f027bd264 100644 --- a/dd-java-agent/agent-profiling/profiling-uploader/src/main/java/com/datadog/profiling/uploader/util/JfrCliHelper.java +++ b/dd-java-agent/agent-profiling/profiling-uploader/src/main/java/com/datadog/profiling/uploader/util/JfrCliHelper.java @@ -3,6 +3,7 @@ import static datadog.trace.util.AgentThreadFactory.AgentThread.PROFILER_HTTP_DISPATCHER; import datadog.environment.JavaVirtualMachine; +import datadog.environment.SystemProperties; import datadog.trace.api.profiling.RecordingData; import datadog.trace.relocate.api.IOLogger; import datadog.trace.util.AgentThreadFactory; @@ -44,7 +45,7 @@ public class JfrCliHelper { public static void invokeOn(final RecordingData data, final IOLogger ioLogger) { File tmp = null; try { - Path jfr = Paths.get(System.getProperty("java.home"), "bin", "jfr"); + Path jfr = Paths.get(SystemProperties.get("java.home"), "bin", "jfr"); if (JavaVirtualMachine.isJ9() || !Files.exists(jfr)) { ioLogger.error("Failed to gather information on recording, can't find `jfr`"); return; diff --git a/dd-java-agent/agent-profiling/profiling-uploader/src/test/java/com/datadog/profiling/uploader/util/JfrCliHelperTest.java b/dd-java-agent/agent-profiling/profiling-uploader/src/test/java/com/datadog/profiling/uploader/util/JfrCliHelperTest.java index a09c220c783..fea7fee6e0a 100644 --- a/dd-java-agent/agent-profiling/profiling-uploader/src/test/java/com/datadog/profiling/uploader/util/JfrCliHelperTest.java +++ b/dd-java-agent/agent-profiling/profiling-uploader/src/test/java/com/datadog/profiling/uploader/util/JfrCliHelperTest.java @@ -10,6 +10,7 @@ import static org.mockito.Mockito.withSettings; import datadog.environment.JavaVirtualMachine; +import datadog.environment.SystemProperties; import datadog.trace.api.profiling.RecordingData; import datadog.trace.api.profiling.RecordingInputStream; import datadog.trace.relocate.api.IOLogger; @@ -75,7 +76,7 @@ public void testInvokeOn() throws Exception { } private boolean hasJfr() { - return Files.exists(Paths.get(System.getProperty("java.home"), "bin", "jfr")); + return Files.exists(Paths.get(SystemProperties.get("java.home"), "bin", "jfr")); } private RecordingData mockRecordingData() throws IOException { diff --git a/dd-java-agent/agent-profiling/src/main/java/com/datadog/profiling/agent/CompositeController.java b/dd-java-agent/agent-profiling/src/main/java/com/datadog/profiling/agent/CompositeController.java index 4217636d078..6daf5986b11 100644 --- a/dd-java-agent/agent-profiling/src/main/java/com/datadog/profiling/agent/CompositeController.java +++ b/dd-java-agent/agent-profiling/src/main/java/com/datadog/profiling/agent/CompositeController.java @@ -14,6 +14,7 @@ import com.datadog.profiling.ddprof.Arch; import com.datadog.profiling.ddprof.OperatingSystem; import datadog.environment.JavaVirtualMachine; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import datadog.trace.api.Platform; import datadog.trace.api.config.ProfilingConfig; @@ -230,9 +231,9 @@ private static String getFixProposalMessage(boolean datadogProfilerEnabled, bool if (!datadogProfilerEnabled && !jfrEnabled) { return "Profiling is disabled by configuration. Please, make sure that your configuration is correct."; } - final String javaVendor = System.getProperty("java.vendor"); - final String javaVersion = System.getProperty("java.version"); - final String javaRuntimeName = System.getProperty("java.runtime.name"); + final String javaVendor = SystemProperties.getOrDefault("java.vendor", "unknown"); + final String javaVersion = SystemProperties.getOrDefault("java.version", "unknown"); + final String javaRuntimeName = SystemProperties.getOrDefault("java.runtime.name", "unknown"); final String message = "Not enabling profiling for vendor=" + javaVendor diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/profiler/EnvironmentChecker.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/profiler/EnvironmentChecker.java index f2dbb165a80..8436ea435b1 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/profiler/EnvironmentChecker.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/profiler/EnvironmentChecker.java @@ -2,6 +2,7 @@ import datadog.environment.JavaVirtualMachine; import datadog.environment.OperatingSystem; +import datadog.environment.SystemProperties; import de.thetaphi.forbiddenapis.SuppressForbidden; import java.io.File; import java.io.IOException; @@ -28,9 +29,9 @@ public static boolean checkEnvironment(String temp) { "Using Java version: " + JavaVirtualMachine.getRuntimeVersion() + " (" - + System.getProperty("java.home") + + SystemProperties.getOrDefault("java.home", "unknown") + ")"); - System.out.println("Running as user: " + System.getProperty("user.name")); + System.out.println("Running as user: " + SystemProperties.getOrDefault("user.name", "unknown")); boolean result = false; result |= checkJFR(); result |= checkDdprof(); @@ -46,7 +47,7 @@ public static boolean checkEnvironment(String temp) { "Profiler will not work properly due to issues with temp directory location."); return false; } else { - if (!temp.equals(System.getProperty("java.io.tmpdir"))) { + if (!temp.equals(SystemProperties.get("java.io.tmpdir"))) { System.out.println( "! Make sure to add '-Ddd.profiling.tempdir=" + temp + "' to your JVM command line !"); } diff --git a/dd-java-agent/appsec/src/main/java/com/datadog/appsec/ddwaf/WafInitialization.java b/dd-java-agent/appsec/src/main/java/com/datadog/appsec/ddwaf/WafInitialization.java index 3bbc177dad3..484921c7d3c 100644 --- a/dd-java-agent/appsec/src/main/java/com/datadog/appsec/ddwaf/WafInitialization.java +++ b/dd-java-agent/appsec/src/main/java/com/datadog/appsec/ddwaf/WafInitialization.java @@ -2,6 +2,7 @@ import com.datadog.appsec.util.StandardizedLogging; import com.datadog.ddwaf.Waf; +import datadog.environment.SystemProperties; import java.io.File; import java.io.IOException; import java.util.Scanner; @@ -13,7 +14,7 @@ public class WafInitialization { private static boolean initWAF() { try { - boolean simpleLoad = System.getProperty("POWERWAF_SIMPLE_LOAD") != null; + boolean simpleLoad = SystemProperties.get("POWERWAF_SIMPLE_LOAD") != null; Waf.initialize(simpleLoad); } catch (Throwable e) { Logger logger = LoggerFactory.getLogger(WafInitialization.class); @@ -26,7 +27,7 @@ private static boolean initWAF() { } private static String getLibc() { - String os = System.getProperty("os.name"); + String os = SystemProperties.get("os.name"); if ("Linux".equals(os)) { File file = new File("/proc/self/maps"); try (Scanner sc = new Scanner(file, "ISO-8859-1")) { diff --git a/dd-java-agent/appsec/src/main/java/com/datadog/appsec/util/AppSecVersion.java b/dd-java-agent/appsec/src/main/java/com/datadog/appsec/util/AppSecVersion.java index 002fcd86331..acb1c559e5d 100644 --- a/dd-java-agent/appsec/src/main/java/com/datadog/appsec/util/AppSecVersion.java +++ b/dd-java-agent/appsec/src/main/java/com/datadog/appsec/util/AppSecVersion.java @@ -1,12 +1,16 @@ package com.datadog.appsec.util; +import datadog.environment.SystemProperties; import java.io.BufferedReader; import java.io.InputStreamReader; public class AppSecVersion { - public static final String JAVA_VERSION = System.getProperty("java.version", "unknown"); - public static final String JAVA_VM_NAME = System.getProperty("java.vm.name", "unknown"); - public static final String JAVA_VM_VENDOR = System.getProperty("java.vm.vendor", "unknown"); + public static final String JAVA_VERSION = + SystemProperties.getOrDefault("java.version", "unknown"); + public static final String JAVA_VM_NAME = + SystemProperties.getOrDefault("java.vm.name", "unknown"); + public static final String JAVA_VM_VENDOR = + SystemProperties.getOrDefault("java.vm.vendor", "unknown"); public static final String VERSION; static { diff --git a/dd-java-agent/appsec/src/main/java/com/datadog/appsec/util/StandardizedLogging.java b/dd-java-agent/appsec/src/main/java/com/datadog/appsec/util/StandardizedLogging.java index c51eb94da30..beac1dd9371 100644 --- a/dd-java-agent/appsec/src/main/java/com/datadog/appsec/util/StandardizedLogging.java +++ b/dd-java-agent/appsec/src/main/java/com/datadog/appsec/util/StandardizedLogging.java @@ -5,6 +5,7 @@ import com.datadog.appsec.event.data.Address; import com.datadog.appsec.report.AppSecEvent; import com.datadog.ddwaf.Waf; +import datadog.environment.SystemProperties; import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; @@ -42,11 +43,11 @@ public static void libddwafCannotBeLoaded(Logger logger, String libc) { + "AppSec could not start. No security activities will be collected. " + "Please contact support at https://docs.datadoghq.com/help/ for help. " + "Host information: operating_system: {}, libc: {}, arch: {}, runtime: {} {}", - System.getProperty("os.name"), + SystemProperties.get("os.name"), libc, - System.getProperty("os.arch"), - System.getProperty("java.vm.vendor"), - System.getProperty("java.version")); + SystemProperties.get("os.arch"), + SystemProperties.get("java.vm.vendor"), + SystemProperties.get("java.version")); } // C4: diff --git a/dd-java-agent/cws-tls/src/main/java/datadog/cws/tls/ErpcTls.java b/dd-java-agent/cws-tls/src/main/java/datadog/cws/tls/ErpcTls.java index 14becf51e79..b9e3ee7bf15 100644 --- a/dd-java-agent/cws-tls/src/main/java/datadog/cws/tls/ErpcTls.java +++ b/dd-java-agent/cws-tls/src/main/java/datadog/cws/tls/ErpcTls.java @@ -10,6 +10,7 @@ import com.sun.jna.Pointer; import datadog.cws.erpc.Erpc; import datadog.cws.erpc.Request; +import datadog.environment.SystemProperties; import datadog.trace.api.DD128bTraceId; import datadog.trace.api.DDTraceId; @@ -40,7 +41,7 @@ public interface CLibrary extends Library { } static int getGettidSyscallId() { - String arch = System.getProperty("os.arch"); + String arch = SystemProperties.get("os.arch"); if (arch.equals("amd64")) { return 186; // 186 is the syscall ID for "gettid" on amd64 } else if (arch.equals("arm64")) { diff --git a/dd-java-agent/instrumentation/aws-lambda-handler/src/main/java/datadog/trace/instrumentation/aws/v1/lambda/LambdaHandlerInstrumentation.java b/dd-java-agent/instrumentation/aws-lambda-handler/src/main/java/datadog/trace/instrumentation/aws/v1/lambda/LambdaHandlerInstrumentation.java index b281639d7ff..c8f8fd851ed 100644 --- a/dd-java-agent/instrumentation/aws-lambda-handler/src/main/java/datadog/trace/instrumentation/aws/v1/lambda/LambdaHandlerInstrumentation.java +++ b/dd-java-agent/instrumentation/aws-lambda-handler/src/main/java/datadog/trace/instrumentation/aws/v1/lambda/LambdaHandlerInstrumentation.java @@ -16,6 +16,7 @@ import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.google.auto.service.AutoService; +import datadog.environment.EnvironmentVariables; import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.bootstrap.CallDepthThreadLocalMap; @@ -60,8 +61,7 @@ public String[] helperClassNames() { @Override protected boolean defaultEnabled() { - final String handler = System.getenv(HANDLER_ENV_NAME); - return null != handler; + return EnvironmentVariables.get(HANDLER_ENV_NAME) != null; } @Override diff --git a/dd-java-agent/instrumentation/couchbase/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy b/dd-java-agent/instrumentation/couchbase/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy index a8831ca3581..b4f7dbc1653 100644 --- a/dd-java-agent/instrumentation/couchbase/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy +++ b/dd-java-agent/instrumentation/couchbase/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy @@ -5,6 +5,7 @@ import com.couchbase.client.java.CouchbaseCluster import com.couchbase.client.java.env.CouchbaseEnvironment import com.couchbase.client.java.view.DefaultView import com.couchbase.client.java.view.DesignDocument +import datadog.environment.JavaVirtualMachine import org.springframework.context.ConfigurableApplicationContext import org.springframework.context.annotation.AnnotationConfigApplicationContext import org.springframework.data.repository.CrudRepository @@ -18,7 +19,7 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan @IgnoreIf({ // TODO Java 17: This version of spring-data doesn't support Java 17 - new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0) + JavaVirtualMachine.isJavaVersionAtLeast(17) }) abstract class CouchbaseSpringRepositoryTest extends AbstractCouchbaseTest { static final Closure FIND diff --git a/dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/NativeImageGeneratorRunnerInstrumentation.java b/dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/NativeImageGeneratorRunnerInstrumentation.java index a68f07b848d..fa3a0bc92c8 100644 --- a/dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/NativeImageGeneratorRunnerInstrumentation.java +++ b/dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/NativeImageGeneratorRunnerInstrumentation.java @@ -5,6 +5,7 @@ import static net.bytebuddy.matcher.ElementMatchers.isMethod; import com.google.auto.service.AutoService; +import datadog.environment.SystemProperties; import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.api.InstrumenterConfig; @@ -167,7 +168,7 @@ public static void onEnter(@Advice.Argument(value = 0, readOnly = false) String[ // Specific GraalVM versions have different flags for enabling JFR // We don't want to drag in internal-api via Platform class, so we just read the system // property directly - String version = System.getProperty("java.specification.version"); + String version = SystemProperties.getOrDefault("java.specification.version", ""); if (version.startsWith("17")) { args[oldLength++] = "-H:EnableMonitoringFeatures=jfr"; } else { diff --git a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java index aaf161be27c..c64df624fe7 100644 --- a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java +++ b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java @@ -1,9 +1,10 @@ package datadog.trace.instrumentation.gradle; +import static datadog.trace.api.config.CiVisibilityConfig.CIVISIBILITY_INJECTED_TRACER_VERSION; import static datadog.trace.util.Strings.propertyNameToSystemPropertyName; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; -import datadog.trace.api.config.CiVisibilityConfig; import java.io.File; import java.nio.file.Path; import java.util.HashMap; @@ -14,10 +15,8 @@ public class GradleDaemonInjectionUtils { public static Map addJavaagentToGradleDaemonProperties( Map jvmOptions) { - Properties systemProperties = System.getProperties(); - if (systemProperties.containsKey( - propertyNameToSystemPropertyName( - CiVisibilityConfig.CIVISIBILITY_INJECTED_TRACER_VERSION))) { + if (SystemProperties.get(propertyNameToSystemPropertyName(CIVISIBILITY_INJECTED_TRACER_VERSION)) + != null) { // This Gradle launcher is started by a process that is itself instrumented, // most likely this is a Gradle build using Gradle Test Kit to fork another Gradle instance // (e.g. to test a Gradle plugin). @@ -29,16 +28,20 @@ public static Map addJavaagentToGradleDaemonProperties( Path agentJarPath = agentJar.toPath(); StringBuilder agentArg = new StringBuilder("-javaagent:").append(agentJarPath).append('='); - for (Map.Entry e : systemProperties.entrySet()) { - String propertyName = (String) e.getKey(); - Object propertyValue = e.getValue(); - if (propertyName.startsWith(Config.PREFIX)) { - agentArg - .append(propertyName) - .append("='") - .append(String.valueOf(propertyValue).replace("'", "'\\''")) - .append("',"); + try { + Properties systemProperties = System.getProperties(); + for (Map.Entry e : systemProperties.entrySet()) { + String propertyName = (String) e.getKey(); + Object propertyValue = e.getValue(); + if (propertyName.startsWith(Config.PREFIX)) { + agentArg + .append(propertyName) + .append("='") + .append(String.valueOf(propertyValue).replace("'", "'\\''")) + .append("',"); + } } + } catch (SecurityException ignored) { } // creating a new map in case jvmOptions is immutable diff --git a/dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java b/dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java index df5dbbfaa8b..395c963bf4e 100644 --- a/dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java +++ b/dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java @@ -5,6 +5,7 @@ import static net.bytebuddy.matcher.ElementMatchers.returns; import com.google.auto.service.AutoService; +import datadog.environment.SystemProperties; import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.bootstrap.instrumentation.jmx.MBeanServerRegistry; @@ -20,7 +21,7 @@ public class CustomMBeanBuilderInstrumentation extends InstrumenterModule.Tracin public CustomMBeanBuilderInstrumentation() { super("java-lang-management"); - customBuilder = System.getProperty("javax.management.builder.initial"); + customBuilder = SystemProperties.get("javax.management.builder.initial"); } @Override diff --git a/dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientAsyncTest.groovy b/dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientAsyncTest.groovy index 1ce82df6e34..0af25e9b290 100644 --- a/dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientAsyncTest.groovy +++ b/dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientAsyncTest.groovy @@ -1,3 +1,4 @@ +import datadog.environment.JavaVirtualMachine import datadog.trace.agent.test.base.HttpClientTest import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions import datadog.trace.instrumentation.jaxrs.JaxRsClientDecorator @@ -118,7 +119,7 @@ class ResteasyClientAsyncV1ForkedTest extends ResteasyClientAsyncTest implements @IgnoreIf({ // TODO Java 17: This version of apache-cxf doesn't work on Java 17 // exception in org.apache.cxf.common.util.ReflectionUtil - new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0) + JavaVirtualMachine.isJavaVersionAtLeast(17) }) class CxfClientAsyncTest extends JaxRsClientAsyncTest { diff --git a/dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientTest.groovy b/dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientTest.groovy index f7f83cb4ace..78660157452 100644 --- a/dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientTest.groovy +++ b/dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientTest.groovy @@ -1,3 +1,4 @@ +import datadog.environment.JavaVirtualMachine import datadog.trace.agent.test.base.HttpClientTest import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions import datadog.trace.instrumentation.jaxrs.JaxRsClientDecorator @@ -104,7 +105,7 @@ class ResteasyClientV1ForkedTest extends ResteasyClientTest implements TestingGe @IgnoreIf({ // TODO Java 17: This version of apache-cxf doesn't work on Java 17 // exception in org.apache.cxf.common.util.ReflectionUtil - new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0) + JavaVirtualMachine.isJavaVersionAtLeast(17) }) class CxfClientTest extends JaxRsClientTest { diff --git a/dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenUtils.java b/dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenUtils.java index c5315dc0921..3b49dce6841 100644 --- a/dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenUtils.java +++ b/dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenUtils.java @@ -1,5 +1,6 @@ package datadog.trace.instrumentation.maven3; +import datadog.environment.EnvironmentVariables; import datadog.trace.api.civisibility.domain.JavaAgent; import datadog.trace.util.MethodHandles; import datadog.trace.util.Strings; @@ -65,7 +66,7 @@ public abstract class MavenUtils { * of the request object */ public static String getCommandLine(MavenSession session) { - String mavenCmdLineArgsEnvVar = System.getenv(MAVEN_CMD_LINE_ARGS_ENVIRONMENT_VAR); + String mavenCmdLineArgsEnvVar = EnvironmentVariables.get(MAVEN_CMD_LINE_ARGS_ENVIRONMENT_VAR); if (mavenCmdLineArgsEnvVar != null) { return MVN_CMD_LINE_INVOCATION + mavenCmdLineArgsEnvVar; } diff --git a/dd-java-agent/instrumentation/tibco-businessworks/tibcobw-6/src/main/java/datadog/trace/instrumentation/tibcobw6/TibcoDecorator.java b/dd-java-agent/instrumentation/tibco-businessworks/tibcobw-6/src/main/java/datadog/trace/instrumentation/tibcobw6/TibcoDecorator.java index e607c288d12..94c4226acbc 100644 --- a/dd-java-agent/instrumentation/tibco-businessworks/tibcobw-6/src/main/java/datadog/trace/instrumentation/tibcobw6/TibcoDecorator.java +++ b/dd-java-agent/instrumentation/tibco-businessworks/tibcobw-6/src/main/java/datadog/trace/instrumentation/tibcobw6/TibcoDecorator.java @@ -3,6 +3,7 @@ import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.TIBCO_NODE; import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.TIBCO_VERSION; +import datadog.environment.SystemProperties; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; import datadog.trace.bootstrap.instrumentation.api.InternalSpanTypes; import datadog.trace.bootstrap.instrumentation.api.Tags; @@ -16,7 +17,7 @@ public class TibcoDecorator extends BaseDecorator { private static final Logger LOGGER = LoggerFactory.getLogger(TibcoDecorator.class); private static final CharSequence TIBCO_BW = UTF8BytesString.create("tibco_bw"); private static final CharSequence APPNODE_NAME = - UTF8BytesString.create(System.getProperty("bw.appnode")); + UTF8BytesString.create(SystemProperties.get("bw.appnode")); private static final CharSequence BW_VERSION = bwVersion(); public static final CharSequence TIBCO_PROCESS_OPERATION = UTF8BytesString.create("tibco.process"); diff --git a/dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java b/dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java index d7c6088122e..aef4c7a72f2 100644 --- a/dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java +++ b/dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java @@ -5,6 +5,7 @@ import static net.bytebuddy.matcher.ElementMatchers.returns; import com.google.auto.service.AutoService; +import datadog.environment.SystemProperties; import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.InstrumenterModule; import datadog.trace.bootstrap.config.provider.ConfigProvider; @@ -24,7 +25,7 @@ public class WebsphereSecurityInstrumentation extends InstrumenterModule.Tracing public WebsphereSecurityInstrumentation() { super("websphere-jmx"); - customBuilder = System.getProperty("javax.management.builder.initial"); + customBuilder = SystemProperties.get("javax.management.builder.initial"); } @Override