Skip to content

Commit

Permalink
[ARCHETYPE-515] Migrate plugin to Maven3
Browse files Browse the repository at this point in the history
Squashed commit of the following:

commit e1e6fff59037ba20a479cd1b1dcaa750bf6d1cd0
Author: rfscholte <rfscholte@apache.org>
Date:   Fri Jan 27 14:08:13 2017 +0100

    clean up dependencies

commit ffe813f486916b4d2d8ae249a64a818978f5bfc6
Author: rfscholte <rfscholte@apache.org>
Date:   Thu Jan 26 17:23:29 2017 +0100

    maven-compat now always has test scope

commit fa1a96680c77814f88cf5dc8b18227ab1e01ed87
Author: rfscholte <rfscholte@apache.org>
Date:   Thu Jan 26 17:07:33 2017 +0100

    Replace maven-compat classes in IntegrationTestMojo

commit 401832a7f95a508ad7ee6032950dd4df447ffb59
Author: rfscholte <rfscholte@apache.org>
Date:   Thu Jan 26 12:39:50 2017 +0100

    archetype-common main sources freed from maven-compat

commit d2ad8a7dde8ae5a7a64b2e6bb0aabfeb6cc6d7ad
Author: rfscholte <rfscholte@apache.org>
Date:   Thu Jan 26 12:15:04 2017 +0100

    Replace maven-compat class in DefaultArchetypeRegistryManager

commit 59e729068331b87fb68ec57c44a7d1d01f431b49
Author: rfscholte <rfscholte@apache.org>
Date:   Thu Jan 26 11:42:42 2017 +0100

    Replace maven-compat classes in DefaultDownloader

commit 08060f0ebd1e452d865ee11c0f66d36aef26e275
Author: rfscholte <rfscholte@apache.org>
Date:   Wed Jan 25 16:05:23 2017 +0100

    Maven 3.0 dependencies + maven-compat

commit 9415a13838fe4f3dbf82efc7cd064e7a27a4cfd4
Author: rfscholte <rfscholte@apache.org>
Date:   Wed Jan 25 12:19:11 2017 +0100

    Move parent to proper location

commit fff235b7df4c13f18a1b348649334d8b11dced65
Author: rfscholte <rfscholte@apache.org>
Date:   Wed Jan 25 00:20:50 2017 +0100

    [ARCHETYPE-515] Migrate plugin to Maven3
    stop using legacy repository layout
  • Loading branch information
rfscholte committed Jan 27, 2017
1 parent 9857d34 commit 624f9af
Show file tree
Hide file tree
Showing 37 changed files with 659 additions and 330 deletions.
46 changes: 40 additions & 6 deletions archetype-common/pom.xml
Expand Up @@ -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>
Expand Down Expand Up @@ -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>
Expand All @@ -112,12 +126,32 @@
<groupId>org.apache.velocity</groupId>
<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>
Expand Down
Expand Up @@ -21,6 +21,7 @@

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;
Expand All @@ -33,6 +34,8 @@
/** @author Jason van Zyl */
public class ArchetypeGenerationRequest
{
private ProjectBuildingRequest projectBuildingRequest;

private boolean offline;

private boolean interactiveMode;
Expand Down Expand Up @@ -96,6 +99,17 @@ public ArchetypeGenerationRequest( Archetype archetype )
this.archetypeRepository = archetype.getRepository();
}

public ProjectBuildingRequest getProjectBuildingRequest()
{
return projectBuildingRequest;
}

public ArchetypeGenerationRequest setProjectBuildingRequest( ProjectBuildingRequest projectBuildingRequest )
{
this.projectBuildingRequest = projectBuildingRequest;
return this;
}

public String getArchetypeGroupId()
{
return archetypeGroupId;
Expand Down
Expand Up @@ -23,7 +23,7 @@
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;
Expand All @@ -40,10 +40,11 @@ Model getArchetypePom ( File jar )
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;

/**
Expand All @@ -61,25 +62,29 @@ ZipFile getArchetypeZipFile( File archetypeFile )
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.
Expand All @@ -98,11 +103,13 @@ ArchetypeDescriptor getFileSetArchetypeDescriptor( File archetypeFile )
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;

/**
Expand All @@ -116,9 +123,14 @@ org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDes
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;
}
Expand Up @@ -29,7 +29,7 @@
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;
Expand Down Expand Up @@ -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
Expand All @@ -81,7 +81,7 @@ public File getArchetypeFile( final String groupId, final String artifactId, fin
{
archetype =
downloader.download( groupId, artifactId, version, archetypeRepository, localRepository,
repositories );
repositories, buildingRequest );

setArchetype( groupId, artifactId, version, archetype );
}
Expand Down Expand Up @@ -203,12 +203,12 @@ public boolean isFileSetArchetype( File archetypeFile )

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 );
}
Expand Down Expand Up @@ -251,12 +251,12 @@ public boolean isOldArchetype( File archetypeFile )

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 );
}
Expand All @@ -269,7 +269,7 @@ public boolean isOldArchetype( String groupId, String artifactId, String version

public boolean exists( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion,
ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
List<ArtifactRepository> remoteRepositories )
List<ArtifactRepository> remoteRepositories, ProjectBuildingRequest buildingRequest )
{
try
{
Expand All @@ -278,7 +278,7 @@ public boolean exists( String archetypeGroupId, String archetypeArtifactId, Stri
{
archetype =
downloader.download( archetypeGroupId, archetypeArtifactId, archetypeVersion, archetypeRepository,
localRepository, remoteRepositories );
localRepository, remoteRepositories, buildingRequest );
setArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, archetype );
}

Expand Down Expand Up @@ -343,13 +343,17 @@ public ArchetypeDescriptor getFileSetArchetypeDescriptor( File archetypeFile )
}
}

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 );
}
Expand Down Expand Up @@ -415,13 +419,17 @@ public org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArche
}
}

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 );
}
Expand Down
Expand Up @@ -19,12 +19,20 @@
* 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;
Expand All @@ -35,24 +43,11 @@
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.
Expand Down Expand Up @@ -176,6 +171,8 @@ public void writeArchetypeRegistry( File archetypeRegistryFile, ArchetypeRegistr
*/
public ArtifactRepository createRepository( String url, String repositoryId )
{


// snapshots vs releases
// offline = to turning the update policy off

Expand All @@ -190,9 +187,9 @@ public ArtifactRepository createRepository( String url, String repositoryId )

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()
Expand Down

0 comments on commit 624f9af

Please sign in to comment.