Author: jvanzyl Date: Sun Sep 23 23:11:46 2007 New Revision: 578669 URL: http://svn.apache.org/viewvc?rev=578669&view=rev Log: o remove the lifecycle from the project to archetype mojo o remove all the mojos that made up the lifecycle now that we are running a sequence of calls to archetype itself.
Removed: maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/ConfigureCreationMojo.java maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/ConfigureGenerationMojo.java maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeMojo.java maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/GenerateProjectMojo.java maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/SelectArchetypeMojo.java maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/resources/META-INF/maven/ Modified: maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/AddArchetypeMetadataMojo.java maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java Modified: maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/AddArchetypeMetadataMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/AddArchetypeMetadataMojo.java?rev=578669&r1=578668&r2=578669&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/AddArchetypeMetadataMojo.java (original) +++ maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/AddArchetypeMetadataMojo.java Sun Sep 23 23:11:46 2007 @@ -84,7 +84,6 @@ { if ( goalPrefix == null ) { -// goalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId( project.getArtifactId () ); goalPrefix = project.getArtifactId(); } Modified: maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java?rev=578669&r1=578668&r2=578669&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java (original) +++ maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java Sun Sep 23 23:11:46 2007 @@ -22,30 +22,164 @@ import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.archetype.common.ArchetypeRegistryManager; +import org.apache.maven.archetype.creator.ArchetypeCreationConfigurator; +import org.apache.maven.archetype.creator.ArchetypeCreator; +import org.apache.maven.project.MavenProject; + +import java.util.List; +import java.io.File; /** * Creates sample archetype from current project. - * It delegates to the two mojos of the create lifecycle: configure-creation, create-archetype * * @author rafale * @requiresProject true * @goal create-from-project - * @execute phase="generate-sources" lifecycle="create" + * @execute phase="generate-sources" */ public class CreateArchetypeFromProjectMojo extends AbstractMojo { + /** @component */ + ArchetypeCreationConfigurator configurator; + + /** + * Enable the interactive mode to define the archetype from the project. + * + * @parameter expression="${interactive}" default-value="false" + */ + private boolean interactive; + + /** @component */ + ArchetypeRegistryManager archetypeRegistryManager; + + /** @component role-hint="fileset" */ + ArchetypeCreator creator; + + /** + * File extensions which are checked for project's text files (vs binary files). + * + * @parameter expression="${archetype.filteredExtentions}" + */ + private String archetypeFilteredExtentions; + + /** + * Directory names which are checked for project's sources main package. + * + * @parameter expression="${archetype.languages}" + */ + private String archetypeLanguages; + + /** + * The location of the registry file. + * + * @parameter expression="${user.home}/.m2/archetype.xml" + */ + private File archetypeRegistryFile; + /** - * dummy parameter used to fulfill the maven-plugin-plugin + * Velocity templates encoding. * - * @parameter + * @parameter default-value="UTF-8" expression="${archetype.encoding}" */ - private String dummy; + private String defaultEncoding; + + /** + * Ignore the replica creation. + * + * @parameter expression="${archetype.ignoreReplica}" + */ + private boolean ignoreReplica = true; + + /** + * Create a partial archetype. + * + * @parameter expression="${archetype.partialArchetype}" + */ + private boolean partialArchetype = false; + + /** + * Create pom's velocity templates with CDATA preservasion. This uses the String replaceAll + * method and risk to have some overly replacement capabilities (beware of '1.0' value). + * + * @parameter expression="${archetype.preserveCData}" + */ + private boolean preserveCData = false; + + /** + * Poms in archetype are created with their initial parent. + * This property is ignored when preserveCData is true. + * + * @parameter expression="${archetype.keepParent}" + */ + private boolean keepParent = true; + + /** + * The maven Project to create an archetype from. + * + * @parameter expression="${project}" + * @required + * @readonly + */ + private MavenProject project; + + /** + * The property file that holds the plugin configuration. + * + * @parameter default-value="target/archetype.properties" expression="${archetype.properties}" + */ + private File propertyFile; + public void execute() throws MojoExecutionException, MojoFailureException { + + try + { + if ( propertyFile != null ) + { + propertyFile.getParentFile().mkdirs(); + } + + List languages = + archetypeRegistryManager.getLanguages( archetypeLanguages, archetypeRegistryFile ); + + configurator.configureArchetypeCreation( + project, + new Boolean( interactive ), + System.getProperties(), + propertyFile, + languages + ); + + List filtereds = + archetypeRegistryManager.getFilteredExtensions( + archetypeFilteredExtentions, + archetypeRegistryFile + ); + + creator.createArchetype( + project, + propertyFile, + languages, + filtereds, + defaultEncoding, + ignoreReplica, + preserveCData, + keepParent, + partialArchetype, + archetypeRegistryFile + ); + + getLog().info( "Archetype created in target/generated-sources/archetypeng" ); + } + catch ( Exception ex ) + { + throw new MojoExecutionException( ex.getMessage(), ex ); + } } } Modified: maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java?rev=578669&r1=578668&r2=578669&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java (original) +++ maven/sandbox/trunk/archetypeng/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java Sun Sep 23 23:11:46 2007 @@ -35,7 +35,6 @@ import org.apache.maven.shared.invoker.InvocationRequest; import org.apache.maven.shared.invoker.Invoker; import org.apache.maven.shared.invoker.MavenInvocationException; -import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.PropertyUtils; import org.codehaus.plexus.util.StringUtils;