You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2022/03/08 10:48:09 UTC
[maven] 02/03: Add runtime support
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
commit 9343d03d59885f17aeb6fa40a60925229f8198f5
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Mon Mar 7 22:49:47 2022 +0100
Add runtime support
---
.../main/java/org/apache/maven/api/Project.java | 2 +
.../apache/maven/api/services/ArtifactManager.java | 15 ++-
.../apache/maven/api/services/ProjectDeployer.java | 69 ----------
.../api/services/ProjectDeployerException.java | 37 ------
.../maven/api/services/ProjectDeployerRequest.java | 134 -------------------
.../maven/api/services/ProjectInstaller.java | 79 ------------
.../api/services/ProjectInstallerException.java | 37 ------
.../api/services/ProjectInstallerRequest.java | 101 ---------------
.../apache/maven/api/services/ProjectManager.java | 14 +-
.../apache/maven/impl/DefaultProjectDeployer.java | 142 ---------------------
.../apache/maven/impl/DefaultProjectInstaller.java | 77 -----------
maven-core/pom.xml | 4 +
.../main/java/org/apache/maven/DefaultMaven.java | 10 +-
.../org/apache/maven/execution/MavenSession.java | 12 ++
.../apache/maven/execution/MojoExecutionEvent.java | 11 +-
.../maven/internal}/impl/DefaultArtifact.java | 2 +-
.../internal}/impl/DefaultArtifactDeployer.java | 2 +-
.../internal}/impl/DefaultArtifactFactory.java | 2 +-
.../internal}/impl/DefaultArtifactInstaller.java | 2 +-
.../internal/impl/DefaultArtifactManager.java | 89 +++++++++++++
.../internal}/impl/DefaultArtifactResolver.java | 2 +-
.../maven/internal}/impl/DefaultDependency.java | 2 +-
.../internal}/impl/DefaultDependencyCollector.java | 2 +-
.../internal}/impl/DefaultDependencyFactory.java | 2 +-
.../internal}/impl/DefaultDependencyResolver.java | 2 +-
.../internal}/impl/DefaultLocalRepository.java | 4 +-
.../impl/DefaultLocalRepositoryManager.java | 14 +-
.../apache/maven/internal}/impl/DefaultNode.java | 2 +-
.../maven/internal}/impl/DefaultProject.java | 15 ++-
.../internal}/impl/DefaultProjectBuilder.java | 2 +-
.../maven/internal/impl/DefaultProjectManager.java | 99 ++++++++++++++
.../internal}/impl/DefaultRemoteRepository.java | 2 +-
.../internal}/impl/DefaultRepositoryFactory.java | 2 +-
.../maven/internal}/impl/DefaultSession.java | 82 ++++++------
.../maven/internal/impl/DefaultSessionFactory.java | 67 ++++++++++
.../internal}/impl/DefaultToolchainManager.java | 2 +-
.../maven/internal}/impl/MappedCollection.java | 2 +-
.../apache/maven/internal}/impl/MappedList.java | 2 +-
.../lifecycle/internal/LifecycleModuleBuilder.java | 2 +
.../maven/plugin/DefaultBuildPluginManager.java | 37 ++++--
.../plugin/PluginParameterExpressionEvaluator.java | 9 +-
.../session/scope/internal/SessionScopeModule.java | 2 +
.../main/resources/META-INF/maven/extension.xml | 2 +
.../org/apache/maven/internal}/impl/TestApi.java | 16 +--
.../maven/internal}/impl/TestArtifactHandler.java | 2 +-
.../maven/internal}/impl/TestRepositorySystem.java | 2 +-
.../DefaultToolchainManagerPrivateTest.java | 11 ++
.../test/resources/apiv4-repo}/1.0/jdom-1.0.jar | Bin
.../resources/apiv4-repo}/1.0/jdom-1.0.jar.sha1 | 0
.../test/resources/apiv4-repo}/1.0/jdom-1.0.pom | 0
.../resources/apiv4-repo}/1.0/jdom-1.0.pom.sha1 | 0
.../apiv4-repo}/1.1/xml-im-exporter-1.1.jar | Bin
.../apiv4-repo}/1.1/xml-im-exporter-1.1.jar.sha1 | 0
.../apiv4-repo}/1.1/xml-im-exporter-1.1.pom | 0
.../apiv4-repo}/1.1/xml-im-exporter-1.1.pom.sha1 | 0
.../apiv4-repo}/2.0.2/commons-httpclient-2.0.2.jar | Bin
.../2.0.2/commons-httpclient-2.0.2.jar.sha1 | 0
.../apiv4-repo}/2.0.2/commons-httpclient-2.0.2.pom | 0
.../2.0.2/commons-httpclient-2.0.2.pom.sha1 | 0
.../apiv4-repo}/2.1/slide-webdavlib-2.1.jar | Bin
.../apiv4-repo}/2.1/slide-webdavlib-2.1.jar.md5 | 0
.../apiv4-repo}/2.1/slide-webdavlib-2.1.jar.sha1 | 0
.../apiv4-repo}/2.1/slide-webdavlib-2.1.pom | 0
.../apiv4-repo}/2.1/slide-webdavlib-2.1.pom.md5 | 0
.../apiv4-repo}/2.1/slide-webdavlib-2.1.pom.sha1 | 0
.../junit-4.13.1-javadoc-resources.jar.lastUpdated | 0
.../apiv4-repo}/4.13.1/junit-4.13.1-javadoc.jar | Bin
.../4.13.1/junit-4.13.1-javadoc.jar.sha1 | 0
.../apiv4-repo}/4.13.1/junit-4.13.1-sources.jar | Bin
.../4.13.1/junit-4.13.1-sources.jar.sha1 | 0
.../resources/apiv4-repo}/4.13.1/junit-4.13.1.jar | Bin
.../apiv4-repo}/4.13.1/junit-4.13.1.jar.sha1 | 0
.../resources/apiv4-repo}/4.13.1/junit-4.13.1.pom | 0
.../apiv4-repo}/4.13.1/junit-4.13.1.pom.sha1 | 0
.../1.0.3/commons-logging-1.0.3.jar | Bin
.../1.0.3/commons-logging-1.0.3.jar.sha1 | 0
.../1.0.3/commons-logging-1.0.3.pom | 0
.../1.0.3/commons-logging-1.0.3.pom.sha1 | 0
...logging-1.0.4-javadoc-resources.jar.lastUpdated | 0
.../1.0.4/commons-logging-1.0.4.jar | Bin
.../1.0.4/commons-logging-1.0.4.jar.sha1 | 0
.../1.0.4/commons-logging-1.0.4.pom | 0
.../1.0.4/commons-logging-1.0.4.pom.sha1 | 0
.../apiv4-repo}/org/apache/apache/3/apache-3.pom | 0
.../org/apache/apache/3/apache-3.pom.md5 | 0
.../org/apache/apache/3/apache-3.pom.sha1 | 0
.../3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar | Bin
.../maven-artifact-3.0-SNAPSHOT.jar.md5 | 0
.../maven-artifact-3.0-SNAPSHOT.jar.sha1 | 0
.../3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom | 0
.../maven-artifact-3.0-SNAPSHOT.pom.md5 | 0
.../maven-artifact-3.0-SNAPSHOT.pom.sha1 | 0
.../test/test-extension/1/test-extension-1.jar | Bin
.../test/test-extension/1/test-extension-1.pom | 0
.../test/test-extension/1/test-extension-1.pom.md5 | 0
.../test-extension/1/test-extension-1.pom.sha1 | 0
.../1/test-lifecycle-and-artifactHandler-1.jar | Bin
.../1/test-lifecycle-and-artifactHandler-1.pom | 0
.../1/test-lifecycle-and-artifactHandler-1.pom.md5 | 0
.../test-lifecycle-and-artifactHandler-1.pom.sha1 | 0
.../apache/maven/maven-parent/4/maven-parent-4.pom | 0
.../maven/maven-parent/4/maven-parent-4.pom.md5 | 0
.../maven/maven-parent/4/maven-parent-4.pom.sha1 | 0
.../apache/maven/maven-parent/5/maven-parent-5.pom | 0
.../maven/maven-parent/5/maven-parent-5.pom.md5 | 0
.../maven/maven-parent/5/maven-parent-5.pom.sha1 | 0
.../1.0-beta-2/wagon-provider-api-1.0-beta-2.jar | Bin
.../wagon-provider-api-1.0-beta-2.jar.md5 | 0
.../wagon-provider-api-1.0-beta-2.jar.sha1 | 0
.../1.0-beta-2/wagon-provider-api-1.0-beta-2.pom | 0
.../wagon-provider-api-1.0-beta-2.pom.md5 | 0
.../wagon-provider-api-1.0-beta-2.pom.sha1 | 0
.../1.0-beta-2/wagon-providers-1.0-beta-2.pom | 0
.../1.0-beta-2/wagon-providers-1.0-beta-2.pom.md5 | 0
.../1.0-beta-2/wagon-providers-1.0-beta-2.pom.sha1 | 0
.../1.0-beta-2/wagon-webdav-1.0-beta-2.jar | Bin
.../1.0-beta-2/wagon-webdav-1.0-beta-2.jar.md5 | 0
.../1.0-beta-2/wagon-webdav-1.0-beta-2.jar.sha1 | 0
.../1.0-beta-2/wagon-webdav-1.0-beta-2.pom | 0
.../1.0-beta-2/wagon-webdav-1.0-beta-2.pom.md5 | 0
.../1.0-beta-2/wagon-webdav-1.0-beta-2.pom.sha1 | 0
.../wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom | 0
.../wagon/1.0-beta-2/wagon-1.0-beta-2.pom.md5 | 0
.../wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1 | 0
.../plexus-active-collections-1.0-beta-1.jar | Bin
.../plexus-active-collections-1.0-beta-1.jar.md5 | 0
.../plexus-active-collections-1.0-beta-1.jar.sha1 | 0
.../plexus-active-collections-1.0-beta-1.pom | 0
.../plexus-active-collections-1.0-beta-1.pom.md5 | 0
.../plexus-active-collections-1.0-beta-1.pom.sha1 | 0
.../plexus-classworlds-1.2-alpha-10.jar | Bin
.../plexus-classworlds-1.2-alpha-10.jar.md5 | 0
.../plexus-classworlds-1.2-alpha-10.jar.sha1 | 0
.../plexus-classworlds-1.2-alpha-10.pom | 0
.../plexus-classworlds-1.2-alpha-10.pom.md5 | 0
.../plexus-classworlds-1.2-alpha-10.pom.sha1 | 0
.../1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar | Bin
.../plexus-classworlds-1.2-alpha-7.jar.md5 | 0
.../plexus-classworlds-1.2-alpha-7.jar.sha1 | 0
.../1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom | 0
.../plexus-classworlds-1.2-alpha-7.pom.md5 | 0
.../plexus-classworlds-1.2-alpha-7.pom.sha1 | 0
.../plexus-component-api-1.0-alpha-16.jar | Bin
.../plexus-component-api-1.0-alpha-16.jar.md5 | 0
.../plexus-component-api-1.0-alpha-16.jar.sha1 | 0
.../plexus-component-api-1.0-alpha-16.pom | 0
.../plexus-component-api-1.0-alpha-16.pom.md5 | 0
.../plexus-component-api-1.0-alpha-16.pom.sha1 | 0
.../plexus-component-api-1.0-alpha-32.jar | Bin
.../plexus-component-api-1.0-alpha-32.jar.md5 | 0
.../plexus-component-api-1.0-alpha-32.jar.sha1 | 0
.../plexus-component-api-1.0-alpha-32.pom | 0
.../plexus-component-api-1.0-alpha-32.pom.md5 | 0
.../plexus-component-api-1.0-alpha-32.pom.sha1 | 0
.../1.1.6/plexus-components-1.1.6.pom | 0
.../1.1.6/plexus-components-1.1.6.pom.md5 | 0
.../1.1.6/plexus-components-1.1.6.pom.sha1 | 0
.../plexus-container-default-1.0-alpha-16.jar | Bin
.../plexus-container-default-1.0-alpha-16.jar.md5 | 0
.../plexus-container-default-1.0-alpha-16.jar.sha1 | 0
.../plexus-container-default-1.0-alpha-16.pom | 0
.../plexus-container-default-1.0-alpha-16.pom.md5 | 0
.../plexus-container-default-1.0-alpha-16.pom.sha1 | 0
.../plexus-container-default-1.0-alpha-32.jar | Bin
.../plexus-container-default-1.0-alpha-32.jar.md5 | 0
.../plexus-container-default-1.0-alpha-32.jar.sha1 | 0
.../plexus-container-default-1.0-alpha-32.pom | 0
.../plexus-container-default-1.0-alpha-32.pom.md5 | 0
.../plexus-container-default-1.0-alpha-32.pom.sha1 | 0
.../plexus-containers-1.0-alpha-16.pom | 0
.../plexus-containers-1.0-alpha-16.pom.md5 | 0
.../plexus-containers-1.0-alpha-16.pom.sha1 | 0
.../plexus-containers-1.0-alpha-32.pom | 0
.../plexus-containers-1.0-alpha-32.pom.md5 | 0
.../plexus-containers-1.0-alpha-32.pom.sha1 | 0
.../plexus-utils/1.0.4/plexus-utils-1.0.4.jar | Bin
.../plexus-utils/1.0.4/plexus-utils-1.0.4.jar.sha1 | 0
.../plexus-utils/1.0.4/plexus-utils-1.0.4.pom | 0
.../plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1 | 0
.../plexus/plexus-utils/1.1/plexus-utils-1.1.jar | Bin
.../plexus-utils/1.1/plexus-utils-1.1.jar.md5 | 0
.../plexus-utils/1.1/plexus-utils-1.1.jar.sha1 | 0
.../plexus/plexus-utils/1.1/plexus-utils-1.1.pom | 0
.../plexus-utils/1.1/plexus-utils-1.1.pom.md5 | 0
.../plexus-utils/1.1/plexus-utils-1.1.pom.sha1 | 0
.../plexus-utils/1.4.5/plexus-utils-1.4.5.jar | Bin
.../plexus-utils/1.4.5/plexus-utils-1.4.5.jar.md5 | 0
.../plexus-utils/1.4.5/plexus-utils-1.4.5.jar.sha1 | 0
.../plexus-utils/1.4.5/plexus-utils-1.4.5.pom | 0
.../plexus-utils/1.4.5/plexus-utils-1.4.5.pom.md5 | 0
.../plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1 | 0
.../plexus/plexus/1.0.10/plexus-1.0.10.pom | 0
.../plexus/plexus/1.0.10/plexus-1.0.10.pom.md5 | 0
.../plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1 | 0
.../plexus/plexus/1.0.11/plexus-1.0.11.pom | 0
.../plexus/plexus/1.0.11/plexus-1.0.11.pom.md5 | 0
.../plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1 | 0
.../codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom | 0
.../plexus/plexus/1.0.4/plexus-1.0.4.pom.md5 | 0
.../plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1 | 0
.../codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom | 0
.../plexus/plexus/1.0.8/plexus-1.0.8.pom.md5 | 0
.../plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1 | 0
.../codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom | 0
.../plexus/plexus/1.0.9/plexus-1.0.9.pom.md5 | 0
.../plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1 | 0
...rest-core-1.3-javadoc-resources.jar.lastUpdated | 0
.../1.3/hamcrest-core-1.3-javadoc.jar | Bin
.../1.3/hamcrest-core-1.3-javadoc.jar.sha1 | 0
.../1.3/hamcrest-core-1.3-sources.jar | Bin
.../1.3/hamcrest-core-1.3-sources.jar.sha1 | 0
.../hamcrest-core/1.3/hamcrest-core-1.3.jar | Bin
.../hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1 | 0
.../hamcrest-core/1.3/hamcrest-core-1.3.pom | 0
.../hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1 | 0
.../hamcrest-parent/1.3/hamcrest-parent-1.3.pom | 0
.../1.3/hamcrest-parent-1.3.pom.sha1 | 0
.../maven/plugin/descriptor/MojoDescriptor.java | 14 +-
.../plugin/descriptor/PluginDescriptorBuilder.java | 7 +
pom.xml | 1 -
220 files changed, 455 insertions(+), 796 deletions(-)
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 d8cb6f0..9fa9c79 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
@@ -68,4 +68,6 @@ public interface Project
{
return getModel().getId();
}
+
+ boolean isExecutionRoot();
}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/services/ArtifactManager.java b/maven-core-api/src/main/java/org/apache/maven/api/services/ArtifactManager.java
index a354458..949a50e 100644
--- a/maven-core-api/src/main/java/org/apache/maven/api/services/ArtifactManager.java
+++ b/maven-core-api/src/main/java/org/apache/maven/api/services/ArtifactManager.java
@@ -32,18 +32,19 @@ public interface ArtifactManager extends Service
{
/**
- * Returns the path to the resolved file in the local repository
- * if the artifact has been resolved.
- *
- * @return the path of the resolved artifact
+ * Returns the path of the file previously associated to this artifact
+ * or <code>Optional.empty()</code> if no path has been associated.
*/
@Nonnull
- Optional<Path> getPath( Artifact artifact );
+ Optional<Path> getPath( @Nonnull Artifact artifact );
- void setPath( Artifact artifact, Path path );
+ /**
+ * Associates the given file path to the artifact.
+ */
+ void setPath( @Nonnull Artifact artifact, Path path );
@Nonnull
- Collection<Metadata> getAttachedMetadatas( Artifact artifact );
+ Collection<Metadata> getAttachedMetadatas( @Nonnull Artifact artifact );
void attachMetadata( @Nonnull Artifact artifact, @Nonnull Metadata metadata );
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployer.java b/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployer.java
deleted file mode 100644
index 5f21e4c..0000000
--- a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployer.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.apache.maven.api.services;
-
-/*
- * 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 org.apache.maven.api.RemoteRepository;
-import org.apache.maven.api.Session;
-import org.apache.maven.api.Project;
-
-/**
- * This defines the interface to deploy a single Maven Project.
- *
- * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>
- */
-public interface ProjectDeployer extends Service
-{
- /**
- * This will deploy a single project which may contain several artifacts. Those artifacts will be deployed into the
- * appropriate remote repository.
- *
- * <pre class="java">
- * @Parameter( defaultValue = "${session}", required = true, readonly = true )
- * MavenSession session;
- * @Parameter( defaultValue = "${project}", required = true, readonly = true )
- * MavenProject project;
- * ..
- * @Component
- * ProjectDeployer deployer;
- * ...
- * public void execute()
- * {
- * ProjectDeployerRequest pdr =
- * new ProjectDeployerRequest()
- * .setProject( project );
- *
- * deployer.deploy( session.getProjectBuildingRequest(), pdr, artifactRepository );
- * }
- * </pre>
- *
- * @param request {@link ProjectDeployerRequest}
- * @throws ProjectDeployerException in case of artifact could not correctly deployed.
- * @throws IllegalArgumentException in case <code>buildingRequest</code> is <code>null</code>, <code>request</code>
- * is <code>null</code> or <code>artifactRepository</code> is <code>null</code>.
- */
- void deploy( ProjectDeployerRequest request )
- throws ProjectDeployerException, IllegalArgumentException;
-
- default void deploy( Session session, Project project, RemoteRepository repository )
- throws ProjectDeployerException, IllegalArgumentException
- {
- deploy( ProjectDeployerRequest.build( session, project, repository ) );
- }
-}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployerException.java b/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployerException.java
deleted file mode 100644
index fd8ceb3..0000000
--- a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployerException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.maven.api.services;
-
-/*
- * 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.
- */
-
-/**
- * The Exception class in case a resolving does not work.
- */
-public class ProjectDeployerException
- extends MavenException
-{
- /**
- * @param message The message to give.
- * @param e The {@link Exception}.
- */
- public ProjectDeployerException( String message, Exception e )
- {
- super( message, e );
- }
-
-}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployerRequest.java b/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployerRequest.java
deleted file mode 100644
index e343e86..0000000
--- a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectDeployerRequest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package org.apache.maven.api.services;
-
-/*
- * 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 javax.annotation.Nonnull;
-
-import org.apache.maven.api.Session;
-import org.apache.maven.api.Project;
-import org.apache.maven.api.RemoteRepository;
-
-public interface ProjectDeployerRequest
-{
- @Nonnull
- Session getSession();
-
- @Nonnull
- Project getProject();
-
- @Nonnull
- RemoteRepository getRepository();
-
- int getRetryFailedDeploymentCount();
-
- static ProjectDeployerRequest build( Session session, Project project, RemoteRepository repository )
- {
- return builder()
- .session( session )
- .project( project )
- .repository( repository )
- .build();
- }
-
- static ProjectDeployerRequestBuilder builder()
- {
- return new ProjectDeployerRequestBuilder();
- }
-
- class ProjectDeployerRequestBuilder
- {
- Session session;
- Project project;
- RemoteRepository repository;
- int retryFailedDeploymentCount;
-
- @Nonnull
- public ProjectDeployerRequestBuilder session( @Nonnull Session session )
- {
- this.session = session;
- return this;
- }
-
- @Nonnull
- public ProjectDeployerRequestBuilder project( @Nonnull Project project )
- {
- this.project = project;
- return this;
- }
-
- @Nonnull
- public ProjectDeployerRequestBuilder repository( @Nonnull RemoteRepository repository )
- {
- this.repository = repository;
- return this;
- }
-
- @Nonnull
- public ProjectDeployerRequestBuilder retryFailedDeploymentCount( int retryFailedDeploymentCount )
- {
- this.retryFailedDeploymentCount = retryFailedDeploymentCount;
- return this;
- }
-
- public ProjectDeployerRequest build()
- {
- return new DefaultProjectDeployerRequest( session, project, repository, retryFailedDeploymentCount );
- }
-
- private static class DefaultProjectDeployerRequest extends BaseRequest
- implements ProjectDeployerRequest
- {
- private final Project project;
- private final RemoteRepository repository;
- private final int retryFailedDeploymentCount;
-
- DefaultProjectDeployerRequest( @Nonnull Session session,
- @Nonnull Project project,
- @Nonnull RemoteRepository repository,
- int retryFailedDeploymentCount )
- {
- super( session );
- this.project = requireNonNull( project, "project" );
- this.repository = requireNonNull( repository, "repository" );
- this.retryFailedDeploymentCount = retryFailedDeploymentCount;
- }
-
- @Nonnull
- @Override
- public Project getProject()
- {
- return project;
- }
-
- @Nonnull
- @Override
- public RemoteRepository getRepository()
- {
- return repository;
- }
-
- @Override
- public int getRetryFailedDeploymentCount()
- {
- return retryFailedDeploymentCount;
- }
- }
- }
-}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstaller.java b/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstaller.java
deleted file mode 100644
index 0095bed..0000000
--- a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstaller.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.apache.maven.api.services;
-
-/*
- * 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 org.apache.maven.api.Session;
-import org.apache.maven.api.Project;
-
-/**
- * This defines the interface to install a single Maven Project.
- *
- * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>
- */
-public interface ProjectInstaller extends Service
-{
- /**
- * This will install a single project which may contain several artifacts. Those artifacts will be installed into
- * the appropriate repository.
- *
- * <pre class="java">
- * @Parameter( defaultValue = "${session}", required = true, readonly = true )
- * private MavenSession session;
- * @Parameter( defaultValue = "${project}", required = true, readonly = true )
- * private MavenProject project;
- * ..
- * @Component
- * private ProjectInstaller installer;
- * ...
- * public void execute()
- * {
- * ProjectInstallerRequest pir =
- * new ProjectInstallerRequest()
- * .setProject( mavenProject );
- *
- * installer.install( session.getProjectBuildingRequest(), pir );
- * }
- * </pre>
- *
- * To set a different local repository than the current one in the Maven session, you can inject an instance of the
- * <code>RepositoryManager</code> and set the path to the local repository, called <code>localRepositoryPath</code>,
- * as such:
- *
- * <pre class="java">
- * @Component
- * private RepositoryManager repositoryManager;
- *
- * buildingRequest = repositoryManager.setLocalRepositoryBasedir( buildingRequest, localRepositoryPath );
- * </pre>
- *
- * @param request {@link ProjectInstallerRequest}
- * @throws ProjectInstallerException In case of problems to install artifacts.
- * @throws IllegalArgumentException in case of parameter <code>projectBuildingRequest</code> is <code>null</code> or
- * parameter <code>projectInstallerRequest</code> is <code>null</code>.
- */
- void install( ProjectInstallerRequest request )
- throws ProjectInstallerException, IllegalArgumentException;
-
- default void install( Session session, Project project )
- throws ProjectInstallerException, IllegalArgumentException
- {
- install( ProjectInstallerRequest.build( session, project ) );
- }
-}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstallerException.java b/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstallerException.java
deleted file mode 100644
index f1c160f..0000000
--- a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstallerException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.maven.api.services;
-
-/*
- * 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.
- */
-
-/**
- * The Exception class in case a resolving does not work.
- */
-public class ProjectInstallerException
- extends MavenException
-{
- /**
- * @param message The message to give.
- * @param e The {@link Exception}.
- */
- public ProjectInstallerException( String message, Exception e )
- {
- super( message, e );
- }
-
-}
diff --git a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstallerRequest.java b/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstallerRequest.java
deleted file mode 100644
index ca545b8..0000000
--- a/maven-core-api/src/main/java/org/apache/maven/api/services/ProjectInstallerRequest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.apache.maven.api.services;
-
-/*
- * 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 javax.annotation.Nonnull;
-
-import org.apache.maven.api.Session;
-import org.apache.maven.api.Project;
-
-/**
- * @author Guillaume Nodet
- */
-
-public interface ProjectInstallerRequest
-{
-
- @Nonnull
- Session getSession();
-
- @Nonnull
- Project getProject();
-
- @Nonnull
- static ProjectInstallerRequest build( @Nonnull Session session, @Nonnull Project project )
- {
- return builder()
- .session( session )
- .project( project )
- .build();
- }
-
- @Nonnull
- static ProjectInstallerRequestBuilder builder()
- {
- return new ProjectInstallerRequestBuilder();
- }
-
- class ProjectInstallerRequestBuilder
- {
- Session session;
- Project project;
-
- @Nonnull
- public ProjectInstallerRequestBuilder session( Session session )
- {
- this.session = session;
- return this;
- }
-
- @Nonnull
- public ProjectInstallerRequestBuilder project( Project project )
- {
- this.project = project;
- return this;
- }
-
- @Nonnull
- public ProjectInstallerRequest build()
- {
- return new DefaultProjectInstallerRequest( session, project );
- }
-
- private static class DefaultProjectInstallerRequest extends BaseRequest
- implements ProjectInstallerRequest
- {
-
- final Project project;
-
- DefaultProjectInstallerRequest( @Nonnull Session session, @Nonnull Project project )
- {
- super( session );
- this.project = requireNonNull( project, "project" );
- }
-
- @Nonnull
- @Override
- public Project getProject()
- {
- return project;
- }
- }
- }
-
-}
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 8b6e96b..ccc58c2 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
@@ -30,6 +30,7 @@ import org.apache.maven.api.Artifact;
import org.apache.maven.api.Node;
import org.apache.maven.api.Project;
import org.apache.maven.api.RemoteRepository;
+import org.apache.maven.api.Session;
/**
* Interface to manage the project during its lifecycle
@@ -48,12 +49,19 @@ public interface ProjectManager extends Service
@Nonnull
Collection<Artifact> getAttachedArtifacts( Project project );
- default void attachArtifact( Project project, String type, Path path )
+ default void attachArtifact( Session session, Project project, String type, Path path )
{
- attachArtifact( project, type, "", path );
+ attachArtifact( session, project, type, "", path );
}
- void attachArtifact( Project project, String type, String classifier, Path path );
+ default void attachArtifact( Session session, Project project, String type, String classifier, Path path )
+ {
+ Artifact artifact = session.createArtifact( project.getGroupId(), project.getArtifactId(),
+ classifier, project.getVersion(), type );
+ attachArtifact( project, artifact, path );
+ }
+
+ void attachArtifact( Project project, Artifact artifact, Path path );
List<String> getCompileSourceRoots( Project project );
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectDeployer.java b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectDeployer.java
deleted file mode 100644
index b8aabd6..0000000
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectDeployer.java
+++ /dev/null
@@ -1,142 +0,0 @@
-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 javax.annotation.Nonnull;
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.apache.maven.api.Artifact;
-import org.apache.maven.api.services.ArtifactManager;
-import org.apache.maven.api.services.ProjectDeployer;
-import org.apache.maven.api.services.ProjectDeployerException;
-import org.apache.maven.api.services.ProjectDeployerRequest;
-import org.apache.maven.api.services.ProjectManager;
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.deployment.DeployRequest;
-import org.eclipse.aether.deployment.DeployResult;
-import org.eclipse.aether.deployment.DeploymentException;
-import org.eclipse.aether.metadata.Metadata;
-
-@Named
-public class DefaultProjectDeployer implements ProjectDeployer
-{
-
- private final RepositorySystem repositorySystem;
-
- @Inject
- DefaultProjectDeployer( @Nonnull RepositorySystem repositorySystem )
- {
- this.repositorySystem = repositorySystem;
- }
-
- @Override
- public void deploy( ProjectDeployerRequest request ) throws ProjectDeployerException, IllegalArgumentException
- {
- DefaultSession session = ( DefaultSession ) request.getSession();
- try
- {
- ArtifactManager artifactManager = session.getService( ArtifactManager.class );
- Collection<Artifact> artifacts = session.getService( ProjectManager.class )
- .getAttachedArtifacts( request.getProject() );
- List<Metadata> metadatas = artifacts.stream()
- .map( artifactManager::getAttachedMetadatas )
- .flatMap( Collection::stream )
- .map( session::toMetadata )
- .collect( Collectors.toList() );
- DeployRequest deployRequest = new DeployRequest()
- .setRepository( session.toRepository( request.getRepository() ) )
- .setArtifacts( session.toArtifacts( artifacts ) )
- .setMetadata( metadatas );
-
- DeployResult result = repositorySystem.deploy( session.getSession(), deployRequest );
- }
- catch ( DeploymentException e )
- {
- throw new ProjectDeployerException( "Unable to deploy project", e );
- }
- }
-
- void dumb()
- {
- /*
- Artifact artifact = projectDeployerRequest.getProject().getArtifact();
- String packaging = projectDeployerRequest.getProject().getPackaging();
- File pomFile = projectDeployerRequest.getProject().getFile();
-
- List<Artifact> attachedArtifacts = projectDeployerRequest.getProject().getAttachedArtifacts();
-
- // Deploy the POM
- boolean isPomArtifact = "pom".equals( packaging );
- if ( isPomArtifact )
- {
- artifact.setFile( pomFile );
- }
- else
- {
- ProjectArtifactMetadata metadata = new ProjectArtifactMetadata( artifact, pomFile );
- artifact.addMetadata( metadata );
- }
-
- // What consequence does this have?
- // artifact.setRelease( true );
-
- artifact.setRepository( artifactRepository );
-
- int retryFailedDeploymentCount = projectDeployerRequest.getRetryFailedDeploymentCount();
-
- List<Artifact> deployableArtifacts = new ArrayList<>();
- if ( isPomArtifact )
- {
- deployableArtifacts.add( artifact );
- }
- else
- {
- File file = artifact.getFile();
-
- if ( file != null && file.isFile() )
- {
- deployableArtifacts.add( artifact );
- }
- else if ( !attachedArtifacts.isEmpty() )
- {
- // TODO: Reconsider this exception? Better Exception type?
- throw new NoFileAssignedException( "The packaging plugin for this project did not assign "
- + "a main file to the project but it has attachments. Change packaging to 'pom'." );
- }
- else
- {
- // TODO: Reconsider this exception? Better Exception type?
- throw new NoFileAssignedException( "The packaging for this project did not assign "
- + "a file to the build artifact" );
- }
- }
-
- deployableArtifacts.addAll( attachedArtifacts );
-
- deploy( buildingRequest, deployableArtifacts, artifactRepository, retryFailedDeploymentCount );
-
- */
- }
-}
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectInstaller.java b/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectInstaller.java
deleted file mode 100644
index ed87e56..0000000
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectInstaller.java
+++ /dev/null
@@ -1,77 +0,0 @@
-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 javax.inject.Inject;
-import javax.inject.Named;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.apache.maven.api.Artifact;
-import org.apache.maven.api.services.ArtifactManager;
-import org.apache.maven.api.services.ProjectInstaller;
-import org.apache.maven.api.services.ProjectInstallerException;
-import org.apache.maven.api.services.ProjectInstallerRequest;
-import org.apache.maven.api.services.ProjectManager;
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.installation.InstallRequest;
-import org.eclipse.aether.installation.InstallResult;
-import org.eclipse.aether.installation.InstallationException;
-import org.eclipse.aether.metadata.Metadata;
-
-@Named
-public class DefaultProjectInstaller implements ProjectInstaller
-{
- private final RepositorySystem repositorySystem;
-
- @Inject
- DefaultProjectInstaller( RepositorySystem repositorySystem )
- {
- this.repositorySystem = repositorySystem;
- }
-
- @Override
- public void install( ProjectInstallerRequest request ) throws ProjectInstallerException, IllegalArgumentException
- {
- DefaultSession session = ( DefaultSession ) request.getSession();
- try
- {
- ArtifactManager artifactManager = session.getService( ArtifactManager.class );
- Collection<Artifact> artifacts = session.getService( ProjectManager.class )
- .getAttachedArtifacts( request.getProject() );
- List<Metadata> metadatas = artifacts.stream()
- .map( artifactManager::getAttachedMetadatas )
- .flatMap( Collection::stream )
- .map( session::toMetadata )
- .collect( Collectors.toList() );
- InstallRequest installRequest = new InstallRequest()
- .setArtifacts( session.toArtifacts( artifacts ) )
- .setMetadata( metadatas );
-
- InstallResult result = repositorySystem.install( session.getSession(), installRequest );
- }
- catch ( InstallationException e )
- {
- throw new ProjectInstallerException( "Unable to install project", e );
- }
- }
-}
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 39f2e5f..4789889 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -85,6 +85,10 @@ under the License.
<artifactId>maven-resolver-provider</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core-api</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-impl</artifactId>
</dependency>
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 2965d11..0b883dc 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -19,6 +19,7 @@ package org.apache.maven;
* under the License.
*/
+import org.apache.maven.api.Session;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.execution.BuildResumptionAnalyzer;
import org.apache.maven.execution.BuildResumptionDataRepository;
@@ -32,6 +33,7 @@ import org.apache.maven.execution.ProfileActivation;
import org.apache.maven.execution.ProjectDependencyGraph;
import org.apache.maven.graph.GraphBuilder;
import org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory;
+import org.apache.maven.internal.impl.DefaultSessionFactory;
import org.apache.maven.lifecycle.LifecycleExecutionException;
import org.apache.maven.lifecycle.internal.ExecutionEventCatapult;
import org.apache.maven.lifecycle.internal.LifecycleStarter;
@@ -107,6 +109,8 @@ public class DefaultMaven
private final SuperPomProvider superPomProvider;
+ private final DefaultSessionFactory defaultSessionFactory;
+
@Inject
@SuppressWarnings( "checkstyle:ParameterNumber" )
public DefaultMaven(
@@ -120,7 +124,8 @@ public class DefaultMaven
@Named( GraphBuilder.HINT ) GraphBuilder graphBuilder,
BuildResumptionAnalyzer buildResumptionAnalyzer,
BuildResumptionDataRepository buildResumptionDataRepository,
- SuperPomProvider superPomProvider )
+ SuperPomProvider superPomProvider,
+ DefaultSessionFactory defaultSessionFactory )
{
this.projectBuilder = projectBuilder;
this.lifecycleStarter = lifecycleStarter;
@@ -133,6 +138,7 @@ public class DefaultMaven
this.buildResumptionAnalyzer = buildResumptionAnalyzer;
this.buildResumptionDataRepository = buildResumptionDataRepository;
this.superPomProvider = superPomProvider;
+ this.defaultSessionFactory = defaultSessionFactory;
}
@Override
@@ -224,8 +230,10 @@ public class DefaultMaven
DefaultRepositorySystemSession repoSession =
(DefaultRepositorySystemSession) newRepositorySession( request );
MavenSession session = new MavenSession( container, repoSession, request, result );
+ session.setSession( defaultSessionFactory.getSession( session ) );
sessionScope.seed( MavenSession.class, session );
+ sessionScope.seed( Session.class, session.getSession() );
legacySupport.setSession( session );
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java b/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
index c2f0c89..f6d0409 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
@@ -28,6 +28,7 @@ import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import org.apache.maven.api.Session;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.RepositoryCache;
import org.apache.maven.monitor.event.EventDispatcher;
@@ -297,6 +298,8 @@ public class MavenSession
private final Settings settings;
+ private Session session;
+
@Deprecated
/** @deprecated This appears not to be used anywhere within Maven itself. */
public Map<String, MavenProject> getProjectMap()
@@ -439,5 +442,14 @@ public class MavenSession
return container.lookupMap( role );
}
+ public Session getSession()
+ {
+ return session;
+ }
+
+ public void setSession( Session session )
+ {
+ this.session = session;
+ }
/*end[MAVEN4]*/
}
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MojoExecutionEvent.java b/maven-core/src/main/java/org/apache/maven/execution/MojoExecutionEvent.java
index 85a58cb..1426083 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MojoExecutionEvent.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MojoExecutionEvent.java
@@ -19,7 +19,6 @@ package org.apache.maven.execution;
* under the License.
*/
-import org.apache.maven.plugin.Mojo;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.project.MavenProject;
@@ -42,17 +41,17 @@ public class MojoExecutionEvent
private final MojoExecution mojoExecution;
- private final Mojo mojo;
+ private final Object mojo;
private final Throwable cause;
- public MojoExecutionEvent( MavenSession session, MavenProject project, MojoExecution mojoExecution, Mojo mojo )
+ public MojoExecutionEvent( MavenSession session, MavenProject project, MojoExecution mojoExecution, Object mojo )
{
this( session, project, mojoExecution, mojo, null );
}
- public MojoExecutionEvent( MavenSession session, MavenProject project, MojoExecution mojoExecution, Mojo mojo,
- Throwable cause )
+ public MojoExecutionEvent( MavenSession session, MavenProject project, MojoExecution mojoExecution,
+ Object mojo, Throwable cause )
{
this.session = session;
this.project = project;
@@ -76,7 +75,7 @@ public class MojoExecutionEvent
return mojoExecution;
}
- public Mojo getMojo()
+ public Object getMojo()
{
return mojo;
}
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
index 5f5917c..fd902fb 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactDeployer.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactDeployer.java
index bc4d9a2..9dde305 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactDeployer.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactFactory.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactFactory.java
index c1fa7ca..c0a6f6c 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactFactory.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactInstaller.java
similarity index 99%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactInstaller.java
index 2c45534..f9df047 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactInstaller.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
new file mode 100644
index 0000000..6d7706f
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
@@ -0,0 +1,89 @@
+package org.apache.maven.internal.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 javax.annotation.Nonnull;
+import javax.inject.Named;
+
+import java.nio.file.Path;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.regex.Pattern;
+
+import org.apache.maven.SessionScoped;
+import org.apache.maven.api.Artifact;
+import org.apache.maven.api.Metadata;
+import org.apache.maven.api.services.ArtifactManager;
+
+@Named
+@SessionScoped
+public class DefaultArtifactManager implements ArtifactManager
+{
+ private static final String SNAPSHOT = "SNAPSHOT";
+ private static final Pattern SNAPSHOT_TIMESTAMP = Pattern.compile( "^(.*-)?([0-9]{8}\\.[0-9]{6}-[0-9]+)$" );
+
+
+ private final Map<Artifact, Path> paths = new ConcurrentHashMap<>();
+ private final Map<Artifact, Collection<Metadata>> metadatas = new ConcurrentHashMap<>();
+
+ @Nonnull
+ @Override
+ public Optional<Path> getPath( @Nonnull Artifact artifact )
+ {
+ return Optional.ofNullable( paths.get( artifact ) );
+ }
+
+ @Override
+ public void setPath( @Nonnull Artifact artifact, Path path )
+ {
+ if ( path == null )
+ {
+ paths.remove( artifact );
+ }
+ else
+ {
+ paths.put( artifact, path );
+ }
+ }
+
+ @Nonnull
+ @Override
+ public Collection<Metadata> getAttachedMetadatas( @Nonnull Artifact artifact )
+ {
+ Collection<Metadata> m = metadatas.get( artifact );
+ return m != null ? Collections.unmodifiableCollection( m ) : Collections.emptyList();
+ }
+
+ @Override
+ public void attachMetadata( @Nonnull Artifact artifact, @Nonnull Metadata metadata )
+ {
+ metadatas.computeIfAbsent( artifact, a -> new CopyOnWriteArrayList<>() ).add( metadata );
+ }
+
+ @Override
+ public boolean isSnapshot( String version )
+ {
+ return version.endsWith( SNAPSHOT ) || SNAPSHOT_TIMESTAMP.matcher( version ).matches();
+ }
+}
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactResolver.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactResolver.java
index 0f87137..a084055 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactResolver.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependency.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependency.java
index 5822d8c..190ab9e 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependency.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCollector.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyCollector.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCollector.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyCollector.java
index 469b541..74045d6 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCollector.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyCollector.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyFactory.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyFactory.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyFactory.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyFactory.java
index 7424b22..aa83ffb 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyFactory.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyResolver.java
similarity index 99%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyResolver.java
index ab7af8c..e520512 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultDependencyResolver.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLocalRepository.java
similarity index 92%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLocalRepository.java
index 5867af8..2207bb9 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLocalRepository.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -33,7 +33,7 @@ public class DefaultLocalRepository implements LocalRepository
private final org.eclipse.aether.repository.LocalRepository repository;
@Inject
- DefaultLocalRepository( @Nonnull org.eclipse.aether.repository.LocalRepository repository )
+ public DefaultLocalRepository( @Nonnull org.eclipse.aether.repository.LocalRepository repository )
{
this.repository = Objects.requireNonNull( repository, "repository" );
}
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepositoryManager.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLocalRepositoryManager.java
similarity index 87%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepositoryManager.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLocalRepositoryManager.java
index 00ac3dc..54d6c06 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepositoryManager.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLocalRepositoryManager.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -27,7 +27,6 @@ import org.apache.maven.api.Metadata;
import org.apache.maven.api.RemoteRepository;
import org.apache.maven.api.Session;
import org.apache.maven.api.services.LocalRepositoryManager;
-import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
public class DefaultLocalRepositoryManager implements LocalRepositoryManager
{
@@ -71,15 +70,8 @@ public class DefaultLocalRepositoryManager implements LocalRepositoryManager
private org.eclipse.aether.repository.LocalRepositoryManager getManager(
DefaultSession session, LocalRepository local )
{
- try
- {
- return session.getLocalRepositoryProvider()
- .newLocalRepositoryManager( session.getSession(), session.toRepository( local ) );
- }
- catch ( NoLocalRepositoryManagerException e )
- {
- throw new IllegalStateException( e );
- }
+ return session.getRepositorySystem()
+ .newLocalRepositoryManager( session.getSession(), session.toRepository( local ) );
}
}
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultNode.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultNode.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultNode.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultNode.java
index 85d95b4..375758c 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultNode.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultNode.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProject.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java
similarity index 93%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProject.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java
index bc0de16..e15386b 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProject.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -27,6 +27,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import org.apache.maven.RepositoryUtils;
import org.apache.maven.api.Artifact;
import org.apache.maven.api.Dependency;
import org.apache.maven.api.Exclusion;
@@ -72,8 +73,7 @@ public class DefaultProject implements Project
@Override
public Artifact getArtifact()
{
- // TODO
- throw new UnsupportedOperationException( "Not implemented yet" );
+ return session.getArtifact( RepositoryUtils.toArtifact( project.getArtifact() ) );
}
@Nonnull
@@ -94,8 +94,7 @@ public class DefaultProject implements Project
@Override
public Path getPomPath()
{
- // TODO
- throw new UnsupportedOperationException( "Not implemented yet" );
+ return project.getFile().toPath();
}
@Nonnull
@@ -117,6 +116,12 @@ public class DefaultProject implements Project
return Collections.emptyList();
}
+ @Override
+ public boolean isExecutionRoot()
+ {
+ return project.isExecutionRoot();
+ }
+
private Dependency toDependency( org.apache.maven.model.Dependency dependency )
{
return new Dependency()
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectBuilder.java
similarity index 99%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectBuilder.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectBuilder.java
index e287ccf..819d35d 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultProjectBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectBuilder.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java
new file mode 100644
index 0000000..aeb0c9e
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java
@@ -0,0 +1,99 @@
+package org.apache.maven.internal.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 javax.annotation.Nonnull;
+
+import java.nio.file.Path;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+
+import org.apache.maven.api.Artifact;
+import org.apache.maven.api.Node;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.RemoteRepository;
+import org.apache.maven.api.services.ProjectManager;
+
+public class DefaultProjectManager implements ProjectManager
+{
+
+ @Nonnull
+ @Override
+ public Optional<Path> getPath( Project project )
+ {
+ return Optional.empty();
+ }
+
+ @Nonnull
+ @Override
+ public Collection<Artifact> getAttachedArtifacts( Project project )
+ {
+ return null;
+ }
+
+ @Override
+ public void attachArtifact( Project project, Artifact artifact, Path path )
+ {
+
+ }
+
+ @Override
+ public List<String> getCompileSourceRoots( Project project )
+ {
+ return null;
+ }
+
+ @Override
+ public void addCompileSourceRoot( Project project, String sourceRoot )
+ {
+
+ }
+
+ @Override
+ public List<String> getTestCompileSourceRoots( Project project )
+ {
+ return null;
+ }
+
+ @Override
+ public void addTestCompileSourceRoot( Project project, String sourceRoot )
+ {
+
+ }
+
+ @Override
+ public List<RemoteRepository> getRepositories( Project project )
+ {
+ return null;
+ }
+
+ @Override
+ public List<Artifact> getResolvedDependencies( Project project, ResolutionScope scope )
+ {
+ return null;
+ }
+
+ @Override
+ public Node getCollectedDependencies( Project project, ResolutionScope scope )
+ {
+ return null;
+ }
+}
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultRemoteRepository.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultRemoteRepository.java
similarity index 97%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultRemoteRepository.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultRemoteRepository.java
index 713619e..68bc32d 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultRemoteRepository.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultRemoteRepository.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultRepositoryFactory.java
similarity index 98%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultRepositoryFactory.java
index 6198946..e6595f7 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultRepositoryFactory.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultSession.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
similarity index 86%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultSession.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
index 291ea13..72c6dba 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultSession.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -35,9 +35,12 @@ import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.Supplier;
import java.util.stream.Collectors;
+import org.apache.maven.RepositoryUtils;
import org.apache.maven.api.Listener;
import org.apache.maven.api.SessionData;
+import org.apache.maven.api.services.ArtifactManager;
import org.apache.maven.api.services.LocalRepositoryManager;
+import org.apache.maven.api.services.ProjectManager;
import org.apache.maven.api.services.RepositoryFactory;
import org.apache.maven.api.services.Service;
import org.apache.maven.api.Session;
@@ -61,29 +64,25 @@ import org.apache.maven.api.services.DependencyCollector;
import org.apache.maven.api.services.DependencyFactory;
import org.apache.maven.api.services.DependencyResolver;
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;
-import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
-import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
-import org.eclipse.aether.impl.LocalRepositoryProvider;
public class DefaultSession implements Session
{
+ private final MavenSession mavenSession;
private final RepositorySystemSession session;
private final RepositorySystem repositorySystem;
- private final LocalRepositoryManagerFactory localRepositoryManagerFactory;
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<>();
+ private final ArtifactManager artifactManager = new DefaultArtifactManager();
+ private final ProjectManager projectManager = new DefaultProjectManager();
private final Map<org.eclipse.aether.graph.DependencyNode, Node> allNodes
= Collections.synchronizedMap( new WeakHashMap<>() );
@@ -96,18 +95,20 @@ public class DefaultSession implements Session
private final Map<org.eclipse.aether.graph.Dependency, Dependency> allDependencies
= Collections.synchronizedMap( new WeakHashMap<>() );
- public DefaultSession( @Nonnull RepositorySystemSession session,
+ public DefaultSession( @Nonnull MavenSession session,
@Nonnull RepositorySystem repositorySystem,
- @Nonnull LocalRepositoryManagerFactory localRepositoryManagerFactory,
- @Nonnull List<RemoteRepository> repositories,
+ @Nullable List<RemoteRepository> repositories,
@Nonnull org.apache.maven.project.ProjectBuilder projectBuilder,
@Nonnull MavenRepositorySystem mavenRepositorySystem,
@Nonnull DefaultToolchainManagerPrivate toolchainManagerPrivate )
{
- this.session = Objects.requireNonNull( session );
+ this.mavenSession = Objects.requireNonNull( session );
+ this.session = mavenSession.getRepositorySession();
this.repositorySystem = Objects.requireNonNull( repositorySystem );
- this.localRepositoryManagerFactory = Objects.requireNonNull( localRepositoryManagerFactory );
- this.repositories = Objects.requireNonNull( repositories );
+ this.repositories = repositories != null
+ ? repositories
+ : mavenSession.getRequest().getRemoteRepositories().stream()
+ .map( RepositoryUtils::toRepo ).map( this::getRemoteRepository ).collect( Collectors.toList() );
this.projectBuilder = projectBuilder;
this.mavenRepositorySystem = mavenRepositorySystem;
this.toolchainManagerPrivate = toolchainManagerPrivate;
@@ -136,21 +137,21 @@ public class DefaultSession implements Session
@Override
public Settings getSettings()
{
- return null;
+ return mavenSession.getSettings();
}
@Nonnull
@Override
public Properties getUserProperties()
{
- return null;
+ return mavenSession.getUserProperties();
}
@Nonnull
@Override
public Properties getSystemProperties()
{
- return null;
+ return mavenSession.getSystemProperties();
}
@Nonnull
@@ -196,30 +197,23 @@ public class DefaultSession implements Session
{
return this;
}
- try
- {
- org.eclipse.aether.repository.LocalRepository repository = toRepository( localRepository );
- org.eclipse.aether.repository.LocalRepositoryManager localRepositoryManager
- = localRepositoryManagerFactory.newInstance( session, repository );
-
- RepositorySystemSession newSession = new DefaultRepositorySystemSession( session )
- .setLocalRepositoryManager( localRepositoryManager );
-
- return new DefaultSession( newSession, repositorySystem, localRepositoryManagerFactory,
- repositories, projectBuilder, mavenRepositorySystem, toolchainManagerPrivate );
- }
- catch ( NoLocalRepositoryManagerException e )
- {
- throw new IllegalArgumentException( "Unsupported repository layout", e );
- }
-
+ org.eclipse.aether.repository.LocalRepository repository = toRepository( localRepository );
+ org.eclipse.aether.repository.LocalRepositoryManager localRepositoryManager
+ = repositorySystem.newLocalRepositoryManager( session, repository );
+
+ RepositorySystemSession repoSession = new DefaultRepositorySystemSession( session )
+ .setLocalRepositoryManager( localRepositoryManager );
+ MavenSession newSession = new MavenSession( mavenSession.getContainer(), repoSession,
+ mavenSession.getRequest(), mavenSession.getResult() );
+ return new DefaultSession( newSession, repositorySystem,
+ repositories, projectBuilder, mavenRepositorySystem, toolchainManagerPrivate );
}
@Nonnull
@Override
public Session withRemoteRepositories( @Nonnull List<RemoteRepository> repositories )
{
- return new DefaultSession( session, repositorySystem, localRepositoryManagerFactory,
+ return new DefaultSession( mavenSession, repositorySystem,
repositories, projectBuilder, mavenRepositorySystem, toolchainManagerPrivate );
}
@@ -244,6 +238,10 @@ public class DefaultSession implements Session
{
return (T) new DefaultArtifactInstaller( repositorySystem );
}
+ else if ( clazz == ArtifactManager.class )
+ {
+ return (T) artifactManager;
+ }
else if ( clazz == DependencyFactory.class )
{
return (T) new DefaultDependencyFactory();
@@ -260,13 +258,9 @@ public class DefaultSession implements Session
{
return (T) new DefaultProjectBuilder( projectBuilder );
}
- else if ( clazz == ProjectDeployer.class )
- {
- return (T) new DefaultProjectDeployer( repositorySystem );
- }
- else if ( clazz == ProjectInstaller.class )
+ else if ( clazz == ProjectManager.class )
{
- return (T) new DefaultProjectInstaller( repositorySystem );
+ return (T) projectManager;
}
else if ( clazz == LocalRepositoryManager.class )
{
@@ -288,9 +282,9 @@ public class DefaultSession implements Session
return session;
}
- public LocalRepositoryProvider getLocalRepositoryProvider()
+ public RepositorySystem getRepositorySystem()
{
- return localRepositoryProvider;
+ return repositorySystem;
}
public RemoteRepository getRemoteRepository( org.eclipse.aether.repository.RemoteRepository repository )
@@ -443,7 +437,7 @@ public class DefaultSession implements Session
artifact.getExtension(),
artifact.getVersion(),
null,
- ( (Artifact) artifact ).getPath().map( Path::toFile ).orElse( null )
+ getService( ArtifactManager.class ).getPath( artifact ).map( Path::toFile ).orElse( null )
);
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSessionFactory.java
new file mode 100644
index 0000000..dc7e84b
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSessionFactory.java
@@ -0,0 +1,67 @@
+package org.apache.maven.internal.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 javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.apache.maven.api.Session;
+import org.apache.maven.bridge.MavenRepositorySystem;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.project.ProjectBuilder;
+import org.apache.maven.toolchain.DefaultToolchainManagerPrivate;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.SessionData;
+
+@Singleton
+@Named
+public class DefaultSessionFactory
+{
+ private final RepositorySystem repositorySystem;
+ private final org.apache.maven.project.ProjectBuilder projectBuilder;
+ private final MavenRepositorySystem mavenRepositorySystem;
+ private final DefaultToolchainManagerPrivate toolchainManagerPrivate;
+
+ @Inject
+ public DefaultSessionFactory( RepositorySystem repositorySystem,
+ ProjectBuilder projectBuilder,
+ MavenRepositorySystem mavenRepositorySystem,
+ DefaultToolchainManagerPrivate toolchainManagerPrivate )
+ {
+ this.repositorySystem = repositorySystem;
+ this.projectBuilder = projectBuilder;
+ this.mavenRepositorySystem = mavenRepositorySystem;
+ this.toolchainManagerPrivate = toolchainManagerPrivate;
+ }
+
+ public Session getSession( MavenSession mavenSession )
+ {
+ SessionData data = mavenSession.getRepositorySession().getData();
+ return (Session) data.computeIfAbsent( DefaultSession.class, () -> newSession( mavenSession ) );
+ }
+
+ private Session newSession( MavenSession mavenSession )
+ {
+ return new DefaultSession(
+ mavenSession, repositorySystem, null,
+ projectBuilder, mavenRepositorySystem, toolchainManagerPrivate );
+ }
+}
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultToolchainManager.java
similarity index 99%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/DefaultToolchainManager.java
index a8912f7..6c285cd 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultToolchainManager.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/MappedCollection.java b/maven-core/src/main/java/org/apache/maven/internal/impl/MappedCollection.java
similarity index 97%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/MappedCollection.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/MappedCollection.java
index 1fd3248..3231080 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/MappedCollection.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/MappedCollection.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/main/java/org/apache/maven/impl/MappedList.java b/maven-core/src/main/java/org/apache/maven/internal/impl/MappedList.java
similarity index 97%
rename from maven-core-impl/src/main/java/org/apache/maven/impl/MappedList.java
rename to maven-core/src/main/java/org/apache/maven/internal/impl/MappedList.java
index a5e8e71..e68f259 100644
--- a/maven-core-impl/src/main/java/org/apache/maven/impl/MappedList.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/MappedList.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
index 405ab5f..970c906 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
@@ -26,6 +26,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
+import org.apache.maven.api.Session;
import org.apache.maven.execution.BuildSuccess;
import org.apache.maven.execution.ExecutionEvent;
import org.apache.maven.execution.MavenSession;
@@ -94,6 +95,7 @@ public class LifecycleModuleBuilder
{
sessionScope.enter();
sessionScope.seed( MavenSession.class, session );
+ sessionScope.seed( Session.class, session.getSession() );
}
try
{
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
index 272371a..4db9028 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
@@ -97,7 +97,7 @@ public class DefaultBuildPluginManager
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
- Mojo mojo = null;
+ Object mojo = null;
ClassRealm pluginRealm;
try
@@ -121,7 +121,15 @@ public class DefaultBuildPluginManager
scope.seed( MavenProject.class, project );
scope.seed( MojoExecution.class, mojoExecution );
- mojo = mavenPluginManager.getConfiguredMojo( Mojo.class, session, mojoExecution );
+ if ( mojoDescriptor.isV4Api() )
+ {
+ mojo = mavenPluginManager.getConfiguredMojo(
+ org.apache.maven.api.plugin.Mojo.class, session, mojoExecution );
+ }
+ else
+ {
+ mojo = mavenPluginManager.getConfiguredMojo( Mojo.class, session, mojoExecution );
+ }
legacySupport.setSession( session );
@@ -134,7 +142,14 @@ public class DefaultBuildPluginManager
mojoExecutionListener.beforeMojoExecution( mojoExecutionEvent );
- mojo.execute();
+ if ( mojoDescriptor.isV4Api() )
+ {
+ ( ( org.apache.maven.api.plugin.Mojo ) mojo ).execute();
+ }
+ else
+ {
+ ( ( Mojo ) mojo ).execute();
+ }
mojoExecutionListener.afterMojoExecutionSuccess( mojoExecutionEvent );
}
@@ -150,15 +165,15 @@ public class DefaultBuildPluginManager
}
catch ( PluginContainerException e )
{
- mojoExecutionListener.afterExecutionFailure( new MojoExecutionEvent( session, project, mojoExecution, mojo,
- e ) );
+ mojoExecutionListener.afterExecutionFailure(
+ new MojoExecutionEvent( session, project, mojoExecution, mojo, e ) );
throw new PluginExecutionException( mojoExecution, project, e );
}
catch ( NoClassDefFoundError e )
{
- mojoExecutionListener.afterExecutionFailure( new MojoExecutionEvent( session, project, mojoExecution, mojo,
- e ) );
+ mojoExecutionListener.afterExecutionFailure(
+ new MojoExecutionEvent( session, project, mojoExecution, mojo, e ) );
ByteArrayOutputStream os = new ByteArrayOutputStream( 1024 );
PrintStream ps = new PrintStream( os );
@@ -172,8 +187,8 @@ public class DefaultBuildPluginManager
}
catch ( LinkageError e )
{
- mojoExecutionListener.afterExecutionFailure( new MojoExecutionEvent( session, project, mojoExecution, mojo,
- e ) );
+ mojoExecutionListener.afterExecutionFailure(
+ new MojoExecutionEvent( session, project, mojoExecution, mojo, e ) );
ByteArrayOutputStream os = new ByteArrayOutputStream( 1024 );
PrintStream ps = new PrintStream( os );
@@ -187,8 +202,8 @@ public class DefaultBuildPluginManager
}
catch ( ClassCastException e )
{
- mojoExecutionListener.afterExecutionFailure( new MojoExecutionEvent( session, project, mojoExecution, mojo,
- e ) );
+ mojoExecutionListener.afterExecutionFailure(
+ new MojoExecutionEvent( session, project, mojoExecution, mojo, e ) );
ByteArrayOutputStream os = new ByteArrayOutputStream( 1024 );
PrintStream ps = new PrintStream( os );
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
index f621b63..6f00873 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
@@ -200,7 +200,14 @@ public class PluginParameterExpressionEvaluator
}
else if ( "session".equals( expression ) )
{
- value = session;
+ if ( mojoDescriptor.isV4Api() )
+ {
+ value = session.getSession();
+ }
+ else
+ {
+ value = session;
+ }
}
else if ( expression.startsWith( "session" ) )
{
diff --git a/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java b/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java
index b00c588..ba93ad9 100644
--- a/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java
+++ b/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java
@@ -23,6 +23,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.maven.SessionScoped;
+import org.apache.maven.api.Session;
import org.apache.maven.execution.MavenSession;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -62,5 +63,6 @@ public class SessionScopeModule
bind( SessionScope.class ).toInstance( scope );
bind( MavenSession.class ).toProvider( SessionScope.seededKeyProvider() ).in( scope );
+ bind( Session.class ).toProvider( SessionScope.seededKeyProvider() ).in( scope );
}
}
diff --git a/maven-core/src/main/resources/META-INF/maven/extension.xml b/maven-core/src/main/resources/META-INF/maven/extension.xml
index aa890cc..b6b1d3f 100644
--- a/maven-core/src/main/resources/META-INF/maven/extension.xml
+++ b/maven-core/src/main/resources/META-INF/maven/extension.xml
@@ -22,6 +22,8 @@ under the License.
<extension>
<exportedPackages>
<!-- maven-* -->
+ <exportedPackage>org.apache.maven.api</exportedPackage>
+
<exportedPackage>org.apache.maven.*</exportedPackage>
<exportedPackage>org.apache.maven.artifact</exportedPackage>
<exportedPackage>org.apache.maven.classrealm</exportedPackage>
diff --git a/maven-core-impl/src/test/java/org/apache/maven/impl/TestApi.java b/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java
similarity index 89%
rename from maven-core-impl/src/test/java/org/apache/maven/impl/TestApi.java
rename to maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java
index dc8a383..7eec899 100644
--- a/maven-core-impl/src/test/java/org/apache/maven/impl/TestApi.java
+++ b/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import java.nio.file.Paths;
import java.util.Collections;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.api.Project;
import org.apache.maven.api.Session;
import org.apache.maven.api.Artifact;
@@ -39,7 +40,6 @@ import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -58,9 +58,6 @@ public class TestApi
RepositorySystem repositorySystem;
@Inject
- LocalRepositoryManagerFactory localRepositoryManagerFactory;
-
- @Inject
org.apache.maven.project.ProjectBuilder projectBuilder;
@Inject
@@ -73,11 +70,12 @@ public class TestApi
void setup()
{
RepositorySystemSession rss = MavenRepositorySystemUtils.newSession();
- DefaultSession session = new DefaultSession( rss, repositorySystem, localRepositoryManagerFactory,
- Collections.emptyList(), projectBuilder, mavenRepositorySystem,
- toolchainManagerPrivate );
+ MavenSession ms = new MavenSession( null, rss, null, null );
+ DefaultSession session = new DefaultSession( ms, repositorySystem,
+ Collections.emptyList(), projectBuilder,
+ mavenRepositorySystem, toolchainManagerPrivate );
DefaultLocalRepository localRepository = new DefaultLocalRepository(
- new LocalRepository( "target/repo" ) );
+ new LocalRepository( "target/apiv4-repo" ) );
org.apache.maven.api.RemoteRepository remoteRepository = session.getRemoteRepository(
new RemoteRepository.Builder( "mirror", "default",
"file:target/test-classes/repo" ).build() );
diff --git a/maven-core-impl/src/test/java/org/apache/maven/impl/TestArtifactHandler.java b/maven-core/src/test/java/org/apache/maven/internal/impl/TestArtifactHandler.java
similarity index 97%
rename from maven-core-impl/src/test/java/org/apache/maven/impl/TestArtifactHandler.java
rename to maven-core/src/test/java/org/apache/maven/internal/impl/TestArtifactHandler.java
index 1411364..3db6e83 100644
--- a/maven-core-impl/src/test/java/org/apache/maven/impl/TestArtifactHandler.java
+++ b/maven-core/src/test/java/org/apache/maven/internal/impl/TestArtifactHandler.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core-impl/src/test/java/org/apache/maven/impl/TestRepositorySystem.java b/maven-core/src/test/java/org/apache/maven/internal/impl/TestRepositorySystem.java
similarity index 99%
rename from maven-core-impl/src/test/java/org/apache/maven/impl/TestRepositorySystem.java
rename to maven-core/src/test/java/org/apache/maven/internal/impl/TestRepositorySystem.java
index 824ac27..d47d76a 100644
--- a/maven-core-impl/src/test/java/org/apache/maven/impl/TestRepositorySystem.java
+++ b/maven-core/src/test/java/org/apache/maven/internal/impl/TestRepositorySystem.java
@@ -1,4 +1,4 @@
-package org.apache.maven.impl;
+package org.apache.maven.internal.impl;
/*
* Licensed to the Apache Software Foundation (ASF) under one
diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
index 04ab6f1..4423182 100644
--- a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
+++ b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
@@ -79,8 +79,10 @@ public class DefaultToolchainManagerPrivateTest
when( session.getRequest() ).thenReturn( req );
ToolchainPrivate basicToolchain = mock( ToolchainPrivate.class );
+ when( basicToolchain.getType() ).thenReturn( "basic" );
when( toolchainFactory_basicType.createDefaultToolchain() ).thenReturn( basicToolchain );
ToolchainPrivate rareToolchain = mock( ToolchainPrivate.class );
+ when( rareToolchain.getType() ).thenReturn( "rare" );
when( toolchainFactory_rareType.createDefaultToolchain() ).thenReturn( rareToolchain );
// execute
@@ -101,8 +103,10 @@ public class DefaultToolchainManagerPrivateTest
when( session.getRequest() ).thenReturn( req );
ToolchainPrivate basicToolchain = mock( ToolchainPrivate.class );
+ when( basicToolchain.getType() ).thenReturn( "basic" );
when( toolchainFactory_basicType.createDefaultToolchain() ).thenReturn( basicToolchain );
ToolchainPrivate rareToolchain = mock( ToolchainPrivate.class );
+ when( rareToolchain.getType() ).thenReturn( "rare" );
when( toolchainFactory_rareType.createDefaultToolchain() ).thenReturn( rareToolchain );
// execute
@@ -124,18 +128,25 @@ public class DefaultToolchainManagerPrivateTest
Map<String, List<ToolchainModel>> groupedToolchains = new HashMap<>();
req.setToolchains( groupedToolchains );
+ ToolchainPrivate basicToolchain = mock( ToolchainPrivate.class );
+ when( basicToolchain.getType() ).thenReturn( "basic" );
+ ToolchainPrivate rareToolchain = mock( ToolchainPrivate.class );
+ when( rareToolchain.getType() ).thenReturn( "rare" );
+
List<ToolchainModel> basicToolchains = new ArrayList<>();
ToolchainModel basicToolchainModel = new ToolchainModel();
basicToolchainModel.setType( "basic" );
basicToolchains.add( basicToolchainModel );
basicToolchains.add( basicToolchainModel );
groupedToolchains.put( "basic", basicToolchains );
+ when( toolchainFactory_basicType.createToolchain( basicToolchainModel ) ).thenReturn( basicToolchain );
List<ToolchainModel> rareToolchains = new ArrayList<>();
ToolchainModel rareToolchainModel = new ToolchainModel();
rareToolchainModel.setType( "rare" );
rareToolchains.add( rareToolchainModel );
groupedToolchains.put( "rare", rareToolchains );
+ when( toolchainFactory_rareType.createToolchain( rareToolchainModel ) ).thenReturn( rareToolchain );
// execute
ToolchainPrivate[] toolchains = toolchainManager.getToolchainsForType( "basic", session );
diff --git a/maven-core-impl/src/test/resources/repo/jdom/jdom/1.0/jdom-1.0.jar b/maven-core/src/test/resources/apiv4-repo/1.0/jdom-1.0.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/jdom/jdom/1.0/jdom-1.0.jar
rename to maven-core/src/test/resources/apiv4-repo/1.0/jdom-1.0.jar
diff --git a/maven-core-impl/src/test/resources/repo/jdom/jdom/1.0/jdom-1.0.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/1.0/jdom-1.0.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/jdom/jdom/1.0/jdom-1.0.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/1.0/jdom-1.0.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/jdom/jdom/1.0/jdom-1.0.pom b/maven-core/src/test/resources/apiv4-repo/1.0/jdom-1.0.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/jdom/jdom/1.0/jdom-1.0.pom
rename to maven-core/src/test/resources/apiv4-repo/1.0/jdom-1.0.pom
diff --git a/maven-core-impl/src/test/resources/repo/jdom/jdom/1.0/jdom-1.0.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/1.0/jdom-1.0.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/jdom/jdom/1.0/jdom-1.0.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/1.0/jdom-1.0.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.jar b/maven-core/src/test/resources/apiv4-repo/1.1/xml-im-exporter-1.1.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.jar
rename to maven-core/src/test/resources/apiv4-repo/1.1/xml-im-exporter-1.1.jar
diff --git a/maven-core-impl/src/test/resources/repo/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/1.1/xml-im-exporter-1.1.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/1.1/xml-im-exporter-1.1.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.pom b/maven-core/src/test/resources/apiv4-repo/1.1/xml-im-exporter-1.1.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.pom
rename to maven-core/src/test/resources/apiv4-repo/1.1/xml-im-exporter-1.1.pom
diff --git a/maven-core-impl/src/test/resources/repo/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/1.1/xml-im-exporter-1.1.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/1.1/xml-im-exporter-1.1.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar b/maven-core/src/test/resources/apiv4-repo/2.0.2/commons-httpclient-2.0.2.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar
rename to maven-core/src/test/resources/apiv4-repo/2.0.2/commons-httpclient-2.0.2.jar
diff --git a/maven-core-impl/src/test/resources/repo/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/2.0.2/commons-httpclient-2.0.2.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/2.0.2/commons-httpclient-2.0.2.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.pom b/maven-core/src/test/resources/apiv4-repo/2.0.2/commons-httpclient-2.0.2.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.pom
rename to maven-core/src/test/resources/apiv4-repo/2.0.2/commons-httpclient-2.0.2.pom
diff --git a/maven-core-impl/src/test/resources/repo/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/2.0.2/commons-httpclient-2.0.2.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/2.0.2/commons-httpclient-2.0.2.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.jar b/maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.jar
rename to maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.jar
diff --git a/maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.jar.md5 b/maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.pom b/maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.pom
rename to maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.pom
diff --git a/maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.pom.md5 b/maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/2.1/slide-webdavlib-2.1.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-javadoc-resources.jar.lastUpdated b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-javadoc-resources.jar.lastUpdated
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-javadoc-resources.jar.lastUpdated
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-javadoc-resources.jar.lastUpdated
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-javadoc.jar b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-javadoc.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-javadoc.jar
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-javadoc.jar
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-javadoc.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-javadoc.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-javadoc.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-javadoc.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-sources.jar b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-sources.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-sources.jar
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-sources.jar
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-sources.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-sources.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1-sources.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1-sources.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1.jar b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1.jar
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1.jar
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1.pom b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1.pom
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1.pom
diff --git a/maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/junit/junit/4.13.1/junit-4.13.1.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/4.13.1/junit-4.13.1.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.jar b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.3/commons-logging-1.0.3.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.jar
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.3/commons-logging-1.0.3.jar
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.3/commons-logging-1.0.3.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.3/commons-logging-1.0.3.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.3/commons-logging-1.0.3.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.3/commons-logging-1.0.3.pom
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc-resources.jar.lastUpdated b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4-javadoc-resources.jar.lastUpdated
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc-resources.jar.lastUpdated
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4-javadoc-resources.jar.lastUpdated
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4.jar
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4.pom
diff --git a/maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/apache/3/apache-3.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/apache/3/apache-3.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/apache/3/apache-3.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/apache/3/apache-3.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/apache/3/apache-3.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/apache/3/apache-3.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/apache/3/apache-3.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/apache/3/apache-3.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/apache/3/apache-3.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/apache/3/apache-3.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/apache/3/apache-3.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/apache/3/apache-3.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-extension/1/test-extension-1.jar b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-extension/1/test-extension-1.jar
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.jar b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.jar
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/4/maven-parent-4.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/4/maven-parent-4.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/5/maven-parent-5.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/5/maven-parent-5.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.md5 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.md5
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.md5
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.md5
diff --git a/maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc-resources.jar.lastUpdated b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc-resources.jar.lastUpdated
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc-resources.jar.lastUpdated
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc-resources.jar.lastUpdated
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1 b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
diff --git a/maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom.sha1 b/maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom.sha1
similarity index 100%
rename from maven-core-impl/src/test/resources/repo/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom.sha1
rename to maven-core/src/test/resources/apiv4-repo/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom.sha1
diff --git a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
index a15bdcf..7f49df3 100644
--- a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
+++ b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
@@ -140,6 +140,8 @@ public class MojoDescriptor
*/
private boolean threadSafe = false;
+ private boolean v4Api = false;
+
/**
* Default constructor.
*/
@@ -462,7 +464,7 @@ public class MojoDescriptor
/** {@inheritDoc} */
public String getRole()
{
- return Mojo.ROLE;
+ return isV4Api() ? "org.apache.maven.api.plugin.Mojo" : Mojo.ROLE;
}
/** {@inheritDoc} */
@@ -699,6 +701,16 @@ public class MojoDescriptor
|| ( getExecutePhase() != null && getExecutePhase().length() > 0 );
}
+ public boolean isV4Api()
+ {
+ return v4Api;
+ }
+
+ public void setV4Api( boolean v4Api )
+ {
+ this.v4Api = v4Api;
+ }
+
/**
* Creates a shallow copy of this mojo descriptor.
*/
diff --git a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
index 5747d16..a3413a0 100644
--- a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
+++ b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
@@ -309,6 +309,13 @@ public class PluginDescriptorBuilder
mojo.setThreadSafe( Boolean.parseBoolean( threadSafe ) );
}
+ String v4Api = c.getChild( "v4Api" ).getValue();
+
+ if ( v4Api != null )
+ {
+ mojo.setV4Api( Boolean.parseBoolean( v4Api ) );
+ }
+
// ----------------------------------------------------------------------
// Configuration
// ----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 83a811b..94aa25e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,6 @@ under the License.
<module>maven-model-transform</module>
<module>maven-core-api</module>
<module>maven-core</module>
- <module>maven-core-impl</module>
<module>maven-settings</module>
<module>maven-settings-builder</module>
<module>maven-artifact</module>