UpdateCatalog now uses projectBuildingRequest with actual localRepository
Project: http://git-wip-us.apache.org/repos/asf/maven-archetype/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-archetype/commit/7571fa59 Tree: http://git-wip-us.apache.org/repos/asf/maven-archetype/tree/7571fa59 Diff: http://git-wip-us.apache.org/repos/asf/maven-archetype/diff/7571fa59 Branch: refs/heads/master Commit: 7571fa59ca01aafe3ae19243930a8e2dc4d0c3d0 Parents: 1263477 Author: rfscholte <[email protected]> Authored: Fri Jan 27 15:52:49 2017 +0100 Committer: rfscholte <[email protected]> Committed: Fri Jan 27 15:52:49 2017 +0100 ---------------------------------------------------------------------- .../apache/maven/archetype/ArchetypeManager.java | 5 ++--- .../maven/archetype/DefaultArchetypeManager.java | 12 +++--------- .../archetype/source/ArchetypeDataSource.java | 3 ++- .../source/CatalogArchetypeDataSource.java | 18 +++++++++++------- .../source/RemoteCatalogArchetypeDataSource.java | 3 ++- .../archetype/source/WikiArchetypeDataSource.java | 3 ++- .../archetype/mojos/UpdateLocalCatalogMojo.java | 7 +++++-- 7 files changed, 27 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/7571fa59/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java index 8985b8f..f14f8a8 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeManager.java @@ -22,6 +22,7 @@ package org.apache.maven.archetype; import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.archetype.catalog.ArchetypeCatalog; import org.apache.maven.artifact.DependencyResolutionRequiredException; +import org.apache.maven.project.ProjectBuildingRequest; import java.io.File; import java.io.IOException; @@ -103,7 +104,5 @@ public interface ArchetypeManager File archiveArchetype( File archetypeDirectory, File outputDirectory, String finalName ) throws DependencyResolutionRequiredException, IOException; - void updateLocalCatalog( Archetype archetype, String path ); - - void updateLocalCatalog( Archetype archetype ); + void updateLocalCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype ); } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/7571fa59/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java index da8207c..cd2f216 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java @@ -26,6 +26,7 @@ import org.apache.maven.archetype.generator.ArchetypeGenerator; import org.apache.maven.archetype.source.ArchetypeDataSource; import org.apache.maven.archetype.source.ArchetypeDataSourceException; import org.apache.maven.artifact.DependencyResolutionRequiredException; +import org.apache.maven.project.ProjectBuildingRequest; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.logging.AbstractLogEnabled; @@ -221,20 +222,13 @@ public class DefaultArchetypeManager } } - public void updateLocalCatalog( Archetype archetype ) - { - updateLocalCatalog( archetype, "${user.home}/.m2/archetype-catalog.xml" ); - } - - public void updateLocalCatalog( Archetype archetype, String path ) + public void updateLocalCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype ) { try { - Properties properties = new Properties(); - properties.setProperty( "file", path ); ArchetypeDataSource source = archetypeSources.get( "catalog" ); - source.updateCatalog( properties, archetype ); + source.updateCatalog( buildingRequest, archetype ); } catch ( ArchetypeDataSourceException e ) { http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/7571fa59/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java b/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java index 7ce941e..dc87a69 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/source/ArchetypeDataSource.java @@ -21,6 +21,7 @@ package org.apache.maven.archetype.source; import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.archetype.catalog.ArchetypeCatalog; +import org.apache.maven.project.ProjectBuildingRequest; import java.util.Properties; @@ -40,6 +41,6 @@ public interface ArchetypeDataSource ArchetypeCatalog getArchetypeCatalog( Properties properties ) throws ArchetypeDataSourceException; - void updateCatalog( Properties properties, Archetype archetype ) + void updateCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype ) throws ArchetypeDataSourceException; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/7571fa59/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java b/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java index 54375f9..4acdd44 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java @@ -23,7 +23,10 @@ import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.archetype.catalog.ArchetypeCatalog; import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Reader; import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.shared.repository.RepositoryManager; import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.ReaderFactory; @@ -47,6 +50,9 @@ public class CatalogArchetypeDataSource extends AbstractLogEnabled implements ArchetypeDataSource { + @Requirement + private RepositoryManager repositoryManager; + public static final String ARCHETYPE_CATALOG_PROPERTY = "file"; public static final String ARCHETYPE_CATALOG_FILENAME = "archetype-catalog.xml"; @@ -57,16 +63,14 @@ public class CatalogArchetypeDataSource public static final File DEFAULT_ARCHETYPE_CATALOG = new File( MAVEN_CONFIGURATION, ARCHETYPE_CATALOG_FILENAME ); - public void updateCatalog( Properties properties, Archetype archetype ) + public void updateCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype ) throws ArchetypeDataSourceException { - String s = properties.getProperty( ARCHETYPE_CATALOG_PROPERTY ); - - s = StringUtils.replace( s, "${user.home}", System.getProperty( "user.home" ) ); + File localRepo = repositoryManager.getLocalRepositoryBasedir( buildingRequest ); + + File catalogFile = new File( localRepo, ARCHETYPE_CATALOG_FILENAME ); - getLogger().debug( "Using catalog " + s ); - - File catalogFile = new File( s ); + getLogger().debug( "Using catalog " + catalogFile.getAbsolutePath() ); ArchetypeCatalog catalog; if ( catalogFile.exists() ) http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/7571fa59/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java b/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java index bc38d20..9e4e58d 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java @@ -30,6 +30,7 @@ import org.apache.maven.archetype.catalog.ArchetypeCatalog; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.LegacySupport; +import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.settings.Proxy; import org.apache.maven.settings.Server; import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest; @@ -110,7 +111,7 @@ public class RemoteCatalogArchetypeDataSource } } - public void updateCatalog( Properties properties, Archetype archetype ) + public void updateCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype ) throws ArchetypeDataSourceException { throw new ArchetypeDataSourceException( "Not supported yet." ); http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/7571fa59/archetype-common/src/test/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java b/archetype-common/src/test/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java index 2934b76..d6c4442 100644 --- a/archetype-common/src/test/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java +++ b/archetype-common/src/test/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java @@ -23,6 +23,7 @@ import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.archetype.catalog.ArchetypeCatalog; import org.apache.maven.archetype.source.ArchetypeDataSource; import org.apache.maven.archetype.source.ArchetypeDataSourceException; +import org.apache.maven.project.ProjectBuildingRequest; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.util.IOUtil; @@ -131,7 +132,7 @@ public class WikiArchetypeDataSource return archetypes; } - public void updateCatalog( Properties properties, Archetype archetype ) + public void updateCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype ) throws ArchetypeDataSourceException { throw new UnsupportedOperationException( "Not supported yet." ); http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/7571fa59/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java ---------------------------------------------------------------------- diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java index c756a93..014f108 100644 --- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java +++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java @@ -21,6 +21,7 @@ package org.apache.maven.archetype.mojos; import org.apache.maven.archetype.ArchetypeManager; import org.apache.maven.archetype.catalog.Archetype; +import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Component; @@ -39,7 +40,9 @@ import org.codehaus.plexus.util.StringUtils; public class UpdateLocalCatalogMojo extends AbstractMojo { - + @Parameter( defaultValue = "${session}", readonly = true, required = true ) + private MavenSession session; + @Component private ArchetypeManager manager; @@ -66,6 +69,6 @@ public class UpdateLocalCatalogMojo archetype.setDescription( project.getName() ); } - manager.updateLocalCatalog( archetype ); + manager.updateLocalCatalog( session.getProjectBuildingRequest(), archetype ); } } \ No newline at end of file
