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 ) ); + } } } }