This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch mvn4
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/mvn4 by this push:
new e13ad87 Switch a few core plugins to the new api
e13ad87 is described below
commit e13ad87ad25b45b7f0ec5f060bf3063feb35160b
Author: Guillaume Nodet <[email protected]>
AuthorDate: Thu Feb 24 17:00:55 2022 +0100
Switch a few core plugins to the new api
---
.../main/java/org/apache/maven/api/Artifact.java | 35 ++++--
.../main/java/org/apache/maven/api/Dependency.java | 1 +
.../java/org/apache/maven/api/MojoExecution.java | 6 ++
.../src/main/java/org/apache/maven/api/Node.java | 13 +--
.../main/java/org/apache/maven/api/Project.java | 4 +
.../main/java/org/apache/maven/api/Toolchain.java | 10 ++
.../api/services/ArtifactDeployerRequest.java | 22 +++-
.../apache/maven/api/services/ProjectManager.java | 7 +-
.../maven/api/services/ToolchainManager.java | 12 ++-
...Manager.java => ToolchainManagerException.java} | 22 ++--
maven-core-impl/pom.xml | 2 +-
.../org/apache/maven/impl/DefaultDependency.java | 1 +
.../java/org/apache/maven/impl/DefaultNode.java | 13 +--
.../java/org/apache/maven/impl/DefaultProject.java | 1 +
.../java/org/apache/maven/impl/DefaultSession.java | 22 +++-
.../apache/maven/impl/DefaultToolchainManager.java | 120 +++++++++++++++++++++
.../test/java/org/apache/maven/impl/TestApi.java | 7 +-
maven-core/pom.xml | 2 +-
.../toolchain/DefaultToolchainManagerPrivate.java | 9 +-
.../project/DefaultMavenProjectBuilderTest.java | 1 +
maven-model/pom.xml | 9 ++
maven-resolver-provider/pom.xml | 9 ++
pom.xml | 17 ++-
23 files changed, 290 insertions(+), 55 deletions(-)
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/Artifact.java
b/maven-core-api/src/main/java/org/apache/maven/api/Artifact.java
index 6ef6856..9dcaaa2 100644
--- a/maven-core-api/src/main/java/org/apache/maven/api/Artifact.java
+++ b/maven-core-api/src/main/java/org/apache/maven/api/Artifact.java
@@ -25,6 +25,9 @@ import javax.annotation.concurrent.Immutable;
import java.nio.file.Path;
import java.util.Optional;
+/**
+ * TODO: split between Coordinates / AttachedArtifact / ResolvedArtifact
+ */
@Immutable
public interface Artifact
{
@@ -46,32 +49,32 @@ public interface Artifact
String getArtifactId();
/**
- * The version of the artifact.
+ * The classifier of the artifact.
*
- * @return The version.
+ * @return The classifier or an empty string if none, never {@code null}.
*/
@Nonnull
- String getVersion();
+ String getClassifier();
/**
- * The file-extension of the artifact.
+ * The version of the artifact.
*
- * @return The extension.
+ * @return The version.
*/
@Nonnull
- String getExtension();
+ String getVersion();
/**
- * The classifier of the artifact.
+ * The file extension of the artifact.
*
- * @return The classifier.
+ * @return The extension.
*/
@Nonnull
- String getClassifier();
+ String getExtension();
/**
* Gets the base version of this artifact, for example "1.0-SNAPSHOT". In
contrast to the {@link #getVersion()}, the
- * base version will always refer to the unresolved meta version.
+ * base version will always refer to the unresolved version.
*
* @return The base version, never {@code null}.
*/
@@ -94,4 +97,16 @@ public interface Artifact
@Nonnull
Optional<Path> getPath();
+ /**
+ * Unique id identifying this artifact
+ */
+ default String getId()
+ {
+ return getGroupId()
+ + ":" + getArtifactId()
+ + ":" + getExtension()
+ + ( getClassifier().isEmpty() ? "" : ":" + getClassifier() )
+ + ":" + getBaseVersion();
+ }
+
}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/Dependency.java
b/maven-core-api/src/main/java/org/apache/maven/api/Dependency.java
index 0e672f6..d0a966d 100644
--- a/maven-core-api/src/main/java/org/apache/maven/api/Dependency.java
+++ b/maven-core-api/src/main/java/org/apache/maven/api/Dependency.java
@@ -32,6 +32,7 @@ public interface Dependency
Artifact getArtifact();
// TODO: make that en enum ?
+ @Nonnull
String getScope();
@Nullable
diff --git
a/maven-core-api/src/main/java/org/apache/maven/api/MojoExecution.java
b/maven-core-api/src/main/java/org/apache/maven/api/MojoExecution.java
index 30574b9..cc0d621 100644
--- a/maven-core-api/src/main/java/org/apache/maven/api/MojoExecution.java
+++ b/maven-core-api/src/main/java/org/apache/maven/api/MojoExecution.java
@@ -27,4 +27,10 @@ public interface MojoExecution
{
@Nonnull
Plugin getPlugin();
+
+ @Nonnull
+ String getExecutionId();
+
+ @Nonnull
+ String getGoal();
}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/Node.java
b/maven-core-api/src/main/java/org/apache/maven/api/Node.java
index 6b42a0a..e475268 100644
--- a/maven-core-api/src/main/java/org/apache/maven/api/Node.java
+++ b/maven-core-api/src/main/java/org/apache/maven/api/Node.java
@@ -22,14 +22,12 @@ package org.apache.maven.api;
import javax.annotation.concurrent.Immutable;
import java.util.List;
+import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Stream;
/**
* Represents a dependency node within a Maven project's dependency collector.
- *
- * @author Pim Moerenhout
- * @since 0.12
*/
@Immutable
public interface Node
@@ -57,14 +55,9 @@ public interface Node
List<Repository> getRemoteRepositories();
/**
- * @return true for an optional dependency.
- */
- Boolean getOptional();
-
- /**
- * @return The scope on the dependency.
+ * The repository where this artifact has been downloaded from.
*/
- String getScope();
+ Optional<RemoteRepository> getRepository();
/**
* Traverses this node and potentially its children using the specified
visitor.
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/Project.java
b/maven-core-api/src/main/java/org/apache/maven/api/Project.java
index 4d313e4..d8cb6f0 100644
--- a/maven-core-api/src/main/java/org/apache/maven/api/Project.java
+++ b/maven-core-api/src/main/java/org/apache/maven/api/Project.java
@@ -64,4 +64,8 @@ public interface Project
@Nonnull
List<Dependency> getManagedDependencies();
+ default String getId()
+ {
+ return getModel().getId();
+ }
}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/Toolchain.java
b/maven-core-api/src/main/java/org/apache/maven/api/Toolchain.java
index a31e5bc..51dcb3b 100644
--- a/maven-core-api/src/main/java/org/apache/maven/api/Toolchain.java
+++ b/maven-core-api/src/main/java/org/apache/maven/api/Toolchain.java
@@ -19,6 +19,8 @@ package org.apache.maven.api;
* under the License.
*/
+import java.util.Map;
+
/**
* Toolchain interface.
*/
@@ -38,4 +40,12 @@ public interface Toolchain
* @return file representing the tool executable, or null if the tool can
not be found
*/
String findTool( String toolName );
+
+ /**
+ * Let the toolchain decide if it matches requirements defined
+ * in the toolchain plugin configuration.
+ * @param requirements Map<String, String> key value pair, may not
be {@code null}
+ * @return {@code true} if the requirements match, otherwise {@code false}
+ */
+ boolean matchesRequirements( Map<String, String> requirements );
}
\ No newline at end of file
diff --git
a/maven-core-api/src/main/java/org/apache/maven/api/services/ArtifactDeployerRequest.java
b/maven-core-api/src/main/java/org/apache/maven/api/services/ArtifactDeployerRequest.java
index f3363eb..f3d865b 100644
---
a/maven-core-api/src/main/java/org/apache/maven/api/services/ArtifactDeployerRequest.java
+++
b/maven-core-api/src/main/java/org/apache/maven/api/services/ArtifactDeployerRequest.java
@@ -42,6 +42,8 @@ public interface ArtifactDeployerRequest
@Nonnull
Collection<Artifact> getArtifacts();
+ int getRetryFailedDeploymentCount();
+
@Nonnull
static ArtifactDeployerRequestBuilder builder()
{
@@ -63,6 +65,7 @@ public interface ArtifactDeployerRequest
Session session;
RemoteRepository repository;
Collection<Artifact> artifacts;
+ int retryFailedDeploymentCount;
@Nonnull
public ArtifactDeployerRequestBuilder session( Session session )
@@ -84,10 +87,16 @@ public interface ArtifactDeployerRequest
return this;
}
+ public ArtifactDeployerRequestBuilder retryFailedDeploymentCount( int
retryFailedDeploymentCount )
+ {
+ this.retryFailedDeploymentCount = retryFailedDeploymentCount;
+ return this;
+ }
+
@Nonnull
public ArtifactDeployerRequest build()
{
- return new DefaultArtifactDeployerRequest( session, repository,
artifacts );
+ return new DefaultArtifactDeployerRequest( session, repository,
artifacts, retryFailedDeploymentCount );
}
private static class DefaultArtifactDeployerRequest extends BaseRequest
@@ -96,14 +105,17 @@ public interface ArtifactDeployerRequest
private final RemoteRepository repository;
private final Collection<Artifact> artifacts;
+ private final int retryFailedDeploymentCount;
DefaultArtifactDeployerRequest( @Nonnull Session session,
@Nonnull RemoteRepository
repository,
- @Nonnull Collection<Artifact>
artifacts )
+ @Nonnull Collection<Artifact>
artifacts,
+ int retryFailedDeploymentCount )
{
super( session );
this.repository = requireNonNull( repository, "repository" );
this.artifacts = unmodifiable( artifacts, "artifacts" );
+ this.retryFailedDeploymentCount = retryFailedDeploymentCount;
}
@Nonnull
@@ -119,6 +131,12 @@ public interface ArtifactDeployerRequest
{
return artifacts;
}
+
+ @Override
+ public int getRetryFailedDeploymentCount()
+ {
+ return retryFailedDeploymentCount;
+ }
}
}
diff --git
a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectManager.java
b/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectManager.java
index a8456c6..8b6e96b 100644
---
a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectManager.java
+++
b/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectManager.java
@@ -48,9 +48,12 @@ public interface ProjectManager extends Service
@Nonnull
Collection<Artifact> getAttachedArtifacts( Project project );
- void attachArtifact( Project project, String type, Path path );
+ default void attachArtifact( Project project, String type, Path path )
+ {
+ attachArtifact( project, type, "", path );
+ }
- void attachArtifact( Project project, String trim, String trim1, Path path
);
+ void attachArtifact( Project project, String type, String classifier, Path
path );
List<String> getCompileSourceRoots( Project project );
diff --git
a/maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManager.java
b/maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManager.java
index b92ef4f..2740477 100644
---
a/maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManager.java
+++
b/maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManager.java
@@ -27,7 +27,15 @@ import org.apache.maven.api.Toolchain;
public interface ToolchainManager extends Service
{
- List<Toolchain> getToolchains( Session session, String jdk, Map<String,
String> jdkToolchain );
+ List<Toolchain> getToolchains( Session session, String type, Map<String,
String> requirements )
+ throws ToolchainManagerException;
- Toolchain getToolchainFromBuildContext( Session session, String jdk );
+ Toolchain getToolchainFromBuildContext( Session session, String type )
+ throws ToolchainManagerException;
+
+ List<Toolchain> getToolchainsForType( Session session, String type )
+ throws ToolchainManagerException;
+
+ void storeToolchainToBuildContext( Session session, Toolchain toolchain )
+ throws ToolchainManagerException;
}
diff --git
a/maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManager.java
b/maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManagerException.java
similarity index 71%
copy from
maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManager.java
copy to
maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManagerException.java
index b92ef4f..727e66d 100644
---
a/maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManager.java
+++
b/maven-core-api/src/main/java/org/apache/maven/api/services/ToolchainManagerException.java
@@ -19,15 +19,19 @@ package org.apache.maven.api.services;
* under the License.
*/
-import java.util.List;
-import java.util.Map;
-
-import org.apache.maven.api.Session;
-import org.apache.maven.api.Toolchain;
-
-public interface ToolchainManager extends Service
+/**
+ * The Exception class in case a resolving does not work.
+ */
+public class ToolchainManagerException
+ extends MavenException
{
- List<Toolchain> getToolchains( Session session, String jdk, Map<String,
String> jdkToolchain );
+ /**
+ * @param message The message to give.
+ * @param e The {@link Exception}.
+ */
+ public ToolchainManagerException( String message, Exception e )
+ {
+ super( message, e );
+ }
- Toolchain getToolchainFromBuildContext( Session session, String jdk );
}
diff --git a/maven-core-impl/pom.xml b/maven-core-impl/pom.xml
index 8fc09bc..65551b4 100644
--- a/maven-core-impl/pom.xml
+++ b/maven-core-impl/pom.xml
@@ -26,7 +26,7 @@
<version>4.0.0-alpha-1-SNAPSHOT</version>
</parent>
- <artifactId>maven-core-api-impl</artifactId>
+ <artifactId>maven-core-impl</artifactId>
<name>Apache Maven Core API Implementation</name>
<dependencies>
diff --git
a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java
b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java
index 27c76c4..5822d8c 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java
+++ b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java
@@ -53,6 +53,7 @@ public class DefaultDependency implements Dependency
return session.getArtifact( dependency.getArtifact() );
}
+ @Nonnull
@Override
public String getScope()
{
diff --git
a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultNode.java
b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultNode.java
index 6d97e94..85d95b4 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultNode.java
+++ b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultNode.java
@@ -20,12 +20,14 @@ package org.apache.maven.impl;
*/
import java.util.List;
+import java.util.Optional;
import java.util.function.Predicate;
import org.apache.maven.api.Artifact;
import org.apache.maven.api.Dependency;
import org.apache.maven.api.Node;
import org.apache.maven.api.NodeVisitor;
+import org.apache.maven.api.RemoteRepository;
import org.apache.maven.api.Repository;
public class DefaultNode implements Node
@@ -66,15 +68,10 @@ public class DefaultNode implements Node
}
@Override
- public Boolean getOptional()
+ public Optional<RemoteRepository> getRepository()
{
- return node.getDependency().getOptional();
- }
-
- @Override
- public String getScope()
- {
- return node.getDependency().getScope();
+ // TODO
+ throw new UnsupportedOperationException( "Not implemented yet" );
}
@Override
diff --git
a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProject.java
b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProject.java
index e9b90df..bc0de16 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProject.java
+++ b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProject.java
@@ -129,6 +129,7 @@ public class DefaultProject implements Project
dependency.getVersion(), dependency.getType() );
}
+ @Nonnull
@Override
public String getScope()
{
diff --git
a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultSession.java
b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultSession.java
index 5edf26c..291ea13 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultSession.java
+++ b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultSession.java
@@ -48,8 +48,10 @@ import org.apache.maven.api.Node;
import org.apache.maven.api.Project;
import org.apache.maven.api.LocalRepository;
import org.apache.maven.api.RemoteRepository;
+import org.apache.maven.api.services.ToolchainManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.bridge.MavenRepositorySystem;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.MavenProject;
import org.apache.maven.api.services.ArtifactResolver;
import org.apache.maven.api.services.ArtifactDeployer;
@@ -62,6 +64,7 @@ import org.apache.maven.api.services.ProjectBuilder;
import org.apache.maven.api.services.ProjectDeployer;
import org.apache.maven.api.services.ProjectInstaller;
import org.apache.maven.settings.Settings;
+import org.apache.maven.toolchain.DefaultToolchainManagerPrivate;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
@@ -78,6 +81,7 @@ public class DefaultSession implements Session
private final List<RemoteRepository> repositories;
private final org.apache.maven.project.ProjectBuilder projectBuilder;
private final MavenRepositorySystem mavenRepositorySystem;
+ private final DefaultToolchainManagerPrivate toolchainManagerPrivate;
private LocalRepositoryProvider localRepositoryProvider;
private final List<Listener> listeners = new CopyOnWriteArrayList<>();
@@ -97,7 +101,8 @@ public class DefaultSession implements Session
@Nonnull LocalRepositoryManagerFactory
localRepositoryManagerFactory,
@Nonnull List<RemoteRepository> repositories,
@Nonnull org.apache.maven.project.ProjectBuilder
projectBuilder,
- @Nonnull MavenRepositorySystem
mavenRepositorySystem )
+ @Nonnull MavenRepositorySystem
mavenRepositorySystem,
+ @Nonnull DefaultToolchainManagerPrivate
toolchainManagerPrivate )
{
this.session = Objects.requireNonNull( session );
this.repositorySystem = Objects.requireNonNull( repositorySystem );
@@ -105,6 +110,12 @@ public class DefaultSession implements Session
this.repositories = Objects.requireNonNull( repositories );
this.projectBuilder = projectBuilder;
this.mavenRepositorySystem = mavenRepositorySystem;
+ this.toolchainManagerPrivate = toolchainManagerPrivate;
+ }
+
+ MavenSession getMavenSession()
+ {
+ return null;
}
@Nonnull
@@ -195,7 +206,7 @@ public class DefaultSession implements Session
.setLocalRepositoryManager( localRepositoryManager );
return new DefaultSession( newSession, repositorySystem,
localRepositoryManagerFactory,
- repositories, projectBuilder,
mavenRepositorySystem );
+ repositories, projectBuilder,
mavenRepositorySystem, toolchainManagerPrivate );
}
catch ( NoLocalRepositoryManagerException e )
{
@@ -209,7 +220,7 @@ public class DefaultSession implements Session
public Session withRemoteRepositories( @Nonnull List<RemoteRepository>
repositories )
{
return new DefaultSession( session, repositorySystem,
localRepositoryManagerFactory,
- repositories, projectBuilder,
mavenRepositorySystem );
+ repositories, projectBuilder,
mavenRepositorySystem, toolchainManagerPrivate );
}
@Nonnull
@@ -265,6 +276,10 @@ public class DefaultSession implements Session
{
return (T) new DefaultRepositoryFactory( repositorySystem );
}
+ else if ( clazz == ToolchainManager.class )
+ {
+ return (T) new DefaultToolchainManager( toolchainManagerPrivate );
+ }
throw new NoSuchElementException( clazz.getName() );
}
@@ -478,4 +493,5 @@ public class DefaultSession implements Session
{
return Collections.unmodifiableCollection( listeners );
}
+
}
diff --git
a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java
b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java
new file mode 100644
index 0000000..a8912f7
--- /dev/null
+++
b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java
@@ -0,0 +1,120 @@
+package org.apache.maven.impl;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.api.Session;
+import org.apache.maven.api.Toolchain;
+import org.apache.maven.api.services.ToolchainManager;
+import org.apache.maven.api.services.ToolchainManagerException;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.toolchain.DefaultToolchainManagerPrivate;
+import org.apache.maven.toolchain.MisconfiguredToolchainException;
+import org.apache.maven.toolchain.ToolchainPrivate;
+
+public class DefaultToolchainManager implements ToolchainManager
+{
+ private final DefaultToolchainManagerPrivate toolchainManagerPrivate;
+
+ public DefaultToolchainManager( DefaultToolchainManagerPrivate
toolchainManagerPrivate )
+ {
+ this.toolchainManagerPrivate = toolchainManagerPrivate;
+ }
+
+ @Override
+ public List<Toolchain> getToolchains( Session session, String type,
Map<String, String> requirements )
+ throws ToolchainManagerException
+ {
+ MavenSession s = ( ( DefaultSession ) session ).getMavenSession();
+ List<org.apache.maven.toolchain.Toolchain> toolchains =
+ toolchainManagerPrivate.getToolchains( s, type, requirements );
+ return new MappedList<>( toolchains, this::toToolchain );
+ }
+
+ @Override
+ public Toolchain getToolchainFromBuildContext( Session session, String
type )
+ throws ToolchainManagerException
+ {
+ MavenSession s = ( ( DefaultSession ) session ).getMavenSession();
+ return toToolchain(
toolchainManagerPrivate.getToolchainFromBuildContext( type, s ) );
+ }
+
+ @Override
+ public List<Toolchain> getToolchainsForType( Session session, String type )
+ throws ToolchainManagerException
+ {
+ try
+ {
+ MavenSession s = ( (DefaultSession) session ).getMavenSession();
+ ToolchainPrivate[] toolchains =
toolchainManagerPrivate.getToolchainsForType( type, s );
+ return new MappedList<>( Arrays.asList( toolchains ),
this::toToolchain );
+ }
+ catch ( MisconfiguredToolchainException e )
+ {
+ throw new ToolchainManagerException( "Unable to get toochains for
type " + type, e );
+ }
+ }
+
+ @Override
+ public void storeToolchainToBuildContext( Session session, Toolchain
toolchain )
+ throws ToolchainManagerException
+ {
+ MavenSession s = ( ( DefaultSession ) session ).getMavenSession();
+ org.apache.maven.toolchain.ToolchainPrivate tc =
+ (org.apache.maven.toolchain.ToolchainPrivate) (
(ToolchainWrapper) toolchain ).toolchain;
+ toolchainManagerPrivate.storeToolchainToBuildContext( tc, s );
+ }
+
+ private Toolchain toToolchain( org.apache.maven.toolchain.Toolchain
toolchain )
+ {
+ return new ToolchainWrapper( toolchain );
+ }
+
+ private static class ToolchainWrapper implements Toolchain
+ {
+ private final org.apache.maven.toolchain.Toolchain toolchain;
+
+ ToolchainWrapper( org.apache.maven.toolchain.Toolchain toolchain )
+ {
+ this.toolchain = toolchain;
+ }
+
+ @Override
+ public String getType()
+ {
+ return toolchain.getType();
+ }
+
+ @Override
+ public String findTool( String toolName )
+ {
+ return toolchain.findTool( toolName );
+ }
+
+ @Override
+ public boolean matchesRequirements( Map<String, String> requirements )
+ {
+ return ( (ToolchainPrivate) toolchain ).matchesRequirements(
requirements );
+ }
+ }
+}
diff --git a/maven-core-impl/src/test/java/org/apache/maven/impl/TestApi.java
b/maven-core-impl/src/test/java/org/apache/maven/impl/TestApi.java
index b91dcf0..dc8a383 100644
--- a/maven-core-impl/src/test/java/org/apache/maven/impl/TestApi.java
+++ b/maven-core-impl/src/test/java/org/apache/maven/impl/TestApi.java
@@ -33,6 +33,7 @@ import org.apache.maven.api.services.ProjectBuilderRequest;
import org.apache.maven.api.services.RepositoryFactory;
import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
+import org.apache.maven.toolchain.DefaultToolchainManagerPrivate;
import org.codehaus.plexus.testing.PlexusTest;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
@@ -65,12 +66,16 @@ public class TestApi
@Inject
MavenRepositorySystem mavenRepositorySystem;
+ @Inject
+ DefaultToolchainManagerPrivate toolchainManagerPrivate;
+
@BeforeEach
void setup()
{
RepositorySystemSession rss = MavenRepositorySystemUtils.newSession();
DefaultSession session = new DefaultSession( rss, repositorySystem,
localRepositoryManagerFactory,
- Collections.emptyList(),
projectBuilder, mavenRepositorySystem );
+ Collections.emptyList(),
projectBuilder, mavenRepositorySystem,
+ toolchainManagerPrivate );
DefaultLocalRepository localRepository = new DefaultLocalRepository(
new LocalRepository( "target/repo" ) );
org.apache.maven.api.RemoteRepository remoteRepository =
session.getRemoteRepository(
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index f46fdeb..39f2e5f 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -219,7 +219,7 @@ under the License.
<groupId>org.codehaus.modello</groupId>
<artifactId>modello-maven-plugin</artifactId>
<configuration>
- <version>1.1.0</version>
+ <version>2.0.0</version>
<!-- This is a required attribute and is intentionally left empty -->
<models></models>
</configuration>
diff --git
a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
index 8a90f18..732d3f6 100644
---
a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
+++
b/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
@@ -22,6 +22,7 @@ package org.apache.maven.toolchain;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import javax.inject.Inject;
import javax.inject.Named;
@@ -77,13 +78,17 @@ public class DefaultToolchainManagerPrivate
{
for ( ToolchainModel toolchainModel : availableToolchains )
{
- toRet.add( fact.createToolchain( toolchainModel ) );
+ ToolchainPrivate tool = fact.createToolchain(
toolchainModel );
+ if ( tool != null && Objects.equals( type, tool.getType()
) )
+ {
+ toRet.add( tool );
+ }
}
}
// add default toolchain
ToolchainPrivate tool = fact.createDefaultToolchain();
- if ( tool != null )
+ if ( tool != null && Objects.equals( type, tool.getType() ) )
{
toRet.add( tool );
}
diff --git
a/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
b/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
index 727f28d..108ef23 100644
---
a/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
+++
b/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
@@ -195,6 +195,7 @@ public class DefaultMavenProjectBuilderTest
assertNotNull( result.getDependencyResolutionResult() );
}
+ @Test
public void testImportScopePomResolvesFromPropertyBasedRepository()
throws Exception
{
diff --git a/maven-model/pom.xml b/maven-model/pom.xml
index 83f4bf5..5fa60a5 100644
--- a/maven-model/pom.xml
+++ b/maven-model/pom.xml
@@ -69,6 +69,15 @@ under the License.
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/package-info.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git a/maven-resolver-provider/pom.xml b/maven-resolver-provider/pom.xml
index 0027e34..1227764 100644
--- a/maven-resolver-provider/pom.xml
+++ b/maven-resolver-provider/pom.xml
@@ -152,6 +152,15 @@ under the License.
<groupId>org.eclipse.sisu</groupId>
<artifactId>sisu-maven-plugin</artifactId>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/package-info.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git a/pom.xml b/pom.xml
index f85830c..83a811b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,17 +53,18 @@ under the License.
<commonsLangVersion>3.12.0</commonsLangVersion>
<junitVersion>5.8.1</junitVersion>
<mockitoVersion>3.2.0</mockitoVersion>
- <plexusVersion>2.1.0</plexusVersion>
+ <plexusVersion>2.2.0-SNAPSHOT</plexusVersion>
<plexusInterpolationVersion>1.26</plexusInterpolationVersion>
<plexusUtilsVersion>3.3.0</plexusUtilsVersion>
<guiceVersion>4.2.3</guiceVersion>
<guavaVersion>30.1-jre</guavaVersion>
<guavafailureaccessVersion>1.0.1</guavafailureaccessVersion>
<sisuVersion>0.3.5</sisuVersion>
+ <sisuPluginVersion>0.9.0-SNAPSHOT</sisuPluginVersion>
<wagonVersion>3.5.2-SNAPSHOT</wagonVersion>
<securityDispatcherVersion>2.0</securityDispatcherVersion>
<cipherVersion>2.0</cipherVersion>
- <modelloVersion>1.11</modelloVersion>
+ <modelloVersion>2.0.0</modelloVersion>
<jxpathVersion>1.3</jxpathVersion>
<resolverVersion>1.8.0-SNAPSHOT</resolverVersion>
<slf4jVersion>1.7.32</slf4jVersion>
@@ -474,6 +475,14 @@ under the License.
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <version>1.7.1-SNAPSHOT</version>
+ <configuration>
+ <useProjectsHash>true</useProjectsHash>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
<dependencies>
@@ -505,7 +514,7 @@ under the License.
<plugin>
<groupId>org.eclipse.sisu</groupId>
<artifactId>sisu-maven-plugin</artifactId>
- <version>${sisuVersion}</version>
+ <version>${sisuPluginVersion}</version>
<executions>
<execution>
<goals>
@@ -596,7 +605,7 @@ under the License.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
- <version>1.20</version>
+ <version>1.21</version>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature</groupId>