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/12 22:31:01 UTC

svn commit: r1734739 - /maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java

Author: hboutemy
Date: Sat Mar 12 21:31:01 2016
New Revision: 1734739

URL: http://svn.apache.org/viewvc?rev=1734739&view=rev
Log:
[DOXIASITETOOLS-163] warn if deprecated ${reports}, ${parentProject} or ${modules} is found

Modified:
    maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java

Modified: maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java?rev=1734739&r1=1734738&r2=1734739&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java Sat Mar 12 21:31:01 2016
@@ -391,20 +391,35 @@ public class DefaultSiteTool
      * @return the input content interpolated with deprecated tags 
      * @throws IOException
      */
-    private static String readSiteDescriptor( Reader reader )
+    private String readSiteDescriptor( Reader reader, String projectId )
         throws IOException
     {
         String siteDescriptorContent = IOUtil.toString( reader );
-    
+
         // This is to support the deprecated ${reports}, ${parentProject} and ${modules} tags.
         Properties props = new Properties();
         props.put( "reports", "<menu ref=\"reports\"/>\n" );
         props.put( "modules", "<menu ref=\"modules\"/>\n" );
         props.put( "parentProject", "<menu ref=\"parent\"/>" );
-    
+
+        // warn if interpolation required
+        for ( Object prop : props.keySet() )
+        {
+            if ( siteDescriptorContent.contains( "$" + prop ) )
+            {
+                getLogger().warn( "Site descriptor for " + projectId + " contains $" + prop
+                    + ": should be replaced with " + props.getProperty( (String) prop ) );
+            }
+            if ( siteDescriptorContent.contains( "${" + prop + "}" ) )
+            {
+                getLogger().warn( "Site descriptor for " + projectId + " contains ${" + prop
+                    + "}: should be replaced with " + props.getProperty( (String) prop ) );
+            }
+        }
+
         return StringUtils.interpolate( siteDescriptorContent, props );
     }
-
+    
     /** {@inheritDoc} */
     public DecorationModel getDecorationModel( File siteDirectory, Locale locale, MavenProject project,
                                                List<MavenProject> reactorProjects, ArtifactRepository localRepository,
@@ -436,7 +451,7 @@ public class DefaultSiteTool
             {
                 // Note the default is not a super class - it is used when nothing else is found
                 reader = ReaderFactory.newXmlReader( getClass().getResourceAsStream( "/default-site.xml" ) );
-                siteDescriptorContent = readSiteDescriptor( reader );
+                siteDescriptorContent = readSiteDescriptor( reader, "default-site.xml" );
             }
             catch ( IOException e )
             {
@@ -1099,7 +1114,7 @@ public class DefaultSiteTool
 
                 siteDescriptorReader = ReaderFactory.newXmlReader( siteDescriptor );
 
-                String siteDescriptorContent = readSiteDescriptor( siteDescriptorReader );
+                String siteDescriptorContent = readSiteDescriptor( siteDescriptorReader, project.getId() );
 
                 decoration = readDecorationModel( siteDescriptorContent );
                 decoration.setLastModified( siteDescriptor.lastModified() );