Skip to content

Commit

Permalink
Merge branch '3.0.x' into 3.1.x
Browse files Browse the repository at this point in the history
Closes gh-36959
  • Loading branch information
snicoll committed Aug 14, 2023
2 parents 1553005 + 3ae65e0 commit b903df7
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,10 @@ public abstract class AbstractAotMojo extends AbstractDependencyFilterMojo {
@Parameter(property = "spring-boot.aot.compilerArguments")
private String compilerArguments;

protected final MavenSession getSession() {
return this.session;
}

@Override
public void execute() throws MojoExecutionException, MojoFailureException {
if (this.skip) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,26 @@
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.DefaultArtifact;
import org.apache.maven.artifact.handler.DefaultArtifactHandler;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.annotations.ResolutionScope;
import org.apache.maven.repository.RepositorySystem;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.collection.CollectRequest;
import org.eclipse.aether.resolution.ArtifactResult;
import org.eclipse.aether.resolution.DependencyRequest;
import org.eclipse.aether.resolution.DependencyResult;
import org.eclipse.aether.util.artifact.JavaScopes;
import org.eclipse.aether.util.filter.DependencyFilterUtils;

/**
* Invoke the AOT engine on tests.
Expand Down Expand Up @@ -97,20 +103,6 @@ public class ProcessTestAotMojo extends AbstractAotMojo {
@Parameter(defaultValue = "${project.build.directory}/spring-aot/main/classes", required = true)
private File generatedClasses;

/**
* Local artifact repository used to resolve JUnit platform launcher jars.
*/
@SuppressWarnings("deprecation")
@Parameter(defaultValue = "${localRepository}", required = true, readonly = true)
private org.apache.maven.artifact.repository.ArtifactRepository localRepository;

/**
* Remote artifact repositories used to resolve JUnit platform launcher jars.
*/
@SuppressWarnings("deprecation")
@Parameter(defaultValue = "${project.remoteArtifactRepositories}", required = true, readonly = true)
private List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepositories;

@Component
private RepositorySystem repositorySystem;

Expand Down Expand Up @@ -165,10 +157,10 @@ private URL[] addJUnitPlatformLauncher(URL[] classPath) throws Exception {
String version = getJUnitPlatformVersion();
DefaultArtifactHandler handler = new DefaultArtifactHandler("jar");
handler.setIncludesDependencies(true);
ArtifactResolutionResult resolutionResult = resolveArtifact(new DefaultArtifact(JUNIT_PLATFORM_GROUP_ID,
Set<Artifact> artifacts = resolveArtifact(new DefaultArtifact(JUNIT_PLATFORM_GROUP_ID,
JUNIT_PLATFORM_LAUNCHER_ARTIFACT_ID, version, null, "jar", null, handler));
Set<URL> fullClassPath = new LinkedHashSet<>(Arrays.asList(classPath));
for (Artifact artifact : resolutionResult.getArtifacts()) {
for (Artifact artifact : artifacts) {
fullClassPath.add(artifact.getFile().toURI().toURL());
}
return fullClassPath.toArray(URL[]::new);
Expand All @@ -185,16 +177,20 @@ private String getJUnitPlatformVersion() throws MojoExecutionException {
return version;
}

private ArtifactResolutionResult resolveArtifact(Artifact artifact) throws Exception {
ArtifactResolutionRequest request = new ArtifactResolutionRequest();
request.setArtifact(artifact);
request.setLocalRepository(this.localRepository);
request.setResolveTransitively(true);
request.setCollectionFilter(new RuntimeArtifactFilter());
request.setRemoteRepositories(this.remoteRepositories);
ArtifactResolutionResult result = this.repositorySystem.resolve(request);
this.resolutionErrorHandler.throwErrors(request, result);
return result;
private Set<Artifact> resolveArtifact(Artifact artifact) throws Exception {
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRoot(RepositoryUtils.toDependency(artifact, null));
collectRequest.setRepositories(this.project.getRemotePluginRepositories());
DependencyRequest request = new DependencyRequest();
request.setCollectRequest(collectRequest);
request.setFilter(DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME));
DependencyResult dependencyResult = this.repositorySystem
.resolveDependencies(getSession().getRepositorySession(), request);
return dependencyResult.getArtifactResults()
.stream()
.map(ArtifactResult::getArtifact)
.map(RepositoryUtils::toArtifact)
.collect(Collectors.toSet());
}

}

0 comments on commit b903df7

Please sign in to comment.