Skip to content

Commit 8113786

Browse files
committed
Use project builder from the injected property
1 parent fc0c358 commit 8113786

File tree

4 files changed

+18
-36
lines changed

4 files changed

+18
-36
lines changed

maven_plugin/src/main/java/io/github/chains_project/maven_lockfile/AbstractLockfileMojo.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.apache.maven.plugins.annotations.Parameter;
1616
import org.apache.maven.project.DefaultProjectBuildingRequest;
1717
import org.apache.maven.project.MavenProject;
18+
import org.apache.maven.project.ProjectBuilder;
1819
import org.apache.maven.project.ProjectBuildingRequest;
1920
import org.apache.maven.shared.dependency.graph.DependencyCollectorBuilder;
2021
import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolver;
@@ -39,6 +40,9 @@ public abstract class AbstractLockfileMojo extends AbstractMojo {
3940
@Component
4041
protected DependencyResolver dependencyResolver;
4142

43+
@Component
44+
protected ProjectBuilder projectBuilder;
45+
4246
@Parameter(property = "includeMavenPlugins", defaultValue = "false")
4347
protected String includeMavenPlugins;
4448

maven_plugin/src/main/java/io/github/chains_project/maven_lockfile/GenerateLockFileMojo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void execute() throws MojoExecutionException {
5959
}
6060
AbstractChecksumCalculator checksumCalculator = getChecksumCalculator(config);
6161
LockFile lockFile = LockFileFacade.generateLockFileFromProject(
62-
session, project, dependencyCollectorBuilder, checksumCalculator, metaData);
62+
session, project, dependencyCollectorBuilder, checksumCalculator, metaData, projectBuilder);
6363

6464
Path lockFilePath = LockFileFacade.getLockFilePath(project, lockfileName);
6565
Files.writeString(lockFilePath, JsonUtils.toJson(lockFile));

maven_plugin/src/main/java/io/github/chains_project/maven_lockfile/LockFileFacade.java

Lines changed: 12 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.stream.Collectors;
2424
import org.apache.maven.artifact.Artifact;
2525
import org.apache.maven.artifact.DefaultArtifact;
26-
import org.apache.maven.artifact.factory.ArtifactFactory;
2726
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
2827
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
2928
import org.apache.maven.execution.MavenSession;
@@ -37,8 +36,6 @@
3736
import org.apache.maven.shared.dependency.graph.DependencyCollectorBuilder;
3837
import org.apache.maven.shared.dependency.graph.DependencyNode;
3938
import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
40-
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
41-
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
4239

