Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1878db6

Browse files
Fix Maven 4.0.0 smoke test (DataDog#6351)
1 parent 1992baf commit 1878db6

File tree

9 files changed

+350
-4
lines changed

9 files changed

+350
-4
lines changed

‎dd-java-agent/instrumentation/maven-3.2.1/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ dependencies {
2323
testImplementation group: 'org.apache.maven.resolver', name: 'maven-resolver-transport-http', version: '1.0.3'
2424

2525
latestDepTestImplementation group: 'org.apache.maven', name: 'maven-embedder', version: '+'
26-
latestDepTestImplementation group: 'org.apache.maven.resolver', name: 'maven-resolver-connector-basic', version: '1.+'
27-
latestDepTestImplementation group: 'org.apache.maven.resolver', name: 'maven-resolver-transport-http', version: '1.+'
26+
latestDepTestImplementation group: 'org.apache.maven.resolver', name: 'maven-resolver-connector-basic', version: '+'
27+
latestDepTestImplementation group: 'org.apache.maven.resolver', name: 'maven-resolver-transport-http', version: '+'
2828
latestDepTestImplementation group: 'org.fusesource.jansi', name: 'jansi', version: '+'
2929
}

‎dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenLifecycleParticipant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ private Collection<MavenTestExecution> getTestExecutionsByJvmPath(
166166
MavenSession session, MavenProject project) {
167167
List<MavenTestExecution> testExecutions = new ArrayList<>();
168168
try {
169-
PlexusContainer container = session.getContainer();
169+
PlexusContainer container = MavenUtils.getContainer(session);
170170

171171
MavenPluginManager mavenPluginManager = container.lookup(MavenPluginManager.class);
172172
BuildPluginManager buildPluginManager = container.lookup(BuildPluginManager.class);

‎dd-java-agent/instrumentation/maven-3.2.1/src/main/java/datadog/trace/instrumentation/maven3/MavenUtils.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package datadog.trace.instrumentation.maven3;
22

3+
import datadog.trace.util.MethodHandles;
4+
import java.lang.invoke.MethodHandle;
35
import java.util.Iterator;
46
import java.util.List;
57
import java.util.Map;
@@ -13,6 +15,7 @@
1315
import org.apache.maven.model.Plugin;
1416
import org.apache.maven.plugin.MojoExecution;
1517
import org.apache.maven.project.MavenProject;
18+
import org.codehaus.plexus.PlexusContainer;
1619
import org.codehaus.plexus.logging.Logger;
1720
import org.codehaus.plexus.util.xml.Xpp3Dom;
1821

@@ -273,4 +276,22 @@ private static Xpp3Dom getChild(Xpp3Dom parent, String[] path, boolean createIfN
273276
}
274277
return current;
275278
}
279+
280+
private static final MethodHandles METHOD_HANDLES =
281+
new MethodHandles(PlexusContainer.class.getClassLoader());
282+
private static final MethodHandle SESSION_FIELD =
283+
METHOD_HANDLES.privateFieldGetter(MavenSession.class, "session");
284+
private static final MethodHandle CONTAINER_FIELD =
285+
METHOD_HANDLES.privateFieldGetter(
286+
"org.apache.maven.internal.impl.DefaultSession", "container");
287+
288+
public static PlexusContainer getContainer(MavenSession mavenSession) {
289+
PlexusContainer container = mavenSession.getContainer();
290+
if (container != null) {
291+
return container;
292+
}
293+
Object /* org.apache.maven.internal.impl.DefaultSession */ session =
294+
METHOD_HANDLES.invoke(SESSION_FIELD, mavenSession);
295+
return METHOD_HANDLES.invoke(CONTAINER_FIELD, session);
296+
}
276297
}

‎dd-smoke-tests/maven/src/test/groovy/datadog/smoketest/MavenSmokeTest.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ class MavenSmokeTest extends CiVisibilitySmokeTest {
6767
"test_successful_maven_run" | "3.6.3" | 5 | 1
6868
"test_successful_maven_run" | "3.8.8" | 5 | 1
6969
"test_successful_maven_run" | "3.9.5" | 5 | 1
70-
"test_successful_maven_run" | LATEST_MAVEN_VERSION | 5 | 1
70+
"test_successful_maven_run_surefire_3_0_0" | "3.9.5" | 5 | 1
71+
"test_successful_maven_run_surefire_3_0_0" | LATEST_MAVEN_VERSION | 5 | 1
7172
"test_successful_maven_run_with_jacoco_and_argline" | "3.9.5" | 5 | 1
7273
"test_successful_maven_run_with_cucumber" | "3.9.5" | 7 | 1
7374
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[ {
2+
"test_session_id" : ${content_test_session_id},
3+
"test_suite_id" : ${content_test_suite_id},
4+
"span_id" : ${content_span_id},
5+
"files" : [ {
6+
"filename" : "src/test/java/datadog/smoke/TestSucceed.java",
7+
"segments" : [ [ 7, -1, 7, -1, -1 ], [ 11, -1, 12, -1, -1 ] ]
8+
}, {
9+
"filename" : "src/main/java/datadog/smoke/Calculator.java",
10+
"segments" : [ [ 5, -1, 5, -1, -1 ] ]
11+
} ]
12+
} ]
Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
[ {
2+
"type" : "test_session_end",
3+
"version" : 1,
4+
"content" : {
5+
"test_session_id" : ${content_test_session_id},
6+
"service" : "test-maven-service",
7+
"name" : "maven.test_session",
8+
"resource" : "Maven Smoke Tests Project",
9+
"start" : ${content_start},
10+
"duration" : ${content_duration},
11+
"error" : 0,
12+
"metrics" : {
13+
"process_id" : ${content_metrics_process_id},
14+
"test.itr.tests_skipping.count" : 1,
15+
"_dd.profiling.enabled" : 0,
16+
"_dd.trace_span_attribute_schema" : 0,
17+
"test.code_coverage.lines_pct" : 57
18+
},
19+
"meta" : {
20+
"_dd.p.tid" : ${content_meta__dd_p_tid},
21+
"os.architecture" : ${content_meta_os_architecture},
22+
"test.status" : "pass",
23+
"_dd.ci.itr.tests_skipped" : "true",
24+
"ci.workspace_path" : ${content_meta_ci_workspace_path},
25+
"language" : "jvm",
26+
"runtime.name" : ${content_meta_runtime_name},
27+
"os.platform" : ${content_meta_os_platform},
28+
"os.version" : ${content_meta_os_version},
29+
"library_version" : ${content_meta_library_version},
30+
"span.kind" : "test_session_end",
31+
"runtime.version" : ${content_meta_runtime_version},
32+
"runtime-id" : ${content_meta_runtime_id},
33+
"test.itr.tests_skipping.enabled" : "true",
34+
"test.type" : "test",
35+
"env" : "integration-test",
36+
"runtime.vendor" : ${content_meta_runtime_vendor},
37+
"component" : "maven",
38+
"test.code_coverage.enabled" : "true",
39+
"test.toolchain" : ${content_meta_test_toolchain},
40+
"test.itr.tests_skipping.type" : "test",
41+
"test.command" : "mvn -B test",
42+
"test.framework_version" : "4.13.2",
43+
"test.framework" : "junit4"
44+
}
45+
}
46+
}, {
47+
"type" : "test_module_end",
48+
"version" : 1,
49+
"content" : {
50+
"test_session_id" : ${content_test_session_id},
51+
"test_module_id" : ${content_test_module_id},
52+
"service" : "test-maven-service",
53+
"name" : "maven.test_module",
54+
"resource" : "Maven Smoke Tests Project maven-surefire-plugin default-test",
55+
"start" : ${content_start_2},
56+
"duration" : ${content_duration_2},
57+
"error" : 0,
58+
"metrics" : {
59+
"test.itr.tests_skipping.count" : 1,
60+
"test.code_coverage.lines_pct" : 57
61+
},
62+
"meta" : {
63+
"_dd.p.tid" : ${content_meta__dd_p_tid_2},
64+
"os.architecture" : ${content_meta_os_architecture},
65+
"test.module" : "Maven Smoke Tests Project maven-surefire-plugin default-test",
66+
"test.status" : "pass",
67+
"_dd.ci.itr.tests_skipped" : "true",
68+
"ci.workspace_path" : ${content_meta_ci_workspace_path},
69+
"runtime.name" : ${content_meta_runtime_name},
70+
"os.platform" : ${content_meta_os_platform},
71+
"os.version" : ${content_meta_os_version},
72+
"library_version" : ${content_meta_library_version},
73+
"span.kind" : "test_module_end",
74+
"runtime.version" : ${content_meta_runtime_version},
75+
"test.itr.tests_skipping.enabled" : "true",
76+
"test.type" : "test",
77+
"env" : "integration-test",
78+
"runtime.vendor" : ${content_meta_runtime_vendor},
79+
"component" : "maven",
80+
"test.code_coverage.enabled" : "true",
81+
"test.execution" : "maven-surefire-plugin:test:default-test",
82+
"test.itr.tests_skipping.type" : "test",
83+
"test.command" : "mvn -B test",
84+
"test.framework_version" : "4.13.2",
85+
"test.framework" : "junit4"
86+
}
87+
}
88+
}, {
89+
"type" : "test_suite_end",
90+
"version" : 1,
91+
"content" : {
92+
"test_session_id" : ${content_test_session_id},
93+
"test_module_id" : ${content_test_module_id},
94+
"test_suite_id" : ${content_test_suite_id},
95+
"service" : "test-maven-service",
96+
"name" : "junit.test_suite",
97+
"resource" : "datadog.smoke.TestSucceed",
98+
"start" : ${content_start_3},
99+
"duration" : ${content_duration_3},
100+
"error" : 0,
101+
"metrics" : {
102+
"process_id" : ${content_metrics_process_id_2},
103+
"_dd.profiling.enabled" : 0,
104+
"_dd.trace_span_attribute_schema" : 0
105+
},
106+
"meta" : {
107+
"_dd.p.tid" : ${content_meta__dd_p_tid_3},
108+
"os.architecture" : ${content_meta_os_architecture},
109+
"test.source.file" : "src/test/java/datadog/smoke/TestSucceed.java",
110+
"test.status" : "pass",
111+
"ci.workspace_path" : ${content_meta_ci_workspace_path},
112+
"language" : "jvm",
113+
"runtime.name" : ${content_meta_runtime_name},
114+
"os.platform" : ${content_meta_os_platform},
115+
"os.version" : ${content_meta_os_version},
116+
"library_version" : ${content_meta_library_version},
117+
"span.kind" : "test_suite_end",
118+
"test.suite" : "datadog.smoke.TestSucceed",
119+
"runtime.version" : ${content_meta_runtime_version},
120+
"runtime-id" : ${content_meta_runtime_id_2},
121+
"test.type" : "test",
122+
"env" : "integration-test",
123+
"runtime.vendor" : ${content_meta_runtime_vendor},
124+
"component" : "junit",
125+
"test.framework_version" : "4.13.2",
126+
"test.framework" : "junit4"
127+
}
128+
}
129+
}, {
130+
"type" : "test",
131+
"version" : 2,
132+
"content" : {
133+
"trace_id" : ${content_trace_id},
134+
"span_id" : ${content_span_id},
135+
"parent_id" : ${content_parent_id},
136+
"test_session_id" : ${content_test_session_id},
137+
"test_module_id" : ${content_test_module_id},
138+
"test_suite_id" : ${content_test_suite_id},
139+
"service" : "test-maven-service",
140+
"name" : "junit.test",
141+
"resource" : "datadog.smoke.TestSucceed.test_succeed",
142+
"start" : ${content_start_4},
143+
"duration" : ${content_duration_4},
144+
"error" : 0,
145+
"metrics" : {
146+
"process_id" : ${content_metrics_process_id_2},
147+
"_dd.profiling.enabled" : 0,
148+
"_dd.trace_span_attribute_schema" : 0,
149+
"test.source.end" : 12
150+
},
151+
"meta" : {
152+
"_dd.p.tid" : ${content_meta__dd_p_tid_4},
153+
"os.architecture" : ${content_meta_os_architecture},
154+
"test.source.file" : "src/test/java/datadog/smoke/TestSucceed.java",
155+
"test.source.method" : "test_succeed()V",
156+
"test.status" : "pass",
157+
"ci.workspace_path" : ${content_meta_ci_workspace_path},
158+
"language" : "jvm",
159+
"runtime.name" : ${content_meta_runtime_name},
160+
"os.platform" : ${content_meta_os_platform},
161+
"os.version" : ${content_meta_os_version},
162+
"library_version" : ${content_meta_library_version},
163+
"test.name" : "test_succeed",
164+
"span.kind" : "test",
165+
"test.suite" : "datadog.smoke.TestSucceed",
166+
"runtime.version" : ${content_meta_runtime_version},
167+
"runtime-id" : ${content_meta_runtime_id_2},
168+
"test.type" : "test",
169+
"env" : "integration-test",
170+
"runtime.vendor" : ${content_meta_runtime_vendor},
171+
"component" : "junit",
172+
"test.framework_version" : "4.13.2",
173+
"test.framework" : "junit4"
174+
}
175+
}
176+
}, {
177+
"type" : "test",
178+
"version" : 2,
179+
"content" : {
180+
"trace_id" : ${content_trace_id_2},
181+
"span_id" : ${content_span_id_2},
182+
"parent_id" : ${content_parent_id},
183+
"test_session_id" : ${content_test_session_id},
184+
"test_module_id" : ${content_test_module_id},
185+
"test_suite_id" : ${content_test_suite_id},
186+
"service" : "test-maven-service",
187+
"name" : "junit.test",
188+
"resource" : "datadog.smoke.TestSucceed.test_to_skip_with_itr",
189+
"start" : ${content_start_5},
190+
"duration" : ${content_duration_5},
191+
"error" : 0,
192+
"metrics" : {
193+
"process_id" : ${content_metrics_process_id_2},
194+
"_dd.profiling.enabled" : 0,
195+
"_dd.trace_span_attribute_schema" : 0,
196+
"test.source.end" : 17
197+
},
198+
"meta" : {
199+
"_dd.p.tid" : ${content_meta__dd_p_tid_5},
200+
"os.architecture" : ${content_meta_os_architecture},
201+
"test.source.file" : "src/test/java/datadog/smoke/TestSucceed.java",
202+
"test.source.method" : "test_to_skip_with_itr()V",
203+
"test.status" : "skip",
204+
"ci.workspace_path" : ${content_meta_ci_workspace_path},
205+
"language" : "jvm",
206+
"runtime.name" : ${content_meta_runtime_name},
207+
"os.platform" : ${content_meta_os_platform},
208+
"os.version" : ${content_meta_os_version},
209+
"library_version" : ${content_meta_library_version},
210+
"test.name" : "test_to_skip_with_itr",
211+
"span.kind" : "test",
212+
"test.suite" : "datadog.smoke.TestSucceed",
213+
"runtime.version" : ${content_meta_runtime_version},
214+
"runtime-id" : ${content_meta_runtime_id_2},
215+
"test.type" : "test",
216+
"test.skip_reason" : "Skipped by Datadog Intelligent Test Runner",
217+
"env" : "integration-test",
218+
"runtime.vendor" : ${content_meta_runtime_vendor},
219+
"component" : "junit",
220+
"test.skipped_by_itr" : "true",
221+
"test.framework_version" : "4.13.2",
222+
"test.framework" : "junit4"
223+
}
224+
}
225+
} ]
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4+
5+
<modelVersion>4.0.0</modelVersion>
6+
<groupId>com.datadog.ci.test</groupId>
7+
<artifactId>maven-smoke-test</artifactId>
8+
<version>1.0-SNAPSHOT</version>
9+
<name>Maven Smoke Tests Project</name>
10+
11+
<properties>
12+
<maven.compiler.source>8</maven.compiler.source>
13+
<maven.compiler.target>8</maven.compiler.target>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
</properties>
16+
17+
<!-- Older Maven versions (e.g. 3.2.1) use http protocol instead of https for repositories by default.
18+
Nowadays Maven Central does not work over unencrypted http -->
19+
<repositories>
20+
<repository>
21+
<snapshots>
22+
<enabled>false</enabled>
23+
</snapshots>
24+
<id>central</id>
25+
<name>Central Repository</name>
26+
<url>https://repo.maven.apache.org/maven2</url>
27+
</repository>
28+
</repositories>
29+
<pluginRepositories>
30+
<pluginRepository>
31+
<releases>
32+
<updatePolicy>never</updatePolicy>
33+
</releases>
34+
<snapshots>
35+
<enabled>false</enabled>
36+
</snapshots>
37+
<id>central</id>
38+
<name>Central Repository</name>
39+
<url>https://repo.maven.apache.org/maven2</url>
40+
</pluginRepository>
41+
</pluginRepositories>
42+
43+
<dependencies>
44+
<dependency>
45+
<groupId>junit</groupId>
46+
<artifactId>junit</artifactId>
47+
<version>4.13.2</version>
48+
<scope>test</scope>
49+
</dependency>
50+
</dependencies>
51+
52+
<build>
53+
<plugins>
54+
<plugin>
55+
<groupId>org.apache.maven.plugins</groupId>
56+
<artifactId>maven-surefire-plugin</artifactId>
57+
<version>3.0.0</version>
58+
</plugin>
59+
</plugins>
60+
</build>
61+
62+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package datadog.smoke;
2+
3+
public class Calculator {
4+
public static int add(int a, int b) {
5+
return a + b;
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package datadog.smoke;
2+
3+
import static org.junit.Assert.assertTrue;
4+
5+
import org.junit.Test;
6+
7+
public class TestSucceed {
8+
9+
@Test
10+
public void test_succeed() {
11+
assertTrue(Calculator.add(2, 2) == 4);
12+
}
13+
14+
@Test
15+
public void test_to_skip_with_itr() {
16+
assertTrue(true);
17+
}
18+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /