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 br...@apache.org on 2005/12/22 03:57:34 UTC
svn commit: r358449 - in /maven/doxia/trunk: ./
doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/
doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/model/
doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/de...
Author: brett
Date: Wed Dec 21 18:57:07 2005
New Revision: 358449
URL: http://svn.apache.org/viewcvs?rev=358449&view=rev
Log:
- move doxia's site renderer to a model for the decoration, while retaining the <custom> element to allow arbitrary extension that can be used from the velocity template.
- simplify various parts of the API
- add inheritance of the site descriptor from a file based source
Added:
maven/doxia/trunk/doxia-decoration-model/ (with props)
maven/doxia/trunk/doxia-decoration-model/pom.xml (with props)
maven/doxia/trunk/doxia-decoration-model/src/
maven/doxia/trunk/doxia-decoration-model/src/main/
maven/doxia/trunk/doxia-decoration-model/src/main/java/
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssembler.java (with props)
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java (with props)
maven/doxia/trunk/doxia-decoration-model/src/main/mdo/
maven/doxia/trunk/doxia-decoration-model/src/main/mdo/decoration.mdo
maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java (with props)
Removed:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/model/DecorationModel.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/model/DecorationModelReader.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/model/Menu.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/BannerRenderer.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/DecorationRenderer.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/LinksRenderer.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/NavigationRenderer.java
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/RenderingContext.java
maven/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/XhtmlSinkTest.java
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/Renderer.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/pom.xml
Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java?rev=358449&r1=358448&r2=358449&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java Wed Dec 21 18:57:07 2005
@@ -17,21 +17,13 @@
*/
import org.apache.maven.doxia.module.HtmlTools;
-import org.apache.maven.doxia.module.xhtml.decoration.render.BannerRenderer;
-import org.apache.maven.doxia.module.xhtml.decoration.render.LinksRenderer;
-import org.apache.maven.doxia.module.xhtml.decoration.render.NavigationRenderer;
import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext;
import org.apache.maven.doxia.parser.Parser;
import org.apache.maven.doxia.sink.StructureSink;
import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
-import org.codehaus.plexus.util.xml.XMLWriter;
import java.io.PrintWriter;
-import java.io.StringWriter;
import java.io.Writer;
-import java.util.Date;
-import java.util.HashMap;
import java.util.Map;
/**
@@ -48,16 +40,10 @@
private int itemFlag;
- private boolean boxedFlag;
-
private boolean verbatimFlag;
private int cellCount;
- private boolean hasTitle;
-
- private int sectionLevel;
-
private PrintWriter writer;
private StringsMap directives;
@@ -93,8 +79,6 @@
itemFlag = 0;
- boxedFlag = false;
-
verbatimFlag = false;
cellCount = 0;
@@ -133,8 +117,6 @@
write( "</title>" );
resetBuffer();
-
- hasTitle = true;
}
public void author_()
@@ -163,62 +145,6 @@
{
String body = directiveValue( "body()" );
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- NavigationRenderer r = new NavigationRenderer();
-
- StringWriter sw = new StringWriter();
-
- XMLWriter w = new PrettyPrintXMLWriter( sw );
-
- r.render( w, renderingContext );
-
- Map map = new HashMap();
-
- map.put( "mainMenu", sw.toString() );
-
- sw = new StringWriter();
-
- w = new PrettyPrintXMLWriter( sw );
-
- LinksRenderer lr = new LinksRenderer();
-
- lr.render( w, renderingContext );
-
- map.put( "links", sw.toString() );
-
- sw = new StringWriter();
-
- w = new PrettyPrintXMLWriter( sw );
-
- BannerRenderer br = new BannerRenderer( "bannerLeft" );
-
- br.render( w, renderingContext );
-
- map.put( "bannerLeft", sw.toString() );
-
- sw = new StringWriter();
-
- w = new PrettyPrintXMLWriter( sw );
-
- br = new BannerRenderer( "bannerRight" );
-
- br.render( w, renderingContext );
-
- map.put( "bannerRight", sw.toString() );
-
- map.put( "navBarLeft", "Last Published: " + new Date() );
-
- map.put( "rightColumn", " " );
-
- body = StringUtils.interpolate( body, map );
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
write( body );
}
@@ -226,14 +152,6 @@
{
String body = directiveValue( "body_()" );
- Map map = new HashMap();
-
- map.put( "rightColumn", " " );
-
- map.put( "footer", "Powered by Doxia 2004 (c)" );
-
- body = StringUtils.interpolate( body, map );
-
write( body );
resetState();
@@ -450,8 +368,6 @@
{
verbatimFlag = true;
- boxedFlag = boxed;
-
write( "<div class=\"source\"><pre>" );
}
@@ -461,7 +377,6 @@
verbatimFlag = false;
- boxedFlag = false;
}
public void horizontalRule()
@@ -900,5 +815,10 @@
public void close()
{
writer.close();
+ }
+
+ public RenderingContext getRenderingContext()
+ {
+ return renderingContext;
}
}
Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/RenderingContext.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/RenderingContext.java?rev=358449&r1=358448&r2=358449&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/RenderingContext.java (original)
+++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/xhtml/decoration/render/RenderingContext.java Wed Dec 21 18:57:07 2005
@@ -16,7 +16,6 @@
* limitations under the License.
*/
-import org.apache.maven.doxia.module.xhtml.decoration.model.DecorationModel;
import org.codehaus.plexus.util.PathTool;
import java.io.File;
@@ -33,9 +32,7 @@
private String outputName;
- private DecorationModel decorationModel;
-
- public RenderingContext( File basedir, String document, DecorationModel decorationModel )
+ public RenderingContext( File basedir, String document )
{
this.basedir = basedir;
@@ -43,8 +40,6 @@
this.outputName = "/" + document.substring( 0, document.lastIndexOf( "." ) + 1 ) + "html";
relativePath = PathTool.getRelativePath( basedir.getPath(), new File( basedir, document ).getPath() );
-
- this.decorationModel = decorationModel;
}
public File getBasedir()
@@ -62,8 +57,4 @@
return outputName;
}
- public DecorationModel getDecorationModel()
- {
- return decorationModel;
- }
}
Modified: maven/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/XhtmlSinkTest.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/XhtmlSinkTest.java?rev=358449&r1=358448&r2=358449&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/XhtmlSinkTest.java (original)
+++ maven/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/XhtmlSinkTest.java Wed Dec 21 18:57:07 2005
@@ -18,8 +18,6 @@
import org.apache.maven.doxia.module.xhtml.SinkDescriptorReader;
import org.apache.maven.doxia.module.xhtml.XhtmlSink;
-import org.apache.maven.doxia.module.xhtml.decoration.model.DecorationModel;
-import org.apache.maven.doxia.module.xhtml.decoration.model.DecorationModelReader;
import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext;
import org.apache.maven.doxia.sink.Sink;
@@ -46,12 +44,8 @@
{
String xdoc = "test.apt";
- DecorationModelReader b = new DecorationModelReader();
-
- DecorationModel navigation = b.createNavigation( new File( getBasedir(), "src/test/site/site.xml" ).getPath() );
-
RenderingContext renderingContext =
- new RenderingContext( getBasedirFile(), new File( getBasedirFile(), xdoc ).getPath(), navigation );
+ new RenderingContext( getBasedirFile(), new File( getBasedirFile(), xdoc ).getPath() );
FileReader reader = new FileReader( new File( getBasedirFile(), "src/test/resources/codehaus.dst" ) );
Propchange: maven/doxia/trunk/doxia-decoration-model/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Dec 21 18:57:07 2005
@@ -0,0 +1,4 @@
+target
+*.iws
+*.ipr
+*.iml
Added: maven/doxia/trunk/doxia-decoration-model/pom.xml
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-decoration-model/pom.xml?rev=358449&view=auto
==============================================================================
--- maven/doxia/trunk/doxia-decoration-model/pom.xml (added)
+++ maven/doxia/trunk/doxia-decoration-model/pom.xml Wed Dec 21 18:57:07 2005
@@ -0,0 +1,40 @@
+<project>
+ <parent>
+ <artifactId>doxia</artifactId>
+ <groupId>org.apache.maven.doxia</groupId>
+ <version>1.0-alpha-7-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>doxia-decoration-model</artifactId>
+ <name>Doxia Decoration Model</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <version>1.0-alpha-8-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>xpp3-writer</goal>
+ <goal>java</goal>
+ <goal>xpp3-reader</goal>
+ <goal>xsd</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <version>1.0.0</version>
+ <model>src/main/mdo/decoration.mdo</model>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.0.4</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange: maven/doxia/trunk/doxia-decoration-model/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/doxia/trunk/doxia-decoration-model/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssembler.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssembler.java?rev=358449&view=auto
==============================================================================
--- maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssembler.java (added)
+++ maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssembler.java Wed Dec 21 18:57:07 2005
@@ -0,0 +1,31 @@
+package org.apache.maven.doxia.site.decoration.inheritance;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+import org.apache.maven.doxia.site.decoration.DecorationModel;
+
+/**
+ * Manage inheritance of the decoration model.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public interface DecorationModelInheritanceAssembler
+{
+ String ROLE = DecorationModelInheritanceAssembler.class.getName();
+
+ void assembleModelInheritance( DecorationModel child, DecorationModel parent );
+}
Propchange: maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssembler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritanceAssembler.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java?rev=358449&view=auto
==============================================================================
--- maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java (added)
+++ maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java Wed Dec 21 18:57:07 2005
@@ -0,0 +1,156 @@
+package org.apache.maven.doxia.site.decoration.inheritance;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+import org.apache.maven.doxia.site.decoration.Body;
+import org.apache.maven.doxia.site.decoration.DecorationModel;
+import org.apache.maven.doxia.site.decoration.LinkItem;
+import org.apache.maven.doxia.site.decoration.Menu;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Manage inheritance of the decoration model.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @plexus.component role="org.apache.maven.doxia.site.decoration.inheritance.DecorationModelInheritanceAssembler"
+ */
+public class DefaultDecorationModelInheritanceAssembler
+ implements DecorationModelInheritanceAssembler
+{
+ public void assembleModelInheritance( DecorationModel child, DecorationModel parent )
+ {
+ // cannot inherit from null parent.
+ if ( parent != null )
+ {
+ if ( child.getBannerLeft() == null )
+ {
+ child.setBannerLeft( parent.getBannerLeft() );
+ }
+
+ if ( child.getBannerRight() == null )
+ {
+ child.setBannerRight( parent.getBannerRight() );
+ }
+
+ if ( child.getPublishDate() == null )
+ {
+ child.setPublishDate( parent.getPublishDate() );
+ }
+
+ child.setPoweredBy( mergeLinkItemLists( child.getPoweredBy(), parent.getPoweredBy() ) );
+
+ assembleBodyInheritance( child, parent );
+
+ assembleCustomInheritance( child, parent );
+ }
+ }
+
+ private void assembleCustomInheritance( DecorationModel child, DecorationModel parent )
+ {
+ if ( child.getCustom() == null )
+ {
+ child.setCustom( parent.getCustom() );
+ }
+ else
+ {
+ child.setCustom( Xpp3Dom.mergeXpp3Dom( (Xpp3Dom) child.getCustom(), (Xpp3Dom) parent.getCustom() ) );
+ }
+ }
+
+ private void assembleBodyInheritance( DecorationModel child, DecorationModel parent )
+ {
+ Body cBody = child.getBody();
+ Body pBody = parent.getBody();
+
+ if ( cBody == null )
+ {
+ child.setBody( pBody );
+ }
+ else if ( pBody != null )
+ {
+ if ( cBody.getHead() == null )
+ {
+ cBody.setHead( pBody.getHead() );
+ }
+ else
+ {
+ cBody.setHead( Xpp3Dom.mergeXpp3Dom( (Xpp3Dom) cBody.getHead(), (Xpp3Dom) pBody.getHead() ) );
+ }
+
+ cBody.setLinks( mergeLinkItemLists( cBody.getLinks(), pBody.getLinks() ) );
+ cBody.setBreadcrumbs( mergeLinkItemLists( cBody.getBreadcrumbs(), pBody.getBreadcrumbs() ) );
+
+ cBody.setMenus( mergeMenus( cBody.getMenus(), pBody.getMenus() ) );
+ }
+ }
+
+ private List mergeMenus( List dominant, List recessive )
+ {
+ List menus = new ArrayList();
+
+ for ( Iterator it = dominant.iterator(); it.hasNext(); )
+ {
+ Menu menu = (Menu) it.next();
+
+ menus.add( menu );
+ }
+
+ for ( Iterator it = recessive.iterator(); it.hasNext(); )
+ {
+ Menu menu = (Menu) it.next();
+
+ if ( "top".equals( menu.getInherit() ) )
+ {
+ menus.add( 0, menu );
+ }
+ else if ( "bottom".equals( menu.getInherit() ) )
+ {
+ menus.add( menu );
+ }
+ }
+
+ return menus;
+ }
+
+ private List mergeLinkItemLists( List dominant, List recessive )
+ {
+ List items = new ArrayList();
+
+ for ( Iterator it = dominant.iterator(); it.hasNext(); )
+ {
+ LinkItem item = (LinkItem) it.next();
+
+ items.add( item );
+ }
+
+ for ( Iterator it = recessive.iterator(); it.hasNext(); )
+ {
+ LinkItem item = (LinkItem) it.next();
+
+ if ( !items.contains( item ) )
+ {
+ items.add( item );
+ }
+ }
+
+ return items;
+ }
+}
Propchange: maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/doxia/trunk/doxia-decoration-model/src/main/mdo/decoration.mdo
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-decoration-model/src/main/mdo/decoration.mdo?rev=358449&view=auto
==============================================================================
--- maven/doxia/trunk/doxia-decoration-model/src/main/mdo/decoration.mdo (added)
+++ maven/doxia/trunk/doxia-decoration-model/src/main/mdo/decoration.mdo Wed Dec 21 18:57:07 2005
@@ -0,0 +1,250 @@
+<?xml version="1.0"?>
+
+<model>
+ <id>decoration</id>
+ <name>Decoration</name>
+ <description><![CDATA[Model for site decoration in Doxia.]]></description>
+ <defaults>
+ <default>
+ <key>package</key>
+ <value>org.apache.maven.doxia.site.decoration</value>
+ </default>
+ </defaults>
+ <classes>
+ <class rootElement="true" xml.tagName="project">
+ <name>DecorationModel</name>
+ <description>Describes the overall project decoration model.</description>
+ <version>1.0.0</version>
+ <fields>
+ <field xml.attribute="true">
+ <name>name</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ </field>
+ <field>
+ <name>bannerLeft</name>
+ <description>Banner logo on the masthead of the site to the left.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>Banner</type>
+ </association>
+ </field>
+ <field>
+ <name>bannerRight</name>
+ <description>Banner logo on the masthead of the site to the right.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>Banner</type>
+ </association>
+ </field>
+ <field>
+ <name>publishDate</name>
+ <description>Modify the date published display properties.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>PublishDate</type>
+ </association>
+ </field>
+ <field xml.associationTagName="logo">
+ <name>poweredBy</name>
+ <description>Powered by logos.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>Logo</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
+ <name>body</name>
+ <description>The main site content decoration.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>Body</type>
+ </association>
+ </field>
+ <field>
+ <name>custom</name>
+ <description>Custom configuration for use with customised velocity templates.</description>
+ <version>1.0.0</version>
+ <type>DOM</type>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>Banner</name>
+ <description>A banner logo on the masthead of the site.</description>
+ <version>1.0.0</version>
+ <fields>
+ <field>
+ <name>name</name>
+ <version>1.0.0</version>
+ <description>Description of the banner.</description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>src</name>
+ <version>1.0.0</version>
+ <description>The href of an image for the banner</description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>alt</name>
+ <version>1.0.0</version>
+ <description>Alt description for the banner image.</description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>href</name>
+ <version>1.0.0</version>
+ <description>The href of a link to use for the banner</description>
+ <type>String</type>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>PublishDate</name>
+ <description>Modify display properties for date published.</description>
+ <version>1.0.0</version>
+ <fields>
+ <field xml.attribute="true">
+ <name>position</name>
+ <description>Where to place the date published (left, right, navigation-top, navigation-bottom,
+ bottom).</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ </field>
+ <field xml.attribute="true">
+ <name>format</name>
+ <description>Date format to use. The default is MM/dd/yyyy.</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>Logo</name>
+ <description>Logo.</description>
+ <version>1.0.0</version>
+ <superClass>LinkItem</superClass>
+ <fields>
+ <field xml.attribute="true">
+ <name>img</name>
+ <description>Logo image href.</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>Body</name>
+ <description>The main content decoration.</description>
+ <version>1.0.0</version>
+ <fields>
+ <field>
+ <name>head</name>
+ <description>Additional content to include in the HEAD block of the generated pages.</description>
+ <version>1.0.0</version>
+ <type>DOM</type>
+ </field>
+ <field xml.associationTagName="item">
+ <name>links</name>
+ <description>A list of links to display in the navigation.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>LinkItem</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field xml.associationTagName="item">
+ <name>breadcrumbs</name>
+ <description>A list of breadcrumbs to display in the navigation.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>LinkItem</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field xml.listStyle="flat">
+ <name>menus</name>
+ <description>Menus to include in the navigation.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>Menu</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>LinkItem</name>
+ <description>A link in the navigation.</description>
+ <version>1.0.0</version>
+ <fields>
+ <field xml.attribute="true">
+ <name>name</name>
+ <description>The name to use for the link.</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ </field>
+ <field xml.attribute="true">
+ <name>href</name>
+ <description>The href to use for the link.</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>Menu</name>
+ <description>A menu in the navigation.</description>
+ <version>1.0.0</version>
+ <fields>
+ <field xml.attribute="true">
+ <name>name</name>
+ <description>The name to use for the menu.</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ </field>
+ <field xml.attribute="true">
+ <name>inherit</name>
+ <description>The way in which the menu is inherited.</description>
+ <version>1.0.0</version>
+ <type>String</type>
+ </field>
+ <field xml.listStyle="flat">
+ <name>items</name>
+ <description>Menu item.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>MenuItem</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>MenuItem</name>
+ <description>A menu item.</description>
+ <version>1.0.0</version>
+ <superClass>LinkItem</superClass>
+ <fields>
+ <field xml.attribute="true">
+ <name>collapse</name>
+ <description>Whether the item is collapsed by default when it has children elements.</description>
+ <version>1.0.0</version>
+ <type>boolean</type>
+ </field>
+ <field xml.listStyle="flat">
+ <name>items</name>
+ <description>Menu item.</description>
+ <version>1.0.0</version>
+ <association>
+ <type>MenuItem</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
+ </class>
+ </classes>
+</model>
+
Modified: maven/doxia/trunk/doxia-site-renderer/pom.xml
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/pom.xml?rev=358449&r1=358448&r2=358449&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-site-renderer/pom.xml (original)
+++ maven/doxia/trunk/doxia-site-renderer/pom.xml Wed Dec 21 18:57:07 2005
@@ -22,6 +22,11 @@
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
+ <artifactId>doxia-decoration-model</artifactId>
+ <version>1.0-alpha-7-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-core</artifactId>
<version>1.0-alpha-7-SNAPSHOT</version>
</dependency>
Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java?rev=358449&r1=358448&r2=358449&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 Wed Dec 21 18:57:07 2005
@@ -17,10 +17,6 @@
*/
import org.apache.maven.doxia.Doxia;
-import org.apache.maven.doxia.module.xhtml.SinkDescriptorReader;
-import org.apache.maven.doxia.module.xhtml.XhtmlSink;
-import org.apache.maven.doxia.module.xhtml.decoration.model.DecorationModel;
-import org.apache.maven.doxia.module.xhtml.decoration.model.DecorationModelReader;
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;
@@ -35,30 +31,19 @@
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.PathTool;
-import org.codehaus.plexus.util.StringInputStream;
import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.codehaus.plexus.velocity.VelocityComponent;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
-import java.io.FileWriter;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import java.io.Reader;
-import java.io.StringWriter;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
/**
@@ -98,119 +83,18 @@
private I18N i18n;
// ----------------------------------------------------------------------
- // Fields
- // ----------------------------------------------------------------------
-
- private String currentDocument;
-
- private RenderingContext renderingContext;
-
- private ClassLoader templateClassLoader;
-
- private Xpp3Dom siteDescriptor;
-
- private Locale defaultLocale = Locale.ENGLISH;
-
- public void setTemplateClassLoader( ClassLoader templateClassLoader )
- {
- this.templateClassLoader = templateClassLoader;
- }
-
- // ----------------------------------------------------------------------
// Renderer implementation
// ----------------------------------------------------------------------
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#render(java.io.File, java.io.File, java.io.File, java.lang.String, java.util.Map)
- */
- public void render( File siteDirectory, File outputDirectory, File siteDescriptor, String templateName,
- Map templateProperties )
- throws RendererException, IOException
- {
- render( siteDirectory, outputDirectory, siteDescriptor, templateName, templateProperties, defaultLocale );
- }
-
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#render(java.io.File, java.io.File, java.io.File, java.lang.String, java.util.Map, java.util.Locale)
- */
- public void render( File siteDirectory, File outputDirectory, File siteDescriptor, String templateName,
- Map templateProperties, Locale locale )
- throws RendererException, IOException
- {
- render( siteDirectory, outputDirectory, new FileInputStream( siteDescriptor ), templateName, templateProperties,
- locale );
- }
-
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#render(java.io.File, java.io.File, java.lang.String, java.lang.String, Map)
- */
- public void render( File siteDirectory, File outputDirectory, String siteDescriptor, String templateName,
- Map templateProperties )
+ public void render( File siteDirectory, File outputDirectory, SiteRenderingContext context )
throws RendererException, IOException
{
- render( siteDirectory, outputDirectory, siteDescriptor, templateName, templateProperties, defaultLocale );
+ render( siteDirectory, outputDirectory, context, DEFAULT_OUTPUT_ENCODING );
}
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#render(java.io.File, java.io.File, java.lang.String, java.lang.String, java.util.Map, java.util.Locale)
- */
- public void render( File siteDirectory, File outputDirectory, String siteDescriptor, String templateName,
- Map templateProperties, Locale locale )
+ public void render( File siteDirectory, File outputDirectory, SiteRenderingContext context, String outputEncoding )
throws RendererException, IOException
{
- render( siteDirectory, outputDirectory, new StringInputStream( siteDescriptor ), templateName,
- templateProperties, locale );
- }
-
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#render(File, File, InputStream, String, Map)
- */
- public void render( File siteDirectory, File outputDirectory, InputStream siteDescriptor, String templateName,
- Map templateProperties )
- throws RendererException, IOException
- {
- render( siteDirectory, outputDirectory, siteDescriptor, templateName, templateProperties, defaultLocale );
- }
-
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#render(java.io.File, java.io.File, java.io.InputStream, java.lang.String, java.util.Map, java.util.Locale)
- */
- public void render( File siteDirectory, File outputDirectory, InputStream siteDescriptor, String templateName,
- Map templateProperties, Locale locale )
- throws RendererException, IOException
- {
- render( siteDirectory, outputDirectory, siteDescriptor, templateName, templateProperties, locale,
- DEFAULT_OUTPUT_ENCODING );
- }
-
- //per module
- public void render( File siteDirectory, File outputDirectory, String module, String moduleExtension,
- String moduleParserId, String siteDescriptor, String templateName, Map templateProperties,
- Locale locale, String outputEncoding )
- throws RendererException, IOException
- {
- render( siteDirectory, outputDirectory, module, moduleExtension, moduleParserId,
- new StringInputStream( siteDescriptor ), templateName, templateProperties, locale, outputEncoding );
- }
-
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#render(java.io.File, java.io.File, java.io.InputStream, java.lang.String, java.util.Map, java.util.Locale, java.lang.String)
- */
- public void render( File siteDirectory, File outputDirectory, InputStream siteDescriptor, String templateName,
- Map templateProperties, Locale locale, String outputEncoding )
- throws RendererException, IOException
- {
- try
- {
- InputStreamReader xmlReader = new InputStreamReader( siteDescriptor );
-
- this.siteDescriptor = Xpp3DomBuilder.build( xmlReader );
- }
- catch ( XmlPullParserException e )
- {
- throw new RendererException( "Can't read site descriptor.", e );
- }
-
for ( Iterator i = siteModuleManager.getSiteModules().iterator(); i.hasNext(); )
{
SiteModule module = (SiteModule) i.next();
@@ -245,7 +129,7 @@
}
generateDocument( new OutputStreamWriter( new FileOutputStream( outputFile ), outputEncoding ),
- templateName, templateProperties, sink, locale );
+ sink, context );
}
catch ( ParserNotFoundException e )
{
@@ -269,21 +153,9 @@
// per module renderer
public void render( File siteDirectory, File outputDirectory, String module, String moduleExtension,
- String moduleParserId, InputStream siteDescriptor, String templateName, Map templateProperties,
- Locale locale, String outputEncoding )
+ String moduleParserId, SiteRenderingContext context, String outputEncoding )
throws RendererException, IOException
{
- try
- {
- InputStreamReader xmlReader = new InputStreamReader( siteDescriptor );
-
- this.siteDescriptor = Xpp3DomBuilder.build( xmlReader );
- }
- catch ( XmlPullParserException e )
- {
- throw new RendererException( "Can't read site descriptor.", e );
- }
-
List docs = FileUtils.getFileNames( siteDirectory, "**/*." + moduleExtension, null, false );
for ( Iterator j = docs.iterator(); j.hasNext(); )
@@ -308,8 +180,8 @@
{
outputFile.getParentFile().mkdirs();
}
- generateDocument( new OutputStreamWriter( new FileOutputStream( outputFile ), outputEncoding ),
- templateName, templateProperties, sink, locale );
+ generateDocument( new OutputStreamWriter( new FileOutputStream( outputFile ), outputEncoding ), sink,
+ context );
}
catch ( ParserNotFoundException e )
{
@@ -328,20 +200,7 @@
}
}
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#generateDocument(java.io.Writer, java.lang.String, java.util.Map, org.apache.maven.doxia.siterenderer.sink.SiteRendererSink)
- */
- public void generateDocument( Writer writer, String templateName, Map templateProperties, SiteRendererSink sink )
- throws RendererException
- {
- generateDocument( writer, templateName, templateProperties, sink, defaultLocale );
- }
-
- /**
- * @see org.apache.maven.doxia.siterenderer.Renderer#generateDocument(java.io.Writer, java.lang.String, java.util.Map, org.apache.maven.doxia.siterenderer.sink.SiteRendererSink, java.util.Locale)
- */
- public void generateDocument( Writer writer, String templateName, Map templateProperties, SiteRendererSink sink,
- Locale locale )
+ public void generateDocument( Writer writer, SiteRendererSink sink, SiteRenderingContext siteContext )
throws RendererException
{
VelocityContext context = new VelocityContext();
@@ -350,7 +209,9 @@
// Data objects
// ----------------------------------------------------------------------
- context.put( "relativePath", renderingContext.getRelativePath() );
+ RenderingContext renderingContext = sink.getRenderingContext();
+ String relativePath = renderingContext.getRelativePath();
+ context.put( "relativePath", relativePath );
// Add infos from document
context.put( "authors", sink.getAuthors() );
@@ -359,19 +220,20 @@
context.put( "bodyContent", sink.getBody() );
- // Add infos from siteDescriptor
- context.put( "siteDescriptor", siteDescriptor );
+ context.put( "decoration", siteContext.getDecoration() );
context.put( "currentDate", new Date() );
context.put( "dateFormat", new SimpleDateFormat() );
- context.put( "currentFileName", PathTool.calculateLink( "/" + currentDocument, renderingContext
- .getRelativePath() ) );
+ String currentFileName = PathTool.calculateLink( renderingContext.getOutputName(), relativePath );
+
+ context.put( "currentFileName", currentFileName );
- context.put( "locale", locale );
+ context.put( "locale", siteContext.getLocale() );
// Add user properties
+ Map templateProperties = siteContext.getTemplateProperties();
if ( templateProperties != null )
{
for ( Iterator i = templateProperties.keySet().iterator(); i.hasNext(); )
@@ -398,10 +260,10 @@
//
// ----------------------------------------------------------------------
- writeTemplate( templateName, writer, context );
+ writeTemplate( siteContext.getTemplate(), writer, context, siteContext.getTemplateClassLoader() );
}
- private void writeTemplate( String templateName, Writer writer, Context context )
+ private void writeTemplate( String templateName, Writer writer, Context context, ClassLoader templateClassLoader )
throws RendererException
{
ClassLoader old = null;
@@ -459,73 +321,9 @@
}
}
- public SiteRendererSink createSink( File moduleBaseDir, String document, File siteDescriptor )
- throws RendererException, IOException
- {
- return createSink( moduleBaseDir, document, new FileInputStream( siteDescriptor ) );
- }
-
- public SiteRendererSink createSink( File moduleBaseDir, String document, String siteDescriptor )
- throws RendererException, IOException
- {
- return createSink( moduleBaseDir, document, new StringInputStream( siteDescriptor ) );
- }
-
- public SiteRendererSink createSink( File moduleBaseDir, String document, InputStream siteDescriptor )
- throws RendererException, IOException
- {
- try
- {
- InputStreamReader xmlReader = new InputStreamReader( siteDescriptor );
-
- this.siteDescriptor = Xpp3DomBuilder.build( xmlReader );
- }
- catch ( XmlPullParserException e )
- {
- throw new RendererException( "Can't read site descriptor.", e );
- }
-
- return createSink( moduleBaseDir, document );
- }
-
- private SiteRendererSink createSink( File moduleBaseDir, String document )
+ public SiteRendererSink createSink( File moduleBaseDir, String document )
{
- currentDocument = document;
-
- renderingContext = new RenderingContext( moduleBaseDir, document, null );
-
- return new SiteRendererSink( new StringWriter(), renderingContext );
- }
-
- public XhtmlSink createSink( File moduleBasedir, String doc, String outputDirectory, InputStream siteDescriptor,
- String flavour )
- throws IOException, XmlPullParserException
- {
- DecorationModelReader decorationModelReader = new DecorationModelReader();
-
- DecorationModel decorationModel =
- decorationModelReader.createNavigation( new InputStreamReader( siteDescriptor ) );
-
- String outputName = doc.substring( 0, doc.indexOf( "." ) + 1 ) + "html";
-
- File outputFile = new File( outputDirectory, outputName );
-
- if ( !outputFile.getParentFile().exists() )
- {
- outputFile.getParentFile().mkdirs();
- }
-
- InputStream is = getClass().getResourceAsStream( "/" + flavour + ".dst" );
-
- Reader r = new InputStreamReader( is );
-
- SinkDescriptorReader sdr = new SinkDescriptorReader();
-
- Map directives = sdr.read( r );
-
- RenderingContext renderingContext = new RenderingContext( moduleBasedir, doc, decorationModel );
-
- return new XhtmlSink( new FileWriter( outputFile ), renderingContext, directives );
+ return new SiteRendererSink( new RenderingContext( moduleBaseDir, document ) );
}
}
Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java?rev=358449&r1=358448&r2=358449&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java (original)
+++ maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java Wed Dec 21 18:57:07 2005
@@ -20,10 +20,7 @@
import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
import java.io.Writer;
-import java.util.Locale;
-import java.util.Map;
/**
* @author <a href="mailto:evenisse@codehaus.org>Emmanuel Venisse</a>
@@ -33,60 +30,20 @@
{
String ROLE = Renderer.class.getName();
- void render( File siteDirectory, File outputDirectory, File siteDescriptor, String templateName,
- Map templateProperties )
+ void render( File siteDirectory, File outputDirectory, SiteRenderingContext context )
throws RendererException, IOException;
- void render( File siteDirectory, File outputDirectory, InputStream siteDescriptor, String templateName,
- Map templateProperties )
- throws RendererException, IOException;
-
- void render( File siteDirectory, File outputDirectory, String siteDescriptor, String templateName,
- Map templateProperties )
- throws RendererException, IOException;
-
- void render( File siteDirectory, File outputDirectory, File siteDescriptor, String templateName,
- Map templateProperties, Locale locale )
- throws RendererException, IOException;
-
- void render( File siteDirectory, File outputDirectory, InputStream siteDescriptor, String templateName,
- Map templateProperties, Locale locale )
- throws RendererException, IOException;
-
- void render( File siteDirectory, File outputDirectory, String siteDescriptor, String templateName,
- Map templateProperties, Locale locale )
- throws RendererException, IOException;
-
- void render( File siteDirectory, File outputDirectory, InputStream siteDescriptor, String templateName,
- Map templateProperties, Locale locale, String outputEncoding )
+ void render( File siteDirectory, File outputDirectory, SiteRenderingContext context, String outputEncoding )
throws RendererException, IOException;
void render( File siteDirectory, File outputDirectory, String module, String moduleExtension, String moduleParserId,
- String siteDescriptor, String templateName, Map templateProperties, Locale locale,
- String outputEncoding )
+ SiteRenderingContext context, String outputEncoding )
throws RendererException, IOException;
- void render( File siteDirectory, File outputDirectory, String module, String moduleExtension, String moduleParserId,
- InputStream siteDescriptor, String templateName, Map templateProperties, Locale locale,
- String outputEncoding )
- throws RendererException, IOException;
-
- void generateDocument( Writer writer, String templateName, Map templateProperties, SiteRendererSink sink )
- throws RendererException;
-
- void generateDocument( Writer writer, String templateName, Map templateProperties, SiteRendererSink sink,
- Locale locale )
+ void generateDocument( Writer writer, SiteRendererSink sink, SiteRenderingContext siteContext )
throws RendererException;
- SiteRendererSink createSink( File moduleBaseDir, String document, File siteDescriptor )
+ SiteRendererSink createSink( File moduleBaseDir, String document )
throws RendererException, IOException;
-
- SiteRendererSink createSink( File moduleBaseDir, String document, String siteDescriptor )
- throws RendererException, IOException;
-
- SiteRendererSink createSink( File moduleBaseDir, String document, InputStream siteDescriptor )
- throws RendererException, IOException;
-
- void setTemplateClassLoader( ClassLoader templateClassLoader );
}
Added: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java?rev=358449&view=auto
==============================================================================
--- maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java (added)
+++ maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java Wed Dec 21 18:57:07 2005
@@ -0,0 +1,89 @@
+package org.apache.maven.doxia.siterenderer;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.doxia.site.decoration.DecorationModel;
+
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id:DefaultSiteRenderer.java 348612 2005-11-24 12:54:19 +1100 (Thu, 24 Nov 2005) brett $
+ */
+public class SiteRenderingContext
+{
+ private String template;
+
+ private Map templateProperties;
+
+ private ClassLoader templateClassLoader;
+
+ private Locale locale = Locale.getDefault();
+
+ private DecorationModel decoration;
+
+ public String getTemplate()
+ {
+ return template;
+ }
+
+ public void setTemplate( String template )
+ {
+ this.template = template;
+ }
+
+ public Map getTemplateProperties()
+ {
+ return templateProperties;
+ }
+
+ public void setTemplateProperties( Map templateProperties )
+ {
+ this.templateProperties = templateProperties;
+ }
+
+ public ClassLoader getTemplateClassLoader()
+ {
+ return templateClassLoader;
+ }
+
+ public void setTemplateClassLoader( ClassLoader templateClassLoader )
+ {
+ this.templateClassLoader = templateClassLoader;
+ }
+
+ public Locale getLocale()
+ {
+ return locale;
+ }
+
+ public void setLocale( Locale locale )
+ {
+ this.locale = locale;
+ }
+
+ public DecorationModel getDecoration()
+ {
+ return decoration;
+ }
+
+ public void setDecoration( DecorationModel decoration )
+ {
+ this.decoration = decoration;
+ }
+}
Propchange: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/SiteRenderingContext.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java?rev=358449&r1=358448&r2=358449&view=diff
==============================================================================
--- 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 Wed Dec 21 18:57:07 2005
@@ -20,6 +20,7 @@
import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext;
import java.io.StringWriter;
+import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
@@ -37,9 +38,14 @@
private List authors = new ArrayList();
- private StringWriter writer;
+ private final Writer writer;
- public SiteRendererSink( StringWriter writer, RenderingContext renderingContext )
+ public SiteRendererSink( RenderingContext renderingContext )
+ {
+ this( new StringWriter(), renderingContext );
+ }
+
+ private SiteRendererSink( StringWriter writer, RenderingContext renderingContext )
{
super( writer, renderingContext, null );
Modified: maven/doxia/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java?rev=358449&r1=358448&r2=358449&view=diff
==============================================================================
--- 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 Wed Dec 21 18:57:07 2005
@@ -16,7 +16,13 @@
* limitations under the License.
*/
+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.xml.pull.XmlPullParserException;
+
+import java.io.FileReader;
+import java.io.IOException;
/**
* @author <a href="mailto:evenisse@codehaus.org>Emmanuel Venisse</a>
@@ -27,11 +33,6 @@
{
private Renderer renderer;
- public DefaultSiteRendererTest()
- {
- super();
- }
-
/**
* @see org.codehaus.plexus.PlexusTestCase#setUp()
*/
@@ -53,16 +54,14 @@
}
public void testRender()
+ throws RendererException, IOException, XmlPullParserException
{
- try
- {
- renderer.render( getTestFile( "src/test/site" ), getTestFile( "target/output" ),
- getTestFile( "src/test/site/site.xml" ), "maven-site.vm", null );
- }
- catch ( Exception e )
- {
- e.printStackTrace();
- fail( e.getMessage() );
- }
+ DecorationModel decoration =
+ new DecorationXpp3Reader().read( new FileReader( getTestFile( "src/test/site/site.xml" ) ) );
+ SiteRenderingContext context = new SiteRenderingContext();
+ context.setTemplate( "maven-site.vm" );
+ context.setTemplateClassLoader( getClassLoader() );
+ context.setDecoration( decoration );
+ renderer.render( getTestFile( "src/test/site" ), getTestFile( "target/output" ), context );
}
}
Modified: maven/doxia/trunk/pom.xml
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/pom.xml?rev=358449&r1=358448&r2=358449&view=diff
==============================================================================
--- maven/doxia/trunk/pom.xml (original)
+++ maven/doxia/trunk/pom.xml Wed Dec 21 18:57:07 2005
@@ -88,6 +88,7 @@
<module>doxia-core</module>
<module>doxia-sink-api</module>
<module>doxia-site-renderer</module>
+ <module>doxia-decoration-model</module>
</modules>
<distributionManagement>
<repository>
@@ -105,4 +106,4 @@
<url>scp://minotaur.apache.org/www/maven.apache.org/doxia/</url>
</site>
</distributionManagement>
-</project>
\ No newline at end of file
+</project>