Do not change request content with extra properties.
Avoid dirtying the request content with extra properties. Instead create a separate holder
to keep track of the request properties and the system properties.
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
index 11e7383..0b28263 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
@@ -64,6 +64,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -215,14 +216,17 @@
Binding binding = new Binding();
+ final Properties archetypeGeneratorProperties = new Properties();
+ archetypeGeneratorProperties.putAll( System.getProperties() );
+
if ( request.getProperties() != null )
{
- request.getProperties().putAll( System.getProperties() );
+ archetypeGeneratorProperties.putAll( request.getProperties() );
+ }
- for ( Map.Entry<Object, Object> entry : request.getProperties().entrySet() )
- {
- binding.setVariable( entry.getKey().toString(), entry.getValue() );
- }
+ for ( Map.Entry<Object, Object> entry : archetypeGeneratorProperties.entrySet() )
+ {
+ binding.setVariable( entry.getKey().toString(), entry.getValue() );
}
GroovyShell shell = new GroovyShell( binding );