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>


Reply via email to