You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gb...@apache.org on 2016/10/30 16:34:11 UTC
svn commit: r1767170 - in
/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install:
ProjectInstaller.java internal/DefaultProjectInstaller.java
Author: gboue
Date: Sun Oct 30 16:34:11 2016
New Revision: 1767170
URL: http://svn.apache.org/viewvc?rev=1767170&view=rev
Log:
[MSHARED-598] Simplify ProjectInstaller by not requiring an ArtifactRepository
Part 1 - Making it so that the "install" interface doesn't take an ArtifactRepository as parameter, and has a single point of entry with regard to the path to the local repository to install to.
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java?rev=1767170&r1=1767169&r2=1767170&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java Sun Oct 30 16:34:11 2016
@@ -38,13 +38,13 @@ public interface ProjectInstaller
* the appropriate repository.
*
* <pre class="java">
- * @Parameter( defaultValue = "${session}", required=true, readonly = true)
- * MavenSession session;
- * @Parameter( defaultValue = "${project}", required=true, readonly = true)
- * MavenProject project;
+ * @Parameter( defaultValue = "${session}", required=true, readonly = true)
+ * private MavenSession session;
+ * @Parameter( defaultValue = "${project}", required=true, readonly = true)
+ * private MavenProject project;
* ..
* @Component
- * ProjectInstaller installer;
+ * private ProjectInstaller installer;
*
* ProjectInstallerRequest pir =
* new ProjectInstallerRequest()
@@ -52,19 +52,32 @@ public interface ProjectInstaller
* .setCreateChecksum( false )
* .setUpdateReleaseInfo( false );
*
- * installer.install (session.getProjectBuildingRequest(), pir, artifactRepository);
+ * 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 projectBuildingRequest {@link ProjectBuildingRequest}
* @param projectInstallerRequest {@link ProjectInstallerRequest}
- * @param artifactRepository {@link ArtifactRepository}
* @throws IOException In case of problems related to checksums.
* @throws ArtifactInstallerException In case of problems to install artifacts.
* @throws NoFileAssignedException If no file has been assigned to the project.
*/
+ void install( ProjectBuildingRequest projectBuildingRequest, ProjectInstallerRequest projectInstallerRequest )
+ throws IOException, ArtifactInstallerException, NoFileAssignedException;
+
+ // to be removed
void install( ProjectBuildingRequest projectBuildingRequest, ProjectInstallerRequest projectInstallerRequest,
- ArtifactRepository artifactRepository )
+ ArtifactRepository artifactRepository )
throws IOException, ArtifactInstallerException, NoFileAssignedException;
}
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java?rev=1767170&r1=1767169&r2=1767170&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java Sun Oct 30 16:34:11 2016
@@ -65,11 +65,17 @@ public class DefaultProjectInstaller
private final DualDigester digester = new DualDigester();
+ public void install( ProjectBuildingRequest buildingRequest, ProjectInstallerRequest request,
+ ArtifactRepository artifactRepository )
+ throws IOException, ArtifactInstallerException, NoFileAssignedException
+ {
+ install( buildingRequest, request );
+ }
+
/**
* {@inheritDoc}
*/
- public void install( ProjectBuildingRequest buildingRequest, ProjectInstallerRequest request,
- ArtifactRepository artifactRepository )
+ public void install( ProjectBuildingRequest buildingRequest, ProjectInstallerRequest request )
throws IOException, ArtifactInstallerException, NoFileAssignedException
{
@@ -102,7 +108,7 @@ public class DefaultProjectInstaller
installer.install( buildingRequest,
Collections.<Artifact>singletonList( new ProjectArtifact( project ) ) );
installChecksums( buildingRequest, artifact, createChecksum );
- addMetaDataFilesForArtifact( artifactRepository, artifact, metadataFiles, createChecksum );
+ addMetaDataFilesForArtifact( buildingRequest, artifact, metadataFiles, createChecksum );
}
}
else
@@ -121,7 +127,7 @@ public class DefaultProjectInstaller
{
installer.install( buildingRequest, Collections.<Artifact>singletonList( artifact ) );
installChecksums( buildingRequest, artifact, createChecksum );
- addMetaDataFilesForArtifact( artifactRepository, artifact, metadataFiles, createChecksum );
+ addMetaDataFilesForArtifact( buildingRequest, artifact, metadataFiles, createChecksum );
}
else if ( !attachedArtifacts.isEmpty() )
{
@@ -140,7 +146,7 @@ public class DefaultProjectInstaller
{
installer.install( buildingRequest, Collections.singletonList( attached ) );
installChecksums( buildingRequest, attached, createChecksum );
- addMetaDataFilesForArtifact( artifactRepository, attached, metadataFiles, createChecksum );
+ addMetaDataFilesForArtifact( buildingRequest, attached, metadataFiles, createChecksum );
}
installChecksums( metadataFiles );
@@ -171,7 +177,7 @@ public class DefaultProjectInstaller
}
// CHECKSTYLE_OFF: LineLength
- private void addMetaDataFilesForArtifact( ArtifactRepository artifactRepository, Artifact artifact,
+ private void addMetaDataFilesForArtifact( ProjectBuildingRequest buildingRequest, Artifact artifact,
Collection<File> targetMetadataFiles, boolean createChecksum )
// CHECKSTYLE_ON: LineLength
{
@@ -185,7 +191,7 @@ public class DefaultProjectInstaller
{
for ( ArtifactMetadata metadata : metadatas )
{
- File metadataFile = getLocalRepoFile( artifactRepository, metadata );
+ File metadataFile = getLocalRepoFile( buildingRequest, metadata );
targetMetadataFiles.add( metadataFile );
}
}
@@ -271,13 +277,14 @@ public class DefaultProjectInstaller
* Gets the path of the specified artifact metadata within the local repository. Note that the returned path need
* not exist (yet).
*
+ * @param buildingRequest The project building request, must not be <code>null</code>.
* @param metadata The artifact metadata whose local repo path should be determined, must not be <code>null</code>.
* @return The absolute path to the artifact metadata when installed, never <code>null</code>.
*/
- private File getLocalRepoFile( ArtifactRepository artifactRepository, ArtifactMetadata metadata )
+ private File getLocalRepoFile( ProjectBuildingRequest buildingRequest, ArtifactMetadata metadata )
{
- String path = artifactRepository.pathOfLocalRepositoryMetadata( metadata, artifactRepository );
- return new File( artifactRepository.getBasedir(), path );
+ String path = repositoryManager.getPathForLocalMetadata( buildingRequest, metadata );
+ return new File( repositoryManager.getLocalRepositoryBasedir( buildingRequest ), path );
}
}