Author: vsiveton Date: Fri Aug 11 12:10:40 2006 New Revision: 430863 URL: http://svn.apache.org/viewvc?rev=430863&view=rev Log: [MSITE-155] site:run does not work with upper case letters in
o modified addModuleFiles() to better handle file case depending the OS. Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java?rev=430863&r1=430862&r2=430863&view=diff ============================================================================== --- maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java (original) +++ maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java Fri Aug 11 12:10:40 2006 @@ -16,27 +16,6 @@ * limitations under the License. */ -import org.apache.maven.doxia.Doxia; -import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext; -import org.apache.maven.doxia.parser.ParseException; -import org.apache.maven.doxia.parser.manager.ParserNotFoundException; -import org.apache.maven.doxia.site.decoration.DecorationModel; -import org.apache.maven.doxia.site.module.SiteModule; -import org.apache.maven.doxia.site.module.manager.SiteModuleManager; -import org.apache.maven.doxia.site.module.manager.SiteModuleNotFoundException; -import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.context.Context; -import org.codehaus.plexus.i18n.I18N; -import org.codehaus.plexus.logging.AbstractLogEnabled; -import org.codehaus.plexus.util.DirectoryScanner; -import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.IOUtil; -import org.codehaus.plexus.util.PathTool; -import org.codehaus.plexus.util.StringUtils; -import org.codehaus.plexus.velocity.VelocityComponent; - import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -65,6 +44,28 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.apache.maven.doxia.Doxia; +import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext; +import org.apache.maven.doxia.parser.ParseException; +import org.apache.maven.doxia.parser.manager.ParserNotFoundException; +import org.apache.maven.doxia.site.decoration.DecorationModel; +import org.apache.maven.doxia.site.module.SiteModule; +import org.apache.maven.doxia.site.module.manager.SiteModuleManager; +import org.apache.maven.doxia.site.module.manager.SiteModuleNotFoundException; +import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.context.Context; +import org.codehaus.plexus.i18n.I18N; +import org.codehaus.plexus.logging.AbstractLogEnabled; +import org.codehaus.plexus.util.DirectoryScanner; +import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.Os; +import org.codehaus.plexus.util.PathTool; +import org.codehaus.plexus.util.StringUtils; +import org.codehaus.plexus.velocity.VelocityComponent; + /** * @author <a href="mailto:[EMAIL PROTECTED]">Emmanuel Venisse</a> * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Siveton</a> @@ -189,14 +190,34 @@ RenderingContext context = new RenderingContext( moduleBasedir, doc, module.getParserId() ); - String key = context.getOutputName().toLowerCase( Locale.getDefault() ); + String key = context.getOutputName(); if ( files.containsKey( key ) ) { DocumentRenderer renderer = (DocumentRenderer) files.get( key ); RenderingContext originalContext = renderer.getRenderingContext(); File originalDoc = new File( originalContext.getBasedir(), originalContext.getInputName() ); - throw new RendererException( "Files '" + doc + "' clashes with existing '" + originalDoc + "'" ); + throw new RendererException( "Files '" + doc + "' clashes with existing '" + originalDoc + "'." ); + } + // ----------------------------------------------------------------------- + // Handle key without case differences + // ----------------------------------------------------------------------- + for ( Iterator iter = files.entrySet().iterator(); iter.hasNext(); ) + { + Map.Entry entry = (Map.Entry) iter.next(); + if ( entry.getKey().toString().toLowerCase().equals( key.toLowerCase() ) ) + { + DocumentRenderer renderer = (DocumentRenderer) files.get( entry.getKey() ); + RenderingContext originalContext = renderer.getRenderingContext(); + File originalDoc = new File( originalContext.getBasedir(), originalContext.getInputName() ); + if ( Os.isFamily( "windows" ) ) + { + throw new RendererException( "Files '" + doc + "' clashes with existing '" + originalDoc + + "'." ); + } + + getLogger().warn( "Files '" + doc + "' could clashes with existing '" + originalDoc + "'." ); + } } files.put( key, new DoxiaDocumentRenderer( context ) ); @@ -433,7 +454,7 @@ if ( zipFile.getEntry( SKIN_TEMPLATE_LOCATION ) != null ) { context.setTemplateName( SKIN_TEMPLATE_LOCATION ); - context.setTemplateClassLoader( new URLClassLoader( new URL[]{skinFile.toURL()} ) ); + context.setTemplateClassLoader( new URLClassLoader( new URL[] { skinFile.toURL() } ) ); } else { @@ -464,7 +485,7 @@ SiteRenderingContext context = new SiteRenderingContext(); context.setTemplateName( templateFile.getName() ); - context.setTemplateClassLoader( new URLClassLoader( new URL[]{templateFile.getParentFile().toURL()} ) ); + context.setTemplateClassLoader( new URLClassLoader( new URL[] { templateFile.getParentFile().toURL() } ) ); context.setTemplateProperties( attributes ); context.setLocale( locale ); @@ -525,8 +546,8 @@ if ( siteContext.isUsingDefaultTemplate() ) { - InputStream resourceList = - getClass().getClassLoader().getResourceAsStream( RESOURCE_DIR + "/resources.txt" ); + InputStream resourceList = getClass().getClassLoader() + .getResourceAsStream( RESOURCE_DIR + "/resources.txt" ); if ( resourceList != null ) { @@ -600,7 +621,7 @@ { DirectoryScanner scanner = new DirectoryScanner(); - String[] includedResources = {"**/**"}; + String[] includedResources = { "**/**" }; scanner.setIncludes( includedResources );