Skip to content

Commit 48fe24d

Browse files
Fix maven dependency version parsing (#5547)
1 parent 8ab88ee commit 48fe24d

File tree

3 files changed

+16
-58
lines changed

3 files changed

+16
-58
lines changed

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

Lines changed: 0 additions & 39 deletions
This file was deleted.

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ public String[] helperClassNames() {
3838
packageName + ".MavenUtils",
3939
packageName + ".MavenUtils$TestFramework",
4040
packageName + ".MavenExecutionListener",
41-
packageName + ".MavenDependencyVersion",
4241
packageName + ".MavenProjectConfigurator",
4342
packageName + ".MavenLifecycleParticipant$TestsExecution",
4443
packageName + ".MavenLifecycleParticipant",

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

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Map;
1313
import java.util.Properties;
1414
import javax.annotation.Nullable;
15+
import org.apache.maven.artifact.versioning.ComparableVersion;
1516
import org.apache.maven.model.Build;
1617
import org.apache.maven.model.Dependency;
1718
import org.apache.maven.model.InputLocation;
@@ -41,11 +42,11 @@ class MavenProjectConfigurator {
4142
private static final String JAVAC_COMPILER_ID = "javac";
4243
private static final String DATADOG_COMPILER_PLUGIN_ID = "DatadogCompilerPlugin";
4344

44-
private static final MavenDependencyVersion ANNOTATION_PROCESSOR_PATHS_SUPPORTED_VERSION =
45-
MavenDependencyVersion.from("3.5");
45+
private static final ComparableVersion ANNOTATION_PROCESSOR_PATHS_SUPPORTED_VERSION =
46+
new ComparableVersion("3.5");
4647

47-
private static final MavenDependencyVersion LATE_SUBSTITUTION_SUPPORTED_VERSION =
48-
MavenDependencyVersion.from("2.17");
48+
private static final ComparableVersion LATE_SUBSTITUTION_SUPPORTED_VERSION =
49+
new ComparableVersion("2.17");
4950
private static final String JACOCO_EXCL_CLASS_LOADERS_PROPERTY = "jacoco.exclClassLoaders";
5051

5152
public void configureTracer(
@@ -62,13 +63,11 @@ public void configureTracer(
6263

6364
Plugin plugin = mojoExecution.getPlugin();
6465
String pluginVersion = plugin.getVersion();
65-
MavenDependencyVersion pluginVersionParsed =
66-
pluginVersion != null
67-
? MavenDependencyVersion.from(pluginVersion)
68-
: MavenDependencyVersion.UNKNOWN;
66+
ComparableVersion pluginVersionParsed =
67+
new ComparableVersion(pluginVersion != null ? pluginVersion : "");
6968

7069
String projectWideArgLine;
71-
if (pluginVersionParsed.isLaterThanOrEqualTo(LATE_SUBSTITUTION_SUPPORTED_VERSION)) {
70+
if (pluginVersionParsed.compareTo(LATE_SUBSTITUTION_SUPPORTED_VERSION) >= 0) {
7271
// include project-wide argLine
7372
// (it might be modified by other plugins earlier in the build cycle, e.g. by Jacoco)
7473
projectWideArgLine = "@{argLine} ";
@@ -149,12 +148,11 @@ void configureCompilerPlugin(MavenProject project, String compilerPluginVersion)
149148
List<Dependency> projectDependencies = project.getDependencies();
150149
addOrUpdate(projectDependencies, javacPluginClientDependency);
151150

152-
MavenDependencyVersion mavenPluginVersion =
153-
compilerPlugin.getVersion() != null
154-
? MavenDependencyVersion.from(compilerPlugin.getVersion())
155-
: MavenDependencyVersion.UNKNOWN;
151+
ComparableVersion mavenPluginVersion =
152+
new ComparableVersion(
153+
compilerPlugin.getVersion() != null ? compilerPlugin.getVersion() : "");
156154

157-
if (mavenPluginVersion.isLaterThanOrEqualTo(ANNOTATION_PROCESSOR_PATHS_SUPPORTED_VERSION)) {
155+
if (mavenPluginVersion.compareTo(ANNOTATION_PROCESSOR_PATHS_SUPPORTED_VERSION) >= 0) {
158156
String lombokVersion = getLombokVersion(projectDependencies);
159157
if (lombokVersion != null) {
160158
configuration =
@@ -189,15 +187,15 @@ void configureCompilerPlugin(MavenProject project, String compilerPluginVersion)
189187
}
190188

191189
private static void addOrUpdate(List<Dependency> projectDependencies, Dependency dependency) {
192-
MavenDependencyVersion dependencyVersion = MavenDependencyVersion.from(dependency.getVersion());
190+
ComparableVersion dependencyVersion = new ComparableVersion(dependency.getVersion());
193191

194192
for (Dependency projectDependency : projectDependencies) {
195193
if (projectDependency.getGroupId().equals(dependency.getGroupId())
196194
&& projectDependency.getArtifactId().equals(dependency.getArtifactId())) {
197195

198-
MavenDependencyVersion projectDependencyVersion =
199-
MavenDependencyVersion.from(projectDependency.getVersion());
200-
if (dependencyVersion.isLaterThanOrEqualTo(projectDependencyVersion)) {
196+
ComparableVersion projectDependencyVersion =
197+
new ComparableVersion(projectDependency.getVersion());
198+
if (dependencyVersion.compareTo(projectDependencyVersion) > 0) {
201199
projectDependency.setVersion(dependency.getVersion());
202200
}
203201

0 commit comments

Comments
 (0)