You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/10/17 14:11:15 UTC

svn commit: r705574 - in /maven/components/branches/maven-2.1.x: maven-model/src/main/mdo/ maven-project/src/main/java/org/apache/maven/project/inheritance/ maven-project/src/test/java/org/apache/maven/project/inheritance/

Author: brett
Date: Fri Oct 17 05:11:14 2008
New Revision: 705574

URL: http://svn.apache.org/viewvc?rev=705574&view=rev
Log:
[MNG-1999] introduce 3-value logic for the excludeDefaults boolean, while retaining API compatibility
Merged from: r705567

Modified:
    maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo
    maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
    maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java

Modified: maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo?rev=705574&r1=705573&r2=705574&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo (original)
+++ maven/components/branches/maven-2.1.x/maven-model/src/main/mdo/maven.mdo Fri Oct 17 05:11:14 2008
@@ -2803,13 +2803,12 @@
       <version>4.0.0</version>
       <description>Section for management of reports and their configuration.</description>
       <fields>
-        <field>
-          <name>excludeDefaults</name>
+        <field xml.tagName="excludeDefaults">
+          <name>excludeDefaultsValue</name>
           <version>4.0.0</version>
-          <type>boolean</type>
+          <type>Boolean</type>
           <description>If true, then the default reports are not included in the site generation.
             This includes the reports in the "Project Info" menu.</description>
-          <defaultValue>false</defaultValue>
         </field>
         <field>
           <name>outputDirectory</name>
@@ -2870,6 +2869,21 @@
 
         return reportPluginMap;
     }
+
+    public boolean isExcludeDefaults()
+    {
+        return excludeDefaultsValue != null ? excludeDefaultsValue.booleanValue() : false;
+    }
+
+    public void setExcludeDefaults( boolean excludeDefaults )
+    {
+        excludeDefaultsValue = excludeDefaults ? Boolean.TRUE : Boolean.FALSE;
+    }
+
+    public void setExcludeDefaultsValue( String excludeDefaults )
+    {
+        excludeDefaultsValue = excludeDefaults != null ? Boolean.valueOf( excludeDefaults ) : null;
+    }
             ]]>
           </code>
         </codeSegment>

Modified: maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java?rev=705574&r1=705573&r2=705574&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java (original)
+++ maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java Fri Oct 17 05:11:14 2008
@@ -233,9 +233,9 @@
                 child.setReporting( childReporting );
             }
 
-            if ( parentReporting.isExcludeDefaults() )
+            if ( childReporting.isExcludeDefaultsValue() == null )
             {
-                childReporting.setExcludeDefaults( true );
+                childReporting.setExcludeDefaultsValue( parentReporting.isExcludeDefaultsValue() );
             }
 
             if ( StringUtils.isEmpty( childReporting.getOutputDirectory() ) )

