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;
 


Reply via email to