4340
/**
4441
* Entry point for the lock file generation. This class is responsible for generating the lock file for a project.
@@ -98,11 +95,12 @@ public static LockFile generateLockFileFromProject(
9895
MavenProject project,
9996
DependencyCollectorBuilder dependencyCollectorBuilder,
10097
AbstractChecksumCalculator checksumCalculator,
101-
MetaData metadata) {
98+
MetaData metadata,
99+
ProjectBuilder projectBuilder) {
102100
PluginLogManager.getLog().info(String.format("Generating lock file for project %s", project.getArtifactId()));
103101
Set<MavenPlugin> plugins = new TreeSet<>();
104102
if (metadata.getConfig().isIncludeMavenPlugins()) {
105-
plugins = getAllPlugins(project, session, dependencyCollectorBuilder, checksumCalculator);
103+
plugins = getAllPlugins(project, session, dependencyCollectorBuilder, checksumCalculator, projectBuilder);
106104
}
107105
// Get all the artifacts for the dependencies in the project
108106
var graph = LockFileFacade.graph(
@@ -130,7 +128,8 @@ private static Set<MavenPlugin> getAllPlugins(
130128
MavenProject project,
131129
MavenSession session,
132130
DependencyCollectorBuilder dependencyCollectorBuilder,
133-
AbstractChecksumCalculator checksumCalculator) {
131+
AbstractChecksumCalculator checksumCalculator,
132+
ProjectBuilder projectBuilder) {
134133
Set<MavenPlugin> plugins = new TreeSet<>();
135134

136135
// Build a map of user-declared plugin dependencies
@@ -158,7 +157,8 @@ private static Set<MavenPlugin> getAllPlugins(
158157
project,
159158
dependencyCollectorBuilder,
160159
checksumCalculator,
161-
userDeclaredDeps);
160+
userDeclaredDeps,
161+
projectBuilder);
162162
plugins.add(new MavenPlugin(
163163
GroupId.of(pluginArtifact.getGroupId()),
164164
ArtifactId.of(pluginArtifact.getArtifactId()),
@@ -189,7 +189,8 @@ private static Set<io.github.chains_project.maven_lockfile.graph.DependencyNode>
189189
MavenProject project,
190190
DependencyCollectorBuilder dependencyCollectorBuilder,
191191
AbstractChecksumCalculator checksumCalculator,
192-
List<Dependency> userDeclaredDeps) {
192+
List<Dependency> userDeclaredDeps,
193+
ProjectBuilder projectBuilder) {
193194
PluginLogManager.getLog()
194195
.debug(String.format("Attempting to resolve dependencies for plugin %s", pluginArtifact));
195196
try {
@@ -230,29 +231,9 @@ private static Set<io.github.chains_project.maven_lockfile.graph.DependencyNode>
230231
if (Files.exists(localPomPath)) {
231232
pluginPomFile = localPomPath.toFile();
232233
} else {
233-
// If not in local repo, try to resolve it using artifact resolver
234-
@SuppressWarnings("deprecation")
235-
ArtifactFactory artifactFactory = session.getContainer().lookup(ArtifactFactory.class);
236-
Artifact pomArtifact = artifactFactory.createArtifact(
237-
pluginArtifact.getGroupId(),
238-
pluginArtifact.getArtifactId(),
239-
pluginArtifact.getVersion(),
240-
null,
241-
"pom");
242-
243-
ProjectBuildingRequest pomBuildingRequest =
244-
new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
245-
pomBuildingRequest.setRemoteRepositories(project.getPluginArtifactRepositories());
246-
247-
@SuppressWarnings("deprecation")
248-
ArtifactResolver artifactResolver =
249-
session.getContainer().lookup(ArtifactResolver.class);
250-
ArtifactResult result = artifactResolver.resolveArtifact(pomBuildingRequest, pomArtifact);
251-
if (result != null
252-
&& result.getArtifact() != null
253-
&& result.getArtifact().getFile() != null) {
254-
pluginPomFile = result.getArtifact().getFile();
255-
}
234+
PluginLogManager.getLog()
235+
.debug(String.format(
236+
"POM not found in local repository for plugin %s", pluginArtifact));
256237
}
257238
} catch (Exception e) {
258239
PluginLogManager.getLog()
@@ -282,9 +263,6 @@ private static Set<io.github.chains_project.maven_lockfile.graph.DependencyNode>
282263
buildingRequest.setProcessPlugins(false);
283264
buildingRequest.setResolveDependencies(true);
284265

285-
// Note: getContainer() is deprecated but there's no clear replacement in the current Maven API
286-
@SuppressWarnings("deprecation")
287-
ProjectBuilder projectBuilder = session.getContainer().lookup(ProjectBuilder.class);
288266
ProjectBuildingResult result = projectBuilder.build(pluginPomFile, buildingRequest);
289267

290268
if (result.getProblems() != null && !result.getProblems().isEmpty()) {

maven_plugin/src/main/java/io/github/chains_project/maven_lockfile/ValidateChecksumMojo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void execute() throws MojoExecutionException {
4949
MetaData metaData = new MetaData(environment, config);
5050
AbstractChecksumCalculator checksumCalculator = getChecksumCalculator(config, true);
5151
LockFile lockFileFromProject = LockFileFacade.generateLockFileFromProject(
52-
session, project, dependencyCollectorBuilder, checksumCalculator, metaData);
52+
session, project, dependencyCollectorBuilder, checksumCalculator, metaData, projectBuilder);
5353
if (!Objects.equals(lockFileFromFile.getEnvironment(), lockFileFromProject.getEnvironment())) {
5454
String sb = "Lock file environment does not match project environment.\n"
5555
+ "Lockfile environment: " + lockFileFromFile.getEnvironment() + "\n"

0 commit comments

Comments
 (0)