You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2017/01/24 19:20:08 UTC
maven-archetype git commit: [ARCHETYPE-509] RequiredProperty not set
in batch mode this closes #14 Signed-off-by: rfscholte
Repository: maven-archetype
Updated Branches:
refs/heads/master 8763512e7 -> 9857d346b
[ARCHETYPE-509] RequiredProperty not set in batch mode
this closes #14
Signed-off-by: rfscholte <rf...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/maven-archetype/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-archetype/commit/9857d346
Tree: http://git-wip-us.apache.org/repos/asf/maven-archetype/tree/9857d346
Diff: http://git-wip-us.apache.org/repos/asf/maven-archetype/diff/9857d346
Branch: refs/heads/master
Commit: 9857d346b7ec300cd7834cd4e3e6248770b20a8d
Parents: 8763512
Author: Max Norris <mn...@ancestry.com>
Authored: Tue Sep 13 23:20:17 2016 +0200
Committer: rfscholte <rf...@apache.org>
Committed: Tue Jan 24 20:19:41 2017 +0100
----------------------------------------------------------------------
.../DefaultArchetypeGenerationConfigurator.java | 8 +-
...ultArchetypeGenerationConfigurator2Test.java | 102 +++++++++++++++++++
2 files changed, 107 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/9857d346/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
----------------------------------------------------------------------
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
index cb0fb3a..bd35170 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
@@ -150,10 +150,10 @@ public class DefaultArchetypeGenerationConfigurator
throw new ArchetypeGenerationConfigurationFailure( "The defined artifact is not an archetype" );
}
+ Context context = new VelocityContext();
if ( interactiveMode.booleanValue() )
{
boolean confirmed = false;
- Context context = new VelocityContext();
context.put( Constants.GROUP_ID, ad.getGroupId() );
context.put( Constants.ARTIFACT_ID, ad.getArtifactId() );
context.put( Constants.VERSION, ad.getVersion() );
@@ -253,8 +253,10 @@ public class DefaultArchetypeGenerationConfigurator
if ( !archetypeConfiguration.isConfigured( requiredProperty ) && (
archetypeConfiguration.getDefaultValue( requiredProperty ) != null ) )
{
- archetypeConfiguration.setProperty( requiredProperty, archetypeConfiguration.getDefaultValue(
- requiredProperty ) );
+ String value = archetypeConfiguration.getDefaultValue( requiredProperty );
+ value = getTransitiveDefaultValue( value, archetypeConfiguration, requiredProperty, context );
+ archetypeConfiguration.setProperty( requiredProperty, value );
+ context.put( requiredProperty, value );
}
}
http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/9857d346/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
----------------------------------------------------------------------
diff --git a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
new file mode 100644
index 0000000..9393414
--- /dev/null
+++ b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
@@ -0,0 +1,102 @@
+package org.apache.maven.archetype.ui.generation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Properties;
+
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
+import org.apache.maven.archetype.common.ArchetypeArtifactManager;
+import org.apache.maven.archetype.metadata.ArchetypeDescriptor;
+import org.apache.maven.archetype.metadata.RequiredProperty;
+import org.codehaus.plexus.PlexusTestCase;
+import org.easymock.MockControl;
+
+/**
+ * Tests the ability to use variables in default fields in batch mode
+ */
+public class DefaultArchetypeGenerationConfigurator2Test
+ extends PlexusTestCase
+{
+ private DefaultArchetypeGenerationConfigurator configurator;
+
+ public void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ configurator = (DefaultArchetypeGenerationConfigurator) lookup( ArchetypeGenerationConfigurator.ROLE );
+
+ MockControl control = MockControl.createControl( ArchetypeArtifactManager.class );
+ control.setDefaultMatcher( MockControl.ALWAYS_MATCHER );
+
+ ArchetypeArtifactManager manager = (ArchetypeArtifactManager) control.getMock();
+ manager.exists( "archetypeGroupId", "archetypeArtifactId", "archetypeVersion", null, null, null );
+ control.setReturnValue( true );
+ manager.isFileSetArchetype( "archetypeGroupId", "archetypeArtifactId", "archetypeVersion", null, null, null );
+ control.setReturnValue( true );
+ manager.isOldArchetype( "archetypeGroupId", "archetypeArtifactId", "archetypeVersion", null, null, null );
+ control.setReturnValue( false );
+ manager.getFileSetArchetypeDescriptor( "archetypeGroupId", "archetypeArtifactId", "archetypeVersion", null,
+ null, null );
+ ArchetypeDescriptor descriptor = new ArchetypeDescriptor();
+ RequiredProperty groupId = new RequiredProperty();
+ groupId.setKey( "groupId" );
+ groupId.setDefaultValue( "com.example.${groupName}" );
+ RequiredProperty artifactId = new RequiredProperty();
+ artifactId.setKey( "artifactId" );
+ artifactId.setDefaultValue( "${serviceName}" );
+ RequiredProperty thePackage = new RequiredProperty();
+ thePackage.setKey( "package" );
+ thePackage.setDefaultValue( "com.example.${groupName}" );
+ RequiredProperty groupName = new RequiredProperty();
+ groupName.setKey( "groupName" );
+ groupName.setDefaultValue( null );
+ RequiredProperty serviceName = new RequiredProperty();
+ serviceName.setKey( "serviceName" );
+ serviceName.setDefaultValue( null );
+ descriptor.addRequiredProperty( groupId );
+ descriptor.addRequiredProperty( artifactId );
+ descriptor.addRequiredProperty( thePackage );
+ descriptor.addRequiredProperty( groupName );
+ descriptor.addRequiredProperty( serviceName );
+ control.setReturnValue( descriptor );
+ control.replay();
+ configurator.setArchetypeArtifactManager( manager );
+ }
+
+ public void testJIRA_509_FileSetArchetypeDefaultsWithVariables() throws Exception
+ {
+ ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
+ request.setArchetypeGroupId( "archetypeGroupId" );
+ request.setArchetypeArtifactId( "archetypeArtifactId" );
+ request.setArchetypeVersion( "archetypeVersion" );
+ Properties properties = new Properties();
+ properties.setProperty( "groupName", "myGroupName" );
+ properties.setProperty( "serviceName", "myServiceName" );
+
+ configurator.configureArchetype( request, Boolean.FALSE, properties );
+
+ assertEquals( "com.example.myGroupName", request.getGroupId() );
+ assertEquals( "myServiceName", request.getArtifactId() );
+ assertEquals( "1.0-SNAPSHOT", request.getVersion() );
+ assertEquals( "com.example.myGroupName", request.getPackage() );
+ }
+
+}
\ No newline at end of file