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()