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/03/11 22:45:02 UTC

svn commit: r636117 - 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: Tue Mar 11 14:45:01 2008
New Revision: 636117

URL: http://svn.apache.org/viewvc?rev=636117&view=rev
Log:
Fix for ARCHETYPE-112.
Use -Darchetype.properties to define the additional properties

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-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
    maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeCreationConfigurator.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=636117&r1=636116&r2=636117&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 Tue Mar 11 14:45:01 2008
@@ -34,7 +34,7 @@
 
     private MavenProject project;
 
-    private File propertyFile;
+//    private File propertyFile;
 
     private List languages = new ArrayList();
 
@@ -78,17 +78,17 @@
         return this;
     }
 
-    public File getPropertyFile()
-    {
-        return propertyFile;
-    }
-
-    public ArchetypeCreationRequest setPropertyFile( File propertyFile )
-    {
-        this.propertyFile = propertyFile;
-
-        return this;
-    }
+//    public File getPropertyFile()
+//    {
+//        return propertyFile;
+//    }
+//
+//    public ArchetypeCreationRequest setPropertyFile( File propertyFile )
+//    {
+//        this.propertyFile = propertyFile;
+//
+//        return this;
+//    }
 
     public List getLanguages()
     {

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=636117&r1=636116&r2=636117&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 Tue Mar 11 14:45:01 2008
@@ -24,7 +24,6 @@
 import org.apache.maven.archetype.ArchetypeCreationRequest;
 import org.apache.maven.archetype.ArchetypeCreationResult;
 import org.apache.maven.archetype.common.ArchetypeFilesResolver;
-import org.apache.maven.archetype.common.ArchetypeRegistryManager;
 import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.archetype.common.PomManager;
 import org.apache.maven.archetype.common.util.FileCharsetDetector;
@@ -84,9 +83,6 @@
     /** @plexus.requirement */
     private PomManager pomManager;
 
-//    /** @plexus.requirement */
-//    private ArchetypeRegistryManager archetypeRegistryManager;
-
     /** @plexus.requirement */
     private MavenProjectBuilder projectBuilder;
 
@@ -95,8 +91,6 @@
     {
         MavenProject project = request.getProject();
 
-//        File propertyFile = request.getPropertyFile();
-
         List languages = request.getLanguages();
 
         List filtereds = request.getFiltereds();
@@ -113,27 +107,52 @@
 
         Properties properties = new Properties();
         Properties configurationProperties = new Properties();
+        if( request.getProperties() != null )
+        {
+            properties.putAll( request.getProperties() );
+            configurationProperties.putAll( request.getProperties() );
+        }
 
-        properties.setProperty( Constants.GROUP_ID, project.getGroupId() );
-        configurationProperties.setProperty( Constants.GROUP_ID, project.getGroupId() );
+        if( !properties.containsKey( Constants.GROUP_ID ) )
+        {
+            properties.setProperty( Constants.GROUP_ID, project.getGroupId() );
+        }
+        configurationProperties.setProperty(
+            Constants.GROUP_ID,
+            properties.getProperty( Constants.GROUP_ID )
+        );
 
-        properties.setProperty( Constants.ARTIFACT_ID, project.getArtifactId() );
-        configurationProperties.setProperty( Constants.ARTIFACT_ID, project.getArtifactId() );
+        if( !properties.containsKey( Constants.ARTIFACT_ID ) )
+        {
+            properties.setProperty( Constants.ARTIFACT_ID, project.getArtifactId() );
+        }
+        configurationProperties.setProperty(
+            Constants.ARTIFACT_ID,
+            properties.getProperty( Constants.ARTIFACT_ID )
+        );
 
-        properties.setProperty( Constants.VERSION, project.getVersion() );
-        configurationProperties.setProperty( Constants.VERSION, project.getVersion() );
+        if( !properties.containsKey( Constants.VERSION ) )
+        {
+            properties.setProperty( Constants.VERSION, project.getVersion() );
+        }
+        configurationProperties.setProperty(
+            Constants.VERSION,
+            properties.getProperty( Constants.VERSION )
+        );
 
-        if ( request.getPackageName() != null )
+        if( request.getPackageName() != null )
         {
             properties.setProperty( Constants.PACKAGE, request.getPackageName() );
-            configurationProperties.setProperty( Constants.PACKAGE, request.getPackageName() );
         }
-        else
+        else if( !properties.containsKey( Constants.PACKAGE ) )
         {
             properties.setProperty( Constants.PACKAGE, project.getGroupId() );
-            configurationProperties.setProperty( Constants.PACKAGE, project.getGroupId() );
         }
-
+        configurationProperties.setProperty(
+            Constants.PACKAGE,
+            properties.getProperty( Constants.PACKAGE )
+        );
+           
         File basedir = project.getBasedir();
         File generatedSourcesDirectory =
             FileUtils.resolveFile( basedir, getGeneratedSourcesDirectory() );
@@ -245,10 +264,9 @@
         // TODO ensure reversedproperties contains NO dotted properties
         Properties reverseProperties = getRequiredProperties( archetypeDescriptor, properties );
         reverseProperties.remove( Constants.GROUP_ID );
-
+        
         // TODO ensure pomReversedProperties contains NO dotted properties
         Properties pomReversedProperties = getRequiredProperties( archetypeDescriptor, properties );
-
         pomReversedProperties.remove( Constants.PACKAGE );
 
         String packageName = configurationProperties.getProperty( Constants.PACKAGE );
@@ -909,7 +927,7 @@
         getLogger().debug(
             "Creating Archetype/Module files from " + basedir + " to " + archetypeFilesDirectory
         );
-
+        
         Iterator iterator = fileSets.iterator();
 
         while ( iterator.hasNext() )
@@ -1572,7 +1590,7 @@
 
                 if ( initialcontent.indexOf( "${" + property + "}" ) > 0 )
                 {
-                    getLogger().warn( "OldArchetype uses ${" + property +
+                    getLogger().warn( "Archetype uses ${" + property +
                         "} for internal processing, but file " + inputFile +
                         " contains this property already" );
                 }
@@ -1619,7 +1637,7 @@
         reversedProperties.remove( Constants.ARCHETYPE_GROUP_ID );
         reversedProperties.remove( Constants.ARCHETYPE_ARTIFACT_ID );
         reversedProperties.remove( Constants.ARCHETYPE_VERSION );
-
+        
         return reversedProperties;
     }
 
@@ -2060,7 +2078,7 @@
     }
 
     private String getReversedContent( String content,
-                                       final Properties properties )
+                                       Properties properties )
     {
         String result = content;
         Iterator propertyIterator = properties.keySet().iterator();

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=636117&r1=636116&r2=636117&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 Tue Mar 11 14:45:01 2008
@@ -133,7 +133,7 @@
         ArchetypeCreationRequest request = new ArchetypeCreationRequest()
             .setProject( mavenProject )
             .setPackageName( p.getProperty( Constants.PACKAGE ) )
-            .setPropertyFile( propertyFile )
+            .setProperties( p )
             .setLanguages( languages )
             .setFiltereds( filtereds )
             .setDefaultEncoding( "UTF-8" )
@@ -144,6 +144,11 @@
         ArchetypeCreationResult result = new ArchetypeCreationResult();
 
         instance.createArchetype( request, result );
+        
+        if(result.getCause()!=null){
+            result.getCause().printStackTrace();
+        }
+        assertNull( result.getCause() );
 
         File template;
 

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=636117&r1=636116&r2=636117&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 Tue Mar 11 14:45:01 2008
@@ -19,7 +19,6 @@
 
 package org.apache.maven.archetype.mojos;
 
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import org.apache.maven.archetype.ArchetypeCreationRequest;
 import org.apache.maven.archetype.ArchetypeCreationResult;
@@ -136,7 +135,7 @@
     /**
      * The property file that holds the plugin configuration.
      *
-     * @parameter default-value="target/archetype.properties" expression="${archetype.properties}"
+     * @parameter expression="${archetype.properties}"
      */
     private File propertyFile;
 
@@ -183,11 +182,11 @@
                     archetypeFilteredExtentions,
                     propertyFile
                 );
