You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2016/03/27 17:07:29 UTC

svn commit: r1736756 - in /maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src: main/java/org/apache/maven/doxia/site/decoration/inheritance/ test/java/org/apache/maven/doxia/site/decoration/inheritance/

Author: hboutemy
Date: Sun Mar 27 15:07:29 2016
New Revision: 1736756

URL: http://svn.apache.org/viewvc?rev=1736756&view=rev
Log:
[DOXIASITETOOLS-158] added meaningful error message about late interpolation

Modified:
    maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
    maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java

Modified: maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java?rev=1736756&r1=1736755&r2=1736756&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java Sun Mar 27 15:07:29 2016
@@ -451,6 +451,12 @@ public class DefaultDecorationModelInher
                 return link;
             }
 
+            if ( link.contains( "${project." ) )
+            {
+                throw new IllegalArgumentException( "site.xml late interpolation ${project.*} expression found in link: '"
+                    + link + "'. Use early interpolation ${this.*}" );
+            }
+
             final URIPathDescriptor oldPath = new URIPathDescriptor( getOldPath(), link );
 
             return oldPath.rebaseLink( getNewPath() ).toString();

Modified: maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java?rev=1736756&r1=1736755&r2=1736756&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java Sun Mar 27 15:07:29 2016
@@ -74,6 +74,20 @@ public class DecorationModelInheritanceA
         assertEquals( "Check scp result", expectedModel, childModel );
 
         assertEquals( "Modified parent!", readModel( "inheritance-parent.xml" ), parentModel );
+
+        // late inheritance in links can't be rebased: check friendly message
+        parentModel.getBannerLeft().setHref( "${project.url}" );
+        childModel = readModel( "inheritance-child.xml" );
+        try
+        {
+            assembler.assembleModelInheritance( NAME, childModel, parentModel, "scp://people.apache.org/doxia",
+                                                "scp://people.apache.org" );
+            fail( "late interpolation in link should cause IllegalArgumentException" );
+        }
+        catch ( IllegalArgumentException iae )
+        {
+            assertTrue( iae.getMessage().startsWith( "site.xml late interpolation" ) );
+        }
     }
 
     /**