Author: vsiveton
Date: Fri May  8 10:16:49 2009
New Revision: 772915

URL: http://svn.apache.org/viewvc?rev=772915&view=rev
Log:
o clash if filepath is duplicated in module (similar logic from 
DefaultSiteRenderer) 

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java?rev=772915&r1=772914&r2=772915&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/AbstractDocumentRenderer.java
 Fri May  8 10:16:49 2009
@@ -26,6 +26,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
@@ -162,9 +163,10 @@
      *              This should follow the standard Maven convention, ie 
containing all the site modules.
      * @return a Map of files to process.
      * @throws java.io.IOException in case of a problem reading the files 
under baseDirectory.
+     * @throws org.apache.maven.doxia.docrenderer.DocumentRendererException if 
any
      */
     public Map getFilesToProcess( File baseDirectory )
-        throws IOException
+        throws IOException, DocumentRendererException
     {
         if ( !baseDirectory.isDirectory() )
         {
@@ -178,7 +180,8 @@
 
         setBaseDir( baseDirectory.getAbsolutePath() );
 
-        Map filesToProcess = new HashMap();
+        Map filesToProcess = new LinkedHashMap();
+        Map duplicatesFiles = new LinkedHashMap();
 
         for ( Iterator i = siteModuleManager.getSiteModules().iterator(); 
i.hasNext(); )
         {
@@ -206,7 +209,21 @@
 
                 for ( Iterator j = docs.iterator(); j.hasNext(); )
                 {
-                    String filePath = ( (File) j.next() ).getPath();
+                    String filePath = j.next().toString().trim();
+
+                    if ( filePath.lastIndexOf( "." ) > 0 )
+                    {
+                        String key = filePath.substring( 0, 
filePath.lastIndexOf( "." ) );
+
+                        if ( duplicatesFiles.containsKey( key ) )
+                        {
+                            throw new DocumentRendererException( "Files '" + 
module.getSourceDirectory()
+                                + File.separator + filePath + "' clashes with 
existing '"
+                                + duplicatesFiles.get( key ) + "'." );
+                        }
+
+                        duplicatesFiles.put( key, module.getSourceDirectory() 
+ File.separator + filePath );
+                    }
 
                     filesToProcess.put( filePath, module );
                 }


Reply via email to