Author: jdcasey
Date: Fri Mar 9 15:49:22 2007
New Revision: 516607
URL: http://svn.apache.org/viewvc?view=rev&rev=516607
Log:
unit tests for the LegacyLifecycleMappingParser.
Modified:
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParser.java
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParserTest.java
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/resources/META-INF/plexus/components.xml
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo
Modified:
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParser.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParser.java?view=diff&rev=516607&r1=516606&r2=516607
==============================================================================
---
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParser.java
(original)
+++
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParser.java
Fri Mar 9 15:49:22 2007
@@ -8,6 +8,7 @@
import org.apache.maven.lifecycle.model.Phase;
import org.apache.maven.lifecycle.model.SiteBinding;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -29,15 +30,15 @@
if ( "clean".equals( lifecycle.getId() ) )
{
- bindings.setCleanBinding( parseCleanBindings(
lifecycle.getDefaultPhases() ) );
+ bindings.setCleanBinding( parseCleanBindings(
lifecycle.getDefaultPhases(), Collections.EMPTY_LIST ) );
}
else if ( "site".equals( lifecycle.getId() ) )
{
- bindings.setSiteBinding( parseSiteBindings(
lifecycle.getDefaultPhases() ) );
+ bindings.setSiteBinding( parseSiteBindings(
lifecycle.getDefaultPhases(), Collections.EMPTY_LIST ) );
}
else if ( "default".equals( lifecycle.getId() ) )
{
- bindings.setBuildBinding( parseBuildBindings(
lifecycle.getDefaultPhases() ) );
+ bindings.setBuildBinding( parseBuildBindings(
lifecycle.getDefaultPhases(), Collections.EMPTY_LIST ) );
}
else
{
@@ -55,67 +56,67 @@
{
LifecycleBindings bindings = new LifecycleBindings();
bindings.setPackaging( packaging );
-
- bindings.setCleanBinding( parseCleanBindings( mapping.getPhases(
"clean" ) ) );
- bindings.setBuildBinding( parseBuildBindings( mapping.getPhases(
"default" ) ) );
- bindings.setSiteBinding( parseSiteBindings( mapping.getPhases( "site"
) ) );
+
+ bindings.setCleanBinding( parseCleanBindings( mapping.getPhases(
"clean" ), mapping.getOptionalMojos( "clean" ) ) );
+ bindings.setBuildBinding( parseBuildBindings( mapping.getPhases(
"default" ), mapping.getOptionalMojos( "default" ) ) );
+ bindings.setSiteBinding( parseSiteBindings( mapping.getPhases( "site"
), mapping.getOptionalMojos( "site" ) ) );
LifecycleUtils.setOrigin( bindings, "Maven core" );
return bindings;
}
- private static BuildBinding parseBuildBindings( Map phases )
+ private static BuildBinding parseBuildBindings( Map phases, List
optionalKeys )
throws LifecycleSpecificationException
{
BuildBinding binding = new BuildBinding();
if ( phases != null )
{
- binding.setValidate( parsePhaseBindings( (String) phases.get(
"validate" ) ) );
- binding.setInitialize( parsePhaseBindings( (String) phases.get(
"initialize" ) ) );
- binding.setGenerateSources( parsePhaseBindings( (String)
phases.get( "generate-sources" ) ) );
- binding.setProcessSources( parsePhaseBindings( (String)
phases.get( "process-sources" ) ) );
- binding.setGenerateResources( parsePhaseBindings( (String)
phases.get( "generate-resources" ) ) );
- binding.setProcessResources( parsePhaseBindings( (String)
phases.get( "process-resources" ) ) );
- binding.setCompile( parsePhaseBindings( (String) phases.get(
"compile" ) ) );
- binding.setProcessClasses( parsePhaseBindings( (String)
phases.get( "process-classes" ) ) );
- binding.setGenerateTestSources( parsePhaseBindings( (String)
phases.get( "generate-test-sources" ) ) );
- binding.setProcessTestSources( parsePhaseBindings( (String)
phases.get( "process-test-sources" ) ) );
- binding.setGenerateTestResources( parsePhaseBindings( (String)
phases.get( "generate-test-resources" ) ) );
- binding.setProcessTestResources( parsePhaseBindings( (String)
phases.get( "process-test-resources" ) ) );
- binding.setTestCompile( parsePhaseBindings( (String) phases.get(
"test-compile" ) ) );
- binding.setProcessTestClasses( parsePhaseBindings( (String)
phases.get( "process-test-classes" ) ) );
- binding.setTest( parsePhaseBindings( (String) phases.get( "test" )
) );
- binding.setPreparePackage( parsePhaseBindings( (String)
phases.get( "prepare-package" ) ) );
- binding.setCreatePackage( parsePhaseBindings( (String) phases.get(
"package" ) ) );
- binding.setPreIntegrationTest( parsePhaseBindings( (String)
phases.get( "pre-integration-test" ) ) );
- binding.setIntegrationTest( parsePhaseBindings( (String)
phases.get( "integration-test" ) ) );
- binding.setPostIntegrationTest( parsePhaseBindings( (String)
phases.get( "post-integration-test" ) ) );
- binding.setVerify( parsePhaseBindings( (String) phases.get(
"verify" ) ) );
- binding.setInstall( parsePhaseBindings( (String) phases.get(
"install" ) ) );
- binding.setDeploy( parsePhaseBindings( (String) phases.get(
"deploy" ) ) );
+ binding.setValidate( parsePhaseBindings( (String) phases.get(
"validate" ), optionalKeys ) );
+ binding.setInitialize( parsePhaseBindings( (String) phases.get(
"initialize" ), optionalKeys ) );
+ binding.setGenerateSources( parsePhaseBindings( (String)
phases.get( "generate-sources" ), optionalKeys ) );
+ binding.setProcessSources( parsePhaseBindings( (String)
phases.get( "process-sources" ), optionalKeys ) );
+ binding.setGenerateResources( parsePhaseBindings( (String)
phases.get( "generate-resources" ), optionalKeys ) );
+ binding.setProcessResources( parsePhaseBindings( (String)
phases.get( "process-resources" ), optionalKeys ) );
+ binding.setCompile( parsePhaseBindings( (String) phases.get(
"compile" ), optionalKeys ) );
+ binding.setProcessClasses( parsePhaseBindings( (String)
phases.get( "process-classes" ), optionalKeys ) );
+ binding.setGenerateTestSources( parsePhaseBindings( (String)
phases.get( "generate-test-sources" ), optionalKeys ) );
+ binding.setProcessTestSources( parsePhaseBindings( (String)
phases.get( "process-test-sources" ), optionalKeys ) );
+ binding.setGenerateTestResources( parsePhaseBindings( (String)
phases.get( "generate-test-resources" ), optionalKeys ) );
+ binding.setProcessTestResources( parsePhaseBindings( (String)
phases.get( "process-test-resources" ), optionalKeys ) );
+ binding.setTestCompile( parsePhaseBindings( (String) phases.get(
"test-compile" ), optionalKeys ) );
+ binding.setProcessTestClasses( parsePhaseBindings( (String)
phases.get( "process-test-classes" ), optionalKeys ) );
+ binding.setTest( parsePhaseBindings( (String) phases.get( "test"
), optionalKeys ) );
+ binding.setPreparePackage( parsePhaseBindings( (String)
phases.get( "prepare-package" ), optionalKeys ) );
+ binding.setCreatePackage( parsePhaseBindings( (String) phases.get(
"package" ), optionalKeys ) );
+ binding.setPreIntegrationTest( parsePhaseBindings( (String)
phases.get( "pre-integration-test" ), optionalKeys ) );
+ binding.setIntegrationTest( parsePhaseBindings( (String)
phases.get( "integration-test" ), optionalKeys ) );
+ binding.setPostIntegrationTest( parsePhaseBindings( (String)
phases.get( "post-integration-test" ), optionalKeys ) );
+ binding.setVerify( parsePhaseBindings( (String) phases.get(
"verify" ), optionalKeys ) );
+ binding.setInstall( parsePhaseBindings( (String) phases.get(
"install" ), optionalKeys ) );
+ binding.setDeploy( parsePhaseBindings( (String) phases.get(
"deploy" ), optionalKeys ) );
}
return binding;
}
- private static CleanBinding parseCleanBindings( Map phaseMappings )
+ private static CleanBinding parseCleanBindings( Map phaseMappings, List
optionalKeys )
throws LifecycleSpecificationException
{
CleanBinding binding = new CleanBinding();
if ( phaseMappings != null )
{
- binding.setPreClean( parsePhaseBindings( (String)
phaseMappings.get( "pre-clean" ) ) );
- binding.setClean( parsePhaseBindings( (String) phaseMappings.get(
"clean" ) ) );
- binding.setPostClean( parsePhaseBindings( (String)
phaseMappings.get( "post-clean" ) ) );
+ binding.setPreClean( parsePhaseBindings( (String)
phaseMappings.get( "pre-clean" ), optionalKeys ) );
+ binding.setClean( parsePhaseBindings( (String) phaseMappings.get(
"clean" ), optionalKeys ) );
+ binding.setPostClean( parsePhaseBindings( (String)
phaseMappings.get( "post-clean" ), optionalKeys ) );
}
return binding;
}
- private static Phase parsePhaseBindings( String bindingList )
+ private static Phase parsePhaseBindings( String bindingList, List
optionalKeys )
throws LifecycleSpecificationException
{
Phase phase = new Phase();
@@ -127,6 +128,10 @@
String rawBinding = tok.nextToken().trim();
MojoBinding binding = MojoBindingParser.parseMojoBinding(
rawBinding, false );
+ if ( optionalKeys.contains( rawBinding ) )
+ {
+ binding.setOptional( true );
+ }
if ( binding == null )
{
@@ -140,17 +145,17 @@
return phase;
}
- private static SiteBinding parseSiteBindings( Map phases )
+ private static SiteBinding parseSiteBindings( Map phases, List
optionalKeys )
throws LifecycleSpecificationException
{
SiteBinding binding = new SiteBinding();
if ( phases != null )
{
- binding.setPreSite( parsePhaseBindings( (String) phases.get(
"pre-site" ) ) );
- binding.setSite( parsePhaseBindings( (String) phases.get( "site" )
) );
- binding.setPostSite( parsePhaseBindings( (String) phases.get(
"post-site" ) ) );
- binding.setSiteDeploy( parsePhaseBindings( (String) phases.get(
"site-deploy" ) ) );
+ binding.setPreSite( parsePhaseBindings( (String) phases.get(
"pre-site" ), optionalKeys ) );
+ binding.setSite( parsePhaseBindings( (String) phases.get( "site"
), optionalKeys ) );
+ binding.setPostSite( parsePhaseBindings( (String) phases.get(
"post-site" ), optionalKeys ) );
+ binding.setSiteDeploy( parsePhaseBindings( (String) phases.get(
"site-deploy" ), optionalKeys ) );
}
return binding;
Modified:
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParserTest.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParserTest.java?view=diff&rev=516607&r1=516606&r2=516607
==============================================================================
---
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParserTest.java
(original)
+++
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/java/org/apache/maven/lifecycle/LegacyLifecycleMappingParserTest.java
Fri Mar 9 15:49:22 2007
@@ -1,5 +1,7 @@
package org.apache.maven.lifecycle;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+import org.apache.maven.lifecycle.model.BuildBinding;
import org.apache.maven.lifecycle.model.LifecycleBindings;
import org.apache.maven.lifecycle.model.MojoBinding;
import org.codehaus.plexus.PlexusTestCase;
@@ -9,54 +11,137 @@
public class LegacyLifecycleMappingParserTest
extends PlexusTestCase
{
-
+
private LegacyLifecycleParsingTestComponent testComponent;
+
+ private LifecycleMapping testMapping;
- public void setUp() throws Exception
+ private LifecycleMapping testMapping2;
+
+ public void setUp()
+ throws Exception
{
super.setUp();
-
+
testComponent = (LegacyLifecycleParsingTestComponent) lookup(
LegacyLifecycleParsingTestComponent.ROLE, "default" );
+ testMapping = (LifecycleMapping) lookup( LifecycleMapping.ROLE,
"test-mapping" );
+ testMapping2 = (LifecycleMapping) lookup( LifecycleMapping.ROLE,
"test-mapping2" );
}
-
- public void tearDown() throws Exception
+
+ public void tearDown()
+ throws Exception
{
release( testComponent );
-
+ release( testMapping );
+ release( testMapping2 );
+
super.tearDown();
}
-
- public void testParseDefaultMappings_UsingExistingDefaultMappings() throws
LifecycleSpecificationException
+
+ public void testParseDefaultMappings_UsingExistingDefaultMappings()
+ throws LifecycleSpecificationException
{
List lifecycles = testComponent.getLifecycles();
LifecycleBindings bindings =
LegacyLifecycleMappingParser.parseDefaultMappings( lifecycles );
-
-// <clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean>
+
+ //
<clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean>
List cleanPhase = bindings.getCleanBinding().getClean().getBindings();
assertEquals( 1, cleanPhase.size() );
-
+
MojoBinding binding = (MojoBinding) cleanPhase.get( 0 );
- assertEquals( "org.apache.maven.plugins", binding.getGroupId() );
- assertEquals( "maven-clean-plugin", binding.getArtifactId() );
- assertEquals( "clean", binding.getGoal() );
-
-// <site>org.apache.maven.plugins:maven-site-plugin:site</site>
+ assertMojo( "org.apache.maven.plugins", "maven-clean-plugin", "clean",
binding );
+
+ // <site>org.apache.maven.plugins:maven-site-plugin:site</site>
List sitePhase = bindings.getSiteBinding().getSite().getBindings();
assertEquals( 1, sitePhase.size() );
-
+
binding = (MojoBinding) sitePhase.get( 0 );
- assertEquals( "org.apache.maven.plugins", binding.getGroupId() );
- assertEquals( "maven-site-plugin", binding.getArtifactId() );
- assertEquals( "site", binding.getGoal() );
-
-//
<site-deploy>org.apache.maven.plugins:maven-site-plugin:deploy</site-deploy>
+ assertMojo( "org.apache.maven.plugins", "maven-site-plugin", "site",
binding );
+
+ //
<site-deploy>org.apache.maven.plugins:maven-site-plugin:deploy</site-deploy>
List siteDeployPhase =
bindings.getSiteBinding().getSiteDeploy().getBindings();
assertEquals( 1, siteDeployPhase.size() );
-
+
binding = (MojoBinding) siteDeployPhase.get( 0 );
- assertEquals( "org.apache.maven.plugins", binding.getGroupId() );
- assertEquals( "maven-site-plugin", binding.getArtifactId() );
- assertEquals( "deploy", binding.getGoal() );
+ assertMojo( "org.apache.maven.plugins", "maven-site-plugin", "deploy",
binding );
+ }
+
+ private void assertMojo( String groupId, String artifactId, String goal,
MojoBinding binding )
+ {
+ assertEquals( groupId, binding.getGroupId() );
+ assertEquals( artifactId, binding.getArtifactId() );
+ assertEquals( goal, binding.getGoal() );
+ }
+
+ public void testParseMappings_SparselyPopulatedMappings()
+ throws LifecycleSpecificationException
+ {
+ LifecycleBindings bindings =
LegacyLifecycleMappingParser.parseMappings( testMapping, "test-mapping" );
+
+ BuildBinding bb = bindings.getBuildBinding();
+ assertNotNull( bb );
+
+ // <phases>
+ //
<package>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</package>
+ //
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ //
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ // </phases>
+ // <optional-mojos>
+ //
<optional-mojo>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</optional-mojo>
+ // </optional-mojos>
+ List mojos = bb.getCreatePackage().getBindings();
+
+ assertEquals( 1, mojos.size() );
+ assertMojo( "org.apache.maven.plugins", "maven-site-plugin",
"attach-descriptor", (MojoBinding) mojos.get( 0 ) );
+ assertTrue( ( (MojoBinding) mojos.get( 0 ) ).isOptional() );
+
+ mojos = bb.getInstall().getBindings();
+
+ assertEquals( 1, mojos.size() );
+ assertMojo( "org.apache.maven.plugins", "maven-install-plugin",
"install", (MojoBinding) mojos.get( 0 ) );
+ assertFalse( ( (MojoBinding) mojos.get( 0 ) ).isOptional() );
+
+ mojos = bb.getDeploy().getBindings();
+
+ assertEquals( 1, mojos.size() );
+ assertMojo( "org.apache.maven.plugins", "maven-deploy-plugin",
"deploy", (MojoBinding) mojos.get( 0 ) );
+ assertFalse( ( (MojoBinding) mojos.get( 0 ) ).isOptional() );
+ }
+
+ public void testParseMappings_MappingsWithTwoBindingsInOnePhase()
+ throws LifecycleSpecificationException
+ {
+ LifecycleBindings bindings =
LegacyLifecycleMappingParser.parseMappings( testMapping2, "test-mapping2" );
+
+ BuildBinding bb = bindings.getBuildBinding();
+ assertNotNull( bb );
+
+ // <phases>
+ //
<package>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</package>
+ //
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ //
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ // </phases>
+ // <optional-mojos>
+ //
<optional-mojo>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</optional-mojo>
+ // </optional-mojos>
+ List mojos = bb.getCreatePackage().getBindings();
+
+ assertEquals( 2, mojos.size() );
+ assertMojo( "org.apache.maven.plugins", "maven-site-plugin",
"attach-descriptor", (MojoBinding) mojos.get( 0 ) );
+ assertTrue( ( (MojoBinding) mojos.get( 0 ) ).isOptional() );
+ assertMojo( "org.apache.maven.plugins", "maven-clean-plugin", "clean",
(MojoBinding) mojos.get( 1 ) );
+
+ mojos = bb.getInstall().getBindings();
+
+ assertEquals( 1, mojos.size() );
+ assertMojo( "org.apache.maven.plugins", "maven-install-plugin",
"install", (MojoBinding) mojos.get( 0 ) );
+ assertFalse( ( (MojoBinding) mojos.get( 0 ) ).isOptional() );
+
+ mojos = bb.getDeploy().getBindings();
+
+ assertEquals( 1, mojos.size() );
+ assertMojo( "org.apache.maven.plugins", "maven-deploy-plugin",
"deploy", (MojoBinding) mojos.get( 0 ) );
+ assertFalse( ( (MojoBinding) mojos.get( 0 ) ).isOptional() );
}
}
Modified:
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/resources/META-INF/plexus/components.xml
URL:
http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/resources/META-INF/plexus/components.xml?view=diff&rev=516607&r1=516606&r2=516607
==============================================================================
---
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/resources/META-INF/plexus/components.xml
(original)
+++
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/test/resources/META-INF/plexus/components.xml
Fri Mar 9 15:49:22 2007
@@ -61,5 +61,52 @@
</lifecycles>
</configuration>
</component>
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>test-mapping</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <lifecycles>
+ <lifecycle>
+ <id>default</id>
+ <!-- START SNIPPET: pom-lifecycle -->
+ <phases>
+
<package>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <optional-mojos>
+
<optional-mojo>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</optional-mojo>
+ </optional-mojos>
+ <!-- END SNIPPET: pom-lifecycle -->
+ </lifecycle>
+ </lifecycles>
+ </configuration>
+ </component>
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>test-mapping2</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <lifecycles>
+ <lifecycle>
+ <id>default</id>
+ <!-- START SNIPPET: pom-lifecycle -->
+ <phases>
+ <package>
+ org.apache.maven.plugins:maven-site-plugin:attach-descriptor,
+ org.apache.maven.plugins:maven-clean-plugin:clean
+ </package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+
<deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <optional-mojos>
+
<optional-mojo>org.apache.maven.plugins:maven-site-plugin:attach-descriptor</optional-mojo>
+ </optional-mojos>
+ <!-- END SNIPPET: pom-lifecycle -->
+ </lifecycle>
+ </lifecycles>
+ </configuration>
+ </component>
</components>
</component-set>
Modified:
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo
URL:
http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo?view=diff&rev=516607&r1=516606&r2=516607
==============================================================================
---
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo
(original)
+++
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo
Fri Mar 9 15:49:22 2007
@@ -599,6 +599,12 @@
<description>Mojo binding's configuration.</description>
<type>DOM</type>
</field>
+ <field>
+ <name>optional</name>
+ <version>1.0.0</version>
+ <description>Marks a mojo binding as optional (not required for
execution of the lifecycle).</description>
+ <type>boolean</type>
+ </field>
</fields>
</class>
</classes>