You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2010/04/01 22:56:24 UTC
svn commit: r930095 - in /maven/archetype/trunk:
archetype-common/src/main/java/org/apache/maven/archetype/generator/
archetype-common/src/main/java/org/apache/maven/archetype/old/
archetype-common/src/test/java/org/apache/maven/archetype/old/ archetyp...
Author: hboutemy
Date: Thu Apr 1 20:56:24 2010
New Revision: 930095
URL: http://svn.apache.org/viewvc?rev=930095&view=rev
Log:
changed old archetype "create" API to be similar to new archetype "generate"
Modified:
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java Thu Apr 1 20:56:24 2010
@@ -41,9 +41,7 @@ import org.dom4j.DocumentException;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/** @plexus.component */
public class DefaultArchetypeGenerator
@@ -92,19 +90,18 @@ public class DefaultArchetypeGenerator
+ request.getArchetypeArtifactId() + ":" + request.getArchetypeVersion() + ")" );
}
- if ( archetypeArtifactManager.isFileSetArchetype( request.getArchetypeGroupId(),
- request.getArchetypeArtifactId(),
- request.getArchetypeVersion(), remoteRepo, localRepository,
- repos ) )
- {
- processFileSetArchetype( request, remoteRepo, localRepository, basedir, repos );
- }
- else if ( archetypeArtifactManager.isOldArchetype( request.getArchetypeGroupId(),
- request.getArchetypeArtifactId(),
- request.getArchetypeVersion(), remoteRepo, localRepository,
- repos ) )
+ File archetypeFile =
+ archetypeArtifactManager.getArchetypeFile( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
+ request.getArchetypeVersion(), remoteRepo, localRepository,
+ repos );
+
+ if ( archetypeArtifactManager.isFileSetArchetype( archetypeFile ) )
+ {
+ processFileSetArchetype( request, archetypeFile, basedir );
+ }
+ else if ( archetypeArtifactManager.isOldArchetype( archetypeFile ) )
{
- processOldArchetype( request, remoteRepo, localRepository, basedir, repos );
+ processOldArchetype( request, archetypeFile, basedir );
}
else
{
@@ -126,65 +123,17 @@ public class DefaultArchetypeGenerator
}
/** FileSetArchetype */
- private void processFileSetArchetype( final ArchetypeGenerationRequest request, ArtifactRepository remoteRepo,
- final ArtifactRepository localRepository, final String basedir,
- final List repositories )
+ private void processFileSetArchetype( ArchetypeGenerationRequest request, File archetypeFile, String basedir )
throws UnknownArchetype, ArchetypeNotConfigured, ProjectDirectoryExists, PomFileExists, OutputFileExists,
ArchetypeGenerationFailure
{
- //TODO: get rid of the property file usage.
-// Properties properties = request.getProperties();
-//
-// properties.setProperty( Constants.ARCHETYPE_GROUP_ID, request.getArchetypeGroupId() );
-//
-// properties.setProperty( Constants.ARCHETYPE_ARTIFACT_ID, request.getArchetypeArtifactId() );
-//
-// properties.setProperty( Constants.ARCHETYPE_VERSION, request.getArchetypeVersion() );
-//
-// properties.setProperty( Constants.GROUP_ID, request.getGroupId( ) );
-//
-// properties.setProperty( Constants.ARTIFACT_ID, request.getArtifactId( ) );
-//
-// properties.setProperty( Constants.VERSION, request.getVersion() );
-//
-// properties.setProperty( Constants.PACKAGE, request.getPackage( ) );
-//
-// properties.setProperty( Constants.ARCHETYPE_POST_GENERATION_GOALS, request.getArchetypeGoals() );
-
- File archetypeFile =
- archetypeArtifactManager.getArchetypeFile( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
- request.getArchetypeVersion(), remoteRepo, localRepository,
- repositories );
-
filesetGenerator.generateArchetype( request, archetypeFile, basedir );
}
- private void processOldArchetype( ArchetypeGenerationRequest request, ArtifactRepository remoteRepo,
- ArtifactRepository localRepository, String basedir, List repositories )
+ private void processOldArchetype( ArchetypeGenerationRequest request, File archetypeFile, String basedir )
throws UnknownArchetype, ArchetypeGenerationFailure
{
- org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor archetypeDescriptor =
- archetypeArtifactManager.getOldArchetypeDescriptor( request.getArchetypeGroupId(),
- request.getArchetypeArtifactId(),
- request.getArchetypeVersion(), remoteRepo,
- localRepository, repositories );
-
- Map parameters = new HashMap();
-
- parameters.put( "basedir", basedir );
-
- parameters.put( "package", request.getPackage() );
-
- parameters.put( "packageName", request.getPackage() );
-
- parameters.put( "groupId", request.getGroupId() );
-
- parameters.put( "artifactId", request.getArtifactId() );
-
- parameters.put( "version", request.getVersion() );
-
- oldArchetype.createArchetype( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
- request.getArchetypeVersion(), remoteRepo, localRepository, repositories, parameters );
+ oldArchetype.createArchetype( request, archetypeFile, basedir );
}
public void generateArchetype( ArchetypeGenerationRequest request, ArchetypeGenerationResult result )
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java Thu Apr 1 20:56:24 2010
@@ -19,6 +19,7 @@ package org.apache.maven.archetype.old;
* under the License.
*/
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor;
import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptorBuilder;
import org.apache.maven.archetype.old.descriptor.TemplateDescriptor;
@@ -60,8 +61,8 @@ import java.io.StringWriter;
import java.io.Writer;
import java.net.URL;
import java.net.URLClassLoader;
+import java.util.HashMap;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -102,31 +103,36 @@ public class DefaultOldArchetype
// artifactId = maven-foo-archetype
// version = latest
- public void createArchetype( String archetypeGroupId,
- String archetypeArtifactId,
- String archetypeVersion,
- ArtifactRepository archetypeRepository,
- ArtifactRepository localRepository,
- List remoteRepositories,
- Map parameters )
+ public void createArchetype( ArchetypeGenerationRequest request, ArtifactRepository archetypeRepository, String basedir )
throws UnknownArchetype, ArchetypeNotFoundException, ArchetypeDescriptorException, ArchetypeTemplateProcessingException
{
// ----------------------------------------------------------------------
// Download the archetype
// ----------------------------------------------------------------------
- File archetype;
+ File archetypeFile = archetypeArtifactManager.getArchetypeFile(
+ request.getArchetypeGroupId(), request.getArchetypeArtifactId(), request.getArchetypeVersion(),
+ archetypeRepository, request.getLocalRepository(), request.getRemoteArtifactRepositories() );
-// try
-// {
- archetype = archetypeArtifactManager.getArchetypeFile(
- archetypeGroupId, archetypeArtifactId, archetypeVersion,
- archetypeRepository, localRepository, remoteRepositories );
-// }
-// catch ( UnknownArchetype e )
-// {
-// throw new ArchetypeDescriptorException( "Error attempting to download archetype.", e );
-// }
+ createArchetype( request, archetypeFile, basedir );
+ }
+
+ public void createArchetype( ArchetypeGenerationRequest request, File archetypeFile, String basedir )
+ throws ArchetypeDescriptorException, ArchetypeTemplateProcessingException
+ {
+ Map parameters = new HashMap();
+
+ parameters.put( "basedir", basedir );
+
+ parameters.put( "package", request.getPackage() );
+
+ parameters.put( "packageName", request.getPackage() );
+
+ parameters.put( "groupId", request.getGroupId() );
+
+ parameters.put( "artifactId", request.getArtifactId() );
+
+ parameters.put( "version", request.getVersion() );
// ---------------------------------------------------------------------
// Get Logger and display all parameters used
@@ -137,8 +143,8 @@ public class DefaultOldArchetype
{
getLogger().info( "----------------------------------------------------------------------------" );
- getLogger().info( "Using following parameters for creating OldArchetype: " + archetypeArtifactId + ":"
- + archetypeVersion );
+ getLogger().info( "Using following parameters for creating OldArchetype: "
+ + request.getArchetypeArtifactId() + ":" + request.getArchetypeVersion() );
getLogger().info( "----------------------------------------------------------------------------" );
@@ -177,7 +183,7 @@ public class DefaultOldArchetype
{
URL[] urls = new URL[1];
- urls[0] = archetype.toURL();
+ urls[0] = archetypeFile.toURL();
archetypeJarLoader = new URLClassLoader( urls );
@@ -213,9 +219,7 @@ public class DefaultOldArchetype
//
// ----------------------------------------------------------------------
- String basedir = (String) parameters.get( "basedir" );
-
- String artifactId = (String) parameters.get( "artifactId" );
+ String artifactId = request.getArtifactId();
File parentPomFile = new File( basedir, ARCHETYPE_POM );
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java Thu Apr 1 20:56:24 2010
@@ -21,8 +21,9 @@ package org.apache.maven.archetype.old;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import java.util.List;
-import java.util.Map;
+import java.io.File;
+
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
import org.apache.maven.archetype.exception.UnknownArchetype;
/**
@@ -42,8 +43,15 @@ public interface OldArchetype
// TODO: delete this, it probably should be project.getFile instead
String ARCHETYPE_POM = "pom.xml";
- void createArchetype( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion,
- ArtifactRepository archetypeRepository,
- ArtifactRepository localRepository, List remoteRepositories, Map parameters )
+ /**
+ * Download an archetype then create a project from it.
+ */
+ void createArchetype( ArchetypeGenerationRequest request, ArtifactRepository archetypeRepository, String basedir )
throws UnknownArchetype, ArchetypeNotFoundException, ArchetypeDescriptorException, ArchetypeTemplateProcessingException;
+
+ /**
+ * Create a project from an archetype file.
+ */
+ void createArchetype( ArchetypeGenerationRequest request, File archetypeFile, String basedir )
+ throws ArchetypeDescriptorException, ArchetypeTemplateProcessingException;
}
Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java Thu Apr 1 20:56:24 2010
@@ -16,6 +16,7 @@ package org.apache.maven.archetype.old;
* limitations under the License.
*/
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -61,20 +62,6 @@ public class ArchetypeTest
{
FileUtils.deleteDirectory( getTestFile( "target/quickstart" ) );
- Map parameters = new HashMap();
-
- parameters.put( "name", "jason" );
-
- parameters.put( "groupId", "maven" );
-
- parameters.put( "artifactId", "quickstart" );
-
- parameters.put( "version", "1.0-alpha-1-SNAPSHOT" );
-
- parameters.put( "package", "org.apache.maven.quickstart" );
-
- parameters.put( "basedir", getTestFile( "target" ).getAbsolutePath() );
-
// ----------------------------------------------------------------------
// This needs to be encapsulated in a maven test case.
// ----------------------------------------------------------------------
@@ -94,16 +81,34 @@ public class ArchetypeTest
remoteRepositories.add( remoteRepository );
- String archetypeGroupId = "org.apache.maven.archetypes";
- String archetypeArtifactId = "maven-archetype-quickstart";
- String archetypeVersion = "1.0-alpha-1-SNAPSHOT";
- archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, remoteRepository, localRepository,
- remoteRepositories, parameters );
+ ArchetypeGenerationRequest request = new ArchetypeGenerationRequest()
+ .setPackage( "org.apache.maven.quickstart" )
+ .setGroupId( "maven" )
+ .setArtifactId( "quickstart" )
+ .setVersion( "1.0-alpha-1-SNAPSHOT" )
+ .setArchetypeGroupId( "org.apache.maven.archetypes" )
+ .setArchetypeArtifactId( "maven-archetype-quickstart" )
+ .setArchetypeVersion( "1.0-alpha-1-SNAPSHOT" )
+ .setLocalRepository( localRepository )
+ .setRemoteArtifactRepositories( remoteRepositories );
+ //parameters.put( "name", "jason" );
+
+ String basedir = getTestFile( "target" ).getAbsolutePath();
+
+ archetype.createArchetype( request, remoteRepository, basedir );
// ----------------------------------------------------------------------
// Set up the Velocity context
// ----------------------------------------------------------------------
+ Map parameters = new HashMap();
+ parameters.put( "basedir", basedir );
+ parameters.put( "package", request.getPackage() );
+ parameters.put( "packageName", request.getPackage() );
+ parameters.put( "groupId", request.getGroupId() );
+ parameters.put( "artifactId", request.getArtifactId() );
+ parameters.put( "version", request.getVersion() );
+
Context context = new VelocityContext();
for ( Iterator iterator = parameters.keySet().iterator(); iterator.hasNext(); )
@@ -120,8 +125,8 @@ public class ArchetypeTest
// ----------------------------------------------------------------------
ArtifactFactory artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.class.getName() );
- Artifact archetypeArtifact = artifactFactory.createArtifact( archetypeGroupId, archetypeArtifactId,
- archetypeVersion, Artifact.SCOPE_RUNTIME, "jar" );
+ Artifact archetypeArtifact = artifactFactory.createArtifact( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
+ request.getArchetypeVersion(), Artifact.SCOPE_RUNTIME, "jar" );
StringWriter writer = new StringWriter();
Modified: maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java (original)
+++ maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java Thu Apr 1 20:56:24 2010
@@ -19,6 +19,7 @@ package org.apache.maven.archetype.mojos
* under the License.
*/
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
import org.apache.maven.archetype.exception.UnknownArchetype;
import org.apache.maven.archetype.old.OldArchetype;
import org.apache.maven.archetype.old.ArchetypeDescriptorException;
@@ -34,9 +35,7 @@ import org.apache.maven.project.MavenPro
import org.codehaus.plexus.util.StringUtils;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/**
* The archetype creation goal looks for an archetype with a given groupId,
@@ -194,20 +193,6 @@ public class MavenArchetypeMojo
packageName = groupId;
}
- // TODO: context mojo more appropriate?
- Map parameters = new HashMap();
-
- parameters.put( "basedir", basedir );
-
- parameters.put( "package", packageName );
-
- parameters.put( "packageName", packageName );
-
- parameters.put( "groupId", groupId );
-
- parameters.put( "artifactId", artifactId );
-
- parameters.put( "version", version );
List archetypeRemoteRepositories = new ArrayList( pomRemoteRepositories );
@@ -227,9 +212,18 @@ public class MavenArchetypeMojo
try
{
- archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion,
- createRepository( "http://repo1.maven.org/maven2", "central" ), localRepository,
- archetypeRemoteRepositories, parameters );
+ ArchetypeGenerationRequest request = new ArchetypeGenerationRequest()
+ .setPackage( packageName )
+ .setGroupId( groupId )
+ .setArtifactId( artifactId )
+ .setVersion( version )
+ .setArchetypeGroupId( archetypeGroupId )
+ .setArchetypeArtifactId( archetypeArtifactId )
+ .setArchetypeVersion( archetypeVersion )
+ .setLocalRepository( localRepository )
+ .setRemoteArtifactRepositories( archetypeRemoteRepositories );
+
+ archetype.createArchetype( request, createRepository( "http://repo1.maven.org/maven2", "central" ), basedir );
}
catch ( UnknownArchetype e )
{