[ARCHETYPE-515] Migrate plugin to Maven3 Squashed commit of the following:
commit e1e6fff59037ba20a479cd1b1dcaa750bf6d1cd0 Author: rfscholte <rfscho...@apache.org> Date: Fri Jan 27 14:08:13 2017 +0100 clean up dependencies commit ffe813f486916b4d2d8ae249a64a818978f5bfc6 Author: rfscholte <rfscho...@apache.org> Date: Thu Jan 26 17:23:29 2017 +0100 maven-compat now always has test scope commit fa1a96680c77814f88cf5dc8b18227ab1e01ed87 Author: rfscholte <rfscho...@apache.org> Date: Thu Jan 26 17:07:33 2017 +0100 Replace maven-compat classes in IntegrationTestMojo commit 401832a7f95a508ad7ee6032950dd4df447ffb59 Author: rfscholte <rfscho...@apache.org> Date: Thu Jan 26 12:39:50 2017 +0100 archetype-common main sources freed from maven-compat commit d2ad8a7dde8ae5a7a64b2e6bb0aabfeb6cc6d7ad Author: rfscholte <rfscho...@apache.org> Date: Thu Jan 26 12:15:04 2017 +0100 Replace maven-compat class in DefaultArchetypeRegistryManager commit 59e729068331b87fb68ec57c44a7d1d01f431b49 Author: rfscholte <rfscho...@apache.org> Date: Thu Jan 26 11:42:42 2017 +0100 Replace maven-compat classes in DefaultDownloader commit 08060f0ebd1e452d865ee11c0f66d36aef26e275 Author: rfscholte <rfscho...@apache.org> Date: Wed Jan 25 16:05:23 2017 +0100 Maven 3.0 dependencies + maven-compat commit 9415a13838fe4f3dbf82efc7cd064e7a27a4cfd4 Author: rfscholte <rfscho...@apache.org> Date: Wed Jan 25 12:19:11 2017 +0100 Move parent to proper location commit fff235b7df4c13f18a1b348649334d8b11dced65 Author: rfscholte <rfscho...@apache.org> Date: Wed Jan 25 00:20:50 2017 +0100 [ARCHETYPE-515] Migrate plugin to Maven3 stop using legacy repository layout Project: http://git-wip-us.apache.org/repos/asf/maven-archetype/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-archetype/commit/624f9aff Tree: http://git-wip-us.apache.org/repos/asf/maven-archetype/tree/624f9aff Diff: http://git-wip-us.apache.org/repos/asf/maven-archetype/diff/624f9aff Branch: refs/heads/master Commit: 624f9affdc27c8efe6443e03e89259dbe51d08dd Parents: 9857d34 Author: rfscholte <rfscho...@apache.org> Authored: Fri Jan 27 14:13:54 2017 +0100 Committer: rfscholte <rfscho...@apache.org> Committed: Fri Jan 27 14:13:54 2017 +0100 ---------------------------------------------------------------------- archetype-common/pom.xml | 46 +++++- .../archetype/ArchetypeGenerationRequest.java | 14 ++ .../common/ArchetypeArtifactManager.java | 30 ++-- .../common/DefaultArchetypeArtifactManager.java | 46 +++--- .../common/DefaultArchetypeRegistryManager.java | 31 ++-- .../creator/FilesetArchetypeCreator.java | 57 ++++---- .../archetype/downloader/DefaultDownloader.java | 84 +++++------ .../maven/archetype/downloader/Downloader.java | 9 +- .../generator/DefaultArchetypeGenerator.java | 5 +- .../archetype/old/DefaultOldArchetype.java | 9 +- .../RemoteCatalogArchetypeDataSource.java | 141 +++++++++++++++++-- .../DefaultArchetypeGeneratorTest.java | 10 ++ .../maven/archetype/old/ArchetypeTest.java | 37 +++-- .../archetype/test/ArchetypeGenerationTest.java | 10 ++ ...ternalCatalogArchetypesVerificationTest.java | 11 ++ ...rchetype-quickstart-1.0-alpha-1-SNAPSHOT.jar | Bin 3624 -> 0 bytes ...rchetype-quickstart-1.0-alpha-1-SNAPSHOT.pom | 26 ---- ...-quickstart-1.0-alpha-1-SNAPSHOT.version.txt | 1 - .../maven-archetypes-1.0-alpha-1-SNAPSHOT.pom | 33 ----- ...-archetypes-1.0-alpha-1-SNAPSHOT.version.txt | 1 - ...rchetype-quickstart-1.0-alpha-1-SNAPSHOT.jar | Bin 0 -> 3624 bytes ...rchetype-quickstart-1.0-alpha-1-SNAPSHOT.pom | 26 ++++ .../maven-archetypes-1.0-alpha-1-SNAPSHOT.pom | 33 +++++ .../maven-archetype-1.0-alpha-1-SNAPSHOT.pom | 23 +++ archetype-packaging/pom.xml | 7 - archetype-testing/archetype-final/pom.xml | 33 ++--- .../creator/DefaultArchetypeCreatorIT.java | 29 ++-- .../archetype/test/ArchetyperRoundtripIT.java | 35 +++-- .../test/ArchetyperRoundtripWithProxyIT.java | 41 ++++-- .../archetype/test/RoundtripMultiModuleIT.java | 36 +++-- archetype-testing/archetype-proxy/pom.xml | 6 - archetype-testing/archetype-repository/pom.xml | 6 - maven-archetype-plugin/pom.xml | 52 +++---- .../mojos/CreateProjectFromArchetypeMojo.java | 13 +- .../archetype/mojos/IntegrationTestMojo.java | 46 +++--- .../archetype/mojos/MavenArchetypeMojo.java | 14 +- .../DefaultArchetypeGenerationConfigurator.java | 20 +-- ...ultArchetypeGenerationConfigurator2Test.java | 15 +- ...aultArchetypeGenerationConfiguratorTest.java | 11 +- pom.xml | 60 ++++++-- 40 files changed, 718 insertions(+), 389 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/pom.xml ---------------------------------------------------------------------- diff --git a/archetype-common/pom.xml b/archetype-common/pom.xml index f32533f..0c9c7cb 100644 --- a/archetype-common/pom.xml +++ b/archetype-common/pom.xml @@ -43,12 +43,14 @@ <dependencies> <dependency> - <groupId>org.apache.maven.archetype</groupId> - <artifactId>archetype-catalog</artifactId> + <groupId>org.apache.maven</groupId> + <artifactId>maven-compat</artifactId> + <scope>test</scope> </dependency> + <dependency> <groupId>org.apache.maven.archetype</groupId> - <artifactId>archetype-packaging</artifactId> + <artifactId>archetype-catalog</artifactId> </dependency> <dependency> <groupId>org.apache.maven.archetype</groupId> @@ -81,15 +83,27 @@ </dependency> <dependency> <groupId>org.apache.maven</groupId> - <artifactId>maven-project</artifactId> + <artifactId>maven-core</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-settings</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-settings-builder</artifactId> </dependency> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-invoker</artifactId> </dependency> <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-container-default</artifactId> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-artifact-transfer</artifactId> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> @@ -113,11 +127,31 @@ <artifactId>velocity</artifactId> </dependency> <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-provider-api</artifactId> + </dependency> + + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.sonatype.aether</groupId> + <artifactId>aether-connector-file</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.sonatype.aether</groupId> + <artifactId>aether-connector-wagon</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-http</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java index dc3a1b9..a3d63cf 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java @@ -21,6 +21,7 @@ package org.apache.maven.archetype; import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.settings.Mirror; import org.apache.maven.settings.Proxy; import org.apache.maven.settings.Server; @@ -33,6 +34,8 @@ import java.util.Properties; /** @author Jason van Zyl */ public class ArchetypeGenerationRequest { + private ProjectBuildingRequest projectBuildingRequest; + private boolean offline; private boolean interactiveMode; @@ -96,6 +99,17 @@ public class ArchetypeGenerationRequest this.archetypeRepository = archetype.getRepository(); } + public ProjectBuildingRequest getProjectBuildingRequest() + { + return projectBuildingRequest; + } + + public ArchetypeGenerationRequest setProjectBuildingRequest( ProjectBuildingRequest projectBuildingRequest ) + { + this.projectBuildingRequest = projectBuildingRequest; + return this; + } + public String getArchetypeGroupId() { return archetypeGroupId; http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java index b89d64b..1577115 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/ArchetypeArtifactManager.java @@ -23,7 +23,7 @@ import org.apache.maven.archetype.exception.UnknownArchetype; import org.apache.maven.archetype.metadata.ArchetypeDescriptor; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.model.Model; - +import org.apache.maven.project.ProjectBuildingRequest; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import java.io.File; @@ -40,10 +40,11 @@ public interface ArchetypeArtifactManager throws XmlPullParserException, UnknownArchetype, IOException; /** + * @param buildingRequest TODO */ File getArchetypeFile( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, ArtifactRepository localRepository, - List<ArtifactRepository> repositories ) + List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest ) throws UnknownArchetype; /** @@ -61,25 +62,29 @@ public interface ArchetypeArtifactManager boolean isFileSetArchetype( File archetypeFile ); /** + * @param buildingRequest TODO */ boolean isFileSetArchetype( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, ArtifactRepository localRepository, - List<ArtifactRepository> repositories ); + List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest ); /** */ boolean isOldArchetype( File archetypeFile ); /** + * @param buildingRequest TODO */ boolean isOldArchetype( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, - ArtifactRepository localRepository, List<ArtifactRepository> repositories ); + ArtifactRepository localRepository, List<ArtifactRepository> repositories, + ProjectBuildingRequest buildingRequest ); /** + * @param buildingRequest TODO */ boolean exists( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion, ArtifactRepository archetypeRepository, ArtifactRepository localRepository, - List<ArtifactRepository> repos ); + List<ArtifactRepository> repos, ProjectBuildingRequest buildingRequest ); /** * Get the archetype file's post-generation script content, read as UTF-8 content. @@ -98,11 +103,13 @@ public interface ArchetypeArtifactManager throws UnknownArchetype; /** + * @param buildingRequest TODO */ ArchetypeDescriptor getFileSetArchetypeDescriptor( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, ArtifactRepository localRepository, - List<ArtifactRepository> repositories ) + List<ArtifactRepository> repositories, + ProjectBuildingRequest buildingRequest ) throws UnknownArchetype; /** @@ -116,9 +123,14 @@ public interface ArchetypeArtifactManager throws UnknownArchetype; /** + * @param buildingRequest TODO */ - org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor( - String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, - ArtifactRepository localRepository, List<ArtifactRepository> repositories ) + org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor( String groupId, + String artifactId, + String version, + ArtifactRepository archetypeRepository, + ArtifactRepository localRepository, + List<ArtifactRepository> repositories, + ProjectBuildingRequest buildingRequest ) throws UnknownArchetype; } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java index c91e3ad..3ba4435 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java @@ -29,7 +29,7 @@ import org.apache.maven.archetype.metadata.io.xpp3.ArchetypeDescriptorXpp3Reader import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptorBuilder; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.model.Model; - +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; @@ -70,7 +70,7 @@ public class DefaultArchetypeArtifactManager public File getArchetypeFile( final String groupId, final String artifactId, final String version, ArtifactRepository archetypeRepository, final ArtifactRepository localRepository, - final List<ArtifactRepository> repositories ) + final List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest ) throws UnknownArchetype { try @@ -81,7 +81,7 @@ public class DefaultArchetypeArtifactManager { archetype = downloader.download( groupId, artifactId, version, archetypeRepository, localRepository, - repositories ); + repositories, buildingRequest ); setArchetype( groupId, artifactId, version, archetype ); } @@ -203,12 +203,12 @@ public class DefaultArchetypeArtifactManager public boolean isFileSetArchetype( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, ArtifactRepository localRepository, - List<ArtifactRepository> repositories ) + List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest ) { try { File archetypeFile = getArchetypeFile( groupId, artifactId, version, archetypeRepository, - localRepository, repositories ); + localRepository, repositories, buildingRequest ); return isFileSetArchetype( archetypeFile ); } @@ -251,12 +251,12 @@ public class DefaultArchetypeArtifactManager public boolean isOldArchetype( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, ArtifactRepository localRepository, - List<ArtifactRepository> repositories ) + List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest ) { try { File archetypeFile = getArchetypeFile( groupId, artifactId, version, archetypeRepository, - localRepository, repositories ); + localRepository, repositories, buildingRequest ); return isOldArchetype( archetypeFile ); } @@ -269,7 +269,7 @@ public class DefaultArchetypeArtifactManager public boolean exists( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion, ArtifactRepository archetypeRepository, ArtifactRepository localRepository, - List<ArtifactRepository> remoteRepositories ) + List<ArtifactRepository> remoteRepositories, ProjectBuildingRequest buildingRequest ) { try { @@ -278,7 +278,7 @@ public class DefaultArchetypeArtifactManager { archetype = downloader.download( archetypeGroupId, archetypeArtifactId, archetypeVersion, archetypeRepository, - localRepository, remoteRepositories ); + localRepository, remoteRepositories, buildingRequest ); setArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, archetype ); } @@ -343,13 +343,17 @@ public class DefaultArchetypeArtifactManager } } - public org.apache.maven.archetype.metadata.ArchetypeDescriptor getFileSetArchetypeDescriptor( - String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, - ArtifactRepository localRepository, List<ArtifactRepository> repositories ) + public org.apache.maven.archetype.metadata.ArchetypeDescriptor getFileSetArchetypeDescriptor( String groupId, + String artifactId, + String version, + ArtifactRepository archetypeRepository, + ArtifactRepository localRepository, + List<ArtifactRepository> repositories, + ProjectBuildingRequest buildingRequest ) throws UnknownArchetype { - File archetypeFile = - getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository, repositories ); + File archetypeFile = getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository, + repositories, buildingRequest ); return getFileSetArchetypeDescriptor( archetypeFile ); } @@ -415,13 +419,17 @@ public class DefaultArchetypeArtifactManager } } - public org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor( - String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, - ArtifactRepository localRepository, List<ArtifactRepository> repositories ) + public org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor( String groupId, + String artifactId, + String version, + ArtifactRepository archetypeRepository, + ArtifactRepository localRepository, + List<ArtifactRepository> repositories, + ProjectBuildingRequest buildingRequest ) throws UnknownArchetype { - File archetypeFile = - getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository, repositories ); + File archetypeFile = getArchetypeFile( groupId, artifactId, version, archetypeRepository, localRepository, + repositories, buildingRequest ); return getOldArchetypeDescriptor( archetypeFile ); } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java index 81cff67..14a2944 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java @@ -19,12 +19,20 @@ package org.apache.maven.archetype.common; * under the License. */ +import java.io.File; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + import org.apache.maven.archetype.registry.ArchetypeRegistry; import org.apache.maven.archetype.registry.io.xpp3.ArchetypeRegistryXpp3Reader; import org.apache.maven.archetype.registry.io.xpp3.ArchetypeRegistryXpp3Writer; import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; +import org.apache.maven.artifact.repository.MavenArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; @@ -35,24 +43,11 @@ import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.WriterFactory; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import java.io.File; -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - @Component( role = ArchetypeRegistryManager.class ) public class DefaultArchetypeRegistryManager extends AbstractLogEnabled implements ArchetypeRegistryManager { - /** - * Used to create ArtifactRepository objects given the urls of the remote repositories. - */ - @Requirement - private ArtifactRepositoryFactory artifactRepositoryFactory; /** * Determines whether the layout is legacy or not. @@ -176,6 +171,8 @@ public class DefaultArchetypeRegistryManager */ public ArtifactRepository createRepository( String url, String repositoryId ) { + + // snapshots vs releases // offline = to turning the update policy off @@ -190,9 +187,9 @@ public class DefaultArchetypeRegistryManager ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); - - return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, - snapshotsPolicy, releasesPolicy ); + + return new MavenArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, + releasesPolicy ); } public ArchetypeRegistry getDefaultArchetypeRegistry() http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java index 576d33b..828af40 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java @@ -19,6 +19,26 @@ package org.apache.maven.archetype.creator; * under the License. */ +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + import org.apache.commons.collections.CollectionUtils; import org.apache.maven.archetype.ArchetypeCreationRequest; import org.apache.maven.archetype.ArchetypeCreationResult; @@ -44,9 +64,11 @@ import org.apache.maven.model.Plugin; import org.apache.maven.model.PluginManagement; import org.apache.maven.model.Profile; import org.apache.maven.model.Resource; +import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.MavenProject; -import org.apache.maven.project.MavenProjectBuilder; +import org.apache.maven.project.ProjectBuilder; import org.apache.maven.project.ProjectBuildingException; +import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.shared.invoker.DefaultInvocationRequest; import org.apache.maven.shared.invoker.InvocationRequest; import org.apache.maven.shared.invoker.InvocationResult; @@ -63,26 +85,6 @@ import org.codehaus.plexus.util.WriterFactory; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Reader; -import java.io.Writer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; - /** * Create a 2.x Archetype project from a project. Since 2.0-alpha-5, an integration-test named "basic" is created along * the archetype itself to provide immediate test when building the archetype. @@ -102,7 +104,7 @@ public class FilesetArchetypeCreator private PomManager pomManager; @Requirement - private MavenProjectBuilder projectBuilder; + private ProjectBuilder projectBuilder; @Requirement private Invoker invoker; @@ -430,8 +432,11 @@ public class FilesetArchetypeCreator try { - MavenProject p = - projectBuilder.buildFromRepository( pa, project.getRemoteArtifactRepositories(), localRepository ); + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + buildingRequest.setLocalRepository( localRepository ); + buildingRequest.setRemoteRepositories( project.getRemoteArtifactRepositories() ); + + MavenProject p = projectBuilder.build( pa, buildingRequest ).getProject(); if ( p.getDistributionManagement() != null ) { @@ -440,10 +445,8 @@ public class FilesetArchetypeCreator if ( p.getBuildExtensions() != null ) { - for ( Iterator<Extension> i = p.getBuildExtensions().iterator(); i.hasNext(); ) + for ( Extension be : p.getBuildExtensions() ) { - Extension be = i.next(); - model.getBuild().addExtension( be ); } } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java index 7d8cb08..8cb6e5e 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java @@ -19,19 +19,19 @@ package org.apache.maven.archetype.downloader; * under the License. */ +import java.io.File; +import java.util.ArrayList; +import java.util.List; + import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.resolver.ArtifactNotFoundException; -import org.apache.maven.artifact.resolver.ArtifactResolutionException; -import org.apache.maven.artifact.resolver.ArtifactResolver; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.shared.artifact.DefaultArtifactCoordinate; +import org.apache.maven.shared.artifact.resolve.ArtifactResolver; +import org.apache.maven.shared.artifact.resolve.ArtifactResolverException; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - /** * @author Jason van Zyl */ @@ -42,17 +42,21 @@ public class DefaultDownloader @Requirement private ArtifactResolver artifactResolver; - @Requirement - private ArtifactFactory artifactFactory; - public File download( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, - ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories ) + ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories, + ProjectBuildingRequest buildingRequest ) throws DownloadException, DownloadNotFoundException { - Artifact artifact = - artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "jar" ); - Artifact artifactPom = - artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "pom" ); + DefaultArtifactCoordinate jarCoordinate = new DefaultArtifactCoordinate(); + jarCoordinate.setGroupId( groupId ); + jarCoordinate.setArtifactId( artifactId ); + jarCoordinate.setVersion( version ); + + DefaultArtifactCoordinate pomCoordinate = new DefaultArtifactCoordinate(); + pomCoordinate.setGroupId( groupId ); + pomCoordinate.setArtifactId( artifactId ); + pomCoordinate.setVersion( version ); + pomCoordinate.setExtension( "pom" ); List<ArtifactRepository> repositories = new ArrayList<ArtifactRepository>( remoteRepositories ); if ( repositories.isEmpty() && archetypeRepository != null ) @@ -65,54 +69,50 @@ public class DefaultDownloader } ArtifactRepository localRepo = localRepository; + + buildingRequest.setLocalRepository( localRepo ); + buildingRequest.setRemoteRepositories( repositories ); + + Artifact artifact; try { - artifactResolver.resolve( artifact, repositories, localRepo ); - } - catch ( ArtifactResolutionException e ) - { - throw new DownloadException( "Error downloading " + artifact.getId() + ".", e ); + artifact = artifactResolver.resolveArtifact( buildingRequest, jarCoordinate ).getArtifact(); } - catch ( ArtifactNotFoundException e ) + catch ( ArtifactResolverException e ) { - throw new DownloadNotFoundException( "Requested " + artifact.getId() + " download does not exist.", e ); + throw new DownloadException( "Error downloading " + jarCoordinate + ".", e ); } + + // still required??? try { - artifactResolver.resolve( artifactPom, repositories, localRepo ); + artifactResolver.resolveArtifact( buildingRequest, pomCoordinate ); } - catch ( ArtifactResolutionException e ) + catch ( ArtifactResolverException e ) { throw new DownloadException( "Error downloading POM for " + artifact.getId() + ".", e ); } - catch ( ArtifactNotFoundException e ) - { - throw new DownloadNotFoundException( "Requested " + artifact.getId() - + " download's POM does not exist.", e ); - } return artifact.getFile(); } public File downloadOld( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, - ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories ) + ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories, + ProjectBuildingRequest buildingRequest ) throws DownloadException, DownloadNotFoundException { - Artifact artifact = - artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "jar" ); + DefaultArtifactCoordinate jarCoordinate = new DefaultArtifactCoordinate(); + jarCoordinate.setGroupId( groupId ); + jarCoordinate.setArtifactId( artifactId ); + jarCoordinate.setVersion( version ); + try { - artifactResolver.resolve( artifact, remoteRepositories, localRepository ); - } - catch ( ArtifactResolutionException e ) - { - throw new DownloadException( "Error downloading " + artifact.getId() + ".", e ); + return artifactResolver.resolveArtifact( buildingRequest, jarCoordinate ).getArtifact().getFile(); } - catch ( ArtifactNotFoundException e ) + catch ( ArtifactResolverException e ) { - throw new DownloadNotFoundException( "Requested " + artifact.getId() + " download does not exist.", e ); + throw new DownloadException( "Error downloading " + jarCoordinate + ".", e ); } - - return artifact.getFile(); } } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java index 80842bf..c499664 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/Downloader.java @@ -20,6 +20,7 @@ package org.apache.maven.archetype.downloader; */ import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.project.ProjectBuildingRequest; import java.io.File; import java.util.List; @@ -29,13 +30,13 @@ import java.util.List; */ public interface Downloader { - String ROLE = Downloader.class.getName(); - File download( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, - ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories ) + ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories, + ProjectBuildingRequest buildingRequest ) throws DownloadException, DownloadNotFoundException; File downloadOld( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository, - ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories ) + ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories, + ProjectBuildingRequest buildingRequest ) throws DownloadException, DownloadNotFoundException; } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java index b8fd61b..9d60978 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java @@ -79,7 +79,8 @@ public class DefaultArchetypeGenerator } if ( !archetypeArtifactManager.exists( request.getArchetypeGroupId(), request.getArchetypeArtifactId(), - request.getArchetypeVersion(), remoteRepo, localRepository, repos ) ) + request.getArchetypeVersion(), remoteRepo, localRepository, repos, + request.getProjectBuildingRequest() ) ) { throw new UnknownArchetype( "The desired archetype does not exist (" + request.getArchetypeGroupId() + ":" + request.getArchetypeArtifactId() + ":" + request.getArchetypeVersion() + ")" ); @@ -88,7 +89,7 @@ public class DefaultArchetypeGenerator File archetypeFile = archetypeArtifactManager.getArchetypeFile( request.getArchetypeGroupId(), request.getArchetypeArtifactId(), request.getArchetypeVersion(), remoteRepo, localRepository, - repos ); + repos, request.getProjectBuildingRequest() ); return archetypeFile; } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java b/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java index 5b6b746..5dca83e 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java @@ -111,9 +111,12 @@ public class DefaultOldArchetype // Download the archetype // ---------------------------------------------------------------------- - File archetypeFile = archetypeArtifactManager.getArchetypeFile( - request.getArchetypeGroupId(), request.getArchetypeArtifactId(), request.getArchetypeVersion(), - archetypeRepository, request.getLocalRepository(), request.getRemoteArtifactRepositories() ); + File archetypeFile = + archetypeArtifactManager.getArchetypeFile( request.getArchetypeGroupId(), request.getArchetypeArtifactId(), + request.getArchetypeVersion(), archetypeRepository, + request.getLocalRepository(), + request.getRemoteArtifactRepositories(), + request.getProjectBuildingRequest() ); createArchetype( request, archetypeFile ); } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/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 1e5838f..bc38d20 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 @@ -19,9 +19,23 @@ package org.apache.maven.archetype.source; * under the License. */ +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Properties; + import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.archetype.catalog.ArchetypeCatalog; -import org.apache.maven.artifact.manager.WagonManager; +import org.apache.maven.execution.MavenExecutionRequest; +import org.apache.maven.execution.MavenSession; +import org.apache.maven.plugin.LegacySupport; +import org.apache.maven.settings.Proxy; +import org.apache.maven.settings.Server; +import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest; +import org.apache.maven.settings.crypto.SettingsDecrypter; +import org.apache.maven.settings.crypto.SettingsDecryptionResult; +import org.apache.maven.wagon.UnsupportedProtocolException; import org.apache.maven.wagon.Wagon; import org.apache.maven.wagon.WagonException; import org.apache.maven.wagon.authentication.AuthenticationInfo; @@ -31,10 +45,6 @@ import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.util.ReaderFactory; -import java.io.File; -import java.io.IOException; -import java.util.Properties; - /** * @author Jason van Zyl */ @@ -43,7 +53,13 @@ public class RemoteCatalogArchetypeDataSource extends CatalogArchetypeDataSource { @Requirement - private WagonManager wagonManager; + private Map<String, Wagon> wagons; + + @Requirement + private LegacySupport legacySupport; + + @Requirement + private SettingsDecrypter settingsDecrypter; public static final String REPOSITORY_PROPERTY = "repository"; @@ -107,10 +123,10 @@ public class RemoteCatalogArchetypeDataSource // We use wagon to take advantage of a Proxy that has already been setup in a Maven environment. Repository wagonRepository = new Repository( REPOSITORY_ID, repositoryPath ); - AuthenticationInfo authInfo = wagonManager.getAuthenticationInfo( wagonRepository.getId() ); - ProxyInfo proxyInfo = wagonManager.getProxy( wagonRepository.getProtocol() ); + AuthenticationInfo authInfo = getAuthenticationInfo( wagonRepository.getId() ); + ProxyInfo proxyInfo = getProxy( wagonRepository.getProtocol() ); - Wagon wagon = wagonManager.getWagon( wagonRepository ); + Wagon wagon = getWagon( wagonRepository ); File catalog = File.createTempFile( "archetype-catalog", ".xml" ); try @@ -139,4 +155,111 @@ public class RemoteCatalogArchetypeDataSource } } + // + + private Wagon getWagon( Repository repository ) + throws UnsupportedProtocolException + { + return getWagon( repository.getProtocol() ); + } + + private Wagon getWagon( String protocol ) + throws UnsupportedProtocolException + { + if ( protocol == null ) + { + throw new UnsupportedProtocolException( "Unspecified protocol" ); + } + + String hint = protocol.toLowerCase( java.util.Locale.ENGLISH ); + + Wagon wagon = wagons.get( hint ); + if ( wagon == null ) + { + throw new UnsupportedProtocolException( "Cannot find wagon which supports the requested protocol: " + + protocol ); + } + + return wagon; + } + + private AuthenticationInfo getAuthenticationInfo( String id ) + { + MavenSession session = legacySupport.getSession(); + + if ( session != null && id != null ) + { + MavenExecutionRequest request = session.getRequest(); + + if ( request != null ) + { + List<Server> servers = request.getServers(); + + if ( servers != null ) + { + for ( Server server : servers ) + { + if ( id.equalsIgnoreCase( server.getId() ) ) + { + SettingsDecryptionResult result = + settingsDecrypter.decrypt( new DefaultSettingsDecryptionRequest( server ) ); + server = result.getServer(); + + AuthenticationInfo authInfo = new AuthenticationInfo(); + authInfo.setUserName( server.getUsername() ); + authInfo.setPassword( server.getPassword() ); + authInfo.setPrivateKey( server.getPrivateKey() ); + authInfo.setPassphrase( server.getPassphrase() ); + + return authInfo; + } + } + } + } + } + + // empty one to prevent NPE + return new AuthenticationInfo(); + } + + private ProxyInfo getProxy( String protocol ) + { + MavenSession session = legacySupport.getSession(); + + if ( session != null && protocol != null ) + { + MavenExecutionRequest request = session.getRequest(); + + if ( request != null ) + { + List<Proxy> proxies = request.getProxies(); + + if ( proxies != null ) + { + for ( Proxy proxy : proxies ) + { + if ( proxy.isActive() && protocol.equalsIgnoreCase( proxy.getProtocol() ) ) + { + SettingsDecryptionResult result = + settingsDecrypter.decrypt( new DefaultSettingsDecryptionRequest( proxy ) ); + proxy = result.getProxy(); + + ProxyInfo proxyInfo = new ProxyInfo(); + proxyInfo.setHost( proxy.getHost() ); + proxyInfo.setType( proxy.getProtocol() ); + proxyInfo.setPort( proxy.getPort() ); + proxyInfo.setNonProxyHosts( proxy.getNonProxyHosts() ); + proxyInfo.setUserName( proxy.getUsername() ); + proxyInfo.setPassword( proxy.getPassword() ); + + return proxyInfo; + } + } + } + } + } + + return null; + } + } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java index f901be6..94ee058 100644 --- a/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java +++ b/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java @@ -30,10 +30,14 @@ import org.apache.maven.model.Plugin; import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.apache.maven.plugin.testing.AbstractMojoTestCase; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.repository.internal.MavenRepositorySystemSession; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.ReaderFactory; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; +import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; import java.io.File; import java.io.FileInputStream; @@ -554,6 +558,12 @@ public class DefaultArchetypeGeneratorTest request.setPackage( "file.value.package" ); request.setProperties( ADDITIONAL_PROPERTIES ); + + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession(); + repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) ); + buildingRequest.setRepositorySession( repositorySession ); + request.setProjectBuildingRequest( buildingRequest ); return request; } http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java index 6ef915e..fd4cfdd 100644 --- a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java +++ b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java @@ -1,5 +1,17 @@ package org.apache.maven.archetype.old; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /* * Copyright 2004-2006 The Apache Software Foundation. * @@ -27,6 +39,9 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.model.Model; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.repository.internal.MavenRepositorySystemSession; import org.apache.velocity.VelocityContext; import org.apache.velocity.context.Context; import org.codehaus.plexus.PlexusTestCase; @@ -34,18 +49,7 @@ import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.codehaus.plexus.velocity.VelocityComponent; import org.dom4j.DocumentException; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; -import java.net.URL; -import java.net.URLClassLoader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; /** * @author <a href="mailto:ja...@maven.org">Jason van Zyl</a> @@ -66,7 +70,7 @@ public class ArchetypeTest // ---------------------------------------------------------------------- ArtifactRepositoryLayout layout = - (ArtifactRepositoryLayout) getContainer().lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); + (ArtifactRepositoryLayout) getContainer().lookup( ArtifactRepositoryLayout.ROLE ); String mavenRepoLocal = getTestFile( "target/local-repository" ).toURI().toURL().toString(); @@ -79,8 +83,15 @@ public class ArchetypeTest ArtifactRepository remoteRepository = new DefaultArtifactRepository( "remote", mavenRepoRemote, layout ); remoteRepositories.add( remoteRepository ); + + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + buildingRequest.setRemoteRepositories( remoteRepositories ); + MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession(); + repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) ); + buildingRequest.setRepositorySession( repositorySession ); ArchetypeGenerationRequest request = new ArchetypeGenerationRequest() + .setProjectBuildingRequest( buildingRequest ) .setPackage( "org.apache.maven.quickstart" ) .setGroupId( "maven" ) .setArtifactId( "quickstart" ) http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java index 0c40c1d..7c26d0f 100644 --- a/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java +++ b/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java @@ -24,6 +24,9 @@ import org.apache.maven.archetype.ArchetypeGenerationResult; import org.apache.maven.archetype.ArchetypeManager; import org.apache.maven.archetype.common.ArchetypeRegistryManager; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.repository.internal.MavenRepositorySystemSession; import org.codehaus.plexus.PlexusTestCase; import java.io.File; @@ -32,6 +35,7 @@ import java.util.Properties; import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.archetype.catalog.ArchetypeCatalog; import org.codehaus.plexus.util.FileUtils; +import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; /** @author Jason van Zyl */ public class ArchetypeGenerationTest @@ -94,6 +98,12 @@ public class ArchetypeGenerationTest archetypeRequiredProperties.setProperty( "property-without-default-3", "some-value-3" ); archetypeRequiredProperties.setProperty( "property-without-default-4", "some-value-4" ); agr.setProperties( archetypeRequiredProperties ); + + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession(); + repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) ); + buildingRequest.setRepositorySession( repositorySession ); + agr.setProjectBuildingRequest( buildingRequest ); // Then generate away! http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java index e357353..a40e4cc 100644 --- a/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java +++ b/archetype-common/src/test/java/org/apache/maven/archetype/test/InternalCatalogArchetypesVerificationTest.java @@ -28,8 +28,12 @@ import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.archetype.catalog.ArchetypeCatalog; import org.apache.maven.archetype.common.ArchetypeRegistryManager; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.repository.internal.MavenRepositorySystemSession; import org.codehaus.plexus.PlexusTestCase; import org.codehaus.plexus.util.FileUtils; +import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; /** * @@ -81,6 +85,13 @@ public class InternalCatalogArchetypesVerificationTest .setPackage( "com.acme" ) .setOutputDirectory( outputDirectory.getPath() ) .setLocalRepository( localRepository ); + + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession(); + repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) ); + buildingRequest.setRepositorySession( repositorySession ); + request.setProjectBuildingRequest( buildingRequest ); + ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( request ); assertTrue ( "Archetype wasn't generated successfully", generationResult.getCause() == null ); http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/jars/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/jars/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar b/archetype-common/src/test/repository/org.apache.maven.archetypes/jars/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar deleted file mode 100644 index a1851ba..0000000 Binary files a/archetype-common/src/test/repository/org.apache.maven.archetypes/jars/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar and /dev/null differ http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom deleted file mode 100644 index ee21329..0000000 --- a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom +++ /dev/null @@ -1,26 +0,0 @@ -<!-- - ~ Copyright 2004-2006 The Apache Software Foundation. - ~ - ~ Licensed 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. - --> - -<project> - <parent> - <artifactId>maven-archetypes</artifactId> - <groupId>org.apache.maven.archetypes</groupId> - <version>1.0-alpha-1-SNAPSHOT</version> - </parent> - <modelVersion>4.0.0</modelVersion> - <artifactId>maven-archetype-quickstart</artifactId> - <version>1.0-alpha-1-SNAPSHOT</version> -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.version.txt ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.version.txt b/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.version.txt deleted file mode 100644 index 33f4519..0000000 --- a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.version.txt +++ /dev/null @@ -1 +0,0 @@ -1.0-alpha-1-SNAPSHOT \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom deleted file mode 100644 index 74dda84..0000000 --- a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom +++ /dev/null @@ -1,33 +0,0 @@ -<!-- - ~ Copyright 2004-2006 The Apache Software Foundation. - ~ - ~ Licensed 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. - --> - -<model> - <parent> - <artifactId>maven-archetype</artifactId> - <groupId>org.apache.maven</groupId> - <version>1.0-alpha-1-SNAPSHOT</version> - </parent> - <modelVersion>4.0.0</modelVersion> - <groupId>org.apache.maven.archetypes</groupId> - <artifactId>maven-archetypes</artifactId> - <packaging>pom</packaging> - <version>1.0-alpha-1-SNAPSHOT</version> - <modules> - <module>maven-archetype-mojo</module> - <module>maven-archetype-quickstart</module> - <module>maven-archetype-webapp</module> - </modules> -</model> http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.version.txt ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.version.txt b/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.version.txt deleted file mode 100644 index 33f4519..0000000 --- a/archetype-common/src/test/repository/org.apache.maven.archetypes/poms/maven-archetypes-1.0-alpha-1-SNAPSHOT.version.txt +++ /dev/null @@ -1 +0,0 @@ -1.0-alpha-1-SNAPSHOT \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar new file mode 100644 index 0000000..a1851ba Binary files /dev/null and b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.jar differ http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom new file mode 100644 index 0000000..ee21329 --- /dev/null +++ b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetype-quickstart/1.0-alpha-1-SNAPSHOT/maven-archetype-quickstart-1.0-alpha-1-SNAPSHOT.pom @@ -0,0 +1,26 @@ +<!-- + ~ Copyright 2004-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<project> + <parent> + <artifactId>maven-archetypes</artifactId> + <groupId>org.apache.maven.archetypes</groupId> + <version>1.0-alpha-1-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>maven-archetype-quickstart</artifactId> + <version>1.0-alpha-1-SNAPSHOT</version> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom new file mode 100644 index 0000000..74dda84 --- /dev/null +++ b/archetype-common/src/test/repository/org/apache/maven/archetypes/maven-archetypes/1.0-alpha-1-SNAPSHOT/maven-archetypes-1.0-alpha-1-SNAPSHOT.pom @@ -0,0 +1,33 @@ +<!-- + ~ Copyright 2004-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<model> + <parent> + <artifactId>maven-archetype</artifactId> + <groupId>org.apache.maven</groupId> + <version>1.0-alpha-1-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven.archetypes</groupId> + <artifactId>maven-archetypes</artifactId> + <packaging>pom</packaging> + <version>1.0-alpha-1-SNAPSHOT</version> + <modules> + <module>maven-archetype-mojo</module> + <module>maven-archetype-quickstart</module> + <module>maven-archetype-webapp</module> + </modules> +</model> http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-common/src/test/repository/org/apache/maven/maven-archetype/1.0-alpha-1-SNAPSHOT/maven-archetype-1.0-alpha-1-SNAPSHOT.pom ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/repository/org/apache/maven/maven-archetype/1.0-alpha-1-SNAPSHOT/maven-archetype-1.0-alpha-1-SNAPSHOT.pom b/archetype-common/src/test/repository/org/apache/maven/maven-archetype/1.0-alpha-1-SNAPSHOT/maven-archetype-1.0-alpha-1-SNAPSHOT.pom new file mode 100644 index 0000000..54351ae --- /dev/null +++ b/archetype-common/src/test/repository/org/apache/maven/maven-archetype/1.0-alpha-1-SNAPSHOT/maven-archetype-1.0-alpha-1-SNAPSHOT.pom @@ -0,0 +1,23 @@ +<!-- + ~ Copyright 2004-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<model> + <modelVersion>4.0.0</modelVersion> + <artifactId>maven-archetype</artifactId> + <groupId>org.apache.maven</groupId> + <version>1.0-alpha-1-SNAPSHOT</version> + <packaging>pom</packaging> +</model> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-packaging/pom.xml ---------------------------------------------------------------------- diff --git a/archetype-packaging/pom.xml b/archetype-packaging/pom.xml index 813171b..b95eff8 100644 --- a/archetype-packaging/pom.xml +++ b/archetype-packaging/pom.xml @@ -33,11 +33,4 @@ <name>Maven Archetype Packaging</name> <description>'maven-archetype' packaging configuration for archetypes.</description> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - </dependencies> </project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-testing/archetype-final/pom.xml ---------------------------------------------------------------------- diff --git a/archetype-testing/archetype-final/pom.xml b/archetype-testing/archetype-final/pom.xml index 5420802..46a06de 100644 --- a/archetype-testing/archetype-final/pom.xml +++ b/archetype-testing/archetype-final/pom.xml @@ -40,6 +40,16 @@ <dependencies> <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-compat</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-core</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> @@ -63,24 +73,6 @@ <scope>test</scope> </dependency> <dependency> - <groupId>org.codehaus.cargo</groupId> - <artifactId>cargo-core-api-container</artifactId> - <version>${cargoVersion}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.codehaus.cargo</groupId> - <artifactId>cargo-core-api-generic</artifactId> - <version>${cargoVersion}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.codehaus.cargo</groupId> - <artifactId>cargo-core-container-jetty</artifactId> - <version>${cargoVersion}</version> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <version>6.1.11</version> @@ -96,6 +88,11 @@ <artifactId>wagon-http</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.sonatype.aether</groupId> + <artifactId>aether-connector-wagon</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>${project.groupId}</groupId> http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java ---------------------------------------------------------------------- diff --git a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java index bd21568..06663f3 100644 --- a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java +++ b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java @@ -25,9 +25,13 @@ import org.apache.maven.archetype.common.Constants; import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout; import org.apache.maven.plugin.testing.AbstractMojoTestCase; +import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectBuilder; -import org.apache.maven.project.MavenProjectBuildingResult; +import org.apache.maven.project.ProjectBuilder; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingResult; +//import org.apache.maven.project.MavenProjectBuildingResult; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.PropertyUtils; import org.codehaus.plexus.util.StringUtils; @@ -53,7 +57,7 @@ public class DefaultArchetypeCreatorIT { System.out.println( ">>>>>> testCreateFilesetArchetype( \"" + project + "\" )" ); - MavenProjectBuilder builder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE ); + ProjectBuilder builder = lookup( ProjectBuilder.class ); File projectFile = getProjectFile( project ); @@ -71,23 +75,10 @@ public class DefaultArchetypeCreatorIT Properties p = PropertyUtils.loadProperties( propertyFile ); - MavenProject mavenProject = null; - - { - Object result = builder.buildWithDependencies( projectFile, localRepository, null ); - if ( result instanceof MavenProject ) - { // Using Maven 2.0.x / x >= 7 - mavenProject = (MavenProject) result; - } - else if ( result instanceof MavenProjectBuildingResult ) - { // Using Maven 3 - mavenProject = ( (MavenProjectBuildingResult) result ).getProject(); - } - else - { - fail( "Wrong result class" ); - } - } + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + buildingRequest.setLocalRepository( localRepository ); + + MavenProject mavenProject = builder.build( projectFile, buildingRequest ).getProject(); FilesetArchetypeCreator instance = (FilesetArchetypeCreator) lookup( ArchetypeCreator.class.getName(), "fileset" ); http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/624f9aff/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java ---------------------------------------------------------------------- diff --git a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java index 139d78e..12ff295 100644 --- a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java +++ b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java @@ -1,5 +1,10 @@ package org.apache.maven.archetype.test; +import java.io.File; +import java.io.FileWriter; +import java.io.Writer; +import java.util.Properties; + /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -31,20 +36,21 @@ import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer; import org.apache.maven.archetype.common.ArchetypeRegistryManager; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.model.Model; +import org.apache.maven.model.building.ModelProblem; import org.apache.maven.project.DefaultProjectBuilderConfiguration; +import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.MavenProject; -import org.apache.maven.project.MavenProjectBuilder; +import org.apache.maven.project.ProjectBuilder; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingResult; import org.apache.maven.project.interpolation.ModelInterpolator; +import org.apache.maven.repository.internal.MavenRepositorySystemSession; import org.codehaus.plexus.PlexusTestCase; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.StringUtils; import org.mortbay.jetty.Server; import org.mortbay.jetty.webapp.WebAppContext; - -import java.io.File; -import java.io.FileWriter; -import java.io.Writer; -import java.util.Properties; +import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; /** * @author Jason van Zyl @@ -61,7 +67,7 @@ public class ArchetyperRoundtripIT ArchetypeRegistryManager registryManager = (ArchetypeRegistryManager) lookup( ArchetypeRegistryManager.ROLE ); - MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE ); + ProjectBuilder projectBuilder = lookup( ProjectBuilder.class ); ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(), "target" + File.separator @@ -101,7 +107,12 @@ public class ArchetyperRoundtripIT // (2) create an archetype from the project File pom = new File( workingProject, "pom.xml" ); - MavenProject project = projectBuilder.build( pom, localRepository, null ); + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession(); + repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository.getBasedir() ) ); + buildingRequest.setRepositorySession( repositorySession ); + + MavenProject project = projectBuilder.build( pom, buildingRequest ).getProject(); Properties properties = new Properties(); properties.setProperty( "someProperty", "someValue" ); @@ -126,7 +137,11 @@ public class ArchetyperRoundtripIT "target" + File.separator + "generated-sources" + File.separator + "archetype" ); File generatedArchetypePom = new File( generatedArchetypeDirectory, "pom.xml" ); - MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom, localRepository, null ); + + ProjectBuildingResult buildingResult = projectBuilder.build( generatedArchetypePom, buildingRequest ); + + MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom, buildingRequest ).getProject(); + ModelInterpolator modelInterpolator = (ModelInterpolator)lookup( ModelInterpolator.ROLE ); Model generatedArchetypeModel = modelInterpolator.interpolate( generatedArchetypeProject.getModel(), generatedArchetypePom.getParentFile(), new DefaultProjectBuilderConfiguration(), true ); @@ -174,7 +189,7 @@ public class ArchetyperRoundtripIT setGroupId( "com.mycompany" ).setArtifactId( "myapp" ).setVersion( "1.0-SNAPSHOT" ). setPackage( "com.mycompany.myapp" ).setProperties( properties ). setOutputDirectory( outputDirectory ).setLocalRepository( localRepository ). - setArchetypeRepository( "http://localhost:" + port + "/repo/" ); + setArchetypeRepository( "http://localhost:" + port + "/repo/" ).setProjectBuildingRequest( buildingRequest ); ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr ); if ( generationResult.getCause() != null )