Skip to content

Commit 045f3cb

Browse files
snjezafbricon
authored andcommitted
Take the version for an annotation processor from project dependencyManagement
Signed-off-by: Snjezana Peco <[email protected]>
1 parent 1b6a28d commit 045f3cb

File tree

6 files changed

+98
-2
lines changed

6 files changed

+98
-2
lines changed

org.eclipse.m2e.apt.core/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: %Bundle-Name
44
Bundle-SymbolicName: org.eclipse.m2e.apt.core;singleton:=true
5-
Bundle-Version: 2.2.200.qualifier
5+
Bundle-Version: 2.2.201.qualifier
66
Bundle-Localization: plugin
77
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)",
88
org.eclipse.core.resources,

org.eclipse.m2e.apt.core/src/org/eclipse/m2e/apt/internal/utils/PluginDependencyResolver.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.ArrayList;
1919
import java.util.Collection;
2020
import java.util.List;
21+
import java.util.Objects;
2122

2223
import org.slf4j.Logger;
2324
import org.slf4j.LoggerFactory;
@@ -47,6 +48,7 @@
4748
import org.apache.maven.RepositoryUtils;
4849
import org.apache.maven.execution.MavenSession;
4950
import org.apache.maven.model.Dependency;
51+
import org.apache.maven.model.DependencyManagement;
5052
import org.apache.maven.model.Plugin;
5153
import org.apache.maven.project.MavenProject;
5254

@@ -93,8 +95,20 @@ public synchronized List<File> getResolvedPluginDependencies(MavenSession mavenS
9395
request.setRepositories(mavenProject.getRemoteProjectRepositories());
9496

9597
Collection<Dependency> dependencies = getDependencies(plugin);
96-
9798
for(Dependency dependency : dependencies) {
99+
if(dependency.getVersion() == null) {
100+
DependencyManagement depMngt = mavenProject.getDependencyManagement();
101+
if(depMngt != null) {
102+
Dependency mngtDep = depMngt.getDependencies().stream()
103+
.filter(d -> Objects.equals(d.getGroupId(), dependency.getGroupId())
104+
&& Objects.equals(d.getArtifactId(), dependency.getArtifactId())
105+
&& Objects.equals(d.getType(), dependency.getType()))
106+
.findFirst().get();
107+
if(mngtDep != null) {
108+
dependency.setVersion(mngtDep.getVersion());
109+
}
110+
}
111+
}
98112
request.addDependency(RepositoryUtils.toDependency(dependency, stereotypes));
99113
}
100114

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>foo.bar</groupId>
5+
<artifactId>p15</artifactId>
6+
<version>0.0.1-SNAPSHOT</version>
7+
<properties>
8+
<m2e.apt.activation>jdt_apt</m2e.apt.activation>
9+
<maven.compiler.release>17</maven.compiler.release>
10+
</properties>
11+
<dependencyManagement>
12+
<dependencies>
13+
<dependency>
14+
<groupId>io.quarkus.platform</groupId>
15+
<artifactId>quarkus-bom</artifactId>
16+
<version>3.6.7</version>
17+
<type>pom</type>
18+
<scope>import</scope>
19+
</dependency>
20+
</dependencies>
21+
</dependencyManagement>
22+
<build>
23+
<plugins>
24+
<plugin>
25+
<artifactId>maven-compiler-plugin</artifactId>
26+
<version>3.12.1</version>
27+
<configuration>
28+
<compilerArgs>
29+
<arg>-parameters</arg>
30+
</compilerArgs>
31+
<annotationProcessorPaths>
32+
<path>
33+
<groupId>org.hibernate.orm</groupId>
34+
<artifactId>hibernate-jpamodelgen</artifactId>
35+
</path>
36+
</annotationProcessorPaths>
37+
</configuration>
38+
</plugin>
39+
</plugins>
40+
</build>
41+
<dependencies>
42+
<dependency>
43+
<groupId>io.quarkus</groupId>
44+
<artifactId>quarkus-hibernate-orm</artifactId>
45+
</dependency>
46+
</dependencies>
47+
</project>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package foo.bar;
2+
3+
import jakarta.persistence.Entity;
4+
5+
@Entity
6+
public class Dummy {
7+
8+
private String name;
9+
10+
public String getName() {
11+
return name;
12+
}
13+
14+
public void setName(String name) {
15+
this.name = name;
16+
}
17+
18+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package foo.bar;
2+
3+
public class DummyStuff {
4+
5+
public void nonSense() {
6+
System.err.println(Dummy_.name);
7+
}
8+
}

org.eclipse.m2e.apt.tests/src/org/eclipse/m2e/apt/tests/M2eAptProjectconfiguratorTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,4 +435,13 @@ public void testAnnotationPluginsDisabled() throws Exception {
435435
}
436436
}
437437
}
438+
439+
@Test
440+
public void testDependencyManagement() throws Exception {
441+
IProject p = importProject("projects/p15/pom.xml");
442+
waitForJobsToComplete();
443+
IJavaProject javaProject = JavaCore.create(p);
444+
assertNotNull(javaProject);
445+
assertNoErrors(p);
446+
}
438447
}

0 commit comments

Comments
 (0)