Merge branch '2.7.x'

This commit is contained in:
Andy Wilkinson 2022-01-19 13:19:59 +00:00
commit 91060a94d4
6 changed files with 30 additions and 29 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2021 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -26,6 +26,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.ServiceLoader;
import groovy.grape.GrapeEngine;
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyClassLoader.ClassCollector;
import groovy.lang.GroovyCodeSource;
@ -44,10 +45,9 @@ import org.codehaus.groovy.transform.ASTTransformation;
import org.codehaus.groovy.transform.ASTTransformationVisitor;
import org.springframework.boot.cli.compiler.dependencies.SpringBootDependenciesDependencyManagement;
import org.springframework.boot.cli.compiler.grape.AetherGrapeEngine;
import org.springframework.boot.cli.compiler.grape.AetherGrapeEngineFactory;
import org.springframework.boot.cli.compiler.grape.DependencyResolutionContext;
import org.springframework.boot.cli.compiler.grape.GrapeEngineInstaller;
import org.springframework.boot.cli.compiler.grape.MavenResolverGrapeEngineFactory;
import org.springframework.boot.cli.util.ResourceUtils;
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import org.springframework.util.ClassUtils;
@ -96,7 +96,7 @@ public class GroovyCompiler {
DependencyResolutionContext resolutionContext = new DependencyResolutionContext();
resolutionContext.addDependencyManagement(new SpringBootDependenciesDependencyManagement());
AetherGrapeEngine grapeEngine = AetherGrapeEngineFactory.create(this.loader,
GrapeEngine grapeEngine = MavenResolverGrapeEngineFactory.create(this.loader,
configuration.getRepositoryConfiguration(), resolutionContext, configuration.isQuiet());
GrapeEngineInstaller.install(grapeEngine);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2020 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -44,15 +44,15 @@ import org.eclipse.aether.util.filter.DependencyFilterUtils;
/**
* A {@link GrapeEngine} implementation that uses
* <a href="https://eclipse.org/aether">Aether</a>, the dependency resolution system used
* by Maven.
* <a href="https://maven.apache.org/resolver/index.html">Maven Resolver</a>, the
* dependency resolution system used by Maven.
*
* @author Andy Wilkinson
* @author Phillip Webb
* @since 1.0.0
* @since 2.5.9
*/
@SuppressWarnings("rawtypes")
public class AetherGrapeEngine implements GrapeEngine {
public class MavenResolverGrapeEngine implements GrapeEngine {
private static final Collection<Exclusion> WILDCARD_EXCLUSION;
@ -74,7 +74,7 @@ public class AetherGrapeEngine implements GrapeEngine {
private final List<RemoteRepository> repositories;
public AetherGrapeEngine(GroovyClassLoader classLoader, RepositorySystem repositorySystem,
public MavenResolverGrapeEngine(GroovyClassLoader classLoader, RepositorySystem repositorySystem,
DefaultRepositorySystemSession repositorySystemSession, List<RemoteRepository> remoteRepositories,
DependencyResolutionContext resolutionContext, boolean quiet) {
this.classLoader = classLoader;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -36,14 +36,14 @@ import org.eclipse.aether.transport.file.FileTransporterFactory;
import org.eclipse.aether.transport.http.HttpTransporterFactory;
/**
* Utility class to create a pre-configured {@link AetherGrapeEngine}.
* Utility class to create a pre-configured {@link MavenResolverGrapeEngine}.
*
* @author Andy Wilkinson
* @since 1.0.0
* @since 2.5.9
*/
public abstract class AetherGrapeEngineFactory {
public abstract class MavenResolverGrapeEngineFactory {
public static AetherGrapeEngine create(GroovyClassLoader classLoader,
public static MavenResolverGrapeEngine create(GroovyClassLoader classLoader,
List<RepositoryConfiguration> repositoryConfigurations,
DependencyResolutionContext dependencyResolutionContext, boolean quiet) {
RepositorySystem repositorySystem = createServiceLocator().getService(RepositorySystem.class);
@ -54,7 +54,7 @@ public abstract class AetherGrapeEngineFactory {
autoConfiguration.apply(repositorySystemSession, repositorySystem);
}
new DefaultRepositorySystemSessionAutoConfiguration().apply(repositorySystemSession, repositorySystem);
return new AetherGrapeEngine(classLoader, repositorySystem, repositorySystemSession,
return new MavenResolverGrapeEngine(classLoader, repositorySystem, repositorySystemSession,
createRepositories(repositoryConfigurations), dependencyResolutionContext, quiet);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -20,8 +20,8 @@ import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
/**
* Strategy that can be used to apply some auto-configuration during the installation of
* an {@link AetherGrapeEngine}.
* Strategy that can be used to apply some auto-configuration during the installation of a
* {@link MavenResolverGrapeEngine}.
*
* @author Andy Wilkinson
* @since 1.0.0

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2020 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -26,6 +26,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import groovy.grape.GrapeEngine;
import groovy.lang.GroovyClassLoader;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.repository.Authentication;
@ -43,7 +44,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
*
* @author Andy Wilkinson
*/
class AetherGrapeEngineTests {
class MavenResolverGrapeEngineTests {
private final GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
@ -53,14 +54,14 @@ class AetherGrapeEngineTests {
private final RepositoryConfiguration springSnapshot = new RepositoryConfiguration("spring-snapshot",
URI.create("https://repo.spring.io/snapshot"), true);
private AetherGrapeEngine createGrapeEngine(RepositoryConfiguration... additionalRepositories) {
private GrapeEngine createGrapeEngine(RepositoryConfiguration... additionalRepositories) {
List<RepositoryConfiguration> repositoryConfigurations = new ArrayList<>();
repositoryConfigurations
.add(new RepositoryConfiguration("central", URI.create("https://repo1.maven.org/maven2"), false));
repositoryConfigurations.addAll(Arrays.asList(additionalRepositories));
DependencyResolutionContext dependencyResolutionContext = new DependencyResolutionContext();
dependencyResolutionContext.addDependencyManagement(new SpringBootDependenciesDependencyManagement());
return AetherGrapeEngineFactory.create(this.groovyClassLoader, repositoryConfigurations,
return MavenResolverGrapeEngineFactory.create(this.groovyClassLoader, repositoryConfigurations,
dependencyResolutionContext, false);
}
@ -75,7 +76,7 @@ class AetherGrapeEngineTests {
@Test
void proxySelector() {
doWithCustomUserHome(() -> {
AetherGrapeEngine grapeEngine = createGrapeEngine();
GrapeEngine grapeEngine = createGrapeEngine();
DefaultRepositorySystemSession session = (DefaultRepositorySystemSession) ReflectionTestUtils
.getField(grapeEngine, "session");
@ -139,7 +140,7 @@ class AetherGrapeEngineTests {
@Test
void resolutionWithCustomResolver() {
Map<String, Object> args = new HashMap<>();
AetherGrapeEngine grapeEngine = createGrapeEngine();
GrapeEngine grapeEngine = createGrapeEngine();
grapeEngine.addResolver(createResolver("spring-releases", "https://repo.spring.io/release"));
Map<String, Object> dependency = createDependency("io.spring.docresources", "spring-doc-resources",
"0.1.1.RELEASE");
@ -153,7 +154,7 @@ class AetherGrapeEngineTests {
Map<String, Object> dependency = createDependency("org.grails", "grails-dependencies", "2.4.0");
dependency.put("type", "foo");
dependency.put("ext", "bar");
AetherGrapeEngine grapeEngine = createGrapeEngine();
GrapeEngine grapeEngine = createGrapeEngine();
assertThatIllegalArgumentException().isThrownBy(() -> grapeEngine.grab(Collections.emptyMap(), dependency));
}
@ -196,7 +197,7 @@ class AetherGrapeEngineTests {
@SuppressWarnings("unchecked")
private List<RemoteRepository> getRepositories() {
AetherGrapeEngine grapeEngine = createGrapeEngine();
GrapeEngine grapeEngine = createGrapeEngine();
return (List<RemoteRepository>) ReflectionTestUtils.getField(grapeEngine, "repositories");
}

View File

@ -1,7 +1,7 @@
[[cli.maven-setting]]
== Configuring the CLI with settings.xml
The Spring Boot CLI uses Aether, Maven's dependency resolution engine, to resolve dependencies.
The CLI makes use of the Maven configuration found in `~/.m2/settings.xml` to configure Aether.
The Spring Boot CLI uses Maven Resolver, Maven's dependency resolution engine, to resolve dependencies.
The CLI makes use of the Maven configuration found in `~/.m2/settings.xml` to configure Maven Resolver.
The following configuration settings are honored by the CLI:
* Offline