Author: jvanzyl Date: Sat Mar 17 22:12:27 2007 New Revision: 519557 URL: http://svn.apache.org/viewvc?view=rev&rev=519557 Log: (empty)
Modified: maven/doxia/trunk/doxia-decoration-model/pom.xml maven/doxia/trunk/doxia-doc-renderer/pom.xml maven/doxia/trunk/doxia-site-renderer/pom.xml maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java maven/doxia/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java maven/doxia/trunk/doxia-site-renderer/src/test/site/xdoc/macro.xml maven/doxia/trunk/pom.xml Modified: maven/doxia/trunk/doxia-decoration-model/pom.xml URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-decoration-model/pom.xml?view=diff&rev=519557&r1=519556&r2=519557 ============================================================================== --- maven/doxia/trunk/doxia-decoration-model/pom.xml (original) +++ maven/doxia/trunk/doxia-decoration-model/pom.xml Sat Mar 17 22:12:27 2007 @@ -66,15 +66,8 @@ </build> <dependencies> <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> - <version>1.0.4</version> </dependency> </dependencies> </project> Modified: maven/doxia/trunk/doxia-doc-renderer/pom.xml URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-doc-renderer/pom.xml?view=diff&rev=519557&r1=519556&r2=519557 ============================================================================== --- maven/doxia/trunk/doxia-doc-renderer/pom.xml (original) +++ maven/doxia/trunk/doxia-doc-renderer/pom.xml Sat Mar 17 22:12:27 2007 @@ -72,13 +72,11 @@ <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-module-itext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>${projectVersion}</version> </dependency> - <!-- plexus-container-default uses 1.0.4 --> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> - <version>1.2</version> </dependency> <dependency> <groupId>xalan</groupId> Modified: maven/doxia/trunk/doxia-site-renderer/pom.xml URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-site-renderer/pom.xml?view=diff&rev=519557&r1=519556&r2=519557 ============================================================================== --- maven/doxia/trunk/doxia-site-renderer/pom.xml (original) +++ maven/doxia/trunk/doxia-site-renderer/pom.xml Sat Mar 17 22:12:27 2007 @@ -43,7 +43,10 @@ <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-core</artifactId> - <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-sink-api</artifactId> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> @@ -53,18 +56,39 @@ <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-velocity</artifactId> - <version>1.1.3</version> + <version>1.1.5</version> </dependency> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-decoration-model</artifactId> - <version>1.0-alpha-8</version> </dependency> <dependency> <groupId>htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>1.9</version> <scope>test</scope> + </dependency> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>3.2</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-module-xhtml</artifactId> + <version>${projectVersion}</version> + </dependency> + <!-- The modules are not in doxia core anymore so you have to state a dependency so that + the component descriptor gets picked up. --> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-module-apt</artifactId> + <version>${projectVersion}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-module-xdoc</artifactId> + <version>${projectVersion}</version> </dependency> </dependencies> </project> 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?view=diff&rev=519557&r1=519556&r2=519557 ============================================================================== --- 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 Sat Mar 17 22:12:27 2007 @@ -19,6 +19,29 @@ * 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.Os; +import org.codehaus.plexus.util.PathTool; +import org.codehaus.plexus.util.StringUtils; +import org.codehaus.plexus.velocity.VelocityComponent; +import org.codehaus.plexus.velocity.SiteResourceLoader; + import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -31,6 +54,8 @@ import java.io.Reader; import java.io.UnsupportedEncodingException; import java.io.Writer; +import java.io.StringWriter; +import java.io.StringReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; @@ -47,33 +72,11 @@ 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> * @version $Id:DefaultSiteRenderer.java 348612 2005-11-24 12:54:19 +1100 (Thu, 24 Nov 2005) brett $ - * @plexus.component role="org.apache.maven.doxia.siterenderer.Renderer" + * @plexus.component role-hint="default" */ public class DefaultSiteRenderer extends AbstractLogEnabled @@ -83,24 +86,16 @@ // Requirements // ---------------------------------------------------------------------- - /** - * @plexus.requirement - */ + /** @plexus.requirement */ private VelocityComponent velocity; - /** - * @plexus.requirement - */ + /** @plexus.requirement */ private SiteModuleManager siteModuleManager; - /** - * @plexus.requirement - */ + /** @plexus.requirement */ private Doxia doxia; - /** - * @plexus.requirement - */ + /** @plexus.requirement */ private I18N i18n; private static final String RESOURCE_DIR = "org/apache/maven/doxia/siterenderer/resources"; @@ -113,7 +108,9 @@ // Renderer implementation // ---------------------------------------------------------------------- - public void render( Collection documents, SiteRenderingContext siteRenderingContext, File outputDirectory ) + public void render( Collection documents, + SiteRenderingContext siteRenderingContext, + File outputDirectory ) throws RendererException, IOException { renderModule( documents, siteRenderingContext, outputDirectory ); @@ -180,7 +177,10 @@ return files; } - private void addModuleFiles( File moduleBasedir, SiteModule module, String excludes, Map files ) + private void addModuleFiles( File moduleBasedir, + SiteModule module, + String excludes, + Map files ) throws IOException, RendererException { if ( moduleBasedir.exists() ) @@ -215,8 +215,8 @@ File originalDoc = new File( originalContext.getBasedir(), originalContext.getInputName() ); if ( Os.isFamily( "windows" ) ) { - throw new RendererException( "Files '" + doc + "' clashes with existing '" + originalDoc - + "'." ); + throw new RendererException( + "Files '" + doc + "' clashes with existing '" + originalDoc + "'." ); } getLogger().warn( "Files '" + doc + "' could clashes with existing '" + originalDoc + "'." ); @@ -228,7 +228,9 @@ } } - private void renderModule( Collection docs, SiteRenderingContext siteRenderingContext, File outputDirectory ) + private void renderModule( Collection docs, + SiteRenderingContext siteRenderingContext, + File outputDirectory ) throws IOException, RendererException { for ( Iterator i = docs.iterator(); i.hasNext(); ) @@ -255,6 +257,7 @@ } getLogger().debug( "Generating " + outputFile ); + OutputStreamWriter writer = new OutputStreamWriter( new FileOutputStream( outputFile ), siteRenderingContext.getOutputEncoding() ); @@ -274,7 +277,9 @@ } } - public void renderDocument( Writer writer, RenderingContext renderingContext, SiteRenderingContext context ) + public void renderDocument( Writer writer, + RenderingContext renderingContext, + SiteRenderingContext context ) throws RendererException, FileNotFoundException, UnsupportedEncodingException { SiteRendererSink sink = new SiteRendererSink( renderingContext ); @@ -283,7 +288,36 @@ try { - Reader reader = new InputStreamReader( new FileInputStream( fullPathDoc ), context.getInputEncoding() ); + Reader reader; + + String resource = new File( fullPathDoc ).getAbsolutePath(); + + try + { + SiteResourceLoader.setResource( resource ); + + Context vc = createContext( sink, context ); + + StringWriter sw = new StringWriter(); + + velocity.getEngine().mergeTemplate( resource, vc, sw ); + + reader = new StringReader( sw.toString() ); + } + catch ( Exception e ) + { + if ( getLogger().isDebugEnabled() ) + { + getLogger().error( "Error parsing " + resource + " as a velocity template, using as text.", e ); + } + else + { + getLogger().error( "Error parsing " + resource + " as a velocity template, using as text." ); + } + + + reader = new InputStreamReader( new FileInputStream( fullPathDoc ), context.getInputEncoding() ); + } doxia.parse( reader, renderingContext.getParserId(), sink ); @@ -306,8 +340,8 @@ } } - public void generateDocument( Writer writer, SiteRendererSink sink, SiteRenderingContext siteRenderingContext ) - throws RendererException + private Context createContext( SiteRendererSink sink, + SiteRenderingContext siteRenderingContext ) { VelocityContext context = new VelocityContext(); @@ -357,6 +391,7 @@ // Add user properties Map templateProperties = siteRenderingContext.getTemplateProperties(); + if ( templateProperties != null ) { for ( Iterator i = templateProperties.keySet().iterator(); i.hasNext(); ) @@ -379,14 +414,22 @@ context.put( "i18n", i18n ); - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- + return context; + } + + public void generateDocument( Writer writer, + SiteRendererSink sink, + SiteRenderingContext siteRenderingContext ) + throws RendererException + { + Context context = createContext( sink, siteRenderingContext ); writeTemplate( writer, context, siteRenderingContext ); } - private void writeTemplate( Writer writer, Context context, SiteRenderingContext siteContext ) + private void writeTemplate( Writer writer, + Context context, + SiteRenderingContext siteContext ) throws RendererException { ClassLoader old = null; @@ -417,10 +460,10 @@ } } - /** - * @noinspection OverlyBroadCatchBlock,UnusedCatchParameter - */ - private void processTemplate( String templateName, Context context, Writer writer ) + /** @noinspection OverlyBroadCatchBlock,UnusedCatchParameter */ + private void processTemplate( String templateName, + Context context, + Writer writer ) throws RendererException { Template template; @@ -444,8 +487,11 @@ } } - public SiteRenderingContext createContextForSkin( File skinFile, Map attributes, DecorationModel decoration, - String defaultWindowTitle, Locale locale ) + public SiteRenderingContext createContextForSkin( File skinFile, + Map attributes, + DecorationModel decoration, + String defaultWindowTitle, + Locale locale ) throws IOException { SiteRenderingContext context = new SiteRenderingContext(); @@ -457,7 +503,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 { @@ -480,15 +526,18 @@ return context; } - public SiteRenderingContext createContextForTemplate( File templateFile, File skinFile, Map attributes, - DecorationModel decoration, String defaultWindowTitle, + public SiteRenderingContext createContextForTemplate( File templateFile, + File skinFile, + Map attributes, + DecorationModel decoration, + String defaultWindowTitle, Locale locale ) throws MalformedURLException { 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 ); @@ -512,7 +561,9 @@ } } - public void copyResources( SiteRenderingContext siteContext, File resourcesDirectory, File outputDirectory ) + public void copyResources( SiteRenderingContext siteContext, + File resourcesDirectory, + File outputDirectory ) throws IOException { if ( siteContext.getSkinJarFile() != null ) @@ -595,7 +646,9 @@ } - private void copyFileFromZip( ZipFile file, ZipEntry entry, File destFile ) + private void copyFileFromZip( ZipFile file, + ZipEntry entry, + File destFile ) throws IOException { FileOutputStream fos = new FileOutputStream( destFile ); @@ -617,14 +670,15 @@ * @param destination destination file * @throws java.io.IOException if any */ - protected void copyDirectory( File source, File destination ) + protected void copyDirectory( File source, + File destination ) throws IOException { if ( source.exists() ) { DirectoryScanner scanner = new DirectoryScanner(); - String[] includedResources = { "**/**" }; + String[] includedResources = {"**/**"}; scanner.setIncludes( includedResources ); Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java?view=diff&rev=519557&r1=519556&r2=519557 ============================================================================== --- maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java (original) +++ maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java Sat Mar 17 22:12:27 2007 @@ -21,6 +21,7 @@ import org.apache.maven.doxia.module.xhtml.XhtmlSink; import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext; +import org.apache.velocity.io.VelocityWriter; import java.io.StringWriter; import java.io.Writer; Modified: maven/doxia/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java?view=diff&rev=519557&r1=519556&r2=519557 ============================================================================== --- maven/doxia/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java (original) +++ maven/doxia/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java Sat Mar 17 22:12:27 2007 @@ -19,18 +19,6 @@ * under the License. */ -import java.io.File; -import java.io.FileReader; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.apache.maven.doxia.site.decoration.DecorationModel; -import org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader; -import org.codehaus.plexus.PlexusTestCase; -import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.IOUtil; - import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlAnchor; import com.gargoylesoftware.htmlunit.html.HtmlDefinitionDescription; @@ -45,6 +33,17 @@ import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlParagraph; import com.gargoylesoftware.htmlunit.html.HtmlUnorderedList; +import org.apache.maven.doxia.site.decoration.DecorationModel; +import org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader; +import org.codehaus.plexus.PlexusTestCase; +import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.IOUtil; + +import java.io.File; +import java.io.FileReader; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; /** * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Siveton</a> @@ -65,6 +64,7 @@ throws Exception { super.setUp(); + renderer = (Renderer) lookup( Renderer.ROLE ); // Safety Modified: maven/doxia/trunk/doxia-site-renderer/src/test/site/xdoc/macro.xml URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-site-renderer/src/test/site/xdoc/macro.xml?view=diff&rev=519557&r1=519556&r2=519557 ============================================================================== --- maven/doxia/trunk/doxia-site-renderer/src/test/site/xdoc/macro.xml (original) +++ maven/doxia/trunk/doxia-site-renderer/src/test/site/xdoc/macro.xml Sat Mar 17 22:12:27 2007 @@ -25,7 +25,7 @@ </properties> <body> <section name="section name"> - <macro name="snippet" id="superpom" url="http://svn.apache.org/repos/asf/maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml"/> + <macro name="echo" message="hello!"/> </section> </body> </document> Modified: maven/doxia/trunk/pom.xml URL: http://svn.apache.org/viewvc/maven/doxia/trunk/pom.xml?view=diff&rev=519557&r1=519556&r2=519557 ============================================================================== --- maven/doxia/trunk/pom.xml (original) +++ maven/doxia/trunk/pom.xml Sat Mar 17 22:12:27 2007 @@ -19,7 +19,8 @@ under the License. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache.maven</groupId> @@ -37,6 +38,11 @@ <system>jira</system> <url>http://jira.codehaus.org/browse/DOXIA</url> </issueManagement> + + <properties> + <projectVersion>1.0-alpha-9-SNAPSHOT</projectVersion> + </properties> + <mailingLists> <mailingList> <name>Doxia Developer List</name> @@ -67,7 +73,7 @@ <plugin> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-maven-plugin</artifactId> - <version>1.2</version> + <version>1.3.5</version> <executions> <execution> <goals> @@ -77,7 +83,66 @@ </executions> </plugin> </plugins> + <pluginManagement> + <plugins> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <forkMode>never</forkMode> + </configuration> + </plugin> + </plugins> + </pluginManagement> </build> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-sink-api</artifactId> + <version>${projectVersion}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-decoration-model</artifactId> + <version>${projectVersion}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-core</artifactId> + <version>${projectVersion}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-core</artifactId> + <version>${projectVersion}</version> + <classifier>tests</classifier> + </dependency> + <!-- Plexus --> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha-20</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + <version>1.0-alpha-20</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>1.4.1</version> + </dependency> + </dependencies> + </dependencyManagement> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> <modules> <module>doxia-core</module> <module>doxia-sink-api</module>