You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jv...@apache.org on 2002/12/31 08:14:18 UTC
cvs commit: jakarta-turbine-maven/src/plugins-build/xdoc/templates issue-tracking.xml cvs-usage.xml maven-reports.xml project-info.xml Control.vm
jvanzyl 2002/12/30 23:14:17
Modified: src/plugins-build/xdoc plugin.jelly plugin.properties
site.jsl
src/plugins-build/xdoc/templates cvs-usage.xml
maven-reports.xml project-info.xml
Added: src/plugins-build/xdoc ui.properties
src/plugins-build/xdoc/templates issue-tracking.xml
Removed: src/plugins-build/xdoc site.dvsl toolbox.props
src/plugins-build/xdoc/src/java/org/apache/maven
BaseProjectTask.java DVSLBean.java
src/plugins-build/xdoc/templates Control.vm
Log:
o Elimination of dvsl and texen.
Revision Changes Path
1.37 +276 -358 jakarta-turbine-maven/src/plugins-build/xdoc/plugin.jelly
Index: plugin.jelly
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/xdoc/plugin.jelly,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- plugin.jelly 31 Dec 2002 03:39:54 -0000 1.36
+++ plugin.jelly 31 Dec 2002 07:14:16 -0000 1.37
@@ -1,95 +1,216 @@
<?xml version="1.0"?>
<project xmlns:define="jelly:define"
- xmlns:dvsl="dvsl"
- xmlns:j="jelly:core"
- xmlns:jsl="jelly:jsl"
- xmlns:log="jelly:log"
- xmlns:pom="pom"
- xmlns:texen="texen"
- xmlns:util="jelly:util"
- xmlns:x="jelly:xml"
- xmlns:jslXdoc="jslXdoc">
+ xmlns:j="jelly:core"
+ xmlns:jsl="jelly:jsl"
+ xmlns:log="jelly:log"
+ xmlns:pom="pom"
+ xmlns:util="jelly:util"
+ xmlns:x="jelly:xml"
+ xmlns:velocity="jelly:org.apache.maven.jelly.tags.velocity.VelocityTagLibrary"
+ xmlns:doc="doc">
- <!-- ================================================================== -->
- <!-- P R O J E C T D O C U M E N T A T I O N -->
- <!-- ================================================================== -->
-
- <goal name="xdoc"
- prereqs="xdoc:generate-from-pom, xdoc:transform"
- description="Generate html project documentation xdoc sources"/>
- <!-- ================================================================== -->
- <!-- T E X E N T A G I N I T I A L I Z A T I O N -->
- <!-- ================================================================== -->
- <goal name="init-texen-tag"
- description="Set up the texen tag library for later use">
-
- <define:taglib uri="texen">
- <define:jellybean
- name="texen"
- className="org.apache.maven.BaseProjectTask"
- method="execute"
- />
+ <define:taglib uri="doc">
+
+ <define:tag name="formatAsNumber">
+ <!--
+ | @string
+ | @pattern
+ -->
- <!-- ================================================================== -->
- <!-- T E X E N T A G -->
- <!-- ================================================================== -->
-
- <define:tag name="generate">
-
- <texen:texen
- controlTemplate="${controlTemplate}"
- outputDirectory="${outputDirectory}"
- templatePath="${templatePath}"
- outputFile="${outputFile}"
- mavenProject="${mavenProject}"
- reactorProjects="${reactorProjects}"
+ <!-- This appears to need to be here which is no good. Need
+ more of a global tool box.
+ -->
+
+ <j:useBean var="formatter" class="org.apache.maven.DVSLFormatter"/>
+ ${formatter.formatNumber(string,pattern)}
+ </define:tag>
+
+ <define:tag name="jsl">
+ <!--
+ | @input
+ | @output
+ | @stylesheet
+ | @encoding
+ | @omitXmlDeclaration
+ | @outputMode
+ | @prettyPrint
+ -->
+
+ <!--
+ @todo make sure the output directory exists.
+ -->
+
+ <!-- Set default outputDirectory if not set. -->
+ <!--
+ These do not work to evaluate to what you would expect
+ <j:if test="!${outputDirectory}">
+
+ why doesn't this give the same as comparing to null?
+
+ -->
+ <j:if test="${outputDirectory == null}">
+ <j:set
+ var="outputDirectory"
+ value="${pom.getPluginContext('maven-xdoc-plugin').getVariable('maven.gen.docs')}"
/>
+ </j:if>
- </define:tag>
+ <!-- Set default encoding if not set. -->
+ <j:if test="${encoding == null}">
+ <j:set
+ var="encoding"
+ value="${pom.getPluginContext('maven-xdoc-plugin').getVariable('maven.docs.outputencoding')}"
+ />
+ </j:if>
- </define:taglib>
-
- </goal>
+ <mkdir dir="${outputDirectory}"/>
+
+ <x:parse var="doc" xml="file:${input}"/>
+ <j:set var="stylesheetURI" value="file:${stylesheet}"/>
+ <j:file
+ name="${outputDirectory}/${output}"
+ encoding="${encoding}"
+ omitXmlDeclaration="${omitXmlDeclaration}"
+ outputMode="${outputMode}"
+ prettyPrint="${prettyPrint}">
+ <j:include uri="${stylesheetURI.toString()}"/>
+ </j:file>
+ </define:tag>
+
+ <define:tag name="itemLink">
+ <j:set var="leaveLinkAlone" value="${(link.indexOf(':') >= 0) or link.startsWith('/site')}"/>
+ <j:if test="${leaveLinkAlone}">
+ <a href="${link}">${name}</a>
+ </j:if>
+ <j:if test="${!leaveLinkAlone}">
+ <a href="${relativePath}${link}">${name}</a>
+ </j:if>
+ </define:tag>
- <goal
- name="xdoc:generate-from-pom"
- prereqs="init-texen-tag"
- description="Generates xdocs for site based on project descriptor">
+ <!-- Alternator for row style in a table -->
+ <define:tag name="printRow">
+ <j:if test="${(count % 2) gt 0}">
+ <x:element name="tr">
+ <x:attribute name="class">a</x:attribute>
+ </x:element>
+ </j:if>
+ <j:if test="${(count % 2) le 0}">
+ <x:element name="tr">
+ <x:attribute name="class">b</x:attribute>
+ </x:element>
+ </j:if>
+ </define:tag>
- <texen:generate
- controlTemplate="Control.vm"
- outputDirectory="${maven.gen.docs}"
- templatePath="${plugin.dir}/templates"
- outputFile="xdocs.report"
- mavenProject="${pom}"
- />
+ <!-- Generates the JSL files on the given srcdir attribute -->
+ <define:tag name="performJSL">
- </goal>
+ <util:replace var="fromPattern" oldChar="\" newChar="/" value="${srcdir}/*.xml"/>
+ <util:replace var="toPattern" oldChar="\" newChar="/" value="${destdir}/*.html"/>
+ <j:setProperties object="${mapper}" from="${fromPattern}" to="${toPattern}"/>
+
+ <util:replace var="fromDirPattern" oldChar="\" newChar="/" value="${srcdir}*"/>
+ <util:replace var="toDirPattern" oldChar="\" newChar="/" value="${destdir}*"/>
+ <j:new var="dirMapper" className="org.apache.tools.ant.util.GlobPatternMapper"/>
+ <j:setProperties object="${dirMapper}" from="${fromDirPattern}" to="${toDirPattern}"/>
+
+ <fileScanner var="docFiles">
+ <fileset dir="${srcdir}">
+ <patternset>
+ <exclude name="**/project.xml"/>
+ <exclude name="**/template.xml"/>
+ <exclude name="**/navigation.xml"/>
+ <include name="**/*.xml"/>
+ </patternset>
+ </fileset>
+ </fileScanner>
+
+ <j:forEach var="file" items="${docFiles.iterator()}">
+
+ <util:replace var="inDirForward" oldChar="\" newChar="/" value="${file.parent}"/>
+ <j:set var="outDir" value="${dirMapper.mapFileName(inDirForward).0}"/>
+ <mkdir dir="${outDir}"/>
+
+ <!-- generate output file name -->
+ <util:replace var="outFileForward" oldChar="\" newChar="/" value="${file.toString()}"/>
+ <j:set var="outFiles" value="${mapper.mapFileName(outFileForward)}"/>
+ <j:set var="outFile" value="${outFiles[0]}"/>
+
+ <echo>Generating ${outFile} from ${file}</echo>
+ <!-- work out relative path -->
+ <util:replace var="docsForward" oldChar="\" newChar="/" value="${srcdir}"/>
+ <j:set var="relativePath" value="${pathTool.getRelativePath(docsForward, outFileForward)}"/>
+
+ <util:available file="${file.parentFile.absoluteFile}/navigation.xml">
+ <j:set var="navFile" value="${file.parentFile.absoluteFile}/navigation.xml"/>
+ </util:available>
+
+ <!-- determine nav file to be used -->
+ <util:available file="${maven.docs.src}/stylesheets/project.xml">
+ <j:set var="navFile" value="${maven.docs.src}/stylesheets/project.xml"/>
+ </util:available>
+ <util:available file="${maven.docs.src}/project.xml">
+ <j:set var="navFile" value="${maven.docs.src}/project.xml"/>
+ </util:available>
+ <util:available file="${maven.docs.src}/navigation.xml">
+ <j:set var="navFile" value="${maven.docs.src}/navigation.xml"/>
+ </util:available>
+
+ <!-- parse nav and make it available to the stylesheet -->
+ <x:parse var="navXML" xml="file:${navFile}"/>
+ <x:set var="nav" select="$navXML/project"/>
+ <!-- parse the doc and pass it to the stylesheet -->
+ <x:parse var="doc" xml="${file.toURL()}"/>
+
+ <j:file name="${outFile}" encoding="${outputencoding}"
+ omitXmlDeclaration="true" outputMode="html"
+ prettyPrint="yes">
+ <j:include uri="${stylesheet.toString()}"/>
+ </j:file>
+ </j:forEach>
+
+ </define:tag>
+ </define:taglib>
<!-- ================================================================== -->
- <!-- D V S L T A G I N I T I A L I Z A T I O N -->
+ <!-- P R O J E C T D O C U M E N T A T I O N -->
<!-- ================================================================== -->
- <goal name="init-dvsl-tag"
- description="Set up the dvsl tag library for later use">
+ <goal name="xdoc"
+ prereqs="xdoc:generate-from-pom, xdoc:transform"
+ description="Generate html project documentation xdoc sources"/>
- <define:taglib uri="dvsl">
- <define:jellybean
- name="dvsl"
- className="org.apache.maven.DVSLBean"
- method="execute">
- </define:jellybean>
- </define:taglib>
+ <goal
+ name="xdoc:generate-from-pom"
+ description="Generates xdocs for site based on project descriptor">
+
+ <echo>Generating xdocs from POM ... </echo>
+
+ <util:tokenize var="pomDocuments" delim=",">${maven.xdoc.pomDocuments}</util:tokenize>
+
+ <!-- All the templates use $project for now. -->
+ <j:set var="project" value="${pom}"/>
+
+ <!-- Need the escaper to html output. -->
+ <j:useBean var="escape" class="org.apache.velocity.anakia.Escape"/>
+ <j:useBean var="files" class="org.apache.velocity.texen.util.FileUtil"/>
+
+ <j:forEach var="pomDocument" items="${pomDocuments}">
+
+ <velocity:merge
+ name="${maven.gen.docs}/${pomDocument}"
+ template="${plugin.dir}/templates/${pomDocument}"
+ />
- <tstamp>
- <format property="build.date" pattern="${maven.xdoc.date.format}"
- locale="${maven.xdoc.date.locale}"/>
- </tstamp>
+ </j:forEach>
</goal>
+ <!-- ================================================================== -->
+ <!-- V A L I D A T E X D O C S -->
+ <!-- ================================================================== -->
+
<!-- validate xdocs -->
<goal name="xdoc:validate" prereqs="pom:taglib"
description="Validate xdocs match the schema">
@@ -104,115 +225,38 @@
</patternset>
</fileset>
</fileScanner>
-
+
<j:forEach var="file" items="${navFiles.iterator()}">
<echo>Validating ${file}</echo>
<pom:validate validator="${maven.home}/maven-navigation-1.0.xsd"
- projectDescriptor="${file}" />
+ projectDescriptor="${file}"/>
</j:forEach>
-
</j:if>
</goal>
- <!-- set up for xdoc transformation -->
- <goal name="xdoc:init"
- description="Initialize resources for xdoc transformation">
-
- <tstamp>
- <format property="mavenCurrentYear" pattern="yyyy" />
- </tstamp>
-
- <mkdir dir="${maven.docs.dest}"/>
-
- <available
- file="${maven.gen.docs}"
- type="dir"
- property="maven.gen.docs.available"
- />
-
- <available
- file="${maven.docs.src}"
- type="dir"
- property="maven.docs.src.available"
- />
-
- </goal>
-
- <!-- transform maven generated docs -->
- <goal name="xdoc:transform-docs"
- description="Transform the auto-generated xdocs using DVSL">
-
- <!-- Transform the auto-generated xdocs first -->
- <j:if test="${maven.gen.docs.available}">
-
- <dvsl:dvsl
- basedir = "${maven.gen.docs}"
- destdir = "${maven.docs.dest}/"
- extension = ".html"
- force = "true"
- toolboxFile = "${plugin.dir}/toolbox.props"
- style = "${plugin.dir}/site.dvsl"
- excludes = "**/project.xml,**/template.xml"
- includes = "**/*.xml"
- outputEncoding = "${maven.docs.outputencoding}"
- mavenProject = "${pom}">
- </dvsl:dvsl>
-
- </j:if>
- </goal>
+ <!-- ================================================================== -->
+ <!-- C O P Y R E S O U R C E S -->
+ <!-- ================================================================== -->
<!-- copy resources needed for xdocs -->
- <goal name="xdoc:copy-resources"
+ <goal name="xdoc:copy-resources"
description="copy static resources for use in xdocs generated html">
+ <!-- Read in the ui properties. -->
+ <util:properties uri="file:${plugin.dir}/ui.properties" var="uiProperties"/>
+
<!-- Copy maven supplied stylesheets. -->
<copy todir="${maven.docs.dest}/style" overwrite="yes" filtering="yes">
<fileset dir="${plugin.dir}/css">
<include name="**/*.css"/>
</fileset>
+
<filterset>
- <filter token="UI_BODY_BACKGROUND" value="${maven.ui.body.background}"/>
- <filter token="UI_BODY_FOREGROUND" value="${maven.ui.body.foreground}"/>
- <filter token="UI_SECTION_BACKGROUND" value="${maven.ui.section.background}"/>
- <filter token="UI_SECTION_FOREGROUND" value="${maven.ui.section.foreground}"/>
- <filter token="UI_SUBSECTION_BACKGROUND" value="${maven.ui.subsection.background}"/>
- <filter token="UI_SUBSECTION_FOREGROUND" value="${maven.ui.subsection.foreground}"/>
-
- <filter token="UI_TABLE_HEADER_BACKGROUND" value="${maven.ui.table.header.background}"/>
- <filter token="UI_TABLE_HEADER_FOREGROUND" value="${maven.ui.table.header.foreground}"/>
- <filter token="UI_TABLE_ROW_ODD_BACKGROUND" value="${maven.ui.table.row.odd.background}"/>
- <filter token="UI_TABLE_ROW_ODD_FOREGROUND" value="${maven.ui.table.row.odd.foreground}"/>
- <filter token="UI_TABLE_ROW_EVEN_BACKGROUND" value="${maven.ui.table.row.even.background}"/>
- <filter token="UI_TABLE_ROW_EVEN_FOREGROUND" value="${maven.ui.table.row.even.foreground}"/>
-
- <filter token="UI_BANNER_BACKGROUND" value="${maven.ui.banner.background}"/>
- <filter token="UI_BANNER_FOREGROUND" value="${maven.ui.banner.foreground}"/>
- <filter token="UI_BANNER_BORDER_TOP" value="${maven.ui.banner.border.top}"/>
- <filter token="UI_BANNER_BORDER_BOTTOM" value="${maven.ui.banner.border.bottom}"/>
-
- <filter token="UI_SOURCE_BACKGROUND" value="${maven.ui.source.background}"/>
- <filter token="UI_SOURCE_FOREGROUND" value="${maven.ui.source.foreground}"/>
- <filter token="UI_SOURCE_BORDER_TOP" value="${maven.ui.source.border.top}"/>
- <filter token="UI_SOURCE_BORDER_BOTTOM" value="${maven.ui.source.border.bottom}"/>
- <filter token="UI_SOURCE_BORDER_RIGHT" value="${maven.ui.source.border.right}"/>
- <filter token="UI_SOURCE_BORDER_LEFT" value="${maven.ui.source.border.left}"/>
-
- <filter token="UI_NAVCOL_BACKGROUND" value="${maven.ui.navcol.background}"/>
- <filter token="UI_NAVCOL_FOREGROUND" value="${maven.ui.navcol.foreground}"/>
- <filter token="UI_NAVCOL_BACKGROUND_NS4" value="${maven.ui.navcol.background.ns4}"/>
- <filter token="UI_NAVCOL_FOREGROUND_NS4" value="${maven.ui.navcol.foreground.ns4}"/>
- <filter token="UI_NAVCOL_BORDER_TOP" value="${maven.ui.navcol.border.top}"/>
- <filter token="UI_NAVCOL_BORDER_RIGHT" value="${maven.ui.navcol.border.right}"/>
- <filter token="UI_NAVCOL_BORDER_BOTTOM" value="${maven.ui.navcol.border.bottom}"/>
-
- <filter token="UI_BREADCRUMBS_BACKGROUND" value="${maven.ui.breadcrumbs.background}"/>
- <filter token="UI_BREADCRUMBS_FOREGROUND" value="${maven.ui.breadcrumbs.foreground}"/>
- <filter token="UI_BREADCRUMBS_BORDER_TOP" value="${maven.ui.breadcrumbs.border.top}"/>
- <filter token="UI_BREADCRUMBS_BORDER_BOTTOM" value="${maven.ui.breadcrumbs.border.bottom}"/>
-
- <filter token="UI_HREF_LINK" value="${maven.ui.href.link}"/>
- <filter token="UI_HREF_LINK_ACTIVE" value="${maven.ui.href.link.active}"/>
- <filter token="UI_HREF_LINK_SELFREF" value="${maven.ui.href.link.selfref}"/>
+ <j:forEach var="uiProperty" items="uiProperties">
+ <util:replace var="token" oldChar="." newChar="_" value="${uiProperty}"/>
+ <j:set var="token" value="${token.toUpperCase()}"/>
+ <filter token="${token}" value="${uiProperty}"/>
+ </j:forEach>
</filterset>
</copy>
@@ -225,32 +269,13 @@
<include name="**/*.png"/>
</fileset>
</copy>
-
- </goal>
- <!-- transform user docs -->
- <goal name="xdoc:transform-user-docs"
- description="Transform user provided anakia docs">
- <j:if test="${maven.docs.src.available}">
- <log:info>
- Transforming user supplied documentation.
- </log:info>
-
- <dvsl:dvsl
- basedir = "${maven.docs.src}"
- destdir = "${maven.docs.dest}/"
- extension = ".html"
- force = "true"
- toolboxFile = "${plugin.dir}/toolbox.props"
- style = "${plugin.dir}/site.dvsl"
- excludes = "**/project.xml,**/template.xml"
- includes = "**/*.xml"
- outputEncoding = "${maven.docs.outputencoding}"
- mavenProject = "${pom}">
- </dvsl:dvsl>
- </j:if>
</goal>
+ <!-- ================================================================== -->
+ <!-- C O P Y U S E R S U P P L I E D R E S O U R C E S -->
+ <!-- ================================================================== -->
+
<!-- copy user resources -->
<goal name="xdoc:copy-user-resources"
description="Copy user provided resources to docs destination">
@@ -280,8 +305,8 @@
<include name="**/*.htm"/>
</fileset>
</copy>
-
-
+
+
<!-- A hack to make the fileset below work. The files don't have to be
present but the directory does. -->
<mkdir dir="${maven.docs.src}/stylesheets"/>
@@ -295,205 +320,98 @@
</j:if>
</goal>
-
+
<!-- ================================================================== -->
<!-- D V S L D O C U M E N T A T I O N -->
<!-- ================================================================== -->
-
+
<goal name="xdoc:transform"
- prereqs="xdoc:init"
- description="Generate html project documentation xdoc sources">
-
- <!-- This is busted
- <j:if test="${!maven.gen.docs.available}" >
- <log:info>
- No Maven generated documentation to transform - skipping.
- </log:info>
- </j:if>
- -->
+ description="Generate html project documentation xdoc sources">
+
+ <tstamp>
+ <format property="mavenCurrentYear" pattern="yyyy"/>
+ </tstamp>
+
+ <mkdir dir="${maven.docs.dest}"/>
+
+ <!-- Use jelly utils here -->
+
+ <available
+ file="${maven.gen.docs}"
+ type="dir"
+ property="maven.gen.docs.available"
+ />
+
+ <available
+ file="${maven.docs.src}"
+ type="dir"
+ property="maven.docs.src.available"
+ />
+
+ <!-- use JSL in Jelly to build the documenation -->
+ <attainGoal name="xdoc:copy-resources"/>
+ <attainGoal name="xdoc:copy-user-resources"/>
+ <attainGoal name="xdoc:jelly-transform"/>
- <j:choose>
- <j:when test="${maven.xdoc.useDVSL}">
-
- <echo>Using DVSL to create the documentation</echo>
-
- <!-- use DVSL to build the documentation -->
- <attainGoal name="init-dvsl-tag" />
- <attainGoal name="xdoc:transform-docs" />
- <attainGoal name="xdoc:copy-resources" />
- <!-- allow user overrides and extra docs/resources -->
- <attainGoal name="xdoc:transform-user-docs" />
- <attainGoal name="xdoc:copy-user-resources" />
- </j:when>
- <j:otherwise>
-
- <echo>Using Jelly to create the documentation</echo>
-
- <!-- use JSL in Jelly to build the documenation -->
- <attainGoal name="xdoc:copy-resources" />
- <attainGoal name="xdoc:copy-user-resources" />
- <attainGoal name="xdoc:jelly-transform" />
- </j:otherwise>
- </j:choose>
-
</goal>
<!-- ================================================================== -->
<!-- J E L L Y D O C U M E N T A T I O N -->
<!-- ================================================================== -->
+
<goal name="xdoc:jelly-init" description="Set up jelly xdoc requirements">
<!-- moving here temporarily -->
<tstamp>
- <format property="mavenCurrentYear" pattern="yyyy" />
+ <format property="mavenCurrentYear" pattern="yyyy"/>
</tstamp>
<tstamp>
<format property="build.date" pattern="${maven.xdoc.date.format}"
- locale="${maven.xdoc.date.locale}"/>
+ locale="${maven.xdoc.date.locale}"/>
</tstamp>
-
- <!-- taglibs -->
- <define:taglib uri="jslXdoc">
- <define:tag name="itemLink">
- <j:set var="leaveLinkAlone" value="${(link.indexOf(':') >= 0) or link.startsWith('/site')}" />
- <j:if test="${leaveLinkAlone}">
- <a href="${link}">${name}</a>
- </j:if>
- <j:if test="${!leaveLinkAlone}">
- <a href="${relativePath}${link}">${name}</a>
- </j:if>
- </define:tag>
-
- <!-- Alternator for row style in a table -->
- <define:tag name="printRow">
- <j:if test="${(count % 2) gt 0}">
- <x:element name="tr">
- <x:attribute name="class">a</x:attribute>
- </x:element>
- </j:if>
- <j:if test="${(count % 2) le 0}">
- <x:element name="tr">
- <x:attribute name="class">b</x:attribute>
- </x:element>
- </j:if>
- </define:tag>
-
- <!-- Generates the JSL files on the given srcdir attribute -->
- <define:tag name="performJSL">
-
- <util:replace var="fromPattern" oldChar="\" newChar="/" value="${srcdir}/*.xml"/>
- <util:replace var="toPattern" oldChar="\" newChar="/" value="${destdir}/*.html"/>
- <j:setProperties object="${mapper}" from="${fromPattern}" to="${toPattern}" />
-
- <util:replace var="fromDirPattern" oldChar="\" newChar="/" value="${srcdir}*"/>
- <util:replace var="toDirPattern" oldChar="\" newChar="/" value="${destdir}*"/>
- <j:new var="dirMapper" className="org.apache.tools.ant.util.GlobPatternMapper"/>
- <j:setProperties object="${dirMapper}" from="${fromDirPattern}" to="${toDirPattern}"/>
-
- <fileScanner var="docFiles">
- <fileset dir="${srcdir}">
- <patternset>
- <exclude name="**/project.xml" />
- <exclude name="**/template.xml" />
- <exclude name="**/navigation.xml" />
- <include name="**/*.xml"/>
- </patternset>
- </fileset>
- </fileScanner>
-
- <j:forEach var="file" items="${docFiles.iterator()}">
-
- <util:replace var="inDirForward" oldChar="\" newChar="/" value="${file.parent}"/>
- <j:set var="outDir" value="${dirMapper.mapFileName(inDirForward).0}"/>
- <mkdir dir="${outDir}"/>
-
- <!-- generate output file name -->
- <util:replace var="outFileForward" oldChar="\" newChar="/" value="${file.toString()}"/>
- <j:set var="outFiles" value="${mapper.mapFileName(outFileForward)}" />
- <j:set var="outFile" value="${outFiles[0]}" />
-
- <echo>Generating ${outFile} from ${file}</echo>
- <!-- work out relative path -->
- <util:replace var="docsForward" oldChar="\" newChar="/" value="${srcdir}"/>
- <j:set var="relativePath" value="${pathTool.getRelativePath(docsForward, outFileForward)}"/>
-
- <util:available file="${file.parentFile.absoluteFile}/navigation.xml">
- <j:set var="navFile" value="${file.parentFile.absoluteFile}/navigation.xml" />
- </util:available>
-
- <!-- determine nav file to be used -->
- <util:available file="${maven.docs.src}/stylesheets/project.xml">
- <j:set var="navFile" value="${maven.docs.src}/stylesheets/project.xml" />
- </util:available>
- <util:available file="${maven.docs.src}/project.xml">
- <j:set var="navFile" value="${maven.docs.src}/project.xml" />
- </util:available>
- <util:available file="${maven.docs.src}/navigation.xml">
- <j:set var="navFile" value="${maven.docs.src}/navigation.xml" />
- </util:available>
-
-
- <!-- parse nav and make it available to the stylesheet -->
- <j:new var="navAsFile" className="java.io.File">
- <j:arg type="java.lang.String" value="${navFile}" />
- </j:new>
- <x:parse var="navXML" xml="${navAsFile.toURL().toExternalForm()}" />
- <x:set var="nav" select="$navXML/project" />
- <!-- parse the doc and pass it to the stylesheet -->
- <x:parse var="doc" xml="${file.toURL()}" />
-
- <j:file name="${outFile}" encoding="${outputencoding}"
- omitXmlDeclaration="true" outputMode="html"
- prettyPrint="yes">
- <j:include uri="${stylesheet.toString()}" />
- </j:file>
- </j:forEach>
-
- </define:tag>
- </define:taglib>
</goal>
-
+
<goal name="xdoc:jelly-transform" prereqs="xdoc:jelly-init"
description="transform xdocs using jelly/jsl rather than dvsl">
- <j:set var="destdir" value="${maven.docs.dest}" />
- <j:set var="outputencoding" value="${maven.docs.outputencoding}" />
+ <j:set var="destdir" value="${maven.docs.dest}"/>
+ <j:set var="outputencoding" value="${maven.docs.outputencoding}"/>
<!-- need to parse navigation into $nav -->
-
+
<!-- mapper for determining output file name -->
- <j:new var="mapper" className="org.apache.tools.ant.util.GlobPatternMapper" />
+ <j:new var="mapper" className="org.apache.tools.ant.util.GlobPatternMapper"/>
<!-- path tool for relative processing -->
- <j:useBean var="pathTool" class="org.apache.maven.DVSLPathTool" />
+ <j:useBean var="pathTool" class="org.apache.maven.DVSLPathTool"/>
- <!-- tool for loading resources from the class loader -->
- <j:useBean class="org.apache.maven.util.ResourceBean" var="resourceTool"/>
+ <!-- tool for loading resources from the class loader -->
+ <j:useBean class="org.apache.maven.util.ResourceBean" var="resourceTool"/>
+
+ <!-- determine which stylesheet to use -->
+ <j:set var="stylesheet" value="${maven.xdoc.jsl}"/>
+ <j:if test="${empty(stylesheet)}">
+ <j:set var="stylesheet" value="${resourceTool.findResource('site.jsl')}"/>
+ <j:if test="${empty(stylesheet)}">
+ <log:warn>Could not load the JSL stylesheet 'site.jsl' on the classpath</log:warn>
+ <j:set var="stylesheet" value="./site.jsl"/>
+ </j:if>
+ </j:if>
+
+ <log:info>About to use JSL stylesheet ${stylesheet}</log:info>
+
+ <!-- perform JSL on generated docs -->
+ <doc:performJSL srcdir="${maven.gen.docs}" destdir="${maven.docs.dest}"/>
+
+ <!-- perform JSL on user provided docs -->
+ <j:if test="${maven.docs.src.available}">
+ <log:info>
+ Transforming user supplied documentation.
+ </log:info>
+ <doc:performJSL srcdir="${maven.docs.src}" destdir="${maven.docs.dest}"/>
+ </j:if>
- <!-- determine which stylesheet to use -->
- <j:set var="stylesheet" value="${maven.xdoc.jsl}"/>
- <j:if test="${empty(stylesheet)}">
- <j:set var="stylesheet" value="${resourceTool.findResource('site.jsl')}"/>
- <j:if test="${empty(stylesheet)}">
- <log:warn>Could not load the JSL stylesheet 'site.jsl' on the classpath</log:warn>
- <j:set var="stylesheet" value="./site.jsl"/>
- </j:if>
- </j:if>
-
- <log:info>About to use JSL stylesheet ${stylesheet}</log:info>
-
- <!-- perform JSL on generated docs -->
- <jslXdoc:performJSL srcdir="${maven.gen.docs}" destdir="${maven.docs.dest}"/>
-
- <!-- perform JSL on user provided docs -->
- <j:if test="${maven.docs.src.available}">
- <log:info>
- Transforming user supplied documentation.
- </log:info>
- <jslXdoc:performJSL srcdir="${maven.docs.src}" destdir="${maven.docs.dest}"/>
- </j:if>
-
</goal>
-
+
</project>
1.4 +26 -0 jakarta-turbine-maven/src/plugins-build/xdoc/plugin.properties
Index: plugin.properties
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/xdoc/plugin.properties,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- plugin.properties 14 Nov 2002 06:20:18 -0000 1.3
+++ plugin.properties 31 Dec 2002 07:14:17 -0000 1.4
@@ -65,3 +65,29 @@
maven.ui.href.link = blue
maven.ui.href.link.active = #f30
maven.ui.href.link.selfref = #555
+
+# This is horrid but will do for now. This needs to be extensible
+# so that users can utilize the transformation process with their
+# own templates.
+
+maven.xdoc.pomDocuments = cvs-usage.xml,\
+ dependencies.xml,\
+ index.xml,\
+ issue-tracking.xml,\
+ mail-lists.xml,\
+ maven-reports.xml,\
+ project-info.xml,\
+ team-list.xml
+
+maven.xdoc.projectReports = developer-activity-report.xml,\
+ changelog.xml,\
+ checkstyle-report.xml,\
+ file-activity-report.xml,\
+ javadoc.xml,\
+ jdepend-report.xml,\
+ junit-report.xml,\
+ maven-reports.xml,\
+ task-list.xml,\
+ tasks.xml,\
+ changes.xml,\
+ cactus-report.xml
1.16 +449 -401 jakarta-turbine-maven/src/plugins-build/xdoc/site.jsl
Index: site.jsl
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/xdoc/site.jsl,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- site.jsl 18 Dec 2002 14:49:32 -0000 1.15
+++ site.jsl 31 Dec 2002 07:14:17 -0000 1.16
@@ -1,422 +1,470 @@
<?xml version="1.0"?>
- <!-- stylesheet to be used -->
- <jsl:stylesheet select="$doc"
- xmlns:define="jelly:define"
- xmlns:j="jelly:core"
- xmlns:jsl="jelly:jsl"
- xmlns:log="jelly:log"
- xmlns:m="jelly:jeez"
- xmlns:util="jelly:util"
- xmlns:x="jelly:xml"
- xmlns:jslXdoc="jslXdoc"
- xmlns="dummy" trim="false">
- <jsl:template match="document" trim="false">
-
- <x:doctype name="html"
- publicId="-//CollabNet//DTD XHTML 1.0 Transitional//EN"
- systemId="http://www.collabnet.com/dtds/collabnet_transitional_10.dtd" />
-
- <html>
- <head>
- <j:set var="docTitle"><x:expr select="./properties/title" /></j:set>
- <x:if select="$nav/title">
- <title><x:expr select="$nav/title" /> - ${docTitle}</title>
- </x:if>
- <x:if select="not($nav/title)">
- <title>${pom.name} - ${docTitle}</title>
- </x:if>
- <j:set var="tigrisCss" value='"${relativePath}/style/tigris.css"' />
- <j:set var="mavenCss" value='"${relativePath}/style/maven.css"' />
- <style type="text/css"><![CDATA[
- @import url(${tigrisCss});
- @import url(${mavenCss});
- ]]></style>
- <x:element name="script"><x:attribute name="type">text/javascript</x:attribute>
- if (document.layers) {
+<!-- stylesheet to be used -->
+<jsl:stylesheet select="$doc"
+ xmlns:define="jelly:define"
+ xmlns:j="jelly:core"
+ xmlns:jsl="jelly:jsl"
+ xmlns:log="jelly:log"
+ xmlns:util="jelly:util"
+ xmlns:x="jelly:xml"
+ xmlns:doc="doc"
+ xmlns="dummy" trim="false">
+ <jsl:template match="document" trim="false">
+
+ <x:doctype name="html"
+ publicId="-//CollabNet//DTD XHTML 1.0 Transitional//EN"
+ systemId="http://www.collabnet.com/dtds/collabnet_transitional_10.dtd"/>
+
+ <html>
+ <head>
+ <j:set var="docTitle">
+ <x:expr select="./properties/title"/>
+ </j:set>
+ <x:if select="$nav/title">
+ <title>
+ <x:expr select="$nav/title"/> - ${docTitle}
+ </title>
+ </x:if>
+ <x:if select="not($nav/title)">
+ <title>${pom.name} - ${docTitle}</title>
+ </x:if>
+ <j:set var="tigrisCss" value='"${relativePath}/style/tigris.css"'/>
+ <j:set var="mavenCss" value='"${relativePath}/style/maven.css"'/>
+ <style type="text/css"><![CDATA[
+ @import url(${tigrisCss});
+ @import url(${mavenCss});
+ ]]></style>
+ <x:element name="script"><x:attribute name="type">text/javascript</x:attribute>
+ if (document.layers) {
document.writeln(''+
'<link rel="stylesheet" type="text/css" href="${relativePath}/style/ns4_only.css" media="screen" /><link rel="stylesheet" type="text/css" href="${relativePath}/style/maven_ns4_only.css" media="screen"/>');
}
</x:element>
+ <link rel="stylesheet" type="text/css" href="${relativePath}/style/print.css" media="print"/>
+ <x:forEach var="author" select="./properties/author">
+ <meta name="author" value="${author.text}"/>
+ <meta name="email" value="${author.attribute('email').value}"/>
+ </x:forEach>
+ </head>
- <link rel="stylesheet" type="text/css" href="${relativePath}/style/print.css" media="print" />
- <x:forEach var="author" select="./properties/author">
- <meta name="author" value="${author.text}"/>
- <meta name="email" value="${author.attribute('email').value}" />
- </x:forEach>
- </head>
-
- <body class="composite" marginwidth="0" marginheight="0">
- <div id="banner">
- <table border="0" cellspacing="0" cellpadding="8" width="100%">
- <tr>
- <!-- organization logo -->
- <td>
- <j:set var="logo" value="${pom.organization.logo}" />
- <j:if test="${!empty(logo)}">
- <!-- set url to org or project url -->
- <j:set var="url" value="${pom.organization.url}" />
- <j:if test="${!empty(url)}">
- <j:set var="home" value="${pom.organization.url}" />
- </j:if>
- <j:if test="${empty(url)}">
- <j:set var="home" value="${pom.url}" />
- </j:if>
- <!-- set image to relative or complete -->
- <j:set var="image" value="${pom.organization.logo}" />
- <j:if test="${!image.startsWith('http://')}">
- <j:set var="image" value="${relativePath}${image}" />
- </j:if>
- <a href="${home}">
- <img src="${image}" align="left" alt="${pom.organization.name}" border="0" />
- </a>
- </j:if>
- </td>
-
- <!-- project logo and link -->
- <td>
- <div align="right" id="login">
- <j:set var="logo" value="${pom.logo}" />
- <j:if test="${logo != null and logo != ''}">
- <!-- set image to relative or complete -->
- <j:set var="image" value="${pom.logo}" />
- <j:if test="${!image.startsWith('http://')}">
- <j:set var="image" value="${relativePath}${image}" />
- </j:if>
-
- <a href="${pom.url}">
- <img src="${image}" align="right" alt="${pom.name}" border="0" />
- </a>
- </j:if>
- </div>
- </td>
- </tr>
- </table>
- </div>
- <div id="breadcrumbs">
- <table border="0" cellspacing="0" cellpadding="4" width="100%">
- <tr>
- <!-- date of publish and version -->
- <j:set var="date">${maven.xdoc.date}</j:set>
- <j:if test="${date == 'left'}">
- <j:set var="version" value="${maven.xdoc.version}" />
- <td>Last published: ${build.date}
- <j:if test="${!empty(version)}">| Doc for ${version}</j:if>
- </td>
+ <body class="composite" marginwidth="0" marginheight="0">
+ <div id="banner">
+ <table border="0" cellspacing="0" cellpadding="8" width="100%">
+ <tr>
+ <!-- organization logo -->
+ <td>
+ <j:set var="logo" value="${pom.organization.logo}"/>
+ <j:if test="${!empty(logo)}">
+ <!-- set url to org or project url -->
+ <j:set var="url" value="${pom.organization.url}"/>
+ <j:if test="${!empty(url)}">
+ <j:set var="home" value="${pom.organization.url}"/>
</j:if>
- <td>
- <div align="right">
- <j:if test="${date == 'right'}">
- Last published: ${build.date}
- <x:if select="$nav/body/links">|</x:if>
- </j:if>
- <!-- render links -->
- <x:if select="$nav/body/links">
- <!-- FIXME: need to test/implement -->
- <jsl:applyTemplates select="$nav/body/links" />
- </x:if>
- <x:if select="not($nav/body/links)">
- <!-- FIXME -->
- </x:if>
- </div>
- </td>
- </tr>
- </table>
- </div>
- <!-- Body of the page -->
- <table border="0" cellspacing="0" cellpadding="8" width="100%"> <!--id="main" -->
- <tr valign="top">
- <td id="leftcol" width="20%">
- <div id="navcolumn">
- <j:if test="${context.findVariable('maven.xdoc.date') == 'navigation-top'}">
- <div><small>Last published: ${buildDate}</small></div>
- </j:if>
-
- <x:if select="$nav">
- <jsl:applyTemplates select="$nav/body/menu" />
- </x:if>
-
- <!-- Standard Maven Navigation -->
- <j:set var="fileName">${file}</j:set>
-
- <div><strong>Project Documentation</strong>
- <div><small><a href="${relativePath}/index.html">Front Page</a></small></div>
- <div>
- <small><a href="${relativePath}/project-info.html">Project Info</a></small>
- <util:tokenize var="projectInfoFiles" delim=",">dependencies.xml,mail-lists.xml,project-info.xml,team-list.xml</util:tokenize>
-
- <j:forEach var="infoFile" items="${projectInfoFiles}">
- <j:if test="${relativePath == '.' and fileName.endsWith(infoFile)}">
- <div><small><a href="${relativePath}/mail-lists.html">Mailing Lists</a></small></div>
- <div><small><a href="${relativePath}/team-list.html">Project Team</a></small></div>
- <div><small><a href="${relativePath}/dependencies.html">Dependencies</a></small></div>
- <j:if test="${!empty(pom.repository.url)}">
- <div><small><a href="${pom.repository.url.trim()}">Source Repository</a></small></div>
- </j:if>
- <j:if test="${!empty(pom.issueTrackingUrl)}">
- <div><small><a href="${pom.issueTrackingUrl.trim()}">Issue Tracking</a></small></div>
- </j:if>
- </j:if>
- </j:forEach>
- </div>
- <div>
- <small><a href="${relativePath}/maven-reports.html">Project Reports</a></small>
- <util:tokenize var="projectReportFiles" delim=",">developer-activity-report.xml,changelog.xml,checkstyle-report.xml,
-file-activity-report.xml,javadoc.xml,jdepend-report.xml,junit-report.xml,maven-reports.xml,task-list.xml,tasks.xml,changes.xml,
-cactus-report.xml</util:tokenize>
- <j:forEach var="reportFile" items="${projectReportFiles}">
- <j:if test="${relativePath == '.' and fileName.endsWith(reportFile.trim())}">
- <util:available file="${maven.docs.src}/tasks.xml">
- <div><small><a href="${relativePath}/tasks.html">Tasks</a></small></div>
- </util:available>
- <util:available file="${maven.docs.src}/task-list.xml">
- <div><small><a href="${relativePath}/task-list.html">Task List</a></small></div>
- </util:available>
- <util:available file="${maven.docs.src}/changes.xml">
- <div><small><a href="${relativePath}/changes.html">Changes</a></small></div>
- </util:available>
- <j:if test="${!empty(pom.repository.connection)}">
- <div><small><a href="${relativePath}/changelog.html">Change Log</a></small></div>
- <div><small><a href="${relativePath}/developer-activity-report.html">Developer Activity</a></small></div>
- <div><small><a href="${relativePath}/file-activity-report.html">File Activity</a></small></div>
- </j:if>
- <j:if test="${unitTestSourcesPresent}">
- <div><small><a href="${relativePath}/junit-report.html">Unit Tests</a></small></div>
- </j:if>
- <j:if test="${sourcesPresent}">
- <div><small><a href="${relativePath}/jdepend-report.html">Metric Results</a></small></div>
- <div><small><a href="${relativePath}/checkstyle-report.html">Checkstyle Report</a></small></div>
- <div><small><a href="${relativePath}/javadoc.html">Javadoc Report</a></small></div>
- </j:if>
- <util:available file="${maven.docs.dest}/clover">
- <div><small><a href="${relativePath}/clover/index.html">Clover Test Coverage</a></small></div>
- </util:available>
- <util:available file="${maven.gen.docs}/cactus-report.xml">
- <div><small><a href="${relativePath}/cactus-report.html">Cactus Tests</a></small></div>
- </util:available>
- </j:if>
- </j:forEach>
- </div>
- <j:if test="${sourcesPresent}">
- <div><small><a href="${relativePath}/apidocs/index.html">JavaDocs</a></small></div>
- <div><small><a href="${relativePath}/xref/index.html">Source XReference</a></small></div>
- </j:if>
- <j:set var="devProcess" value="false" />
- <util:available file="${maven.docs.src}/development-process.xml">
- <j:set var="devProcess" value="true" />
- </util:available>
- <j:if test="${devProcess}">
- <div><small><a href="${relativePath}/development-process.html">Development Process</a></small></div>
- </j:if>
- <j:if test="${!devProcess}">
- <div><small><a href="${maven.xdoc.development-process-url}">Development Process</a></small></div>
- </j:if>
- </div>
- <j:if test="${context.findVariable('maven.xdoc.date') == 'navigation-bottom'}">
- <div><small>Last published: ${build.date}</small></div>
+ <j:if test="${empty(url)}">
+ <j:set var="home" value="${pom.url}"/>
+ </j:if>
+ <!-- set image to relative or complete -->
+ <j:set var="image" value="${pom.organization.logo}"/>
+ <j:if test="${!image.startsWith('http://')}">
+ <j:set var="image" value="${relativePath}${image}"/>
+ </j:if>
+ <a href="${home}">
+ <img src="${image}" align="left" alt="${pom.organization.name}" border="0"/>
+ </a>
+ </j:if>
+ </td>
+
+ <!-- project logo and link -->
+ <td>
+ <div align="right" id="login">
+ <j:set var="logo" value="${pom.logo}"/>
+ <j:if test="${logo != null and logo != ''}">
+ <!-- set image to relative or complete -->
+ <j:set var="image" value="${pom.logo}"/>
+ <j:if test="${!image.startsWith('http://')}">
+ <j:set var="image" value="${relativePath}${image}"/>
</j:if>
- </div>
+
+ <a href="${pom.url}">
+ <img src="${image}" align="right" alt="${pom.name}" border="0"/>
+ </a>
+ </j:if>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div id="breadcrumbs">
+ <table border="0" cellspacing="0" cellpadding="4" width="100%">
+ <tr>
+ <!-- date of publish and version -->
+ <j:set var="date">${maven.xdoc.date}</j:set>
+ <j:if test="${date == 'left'}">
+ <j:set var="version" value="${maven.xdoc.version}"/>
+ <td>Last published: ${build.date}
+ <j:if test="${!empty(version)}">| Doc for ${version}</j:if>
</td>
- <td>
- <div id="bodycol">
- <!-- Insert MAIN body here -->
- <div class="app">
-<!-- FIXME really shouldn't use $doc, but jelly loses it's context again -->
- <jsl:applyTemplates select="$doc/document/body/section" />
- <jsl:applyTemplates select="$doc/document/body/glossary" />
- <jsl:applyTemplates select="$doc/document/body/release" />
- <jsl:applyTemplates select="$doc/document/body/changelog" />
- <jsl:applyTemplates select="$doc/document/body/taskList" />
- <jsl:applyTemplates select="$doc/document/body/goals" />
- </div>
+ </j:if>
+ <td>
+ <div align="right">
+ <j:if test="${date == 'right'}">
+ Last published: ${build.date}
+ <x:if select="$nav/body/links">|</x:if>
+ </j:if>
+ <!-- render links -->
+ <x:if select="$nav/body/links">
+ <!-- FIXME: need to test/implement -->
+ <jsl:applyTemplates select="$nav/body/links"/>
+ </x:if>
+ <x:if select="not($nav/body/links)">
+ <!-- FIXME -->
+ </x:if>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <!-- Body of the page -->
+ <table border="0" cellspacing="0" cellpadding="8" width="100%"> <!--id="main" -->
+ <tr valign="top">
+ <td id="leftcol" width="20%">
+ <div id="navcolumn">
+ <j:if test="${context.findVariable('maven.xdoc.date') == 'navigation-top'}">
+ <div>
+ <small>Last published: ${buildDate}</small>
</div>
- </td>
- </tr>
- </table>
- <div id="footer">
- <table border="0" cellspacing="0" cellpadding="4">
- <tr>
- <td>
- <j:if test="${!empty(pom.organization.name)}">
- <j:if test="${!empty(pom.inceptionYear)}">
- <j:if test="${pom.inceptionYear == mavenCurrentYear}">
- <!-- FIXME © -->${mavenCurrentYear}, ${pom.organization.name}
+ </j:if>
+
+ <x:if select="$nav">
+ <jsl:applyTemplates select="$nav/body/menu"/>
+ </x:if>
+
+ <!-- Standard Maven Navigation -->
+ <j:set var="fileName">${file}</j:set>
+
+ <div>
+ <strong>Project Documentation</strong>
+ <div>
+ <small>
+ <a href="${relativePath}/index.html">Front Page</a>
+ </small>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/project-info.html">Project Info</a>
+ </small>
+ <util:tokenize var="projectInfoFiles" delim=",">${maven.xdoc.pomDocuments}</util:tokenize>
+ <j:forEach var="infoFile" items="${projectInfoFiles}">
+ <j:if test="${relativePath == '.' and fileName.endsWith(infoFile)}">
+ <div>
+ <small>
+ <a href="${relativePath}/mail-lists.html">Mailing Lists</a>
+ </small>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/team-list.html">Project Team</a>
+ </small>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/dependencies.html">Dependencies</a>
+ </small>
+ </div>
+ <j:if test="${!empty(pom.repository.url)}">
+ <div>
+ <small>
+ <a href="${relativePath}/cvs-usage.html">Source Repository</a>
+ </small>
+ </div>
</j:if>
- <j:if test="${pom.inceptionYear != mavenCurrentYear}">
- <!-- FIXME © --> ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
+ <j:if test="${!empty(pom.issueTrackingUrl)}">
+ <div>
+ <small>
+ <a href="${pom.issueTrackingUrl.trim()}">Issue Tracking</a>
+ </small>
+ </div>
</j:if>
</j:if>
- <j:if test="${empty(pom.inceptionYear)}">
- <!-- FIXME © --> ${mavenCurrentYear}, ${pom.organization.name}
+ </j:forEach>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/maven-reports.html">Project Reports</a>
+ </small>
+ <util:tokenize var="projectReportFiles" delim=",">${maven.xdoc.projectReports}</util:tokenize>
+ <j:forEach var="reportFile" items="${projectReportFiles}">
+ <j:if test="${relativePath == '.' and fileName.endsWith(reportFile.trim())}">
+ <util:available file="${maven.docs.src}/tasks.xml">
+ <div>
+ <small>
+ <a href="${relativePath}/tasks.html">Tasks</a>
+ </small>
+ </div>
+ </util:available>
+ <util:available file="${maven.docs.src}/task-list.xml">
+ <div>
+ <small>
+ <a href="${relativePath}/task-list.html">Task List</a>
+ </small>
+ </div>
+ </util:available>
+ <util:available file="${maven.docs.src}/changes.xml">
+ <div>
+ <small>
+ <a href="${relativePath}/changes.html">Changes</a>
+ </small>
+ </div>
+ </util:available>
+ <j:if test="${!empty(pom.repository.connection)}">
+ <div>
+ <small>
+ <a href="${relativePath}/changelog-report.html">Change Log</a>
+ </small>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/developer-activity-report.html">Developer Activity</a>
+ </small>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/file-activity-report.html">File Activity</a>
+ </small>
+ </div>
+ </j:if>
+ <j:if test="${unitTestSourcesPresent}">
+ <div>
+ <small>
+ <a href="${relativePath}/junit-report.html">Unit Tests</a>
+ </small>
+ </div>
+ </j:if>
+ <j:if test="${sourcesPresent}">
+ <div>
+ <small>
+ <a href="${relativePath}/jdepend-report.html">Metric Results</a>
+ </small>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/checkstyle-report.html">Checkstyle Report</a>
+ </small>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/javadoc.html">Javadoc Report</a>
+ </small>
+ </div>
+ </j:if>
+ <util:available file="${maven.docs.dest}/clover">
+ <div>
+ <small>
+ <a href="${relativePath}/clover/index.html">Clover Test Coverage</a>
+ </small>
+ </div>
+ </util:available>
+ <util:available file="${maven.gen.docs}/cactus-report.xml">
+ <div>
+ <small>
+ <a href="${relativePath}/cactus-report.html">Cactus Tests</a>
+ </small>
+ </div>
+ </util:available>
</j:if>
+ </j:forEach>
+ </div>
+ <j:if test="${sourcesPresent}">
+ <div>
+ <small>
+ <a href="${relativePath}/apidocs/index.html">JavaDocs</a>
+ </small>
+ </div>
+ <div>
+ <small>
+ <a href="${relativePath}/xref/index.html">Source XReference</a>
+ </small>
+ </div>
+ </j:if>
+ <j:set var="devProcess" value="false"/>
+ <util:available file="${maven.docs.src}/development-process.xml">
+ <j:set var="devProcess" value="true"/>
+ </util:available>
+ <j:if test="${devProcess}">
+ <div>
+ <small>
+ <a href="${relativePath}/development-process.html">Development Process</a>
+ </small>
+ </div>
+ </j:if>
+ <j:if test="${!devProcess}">
+ <div>
+ <small>
+ <a href="${maven.xdoc.development-process-url}">Development Process</a>
+ </small>
+ </div>
+ </j:if>
+ </div>
+ <j:if test="${context.findVariable('maven.xdoc.date') == 'navigation-bottom'}">
+ <div>
+ <small>Last published: ${build.date}</small>
+ </div>
+ </j:if>
+ </div>
+ </td>
+ <td>
+ <div id="bodycol">
+ <!-- Insert MAIN body here -->
+ <div class="app">
+ <!-- FIXME really shouldn't use $doc, but jelly loses it's context again -->
+ <jsl:applyTemplates select="$doc/document/body/section"/>
+ </div>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <div id="footer">
+ <table border="0" cellspacing="0" cellpadding="4">
+ <tr>
+ <td>
+ <j:if test="${!empty(pom.organization.name)}">
+ <j:if test="${!empty(pom.inceptionYear)}">
+ <j:if test="${pom.inceptionYear == mavenCurrentYear}">
+ <!-- FIXME © -->${mavenCurrentYear}, ${pom.organization.name}
</j:if>
-
- <j:if test="${context.findVariable('maven.xdoc.date') == 'bottom'}">
- - Last published: ${build.date}
+ <j:if test="${pom.inceptionYear != mavenCurrentYear}">
+ <!-- FIXME © --> ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
</j:if>
- </td>
- <j:if test="${context.findVariable('maven.xdoc.date') == 'bottom-right'}">
- <td align="right">Last published: ${build.date}</td>
</j:if>
- </tr>
- </table>
- </div>
- </body>
- </html>
- </jsl:template>
-
- <!-- process the properties of the doc -->
- <jsl:template match="properties" trim="false">
- <!-- stick head block here later -->
- </jsl:template>
-
- <!-- Process a menu for the navigation bar -->
- <jsl:template match="menu" trim="false">
- <div>
- <strong><x:expr select="@name"/></strong>
- <jsl:applyTemplates select="item" />
- </div>
- </jsl:template>
-
- <jsl:template match="item" trim="false">
- <div>
- <j:set var="_name"><x:expr select="@name" /></j:set>
- <j:set var="_link"><x:expr select="@href" /></j:set>
- <small><jslXdoc:itemLink name="${_name}" link="${_link}" /></small>
- <jsl:applyTemplates select="item" />
- </div>
- </jsl:template>
-
- <!-- Process the breadcrumb navbar -->
- <jsl:template match="links" trim="false">
- <j:set var="linkCount" value="1" />
- <x:forEach var="link" select="item">
- <j:if test="${linkCount != 1}">|</j:if>
- <j:set var="_name"><x:expr select="@name" /></j:set>
- <j:set var="_link"><x:expr select="@href" /></j:set>
- <jslXdoc:itemLink name="${_name}" link="${_link}" />
- <j:set var="linkCount" value="${1+linkCount}"/>
- </x:forEach>
- </jsl:template>
-
- <!-- process a documentation section -->
- <jsl:template match="section" trim="false">
- <div class="h3">
- <j:set var="_sectionName"><x:expr select="@name"/></j:set>
- <j:if test="${!empty(_sectionName)}">
- <h3><a name="${_sectionName}">${_sectionName}</a></h3>
- </j:if>
- <jsl:applyTemplates select="*"/>
- </div>
- </jsl:template>
+ <j:if test="${empty(pom.inceptionYear)}">
+ <!-- FIXME © --> ${mavenCurrentYear}, ${pom.organization.name}
+ </j:if>
+ </j:if>
- <jsl:template match="subsection" trim="false">
- <div class="h4">
- <j:set var="_sectionName" trim="false"><x:expr select="@name"/></j:set>
- <j:if test="${!empty(_sectionName)}">
- <h4><a name="${_sectionName}">${_sectionName}</a></h4>
- </j:if>
- <jsl:applyTemplates select="*"/>
+ <j:if test="${context.findVariable('maven.xdoc.date') == 'bottom'}">
+ - Last published: ${build.date}
+ </j:if>
+ </td>
+ <j:if test="${context.findVariable('maven.xdoc.date') == 'bottom-right'}">
+ <td align="right">Last published: ${build.date}</td>
+ </j:if>
+ </tr>
+ </table>
</div>
- </jsl:template>
+ </body>
+ </html>
+ </jsl:template>
+
+ <!-- process the properties of the doc -->
+ <jsl:template match="properties" trim="false">
+ <!-- stick head block here later -->
+ </jsl:template>
+
+ <!-- Process a menu for the navigation bar -->
+ <jsl:template match="menu" trim="false">
+ <div>
+ <strong><x:expr select="@name"/></strong>
+ <jsl:applyTemplates select="item"/>
+ </div>
+ </jsl:template>
+
+ <jsl:template match="item" trim="false">
+ <div>
+ <j:set var="_name"><x:expr select="@name"/></j:set>
+ <j:set var="_link"><x:expr select="@href"/></j:set>
+ <small><doc:itemLink name="${_name}" link="${_link}"/></small>
+ <jsl:applyTemplates select="item"/>
+ </div>
+ </jsl:template>
+
+ <!-- Process the breadcrumb navbar -->
+ <jsl:template match="links" trim="false">
+ <j:set var="linkCount" value="1"/>
+ <x:forEach var="link" select="item">
+ <j:if test="${linkCount != 1}">|</j:if>
+ <j:set var="_name">
+ <x:expr select="@name"/>
+ </j:set>
+ <j:set var="_link">
+ <x:expr select="@href"/>
+ </j:set>
+ <doc:itemLink name="${_name}" link="${_link}"/>
+ <j:set var="linkCount" value="${1+linkCount}"/>
+ </x:forEach>
+ </jsl:template>
+
+ <!-- process a documentation section -->
+ <jsl:template match="section" trim="false">
+ <div class="h3">
+ <j:set var="_sectionName">
+ <x:expr select="@name"/>
+ </j:set>
+ <j:if test="${!empty(_sectionName)}">
+ <h3>
+ <a name="${_sectionName}">${_sectionName}</a>
+ </h3>
+ </j:if>
+ <jsl:applyTemplates select="*"/>
+ </div>
+ </jsl:template>
+
+ <jsl:template match="subsection" trim="false">
+ <div class="h4">
+ <j:set var="_sectionName" trim="false">
+ <x:expr select="@name"/>
+ </j:set>
+ <j:if test="${!empty(_sectionName)}">
+ <h4>
+ <a name="${_sectionName}">${_sectionName}</a>
+ </h4>
+ </j:if>
+ <jsl:applyTemplates select="*"/>
+ </div>
+ </jsl:template>
+
+ <jsl:template match="source" trim="false">
+ <div id="source">
+ <pre>
+ <x:expr select="."/>
+ </pre>
+ </div>
+ </jsl:template>
+
+ <jsl:template match="table" trim="false">
+ <j:set var="rowcount" value="0"/>
+ <table cellpadding="3" cellspacing="2" border="1" width="100%">
+ <jsl:applyTemplates select="*"/>
+ </table>
+ </jsl:template>
+
+ <jsl:template match="tr" trim="false">
+ <j:choose>
+ <j:when test="${rowMode == 'a'}">
+ <j:set var="rowMode" value="b"/>
+ </j:when>
+ <j:otherwise>
+ <j:set var="rowMode" value="a"/>
+ </j:otherwise>
+ </j:choose>
+
+ <x:element name="tr"><x:attribute name="class">${rowMode}</x:attribute>
+ <!-- copy attributes FIXME: Shouldn't this only be colspan|rowspan? -->
+ <x:forEach select="@*">
+ <x:set var="attr" value="."/><x:attribute name="${attr.name}">${attr.text}</x:attribute>
+ </x:forEach>
+
+ <jsl:applyTemplates select="*"/>
+ </x:element>
+ </jsl:template>
+
+ <!-- copy any other elements through -->
+ <jsl:template match="*" trim="false">
+ <jsl:copy trim="false">
+ <jsl:applyTemplates trim="false"/>
+ </jsl:copy>
+ </jsl:template>
- <jsl:template match="source" trim="false">
- <div id="source">
- <pre><x:expr select="."/></pre>
- </div>
- </jsl:template>
+ <!-- element values don't pass through as text -->
+ <jsl:template match="@*"/>
- <jsl:template match="table" trim="false">
- <j:set var="rowcount" value="0"/>
- <table cellpadding="3" cellspacing="2" border="1" width="100%">
- <jsl:applyTemplates select="*"/>
- </table>
- </jsl:template>
-
- <jsl:template match="tr" trim="false">
- <j:choose>
- <j:when test="${rowMode == 'a'}">
- <j:set var="rowMode" value="b"/>
- </j:when>
- <j:otherwise>
- <j:set var="rowMode" value="a"/>
- </j:otherwise>
- </j:choose>
-
- <x:element name="tr"><x:attribute name="class">${rowMode}</x:attribute>
-
- <!-- copy attributes FIXME: Shouldn't this only be colspan|rowspan? -->
- <x:forEach select="@*">
- <x:set var="attr" value="."/>
- <x:attribute name="${attr.name}">${attr.text}</x:attribute>
- </x:forEach>
-
- <jsl:applyTemplates select="*"/>
- </x:element>
- </jsl:template>
-
- <!--************************-->
- <!-- glossary documentation -->
- <!--************************-->
- <jsl:template match="glossary" trim="false">
- <jsl:applyTemplates select="glossary-entries/glossary-entry" />
- </jsl:template>
-
- <jsl:template match="glossary-entry" trim="false">
- <strong><x:expr select="name" /></strong>
- <br/>
- <x:expr select="definition" />
- <p/>
- </jsl:template>
-
- <!--************************-->
- <!-- goals documentation -->
- <!--************************-->
- <jsl:template match="goals" trim="false">
- <!-- reset row alternation -->
- <j:set var="rowMode" value="" />
- <div class="h3">
- <h3><a name="Goals">Goals</a></h3>
- <table>
- <tr width='100%'><th>Goal</th><th>Description</th></tr>
- <jsl:applyTemplates select="goal"/>
- </table>
- </div>
- </jsl:template>
-
- <!-- a goal -->
- <!-- FIXME: this is copied from tr - there must be a way of
- calling templates in jsl? -->
- <jsl:template match="goal" trim="false">
- <j:choose>
- <j:when test="${rowMode == 'a'}">
- <j:set var="rowMode" value="b"/>
- </j:when>
- <j:otherwise>
- <j:set var="rowMode" value="a"/>
- </j:otherwise>
- </j:choose>
- <x:element name="tr"><x:attribute name="class">${rowMode}</x:attribute>
-
- <!-- copy attributes -->
- <x:forEach select="@*">
- <x:set var="attr" value="."/>
- <x:attribute name="${attr.name}">${attr.text}</x:attribute>
- </x:forEach>
- <j:set var="_goalName"><x:expr select="./name" /></j:set>
- <td><a name="${_goalName}">${_goalName}</a></td>
- <td><jsl:applyTemplates select="description" /></td>
- </x:element>
- </jsl:template>
-
-
- <!-- copy any other elements through -->
- <jsl:template match="*" trim="false">
- <jsl:copy trim="false">
- <jsl:applyTemplates trim="false"/>
- </jsl:copy>
- </jsl:template>
-
- <!-- element values don't pass through as text -->
- <jsl:template match="@*"/>
-
- </jsl:stylesheet>
+</jsl:stylesheet>
1.1 jakarta-turbine-maven/src/plugins-build/xdoc/ui.properties
Index: ui.properties
===================================================================
#
# UI Color Prefs
#
maven.ui.body.background = #fff
maven.ui.body.foreground = #000
maven.ui.section.background = #036
maven.ui.section.foreground = #fff
maven.ui.subsection.background = #888
maven.ui.subsection.foreground = #fff
maven.ui.table.header.background = #bbb
maven.ui.table.header.foreground = #fff
maven.ui.table.row.odd.background = #ddd
maven.ui.table.row.odd.foreground = #000
maven.ui.table.row.even.background = #efefef
maven.ui.table.row.even.foreground = #000
maven.ui.banner.background = #036
maven.ui.banner.foreground = #fff
maven.ui.banner.border.top = #369
maven.ui.banner.border.bottom = #003
maven.ui.source.background = #fff
maven.ui.source.foreground = #000
maven.ui.source.border.right = #888
maven.ui.source.border.left = #888
maven.ui.source.border.top = #888
maven.ui.source.border.bottom = #888
maven.ui.navcol.background = #eee
maven.ui.navcol.background.ns4 = #fff
maven.ui.navcol.foreground = #000
maven.ui.navcol.foreground.ns4 = #555
maven.ui.navcol.border.top = #fff
maven.ui.navcol.border.right = #aaa
maven.ui.navcol.border.bottom = #aaa
maven.ui.breadcrumbs.background = #ddd
maven.ui.breadcrumbs.foreground = #000
maven.ui.breadcrumbs.border.top = #fff
maven.ui.breadcrumbs.border.bottom = #aaa
maven.ui.href.link = blue
maven.ui.href.link.active = #f30
maven.ui.href.link.selfref = #555
1.3 +34 -29 jakarta-turbine-maven/src/plugins-build/xdoc/templates/cvs-usage.xml
Index: cvs-usage.xml
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/xdoc/templates/cvs-usage.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- cvs-usage.xml 4 Dec 2002 17:27:08 -0000 1.2
+++ cvs-usage.xml 31 Dec 2002 07:14:17 -0000 1.3
@@ -1,48 +1,53 @@
<?xml version="1.0"?>
<document>
-
+
+ #set ($conn = $project.repository.connection.substring(4))
+ #set ($conn = $conn.substring($conn.indexOf(":")))
+ #set ($url = $escape.getText($project.repository.url))
+
<properties>
<author email="turbine-maven-dev@jakarta.apache.org">Maven</author>
<title>CVS</title>
</properties>
<body>
+ <section name="Web Access">
+ <p>
+ <a href="$url">$url</a>
+ </p>
+ </section>
+
<section name="Anonymous CVS Access">
-
<p>
- This project's CVS repository can be checked out through anonymous (pserver)
- CVS with the following instruction set.
- When prompted for a password for anonymous, simply press the Enter key.
-
- <!-- replace me with the project declared anon password, might need
- POM addition. jvz. -->
+ This project's CVS repository can be checked out through anonymous (pserver)
+ CVS with the following instruction set.
+ When prompted for a password for anonymous, simply press the Enter key.
+ </p>
+ <p>
+ cvs -d $conn login
+ <br/>
+ cvs -z3 -d $conn co $project.id
</p>
-<pre>
-cvs -d:$project.repository.connection login
-
-cvs -z3 -d:pserver:anonymous@$project.repository.connection co $project.id
-</pre>
-
- <p>
- Updates from within the module's directory do not need the -d parameter.
- </p>
- </section>
+ <p>
+ Updates from within the module's directory do not need the -d parameter.
+ </p>
+ </section>
- <section name="Developer CVS Access via SSH">
+ <section name="Developer CVS Access via SSH">
- <p>
- Only project developers can access the CVS tree via this method.
- SSH1 must be installed on your client machine. Substitute <b>name</b>
- with the proper value. Enter your site password when prompted.
- </p>
+ <p>
+ Only project developers can access the CVS tree via this method.
+ SSH1 must be installed on your client machine. Substitute
+ <b>name</b> with the proper value. Enter your site password when prompted.
+ </p>
-<pre>
-export CVS_RSH=ssh
-
-cvs -z3 -d:ext:$project.repository.connection.anonUser@$project.repository.connection co $project.id
-</pre>
+ <p>
+ export CVS_RSH=ssh
+ <br/>
+ cvs -z3 -d $conn co $project.id
+ </p>
</section>
</body>
1.5 +4 -2 jakarta-turbine-maven/src/plugins-build/xdoc/templates/maven-reports.xml
Index: maven-reports.xml
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/xdoc/templates/maven-reports.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- maven-reports.xml 17 Oct 2002 13:17:40 -0000 1.4
+++ maven-reports.xml 31 Dec 2002 07:14:17 -0000 1.5
@@ -26,14 +26,14 @@
</td>
</tr>
#if ($project.repository)
- <tr><td><a href="changelog.html">Change Log</a></td>
+ <tr><td><a href="changelog-report.html">Change Log</a></td>
<td>
This document provides a history of the most recent
changes made to the project taken directly from the
source code repository.
</td>
</tr>
- <tr><td><a href="activity-log.html">Developer Activity</a></td>
+ <tr><td><a href="developer-activity-log.html">Developer Activity</a></td>
<td>
This document provides a report of activity in terms of
CVS commits and breaks it out by developer.
@@ -69,6 +69,7 @@
</td>
</tr>
#end
+
#if ($files.file($project.build.sourceDirectory).exists())
<tr><td><a href="jdepend-report.html">Metric Results</a></td>
<td>
@@ -93,6 +94,7 @@
</td>
</tr>
#end
+
#if ($files.file("$maven-docs-dest/clover").exists())
<tr><td><a href="clover/index.html">Clover Test Coverage</a></td>
<td>
1.2 +10 -2 jakarta-turbine-maven/src/plugins-build/xdoc/templates/project-info.xml
Index: project-info.xml
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/xdoc/templates/project-info.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- project-info.xml 14 Jul 2002 19:09:35 -0000 1.1
+++ project-info.xml 31 Dec 2002 07:14:17 -0000 1.2
@@ -38,8 +38,16 @@
information on each dependency.
</td>
</tr>
+
+ <!--
+
+ This is really bad that the url requires specification in two
+ places. Makes pluggable reporting impossible. FIX
+
+ -->
+
#if ($project.repository.url)
- <tr><td><a href="$escape.getText($project.repository.url.toString().trim())">Source Repository</a></td>
+ <tr><td><a href="cvs-usage.html">Source Repository</a></td>
<td>
This is a link to the online source repository that can be
viewed via a web browser.
@@ -47,7 +55,7 @@
</tr>
#end
#if ($project.issueTrackingUrl)
- <tr><td><a href="$escape.getText($project.issueTrackingUrl.toString().trim())">Issue Tracking</a></td>
+ <tr><td><a href="issue-tracking.html">Issue Tracking</a></td>
<td>
This is a link to the issue tracking system for this
project. Issues (bugs, features, change requests) can be
1.1 jakarta-turbine-maven/src/plugins-build/xdoc/templates/issue-tracking.xml
Index: issue-tracking.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="turbine-maven-dev@jakarta.apache.org">Maven</author>
<title>Issue Tracking</title>
</properties>
<body>
<section name="Issue Tracking">
<p>
#set ($url = $escape.getText($project.issueTrackingUrl))
<a href="$url">$url</a>
</p>
</section>
</body>
</document>