You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ra...@apache.org on 2008/10/15 16:05:03 UTC
svn commit: r704921 - in /maven/archetype/trunk:
archetype-common/src/main/java/org/apache/maven/archetype/
archetype-common/src/main/java/org/apache/maven/archetype/creator/
archetype-common/src/test/java/org/apache/maven/archetype/creator/
archetype-...
Author: rafale
Date: Wed Oct 15 07:05:03 2008
New Revision: 704921
URL: http://svn.apache.org/viewvc?rev=704921&view=rev
Log:
Added function to call a inner lifecycle on the created archetype at the end of the create-from-project process
Added:
maven/archetype/trunk/archetype-common/src/test/resources/META-INF/
maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/
maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/org.apache.maven.archetype/
maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/org.apache.maven.archetype/archetype-common/
maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/org.apache.maven.archetype/archetype-common/pom.properties (with props)
Modified:
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java?rev=704921&r1=704920&r2=704921&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeCreationRequest.java Wed Oct 15 07:05:03 2008
@@ -54,6 +54,18 @@
private Properties properties;
+ private String postPhase;
+
+ public String getPostPhase() {
+ return postPhase;
+ }
+
+ public ArchetypeCreationRequest setPostPhase(String postPhase) {
+ this.postPhase = postPhase;
+
+ return this;
+ }
+
public ArtifactRepository getLocalRepository()
{
return localRepository;
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java?rev=704921&r1=704920&r2=704921&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java Wed Oct 15 07:05:03 2008
@@ -19,8 +19,6 @@
package org.apache.maven.archetype.creator;
-import org.apache.commons.collections.BidiMap;
-import org.apache.commons.collections.bidimap.DualTreeBidiMap;
import org.apache.maven.archetype.ArchetypeCreationRequest;
import org.apache.maven.archetype.ArchetypeCreationResult;
import org.apache.maven.archetype.common.ArchetypeFilesResolver;
@@ -64,6 +62,7 @@
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -71,6 +70,10 @@
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import org.apache.maven.shared.invoker.DefaultInvocationRequest;
+import org.apache.maven.shared.invoker.DefaultInvoker;
+import org.apache.maven.shared.invoker.InvocationRequest;
+import org.apache.maven.shared.invoker.Invoker;
/** @plexus.component role-hint="fileset" */
public class FilesetArchetypeCreator
@@ -90,19 +93,12 @@
ArchetypeCreationResult result )
{
MavenProject project = request.getProject();
-
List languages = request.getLanguages();
-
List filtereds = request.getFiltereds();
-
String defaultEncoding = request.getDefaultEncoding();
-
boolean preserveCData = request.isPreserveCData();
-
boolean keepParent = request.isKeepParent();
-
boolean partialArchetype = request.isPartialArchetype();
-
ArtifactRepository localRepository = request.getLocalRepository();
Properties properties = new Properties();
@@ -238,25 +234,18 @@
}
File archetypeResourcesDirectory = FileUtils.resolveFile( generatedSourcesDirectory, getTemplateOutputDirectory() );
-
archetypeResourcesDirectory.mkdirs();
File archetypeFilesDirectory = FileUtils.resolveFile( archetypeResourcesDirectory, Constants.ARCHETYPE_RESOURCES );
-
archetypeFilesDirectory.mkdirs();
-
getLogger().debug( "Archetype's files output directory " + archetypeFilesDirectory );
File archetypeDescriptorFile = FileUtils.resolveFile( archetypeResourcesDirectory, Constants.ARCHETYPE_DESCRIPTOR );
-
archetypeDescriptorFile.getParentFile().mkdirs();
ArchetypeDescriptor archetypeDescriptor = new ArchetypeDescriptor();
-
archetypeDescriptor.setName( project.getArtifactId() );
-
getLogger().debug( "Starting archetype's descriptor " + project.getArtifactId() );
-
archetypeDescriptor.setPartial( partialArchetype );
addRequiredProperties( archetypeDescriptor, properties );
@@ -275,10 +264,7 @@
{
Model pom = pomManager.readPom( FileUtils.resolveFile( basedir, Constants.ARCHETYPE_POM ) );
- registerProject( pom );
-
List fileNames = resolveFileNames( pom, basedir );
-
getLogger().debug( "Scanned for files " + fileNames.size() );
Iterator names = fileNames.iterator();
@@ -289,13 +275,11 @@
}
List filesets = resolveFileSets( packageName, fileNames, languages, filtereds, defaultEncoding );
-
getLogger().debug( "Resolved filesets for " + archetypeDescriptor.getName() );
archetypeDescriptor.setFileSets( filesets );
createArchetypeFiles( reverseProperties, filesets, packageName, basedir, archetypeFilesDirectory, defaultEncoding );
-
getLogger().debug( "Created files for " + archetypeDescriptor.getName() );
setParentArtifactId(
@@ -313,7 +297,6 @@
{
moduleIdDirectory = StringUtils.replace( moduleId, rootArtifactId, "__rootArtifactId__" );
}
-
getLogger().debug( "Creating module " + moduleId );
ModuleDescriptor moduleDescriptor =
@@ -347,7 +330,6 @@
configurationProperties.getProperty( Constants.ARTIFACT_ID ),
archetypeFilesDirectory, basedir,
pomReversedProperties, preserveCData, keepParent );
-
getLogger().debug( "Created Archetype " + archetypeDescriptor.getName() + " pom" );
ArchetypeDescriptorXpp3Writer writer = new ArchetypeDescriptorXpp3Writer();
@@ -366,6 +348,13 @@
getLogger().debug(
"Archetype " + archetypeDescriptor.getName() + " old descriptor written"
);
+
+ InvocationRequest internalRequest = new DefaultInvocationRequest();
+ internalRequest.setPomFile( archetypePomFile );
+ internalRequest.setGoals( Collections.singletonList( request.getPostPhase() ) );
+
+ Invoker invoker = new DefaultInvoker();
+ invoker.execute(internalRequest);
}
catch ( Exception e )
{
@@ -511,19 +500,11 @@
return getGeneratedSourcesDirectory() + File.separator + Constants.ARCHETYPE_POM;
}
- private int id = 0;
- private BidiMap registeredProjects = new DualTreeBidiMap();
-
private String getPackageInPathFormat( String aPackage )
{
return StringUtils.replace( aPackage, ".", "/" );
}
- private void registerProject( Model pom )
- {
- registeredProjects.put( new Integer( id++ ), pom.getId() );
- }
-
private void rewriteReferences( Model pom,
String rootArtifactId,
String groupId )
@@ -1044,10 +1025,7 @@
pom.setModules( null );
pom.setGroupId( "${" + Constants.GROUP_ID + "}" );
pom.setArtifactId( "${" + Constants.ARTIFACT_ID + "}" );
- if ( pom.getVersion() != null )
- {
- pom.setVersion( "${" + Constants.VERSION + "}" );
- }
+ pom.setVersion( "${" + Constants.VERSION + "}" );
rewriteReferences( pom, pomReversedProperties.getProperty( Constants.ARTIFACT_ID ),
pomReversedProperties.getProperty( Constants.GROUP_ID ) );
@@ -1219,8 +1197,6 @@
archetypeDescriptor.setId( replacementId );
archetypeDescriptor.setDir( moduleDirectory );
- registerProject( pom );
-
setArtifactId( reverseProperties, pom.getArtifactId() );
List fileNames = resolveFileNames( pom, basedir );
Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java?rev=704921&r1=704920&r2=704921&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java Wed Oct 15 07:05:03 2008
@@ -139,7 +139,8 @@
.setDefaultEncoding( "UTF-8" )
.setPartialArchetype( false )
.setPreserveCData( false )
- .setKeepParent( false );
+ .setKeepParent( false )
+ .setPostPhase( "package" );
ArchetypeCreationResult result = new ArchetypeCreationResult();
Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java?rev=704921&r1=704920&r2=704921&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java Wed Oct 15 07:05:03 2008
@@ -105,7 +105,8 @@
Properties properties = new Properties();
properties.setProperty("someProperty", "someValue");
ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ).
- setLocalRepository( localRepository ).setProperties(properties);
+ setLocalRepository( localRepository ).setProperties(properties)
+ .setPostPhase( "package" );
ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java?rev=704921&r1=704920&r2=704921&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java Wed Oct 15 07:05:03 2008
@@ -103,7 +103,8 @@
MavenProject project = projectBuilder.build( pom, localRepository, null );
ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ).
- setLocalRepository( localRepository );
+ setLocalRepository( localRepository )
+ .setPostPhase( "package" );
ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java?rev=704921&r1=704920&r2=704921&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java Wed Oct 15 07:05:03 2008
@@ -108,6 +108,7 @@
setLocalRepository( localRepository )
.setFiltereds(Constants.DEFAULT_FILTERED_EXTENSIONS)
.setLanguages(Constants.DEFAULT_LANGUAGES)
+ .setPostPhase( "package" )
;
ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
Added: maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/org.apache.maven.archetype/archetype-common/pom.properties
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/org.apache.maven.archetype/archetype-common/pom.properties?rev=704921&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/org.apache.maven.archetype/archetype-common/pom.properties (added)
+++ maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/org.apache.maven.archetype/archetype-common/pom.properties Wed Oct 15 07:05:03 2008
@@ -0,0 +1 @@
+version=${project.version}
\ No newline at end of file
Propchange: maven/archetype/trunk/archetype-common/src/test/resources/META-INF/maven/org.apache.maven.archetype/archetype-common/pom.properties
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java?rev=704921&r1=704920&r2=704921&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java (original)
+++ maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java Wed Oct 15 07:05:03 2008
@@ -138,6 +138,14 @@
* @parameter expression="${archetype.properties}"
*/
private File propertyFile;
+
+ /**
+ * The property telling which phase call on the generated archetype.
+ * Interresting values are: package, instal and deploy
+ *
+ * @parameter expression="${archetype.postPhase}" default-value="package"
+ */
+ private String archetypePostPhase;
/** @parameter expression="${basedir}/target" */
private File outputDirectory;
@@ -198,7 +206,8 @@
.setArchetypeRegistryFile( archetypeRegistryFile )
.setLocalRepository( localRepository )
/*this should be resolved and asked for user to verify*/
- .setPackageName(packageName);
+ .setPackageName(packageName)
+ .setPostPhase( archetypePostPhase );
ArchetypeCreationResult result = archetype.createArchetypeFromProject( request );