[DOXIASITETOOLS-158] added meaningful error message about late interpolation

git-svn-id: https://svn.apache.org/repos/asf/maven/doxia/doxia-sitetools/trunk@1736756 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java b/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
index 149aa93..7285916 100644
--- a/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
+++ b/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
@@ -451,6 +451,12 @@
                 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();
diff --git a/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java b/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java
index a342a32..a27a1f8 100644
--- a/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java
+++ b/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssemblerTest.java
@@ -74,6 +74,20 @@
         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" ) );
+        }
     }
 
     /**