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


Reply via email to