Skip to content

Commit e1aa51e

Browse files
committed
feat(env): Migrate agent and instrumentations to environment component
1 parent 33422a3 commit e1aa51e

File tree

70 files changed

+247
-187
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+247
-187
lines changed

dd-java-agent/agent-bootstrap/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ dependencies {
2222
api project(':internal-api:internal-api-9')
2323
api project(':dd-java-agent:agent-logging')
2424
api project(':dd-java-agent:agent-debugger:debugger-bootstrap')
25+
api project(':components:environment')
2526
api project(':components:json')
2627
api libs.slf4j
2728
// ^ Generally a bad idea for libraries, but we're shadowing.

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package datadog.trace.bootstrap;
22

3+
import static datadog.environment.JavaVirtualMachine.isJavaVersionAtLeast;
4+
import static datadog.environment.JavaVirtualMachine.isOracleJDK8;
35
import static datadog.trace.api.ConfigDefaults.DEFAULT_STARTUP_LOGS_ENABLED;
4-
import static datadog.trace.api.Platform.isJavaVersionAtLeast;
5-
import static datadog.trace.api.Platform.isOracleJDK8;
66
import static datadog.trace.bootstrap.Library.WILDFLY;
77
import static datadog.trace.bootstrap.Library.detectLibraries;
88
import static datadog.trace.util.AgentThreadFactory.AgentThread.JMX_STARTUP;
@@ -12,6 +12,8 @@
1212
import static datadog.trace.util.Strings.propertyNameToSystemPropertyName;
1313
import static datadog.trace.util.Strings.toEnvVar;
1414

15+
import datadog.environment.JavaVirtualMachine;
16+
import datadog.environment.OperatingSystem;
1517
import datadog.trace.api.Config;
1618
import datadog.trace.api.Platform;
1719
import datadog.trace.api.StatsDClientManager;
@@ -873,12 +875,12 @@ private static void startAppSec(SubscriptionService ss, Class<?> scoClass, Objec
873875

874876
private static boolean isSupportedAppSecArch() {
875877
final String arch = System.getProperty("os.arch");
876-
if (Platform.isWindows()) {
878+
if (OperatingSystem.isWindows()) {
877879
// TODO: Windows bindings need to be built for x86
878880
return "amd64".equals(arch) || "x86_64".equals(arch);
879-
} else if (Platform.isMac()) {
881+
} else if (OperatingSystem.isMacOs()) {
880882
return "amd64".equals(arch) || "x86_64".equals(arch) || "aarch64".equals(arch);
881-
} else if (Platform.isLinux()) {
883+
} else if (OperatingSystem.isLinux()) {
882884
return "amd64".equals(arch) || "x86_64".equals(arch) || "aarch64".equals(arch);
883885
}
884886
// Still return true in other if unexpected cases (e.g. SunOS), and we'll handle loading errors
@@ -997,7 +999,7 @@ private static void stopTelemetry() {
997999
}
9981000

9991001
private static void initializeErrorTracking() {
1000-
if (Platform.isJ9()) {
1002+
if (JavaVirtualMachine.isJ9()) {
10011003
// TODO currently crash tracking is supported only for HotSpot based JVMs
10021004
return;
10031005
}
@@ -1045,7 +1047,7 @@ public void withTracer(TracerAPI tracer) {
10451047
*/
10461048
private static ProfilingContextIntegration createProfilingContextIntegration() {
10471049
if (Config.get().isProfilingEnabled()) {
1048-
if (Config.get().isDatadogProfilerEnabled() && !Platform.isWindows()) {
1050+
if (Config.get().isDatadogProfilerEnabled() && !OperatingSystem.isWindows()) {
10491051
try {
10501052
return (ProfilingContextIntegration)
10511053
AGENT_CLASSLOADER

dd-java-agent/agent-builder/src/main/java/datadog/trace/agent/tooling/AgentStrategies.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package datadog.trace.agent.tooling;
22

3+
import datadog.environment.JavaVirtualMachine;
34
import datadog.trace.agent.tooling.bytebuddy.DDClassFileTransformer;
45
import datadog.trace.agent.tooling.bytebuddy.DDLocationStrategy;
56
import datadog.trace.agent.tooling.bytebuddy.DDOutlinePoolStrategy;
67
import datadog.trace.agent.tooling.bytebuddy.DDOutlineTypeStrategy;
78
import datadog.trace.agent.tooling.bytebuddy.DDRediscoveryStrategy;
8-
import datadog.trace.api.Platform;
99
import net.bytebuddy.agent.builder.AgentBuilder.ClassFileBufferStrategy;
1010
import net.bytebuddy.agent.builder.AgentBuilder.LocationStrategy;
1111
import net.bytebuddy.agent.builder.AgentBuilder.PoolStrategy;
@@ -24,7 +24,7 @@ public class AgentStrategies {
2424
private static final Logger log = LoggerFactory.getLogger(AgentStrategies.class);
2525

2626
private static TransformerDecorator loadTransformerDecorator() {
27-
if (Platform.isJavaVersionAtLeast(9)) {
27+
if (JavaVirtualMachine.isJavaVersionAtLeast(9)) {
2828
try {
2929
return (TransformerDecorator)
3030
Instrumenter.class

dd-java-agent/agent-ci-visibility/src/test/groovy/datadog/trace/civisibility/ipc/ChannelContextTest.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package datadog.trace.civisibility.ipc
22

3-
import datadog.trace.api.Platform
3+
import datadog.environment.JavaVirtualMachine
44
import spock.lang.IgnoreIf
55
import spock.lang.Specification
66

@@ -9,7 +9,7 @@ import java.nio.channels.ByteChannel
99
import java.util.concurrent.ThreadLocalRandom
1010

1111
@IgnoreIf(reason = "JVM crash with OpenJ9", value = {
12-
Platform.isJ9()
12+
JavaVirtualMachine.isJ9()
1313
})
1414
class ChannelContextTest extends Specification {
1515

dd-java-agent/agent-crashtracking/src/main/java/com/datadog/crashtracking/ScriptInitializer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import static java.util.Locale.ROOT;
66

77
import com.sun.management.HotSpotDiagnosticMXBean;
8-
import datadog.trace.api.Platform;
8+
import datadog.environment.OperatingSystem;
99
import datadog.trace.util.PidHelper;
1010
import java.io.BufferedWriter;
1111
import java.io.IOException;
@@ -36,12 +36,12 @@ public static void initialize() {
3636
}
3737

3838
static InputStream getCrashUploaderTemplate() {
39-
String name = Platform.isWindows() ? "upload_crash.bat" : "upload_crash.sh";
39+
String name = OperatingSystem.isWindows() ? "upload_crash.bat" : "upload_crash.sh";
4040
return CrashUploader.class.getResourceAsStream(name);
4141
}
4242

4343
static InputStream getOomeNotifierTemplate() {
44-
String name = Platform.isWindows() ? "notify_oome.bat" : "notify_oome.sh";
44+
String name = OperatingSystem.isWindows() ? "notify_oome.bat" : "notify_oome.sh";
4545
return OOMENotifier.class.getResourceAsStream(name);
4646
}
4747

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/CapturedSnapshotTest.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,7 @@ public void sourceFileProbeGroovy() throws IOException, URISyntaxException {
622622

623623
@Test
624624
@DisabledIf(
625-
value = "datadog.trace.api.Platform#isJ9",
625+
value = "datadog.environment.JavaVirtualMachine#isJ9",
626626
disabledReason = "Issue with J9 when compiling Kotlin code")
627627
public void sourceFileProbeKotlin() throws IOException, URISyntaxException {
628628
final String CLASS_NAME = "CapturedSnapshot301";
@@ -652,7 +652,7 @@ public void sourceFileProbeKotlin() throws IOException, URISyntaxException {
652652

653653
@Test
654654
@DisabledIf(
655-
value = "datadog.trace.api.Platform#isJ9",
655+
value = "datadog.environment.JavaVirtualMachine#isJ9",
656656
disabledReason = "Issue with J9 when compiling Kotlin code")
657657
public void suspendKotlin() throws IOException, URISyntaxException {
658658
final String CLASS_NAME = "CapturedSnapshot302";
@@ -679,7 +679,7 @@ public void suspendKotlin() throws IOException, URISyntaxException {
679679

680680
@Test
681681
@DisabledIf(
682-
value = "datadog.trace.api.Platform#isJ9",
682+
value = "datadog.environment.JavaVirtualMachine#isJ9",
683683
disabledReason = "Issue with J9 when compiling Kotlin code")
684684
public void suspendMethodKotlin() {
685685
final String CLASS_NAME = "CapturedSnapshot302";
@@ -712,7 +712,7 @@ public void suspendMethodKotlin() {
712712

713713
@Test
714714
@DisabledIf(
715-
value = "datadog.trace.api.Platform#isJ9",
715+
value = "datadog.environment.JavaVirtualMachine#isJ9",
716716
disabledReason = "Issue with J9 when compiling Kotlin code")
717717
public void hoistVarKotlin() {
718718
final String CLASS_NAME = "CapturedSnapshot303";
@@ -1863,7 +1863,7 @@ public void evaluateAtExitFalse() throws IOException, URISyntaxException {
18631863

18641864
@Test
18651865
@DisabledIf(
1866-
value = "datadog.trace.api.Platform#isJ9",
1866+
value = "datadog.environment.JavaVirtualMachine#isJ9",
18671867
disabledReason = "we cannot get local variable debug info")
18681868
public void uncaughtExceptionConditionLocalVar() throws IOException, URISyntaxException {
18691869
if (Config.get().getDynamicInstrumentationLocalVarHoistingLevel() < 2) {
@@ -1901,7 +1901,7 @@ public void uncaughtExceptionConditionLocalVar() throws IOException, URISyntaxEx
19011901

19021902
@Test
19031903
@DisabledIf(
1904-
value = "datadog.trace.api.Platform#isJ9",
1904+
value = "datadog.environment.JavaVirtualMachine#isJ9",
19051905
disabledReason = "we cannot get local variable debug info")
19061906
public void uncaughtExceptionCaptureLocalVars() throws IOException, URISyntaxException {
19071907
final String CLASS_NAME = "com.datadog.debugger.CapturedSnapshot31";
@@ -1925,7 +1925,7 @@ public void uncaughtExceptionCaptureLocalVars() throws IOException, URISyntaxExc
19251925

19261926
@Test
19271927
@DisabledIf(
1928-
value = "datadog.trace.api.Platform#isJ9",
1928+
value = "datadog.environment.JavaVirtualMachine#isJ9",
19291929
disabledReason = "we cannot get local variable debug info")
19301930
public void methodProbeLocalVarsLocalScopes() throws IOException, URISyntaxException {
19311931
final String CLASS_NAME = "com.datadog.debugger.CapturedSnapshot31";
@@ -1942,7 +1942,7 @@ public void methodProbeLocalVarsLocalScopes() throws IOException, URISyntaxExcep
19421942

19431943
@Test
19441944
@DisabledIf(
1945-
value = "datadog.trace.api.Platform#isJ9",
1945+
value = "datadog.environment.JavaVirtualMachine#isJ9",
19461946
disabledReason = "we cannot get local variable debug info")
19471947
public void methodProbeLocalVarsDeepScopes() throws IOException, URISyntaxException {
19481948
final String CLASS_NAME = "com.datadog.debugger.CapturedSnapshot31";
@@ -1974,7 +1974,7 @@ public void methodProbeLocalVarsDeepScopes() throws IOException, URISyntaxExcept
19741974

19751975
@Test
19761976
@DisabledIf(
1977-
value = "datadog.trace.api.Platform#isJ9",
1977+
value = "datadog.environment.JavaVirtualMachine#isJ9",
19781978
disabledReason = "we cannot get local variable debug info")
19791979
public void methodProbeExceptionLocalVars() throws IOException, URISyntaxException {
19801980
final String CLASS_NAME = "com.datadog.debugger.CapturedSnapshot31";
@@ -2008,7 +2008,7 @@ public void methodProbeExceptionLocalVars() throws IOException, URISyntaxExcepti
20082008

20092009
@Test
20102010
@DisabledIf(
2011-
value = "datadog.trace.api.Platform#isJ9",
2011+
value = "datadog.environment.JavaVirtualMachine#isJ9",
20122012
disabledReason = "we cannot get local variable debug info")
20132013
public void overlappingLocalVarSlot() throws IOException, URISyntaxException {
20142014
final String CLASS_NAME = "com.datadog.debugger.CapturedSnapshot31";
@@ -2025,7 +2025,7 @@ public void overlappingLocalVarSlot() throws IOException, URISyntaxException {
20252025

20262026
@Test
20272027
@DisabledIf(
2028-
value = "datadog.trace.api.Platform#isJ9",
2028+
value = "datadog.environment.JavaVirtualMachine#isJ9",
20292029
disabledReason = "we cannot get local variable debug info")
20302030
public void duplicateLocalDifferentScope() throws IOException, URISyntaxException {
20312031
final String CLASS_NAME = "com.datadog.debugger.CapturedSnapshot31";

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/SnapshotSerializationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public void roundTripProbeDetails() throws IOException {
104104

105105
@Test
106106
@EnabledForJreRange(min = JRE.JAVA_17)
107-
@DisabledIf("datadog.trace.api.Platform#isJ9")
107+
@DisabledIf("datadog.environment.JavaVirtualMachine#isJ9")
108108
public void roundTripCapturedValue() throws IOException, URISyntaxException {
109109
JsonAdapter<Snapshot> adapter = createSnapshotAdapter();
110110
Snapshot snapshot = createSnapshot();

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/StringTemplateBuilderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ public void argComplexObjectArrayTemplate() {
227227

228228
@Test
229229
@EnabledForJreRange(min = JRE.JAVA_17)
230-
@DisabledIf("datadog.trace.api.Platform#isJ9")
230+
@DisabledIf("datadog.environment.JavaVirtualMachine#isJ9")
231231
public void argInaccessibleFieldTemplate() {
232232
LogProbe probe = createLogProbe("{obj}");
233233
StringTemplateBuilder summaryBuilder = new StringTemplateBuilder(probe.getSegments(), LIMITS);

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/exception/ExceptionProbeInstrumentationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ public void differentExceptionsSameStack() throws Exception {
208208

209209
@Test
210210
@DisabledIf(
211-
value = "datadog.trace.api.Platform#isJ9",
211+
value = "datadog.environment.JavaVirtualMachine#isJ9",
212212
disabledReason = "Bug in J9: no LocalVariableTable for ClassFileTransformer")
213213
public void recursive() throws Exception {
214214
Config config = createConfig();

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/symbol/SymDBEnablementTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,9 @@ public void parseLoadedClassFromDirectory()
163163
}
164164

165165
@Test
166-
@DisabledIf(value = "datadog.trace.api.Platform#isJ9", disabledReason = "Flaky on J9 JVMs")
166+
@DisabledIf(
167+
value = "datadog.environment.JavaVirtualMachine#isJ9",
168+
disabledReason = "Flaky on J9 JVMs")
167169
public void noDuplicateSymbolExtraction() {
168170
final String CLASS_NAME_PATH = "com/datadog/debugger/symbol/SymbolExtraction01";
169171
SymbolSink mockSymbolSink = mock(SymbolSink.class);

0 commit comments

Comments
 (0)