Author: hboutemy Date: Sat Dec 19 11:38:05 2015 New Revision: 1720901 URL: http://svn.apache.org/viewvc?rev=1720901&view=rev Log: [DOXIASITETOOLS-127] reverted r1720892: wreck havock since used by maven-reporting-impl in reporting plugins
Added: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/ModuleReference.java - copied unchanged from r1720891, maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/ModuleReference.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java - copied unchanged from r1720891, maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/RendererException.java - copied unchanged from r1720891, maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/RendererException.java Removed: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaModuleReference.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderer.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRendererException.java Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/ (props changed) Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java?rev=1720901&r1=1720900&r2=1720901&view=diff ============================================================================== --- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java (original) +++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java Sat Dec 19 11:38:05 2015 @@ -92,10 +92,10 @@ import org.codehaus.plexus.velocity.Velo * @version $Id$ * @since 1.0 */ -@Component( role = SiteRenderer.class ) +@Component( role = Renderer.class ) public class DefaultSiteRenderer extends AbstractLogEnabled - implements SiteRenderer + implements Renderer { // ---------------------------------------------------------------------- // Requirements @@ -126,136 +126,150 @@ public class DefaultSiteRenderer /** {@inheritDoc} */ public Map<String, DocumentRenderer> locateDocumentFiles( SiteRenderingContext siteRenderingContext ) - throws IOException, SiteRendererException + throws IOException, RendererException { Map<String, DocumentRenderer> files = new LinkedHashMap<String, DocumentRenderer>(); Map<String, String> moduleExcludes = siteRenderingContext.getModuleExcludes(); - // look in every site directory (in general src/site or target/generated-site) for ( File siteDirectory : siteRenderingContext.getSiteDirectories() ) { if ( siteDirectory.exists() ) { Collection<ParserModule> modules = parserModuleManager.getParserModules(); - // use every Doxia parser module for ( ParserModule module : modules ) { File moduleBasedir = new File( siteDirectory, module.getSourceDirectory() ); - String excludes = ( moduleExcludes == null ) ? null : moduleExcludes.get( module.getParserId() ); - - addDoxiaModuleFiles( moduleBasedir, module, excludes, files ); + if ( moduleExcludes != null && moduleExcludes.containsKey( module.getParserId() ) ) + { + addModuleFiles( moduleBasedir, module, moduleExcludes.get( module.getParserId() ), + files ); + } + else + { + addModuleFiles( moduleBasedir, module, null, files ); + } } } } - // look in specific modules directories (used for old Maven 1.x site layout: xdoc and fml - for ( DoxiaModuleReference module : siteRenderingContext.getModules() ) + for ( ModuleReference module : siteRenderingContext.getModules() ) { try { - ParserModule parserModule = parserModuleManager.getParserModule( module.getParserId() ); - - String excludes = ( moduleExcludes == null ) ? null : moduleExcludes.get( module.getParserId() ); - - addDoxiaModuleFiles( module.getBasedir(), parserModule, excludes, files ); + if ( moduleExcludes != null && moduleExcludes.containsKey( module.getParserId() ) ) + { + addModuleFiles( module.getBasedir(), parserModuleManager.getParserModule( module.getParserId() ), + moduleExcludes.get( module.getParserId() ), files ); + } + else + { + addModuleFiles( module.getBasedir(), parserModuleManager.getParserModule( module.getParserId() ), + null, files ); + } } catch ( ParserModuleNotFoundException e ) { - throw new SiteRendererException( "Unable to find module: " + e.getMessage(), e ); + throw new RendererException( "Unable to find module: " + e.getMessage(), e ); } } return files; } - private List<String> filterExtensionIgnoreCase( List<String> fileNames, String extension ) + private void addModuleFiles( File moduleBasedir, ParserModule module, String excludes, + Map<String, DocumentRenderer> files ) + throws IOException, RendererException { - List<String> filtered = new LinkedList<String>( fileNames ); - for ( Iterator<String> it = filtered.iterator(); it.hasNext(); ) + if ( moduleBasedir.exists() ) { - String name = it.next(); - - // Take care of extension case - if ( !endsWithIgnoreCase( name, extension ) ) + List<String> allFiles = FileUtils.getFileNames( moduleBasedir, "**/*.*", excludes, false ); + if ( !ArrayUtils.isEmpty( module.getExtensions() ) ) { - it.remove(); - } - } - return filtered; - } - - private void addDoxiaModuleFiles( File moduleBasedir, ParserModule module, String excludes, - Map<String, DocumentRenderer> files ) - throws IOException, SiteRendererException - { - if ( !moduleBasedir.exists() || ArrayUtils.isEmpty( module.getExtensions() ) ) - { - return; - } - - List<String> allFiles = FileUtils.getFileNames( moduleBasedir, "**/*.*", excludes, false ); - - for ( String extension : module.getExtensions() ) - { - String fullExtension = "." + extension; - - List<String> docs = filterExtensionIgnoreCase( allFiles, fullExtension ); + for ( String extension : module.getExtensions() ) + { - // *.<extension>.vm - List<String> velocityFiles = filterExtensionIgnoreCase( allFiles, fullExtension + ".vm" ); + String fullExtension = "." + extension; + List<String> docs = new LinkedList<String>( allFiles ); + // Take care of extension case + for ( Iterator<String> it = docs.iterator(); it.hasNext(); ) + { + String name = it.next(); - docs.addAll( velocityFiles ); + if ( !endsWithIgnoreCase( name, fullExtension ) ) + { + it.remove(); + } + } - for ( String doc : docs ) - { - RenderingContext context = new RenderingContext( moduleBasedir, doc, module.getParserId(), extension ); + List<String> velocityFiles = new LinkedList<String>( allFiles ); + // *.xml.vm + fullExtension += ".vm"; + for ( Iterator<String> it = velocityFiles.iterator(); it.hasNext(); ) + { + String name = it.next(); - // TODO: DOXIA-111: we need a general filter here that knows how to alter the context - if ( endsWithIgnoreCase( doc, ".vm" ) ) - { - context.setAttribute( "velocity", "true" ); - } + if ( !endsWithIgnoreCase( name, fullExtension ) ) + { + it.remove(); + } + } + docs.addAll( velocityFiles ); - String key = context.getOutputName(); - key = StringUtils.replace( key, "\\", "/" ); + for ( String doc : docs ) + { + RenderingContext context = + new RenderingContext( moduleBasedir, doc, module.getParserId(), extension ); - if ( files.containsKey( key ) ) - { - DocumentRenderer renderer = files.get( key ); + // TODO: DOXIA-111: we need a general filter here that knows how to alter the context + if ( doc.substring( doc.length() - 3 ).equalsIgnoreCase( ".vm" ) ) + { + context.setAttribute( "velocity", "true" ); + } - RenderingContext originalContext = renderer.getRenderingContext(); + String key = context.getOutputName(); + key = StringUtils.replace( key, "\\", "/" ); - File originalDoc = new File( originalContext.getBasedir(), originalContext.getInputName() ); + if ( files.containsKey( key ) ) + { + DocumentRenderer renderer = files.get( key ); - throw new SiteRendererException( "File '" + module.getSourceDirectory() + File.separator + doc - + "' clashes with existing '" + originalDoc + "'." ); - } - // ----------------------------------------------------------------------- - // Handle key without case differences - // ----------------------------------------------------------------------- - for ( Map.Entry<String, DocumentRenderer> entry : files.entrySet() ) - { - if ( entry.getKey().equalsIgnoreCase( key ) ) - { - RenderingContext originalContext = entry.getValue().getRenderingContext(); + RenderingContext originalContext = renderer.getRenderingContext(); - File originalDoc = new File( originalContext.getBasedir(), originalContext.getInputName() ); + File originalDoc = new File( originalContext.getBasedir(), originalContext.getInputName() ); - if ( Os.isFamily( Os.FAMILY_WINDOWS ) ) - { - throw new SiteRendererException( "File '" + module.getSourceDirectory() + File.separator - + doc + "' clashes with existing '" + originalDoc + "'." ); + throw new RendererException( "File '" + module.getSourceDirectory() + File.separator + doc + + "' clashes with existing '" + originalDoc + "'." ); } - - if ( getLogger().isWarnEnabled() ) + // ----------------------------------------------------------------------- + // Handle key without case differences + // ----------------------------------------------------------------------- + for ( Map.Entry<String, DocumentRenderer> entry : files.entrySet() ) { - getLogger().warn( "File '" + module.getSourceDirectory() + File.separator + doc - + "' could clash with existing '" + originalDoc + "'." ); + if ( entry.getKey().equalsIgnoreCase( key ) ) + { + RenderingContext originalContext = entry.getValue().getRenderingContext(); + + File originalDoc = new File( originalContext.getBasedir(), + originalContext.getInputName() ); + + if ( Os.isFamily( Os.FAMILY_WINDOWS ) ) + { + throw new RendererException( "File '" + module.getSourceDirectory() + File.separator + + doc + "' clashes with existing '" + originalDoc + "'." ); + } + + if ( getLogger().isWarnEnabled() ) + { + getLogger().warn( + "File '" + module.getSourceDirectory() + File.separator + doc + + "' could clash with existing '" + originalDoc + "'." ); + } + } } + + files.put( key, new DoxiaDocumentRenderer( context ) ); } } - - files.put( key, new DoxiaDocumentRenderer( context ) ); } } } @@ -263,7 +277,7 @@ public class DefaultSiteRenderer /** {@inheritDoc} */ public void render( Collection<DocumentRenderer> documents, SiteRenderingContext siteRenderingContext, File outputDirectory ) - throws SiteRendererException, IOException + throws RendererException, IOException { for ( DocumentRenderer docRenderer : documents ) { @@ -314,7 +328,7 @@ public class DefaultSiteRenderer /** {@inheritDoc} */ public void renderDocument( Writer writer, RenderingContext renderingContext, SiteRenderingContext siteContext ) - throws SiteRendererException, FileNotFoundException, UnsupportedEncodingException + throws RendererException, FileNotFoundException, UnsupportedEncodingException { SiteRendererSink sink = new SiteRendererSink( renderingContext ); @@ -380,22 +394,22 @@ public class DefaultSiteRenderer if ( reader == null ) // can happen if velocity throws above { - throw new SiteRendererException( "Error getting a parser for '" + doc + "'" ); + throw new RendererException( "Error getting a parser for '" + doc + "'" ); } doxia.parse( reader, renderingContext.getParserId(), sink ); } catch ( ParserNotFoundException e ) { - throw new SiteRendererException( "Error getting a parser for '" + doc + "': " + e.getMessage(), e ); + throw new RendererException( "Error getting a parser for '" + doc + "': " + e.getMessage(), e ); } catch ( ParseException e ) { - throw new SiteRendererException( "Error parsing '" + throw new RendererException( "Error parsing '" + doc + "': line [" + e.getLineNumber() + "] " + e.getMessage(), e ); } catch ( IOException e ) { - throw new SiteRendererException( "IOException when processing '" + doc + "'", e ); + throw new RendererException( "IOException when processing '" + doc + "'", e ); } finally { @@ -550,7 +564,7 @@ public class DefaultSiteRenderer /** {@inheritDoc} */ public void generateDocument( Writer writer, SiteRendererSink sink, SiteRenderingContext siteRenderingContext ) - throws SiteRendererException + throws RendererException { Context context = createVelocityContext( sink, siteRenderingContext ); @@ -558,7 +572,7 @@ public class DefaultSiteRenderer } private void writeTemplate( Writer writer, Context context, SiteRenderingContext siteContext ) - throws SiteRendererException + throws RendererException { ClassLoader old = null; @@ -592,7 +606,7 @@ public class DefaultSiteRenderer * @noinspection OverlyBroadCatchBlock,UnusedCatchParameter */ private void processTemplate( String templateName, Context context, Writer writer ) - throws SiteRendererException + throws RendererException { Template template; @@ -602,7 +616,7 @@ public class DefaultSiteRenderer } catch ( Exception e ) { - throw new SiteRendererException( "Could not find the template '" + templateName, e ); + throw new RendererException( "Could not find the template '" + templateName, e ); } try @@ -611,12 +625,12 @@ public class DefaultSiteRenderer } catch ( Exception e ) { - throw new SiteRendererException( "Error while generating code.", e ); + throw new RendererException( "Error while generating code.", e ); } } /** {@inheritDoc} */ - public SiteRenderingContext createSiteContextForSkin( File skinFile, Map<String, ?> attributes, + public SiteRenderingContext createContextForSkin( File skinFile, Map<String, ?> attributes, DecorationModel decoration, String defaultWindowTitle, Locale locale ) throws IOException @@ -675,10 +689,10 @@ public class DefaultSiteRenderer } /** {@inheritDoc} */ - public SiteRenderingContext createSiteContextForTemplate( File templateFile, File skinFile, - Map<String, ?> attributes, DecorationModel decoration, - String defaultWindowTitle, Locale locale ) - throws MalformedURLException + public SiteRenderingContext createContextForTemplate( File templateFile, File skinFile, Map<String, ?> attributes, + DecorationModel decoration, String defaultWindowTitle, + Locale locale ) + throws MalformedURLException { SiteRenderingContext context = new SiteRenderingContext(); Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java?rev=1720901&r1=1720900&r2=1720901&view=diff ============================================================================== --- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java (original) +++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java Sat Dec 19 11:38:05 2015 @@ -37,12 +37,12 @@ public interface DocumentRenderer * @param writer the Writer. * @param renderer the Renderer. * @param siteRenderingContext the SiteRenderingContext. - * @throws org.apache.maven.doxia.siterenderer.SiteRendererException if it bombs. + * @throws org.apache.maven.doxia.siterenderer.RendererException if it bombs. * @throws java.io.FileNotFoundException if it bombs. * @throws java.io.UnsupportedEncodingException if it bombs. */ - void renderDocument( Writer writer, SiteRenderer renderer, SiteRenderingContext siteRenderingContext ) - throws SiteRendererException, FileNotFoundException, UnsupportedEncodingException; + void renderDocument( Writer writer, Renderer renderer, SiteRenderingContext siteRenderingContext ) + throws RendererException, FileNotFoundException, UnsupportedEncodingException; /** * The name of the output document. Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java?rev=1720901&r1=1720900&r2=1720901&view=diff ============================================================================== --- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java (original) +++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java Sat Dec 19 11:38:05 2015 @@ -45,8 +45,8 @@ public class DoxiaDocumentRenderer } /** {@inheritDoc} */ - public void renderDocument( Writer writer, SiteRenderer renderer, SiteRenderingContext siteRenderingContext ) - throws SiteRendererException, FileNotFoundException, UnsupportedEncodingException + public void renderDocument( Writer writer, Renderer renderer, SiteRenderingContext siteRenderingContext ) + throws RendererException, FileNotFoundException, UnsupportedEncodingException { renderer.renderDocument( writer, renderingContext, siteRenderingContext ); } Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java?rev=1720901&r1=1720900&r2=1720901&view=diff ============================================================================== --- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java (original) +++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java Sat Dec 19 11:38:05 2015 @@ -65,7 +65,7 @@ public class SiteRenderingContext private Map<String, String> moduleExcludes; - private List<DoxiaModuleReference> modules = new ArrayList<DoxiaModuleReference>(); + private List<ModuleReference> modules = new ArrayList<ModuleReference>(); private boolean validate; @@ -293,7 +293,7 @@ public class SiteRenderingContext */ public void addModuleDirectory( File moduleBasedir, String moduleParserId ) { - this.modules.add( new DoxiaModuleReference( moduleParserId, moduleBasedir ) ); + this.modules.add( new ModuleReference( moduleParserId, moduleBasedir ) ); } /** @@ -311,7 +311,7 @@ public class SiteRenderingContext * * @return a {@link java.util.List} object. */ - public List<DoxiaModuleReference> getModules() + public List<ModuleReference> getModules() { return modules; } Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java?rev=1720901&r1=1720900&r2=1720901&view=diff ============================================================================== --- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java (original) +++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java Sat Dec 19 11:38:05 2015 @@ -70,7 +70,7 @@ public class DefaultSiteRendererTest /** * The renderer used to produce output. */ - private SiteRenderer renderer; + private Renderer renderer; /** * The locale before executing tests. @@ -89,7 +89,7 @@ public class DefaultSiteRendererTest { super.setUp(); - renderer = (SiteRenderer) lookup( SiteRenderer.class ); + renderer = (Renderer) lookup( Renderer.ROLE ); // copy the default-site.vm InputStream is = @@ -225,7 +225,7 @@ public class DefaultSiteRendererTest Map<String, ?> attributes = Collections.emptyMap(); SiteRenderingContext siteRenderingContext = - renderer.createSiteContextForTemplate( templateFile, null, attributes, new DecorationModel(), + renderer.createContextForTemplate( templateFile, null, attributes, new DecorationModel(), "defaultWindowTitle", Locale.ENGLISH ); RenderingContext context = new RenderingContext( new File( "" ), "document.html" ); SiteRendererSink sink = new SiteRendererSink( context ); @@ -244,7 +244,7 @@ public class DefaultSiteRendererTest File skinFile = skinJar; Map<String, ?> attributes = Collections.emptyMap(); SiteRenderingContext siteRenderingContext = - renderer.createSiteContextForSkin( skinFile, attributes, new DecorationModel(), "defaultWindowTitle", + renderer.createContextForSkin( skinFile, attributes, new DecorationModel(), "defaultWindowTitle", Locale.ENGLISH ); RenderingContext context = new RenderingContext( new File( "" ), "document.html" ); SiteRendererSink sink = new SiteRendererSink( context ); Propchange: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/ ('svn:mergeinfo' removed)