You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by lt...@apache.org on 2007/10/09 21:52:26 UTC

svn commit: r583277 - /maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/io/DefaultBookIo.java

Author: ltheussl
Date: Tue Oct  9 12:52:25 2007
New Revision: 583277

URL: http://svn.apache.org/viewvc?rev=583277&view=rev
Log:
DOXIA-157: generalize determination of parser Ids, files with .xml extension, eg xdocs, were always parsed by the docbook parser.

Modified:
    maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/io/DefaultBookIo.java

Modified: maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/io/DefaultBookIo.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/io/DefaultBookIo.java?rev=583277&r1=583276&r2=583277&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/io/DefaultBookIo.java (original)
+++ maven/doxia/doxia/trunk/doxia-book/src/main/java/org/apache/maven/doxia/book/services/io/DefaultBookIo.java Tue Oct  9 12:52:25 2007
@@ -89,19 +89,36 @@
 
             String extension = siteModule.getExtension();
 
+            String sourceDirectory = File.separator + siteModule.getSourceDirectory() + File.separator;
+
+            String parserId = siteModule.getParserId();
+
             for ( Iterator j = files.iterator(); j.hasNext(); )
             {
                 File file = (File) j.next();
 
                 String name = file.getName();
 
-                if ( name.endsWith( extension ) )
+                String path = file.getAbsolutePath();
+
+                // first check if the file path contains one of the recognized source dir identifiers
+                // (there's trouble if a pathname contains 2 identifiers), then match file extensions (not unique).
+
+                if ( path.indexOf( sourceDirectory ) != -1 )
                 {
-                    name = name.substring( 0, name.length() - siteModule.getExtension().length() - 1 );
+                    name = name.substring( 0, name.length() - extension.length() - 1 );
 
-                    BookContext.BookFile bookFile = new BookContext.BookFile( file, siteModule.getParserId() );
+                    context.getFiles().put( name, new BookContext.BookFile( file, parserId ) );
+                }
+                else if ( name.endsWith( extension ) )
+                {
+                    name = name.substring( 0, name.length() - extension.length() - 1 );
 
-                    context.getFiles().put( name, bookFile );
+                    // don't overwrite if it's there already
+                    if ( !context.getFiles().containsKey( name ) )
+                    {
+                        context.getFiles().put( name, new BookContext.BookFile( file, parserId ) );
+                    }
                 }
             }
         }