You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2015/12/19 12:38:06 UTC
svn commit: r1720901 - in
/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src:
main/java/org/apache/maven/doxia/siterenderer/
test/java/org/apache/maven/doxia/siterenderer/ test/resources/site/
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)