Modified: maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java?rev=705574&r1=705573&r2=705574&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java (original)
+++ maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java Fri Oct 17 05:11:14 2008
@@ -655,46 +655,148 @@
 
     public void testReportingExcludeDefaultsInheritance()
     {
+        // parent and child have no reporting section
         Model parent = makeBaseModel( "parent" );
-
         Model child = makeBaseModel( "child" );
 
-        Reporting parentBuild = new Reporting();
-        parentBuild.setExcludeDefaults( false );
-        parent.setReporting( parentBuild );
+        assembler.assembleModelInheritance( child, parent );
+        assertNull( child.getReporting() );
+
+        // parent is default, and child has no reporting section
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( new Reporting() );
+        child = makeBaseModel( "child" );
 
         assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
 
-        assertFalse( "Check excludeDefaults is inherited", child.getReporting().isExcludeDefaults() );
+        // parent is false, and child has no reporting section
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( createReportingWithExcludeDefaults( false ) );
+        child = makeBaseModel( "child" );
+
+        assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
 
+        // parent is true, and child has no reporting section
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( createReportingWithExcludeDefaults( true ) );
         child = makeBaseModel( "child" );
 
-        parentBuild.setExcludeDefaults( true );
+        assembler.assembleModelInheritance( child, parent );
+        assertTrue( child.getReporting().isExcludeDefaults() );
+
+        // parent has no reporting section, child is false
+        parent = makeBaseModel( "parent" );
+        child = makeBaseModel( "child" );
+        child.setReporting( createReportingWithExcludeDefaults( false ) );
 
         assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
 
-        assertTrue( "Check excludeDefaults is inherited", child.getReporting().isExcludeDefaults() );
+        // parent is default, and child is false
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( new Reporting() );
+        child = makeBaseModel( "child" );
+        child.setReporting( createReportingWithExcludeDefaults( false ) );
+
+        assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
 
+        // parent is false, and child is false
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( createReportingWithExcludeDefaults( false ) );
         child = makeBaseModel( "child" );
-        child.setReporting( new Reporting() );
+        child.setReporting( createReportingWithExcludeDefaults( false ) );
+
+        assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
+
+        // parent is true, and child is false
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( createReportingWithExcludeDefaults( true ) );
+        child = makeBaseModel( "child" );
+        child.setReporting( createReportingWithExcludeDefaults( false ) );
+
+        assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
+
+        // parent has no reporting section, child is true
+        parent = makeBaseModel( "parent" );
+        child = makeBaseModel( "child" );
+        child.setReporting( createReportingWithExcludeDefaults( true ) );
+
+        assembler.assembleModelInheritance( child, parent );
+        assertTrue( child.getReporting().isExcludeDefaults() );
+
+        // parent is default, and child is true
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( new Reporting() );
+        child = makeBaseModel( "child" );
+        child.setReporting( createReportingWithExcludeDefaults( true ) );
 
-        parentBuild.setExcludeDefaults( true );
+        assembler.assembleModelInheritance( child, parent );
+        assertTrue( child.getReporting().isExcludeDefaults() );
+
+        // parent is false, and child is true
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( createReportingWithExcludeDefaults( false ) );
+        child = makeBaseModel( "child" );
+        child.setReporting( createReportingWithExcludeDefaults( true ) );
 
         assembler.assembleModelInheritance( child, parent );
+        assertTrue( child.getReporting().isExcludeDefaults() );
 
-        assertTrue( "Check excludeDefaults is inherited when reporting is set but excludeDefaults is not",
-                    child.getReporting().isExcludeDefaults() );
+        // parent is true, and child is true
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( createReportingWithExcludeDefaults( true ) );
+        child = makeBaseModel( "child" );
+        child.setReporting( createReportingWithExcludeDefaults( true ) );
+
+        assembler.assembleModelInheritance( child, parent );
+        assertTrue( child.getReporting().isExcludeDefaults() );
 
+        // parent has no reporting section, child is default
+        parent = makeBaseModel( "parent" );
         child = makeBaseModel( "child" );
-        Reporting childReporting = new Reporting();
-        child.setReporting( childReporting );
+        child.setReporting( new Reporting() );
 
+        assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
+
+        // parent is default, and child is default
+        parent = makeBaseModel( "parent" );
         parent.setReporting( new Reporting() );
-        childReporting.setExcludeDefaults( true );
+        child = makeBaseModel( "child" );
+        child.setReporting( new Reporting() );
 
         assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
+
+        // parent is false, and child is default
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( createReportingWithExcludeDefaults( false ) );
+        child = makeBaseModel( "child" );
+        child.setReporting( new Reporting() );
 
-        assertTrue( "Check excludeDefaults is inherited properly", child.getReporting().isExcludeDefaults() );
+        assembler.assembleModelInheritance( child, parent );
+        assertFalse( child.getReporting().isExcludeDefaults() );
+
+        // parent is true, and child is default
+        parent = makeBaseModel( "parent" );
+        parent.setReporting( createReportingWithExcludeDefaults( true ) );
+        child = makeBaseModel( "child" );
+        child.setReporting( new Reporting() );
+
+        assembler.assembleModelInheritance( child, parent );
+        assertTrue( child.getReporting().isExcludeDefaults() );
+    }
+
+    private Reporting createReportingWithExcludeDefaults( boolean excludeDefaults )
+    {
+        Reporting reporting = new Reporting();
+        reporting.setExcludeDefaults( excludeDefaults );
+        return reporting;
     }
 
     public void testReportInheritanceWhereParentReportWithoutInheritFlagAndChildHasNoReports()