-
+            
             ArchetypeCreationRequest request = new ArchetypeCreationRequest()
                 .setProject( project )
                 /*Used when in interactive mode*/
-                .setPropertyFile( propertyFile )
+                .setProperties( properties )
                 .setLanguages( languages )
                 /*Should be refactored to use some ant patterns*/
                 .setFiltereds( filtereds )

Modified: maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeCreationConfigurator.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeCreationConfigurator.java?rev=636117&r1=636116&r2=636117&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeCreationConfigurator.java (original)
+++ maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeCreationConfigurator.java Tue Mar 11 14:45:01 2008
@@ -240,7 +240,7 @@
             }
         } // end if
 
-        return archetypeConfiguration.toProperties();
+        return removeDottedProperties(archetypeConfiguration.toProperties());
     }
 
     private ArchetypeDefinition defineDefaultArchetype(
@@ -399,18 +399,28 @@
             getLogger().debug( "archetype.properties does not exist" );
         }
 
-//        Iterator commandLinePropertiesIterator =
-//            new ArrayList( commandLineProperties.keySet() ).iterator();
-//        while ( commandLinePropertiesIterator.hasNext() )
-//        {
-//            String propertyKey = (String) commandLinePropertiesIterator.next();
-//
-//            properties.setProperty(
-//                propertyKey,
-//                commandLineProperties.getProperty( propertyKey )
-//            );
-//        }
+        return properties;
+    }
 
+    private Properties removeDottedProperties(Properties properties) {
+        List toRemove=new ArrayList(0);
+        Iterator keys = properties.keySet().iterator();
+        while (keys.hasNext())
+        {
+            String key = (String) keys.next();
+            if (key.indexOf(".")>=0)
+            {
+                toRemove.add(key);
+            }
+        }
+        Iterator keysToRemove =toRemove.iterator();
+        while(keysToRemove.hasNext())
+        {
+            String key = (String) keysToRemove.next();
+            properties.remove(key);
+        }
         return properties;
+            
+        
     }
 }