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 vs...@apache.org on 2006/08/11 21:10:41 UTC
svn commit: r430863 -
/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
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:evenisse@codehaus.org">Emmanuel Venisse</a>
* @author <a href="mailto:vincent.siveton@gmail.com">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 );