upgrade to dom4j 1.5.2

site.jsl is having some problems - I have cleaned up but more work is needed to get the site going


git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@126436 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
brett committed 2005-01-25 22:34:35 +00:00
1 parent 16e672ead5
commit 92da1bd7ce
2 files changed
+372 -365

No files matched your search

+10 -4
View File
@@ -149,7 +149,12 @@
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.4-dev-8</version>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1-beta-4</version>
</dependency>
<dependency>
<groupId>commons-jelly</groupId>
@@ -159,17 +164,17 @@
<dependency>
<groupId>commons-jelly</groupId>
<artifactId>commons-jelly-tags-jsl</artifactId>
<version>20030211.143151</version>
<version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>commons-jelly</groupId>
<artifactId>commons-jelly-tags-log</artifactId>
<version>20030211.142821</version>
<version>1.0</version>
</dependency>
<dependency>
<groupId>commons-jelly</groupId>
<artifactId>commons-jelly-tags-velocity</artifactId>
<version>20030303.205659</version>
<version>1.0</version>
</dependency>
<dependency>
<groupId>commons-jelly</groupId>
@@ -192,6 +197,7 @@
<artifactId>maven-model</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<!-- TODO: upgrade? -->
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
+362 -361
View File
@@ -29,17 +29,20 @@
xmlns:x="jelly:xml"
xmlns:doc="doc"
xmlns:maven="jelly:maven"
xmlns="dummy"
trim="true">
xmlns:ant="jelly:ant"
xmlns="dummy">
<jsl:template match="document" trim="true">
<x:doctype name="html" publicId="-//W3C//DTD XHTML 1.0 Transitional//EN" systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<j:useBean var="navbean" class="org.apache.maven.NavBean"/>
<j:set var="location" value="${outFile.substring(destdir.length())}"/>
<util:replace var="location" oldChar="\" newChar="/" value="${location}"/>
<!-- Stores location for publish date / version -->
<j:set var="date">${maven.xdoc.date}</j:set>
<j:setProperties object="${navbean}" document="${doc}" location="${location}"/>
<x:set var="templateContext" select="." />
<x:doctype name="html" publicId="-//W3C//DTD XHTML 1.0 Transitional//EN" systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<html>
<head>
<j:set var="docTitle"><x:expr select="./properties/title"/></j:set>
@@ -49,7 +52,7 @@
<x:if select="not($nav/title)">
<title>${pom.name} - ${docTitle}</title>
</x:if>
<j:set var="themeUrl" value="${maven.xdoc.theme.url}"/>
<util:file var="projectCssFile" name="${maven.docs.src}/style/project.css"/>
@@ -73,285 +76,193 @@
<meta name="author" content="${author.text}"/>
<meta name="email" content="${author.attribute('email').value}"/>
</x:forEach>
<jsl:applyTemplates select="$doc/document/head/*"/>
<jsl:applyTemplates select="head/*" />
</head>
<jsl:applyTemplates select="$templateContext" />
</html>
</jsl:template>
<x:element name="body"><j:whitespace trim="true">
<x:attribute name="class">composite</x:attribute>
<x:forEach var="attr" select="$doc/document/body/@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
</j:whitespace>
<!-- Skip properties -->
<jsl:template match="properties" />
<div id="banner">
<!-- organization logo -->
<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 home to relative or complete -->
<j:if test="${!home.startsWith('http://') and !home.startsWith('https://')}">
<j:set var="home" value="${relativePath}${home}"/>
</j:if>
<!-- Skip head repeat -->
<jsl:template match="head" />
<!-- set image to relative or complete -->
<j:set var="image" value="${pom.organization.logo}"/>
<j:if test="${!image.startsWith('http://') and !image.startsWith('https://')}">
<j:set var="image" value="${relativePath}${image}"/>
</j:if>
<a href="${home}" id="organizationLogo">
<img src="${image}" alt="${pom.organization.name}" />
</a>
<jsl:template match="body" trim="true">
<x:set var="templateContext" select="." />
<x:element name="body"><j:whitespace trim="true">
<x:attribute name="class">composite</x:attribute>
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
</j:whitespace>
<div id="banner">
<!-- organization logo -->
<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>
<!-- set project to relative or complete -->
<j:set var="home" value="${pom.url}"/>
<j:if test="${empty(url)}">
<j:set var="home" value="${pom.url}"/>
</j:if>
<!-- set home to relative or complete -->
<j:if test="${!home.startsWith('http://') and !home.startsWith('https://')}">
<j:set var="home" value="${relativePath}${home}"/>
</j:if>
<!-- project logo and link -->
<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://') and !image.startsWith('https://')}">
<j:set var="image" value="${relativePath}${image}"/>
</j:if>
<!-- set image to relative or complete -->
<j:set var="image" value="${pom.organization.logo}"/>
<j:if test="${!image.startsWith('http://') and !image.startsWith('https://')}">
<j:set var="image" value="${relativePath}${image}"/>
</j:if>
<a href="${home}" id="organizationLogo">
<img src="${image}" alt="${pom.organization.name}" />
</a>
</j:if>
<a href="${home}" id="projectLogo">
<img src="${image}" alt="${pom.name}"/>
</a>
</j:if>
<j:if test="${logo == null or logo == ''}">
<a href="${home}" id="projectLogo">
<span>${pom.name}</span>
</a>
</j:if>
<div class="clear"><hr /></div>
</div>
<!-- set project to relative or complete -->
<j:set var="home" value="${pom.url}"/>
<j:if test="${!home.startsWith('http://') and !home.startsWith('https://')}">
<j:set var="home" value="${relativePath}${home}"/>
</j:if>
<div id="breadcrumbs">
<maven:property var="version" name="maven.xdoc.version" defaultValue="${pom.currentVersion}"/>
<j:if test="${date == 'left'}">
<div class="xleft">
Last published: ${build.date}
<j:if test="${!empty(version)}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
Doc for ${version}
</j:if>
</div>
<!-- project logo and link -->
<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://') and !image.startsWith('https://')}">
<j:set var="image" value="${relativePath}${image}"/>
</j:if>
<div class="xright">
<j:if test="${date == 'right'}">
Last published: ${build.date}
<j:if test="${!empty(version)}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
Doc for ${version}
<a href="${home}" id="projectLogo">
<img src="${image}" alt="${pom.name}"/>
</a>
</j:if>
<j:if test="${logo == null or logo == ''}">
<a href="${home}" id="projectLogo">
<span>${pom.name}</span>
</a>
</j:if>
<div class="clear"><hr /></div>
</div>
<div id="breadcrumbs">
<maven:property var="version" name="maven.xdoc.version" defaultValue="${pom.currentVersion}"/>
<j:if test="${date == 'left'}">
<div class="xleft">
Last published: ${build.date}
<j:if test="${!empty(version)}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
<x:if select="$nav/body/links">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
</x:if>
Doc for ${version}
</j:if>
</div>
</j:if>
<div class="xright">
<j:if test="${date == 'right'}">
Last published: ${build.date}
<j:if test="${!empty(version)}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
Doc for ${version}
</j:if>
<!-- render links -->
<x:if select="$nav/body/links">
<jsl:applyTemplates select="$nav/body/links"/>
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
</x:if>
</div>
<div class="clear"><hr /></div>
</div>
<!-- left column start -->
<div id="leftColumn">
<div id="navcolumn">
<j:if test="${date == 'navigation-top'}">
<div id="lastPublished">Last published: ${build.date}</div>
</j:if>
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[not(@type) | @type='header'] | $nav/body/search"/>
</x:if>
<jsl:applyTemplates select="$projectNav/body/menu"/>
<!-- allows user to put menu items after standard reports -->
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[@type='footer']"/>
</x:if>
<j:if test="${context.getVariable('maven.xdoc.legend') == 'true'}">
<div id="legend">
<h5>Legend</h5>
<ul>
<li class="externalLink">External Link</li>
<li class="newWindow">Opens in a new window</li>
</ul>
</div>
</j:if>
<!-- Standard Maven Navigation -->
<j:set var="fileName">${file}</j:set>
<j:set var="poweredbyimage">${maven.xdoc.poweredby.image}</j:set>
<j:set var="poweredbytitle">${maven.xdoc.poweredby.title}</j:set>
<j:set var="poweredbyurl" value="${maven.xdoc.poweredby.url}" />
<j:if test="${!empty(poweredbyimage)}">
<a id="poweredBy" href="${poweredbyurl}" title="${poweredbytitle}">
<img alt="${maven.xdoc.poweredby.title}" src="${relativePath}/images/logos/${poweredbyimage}" />
</a>
</j:if>
<j:if test="${date == 'navigation-bottom'}">
<div id="lastPublished">Last published: ${build.date}</div>
</j:if>
</div>
</div>
<!-- left column end -->
<!-- body start -->
<div id="bodyColumn">
<div class="contentBox">
<!-- 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/release" />
<jsl:applyTemplates select="$doc/document/body/goals" />
</div>
</j:if>
<!-- render links -->
<x:if select="$nav/body/links">
<jsl:applyTemplates select="$nav/body/links" />
</x:if>
</div>
<div class="clear"><hr /></div>
<!-- body end -->
</div>
<!-- left column start -->
<div id="leftColumn">
<div id="navcolumn">
<j:if test="${date == 'navigation-top'}">
<div id="lastPublished">Last published: ${build.date}</div>
</j:if>
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[not(@type) | @type='header'] | $nav/body/search"/>
</x:if>
<jsl:applyTemplates select="$projectNav/body/menu"/>
<!-- allows user to put menu items after standard reports -->
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[@type='footer']"/>
</x:if>
<j:if test="${context.getVariable('maven.xdoc.legend') == 'true'}">
<div id="legend">
<h5>Legend</h5>
<ul>
<li class="externalLink">External Link</li>
<li class="newWindow">Opens in a new window</li>
</ul>
</div>
</j:if>
<!-- Standard Maven Navigation -->
<j:set var="fileName">${file}</j:set>
<j:set var="poweredbyimage">${maven.xdoc.poweredby.image}</j:set>
<j:set var="poweredbytitle">${maven.xdoc.poweredby.title}</j:set>
<j:set var="poweredbyurl" value="${maven.xdoc.poweredby.url}" />
<j:if test="${!empty(poweredbyimage)}">
<a id="poweredBy" href="${poweredbyurl}" title="${poweredbytitle}">
<img alt="${maven.xdoc.poweredby.title}" src="${relativePath}/images/logos/${poweredbyimage}" />
</a>
</j:if>
<j:if test="${date == 'navigation-bottom'}">
<div id="lastPublished">Last published: ${build.date}</div>
</j:if>
</div>
</div>
<!-- left column end -->
<!-- footer start -->
<div id="footer">
<jsl:applyTemplates select="$nav/body/footer"/>
<div class="xright">
<j:if test="${!empty(pom.organization.name)}">
<j:if test="${!empty(pom.inceptionYear)}">
<j:if test="${pom.inceptionYear == mavenCurrentYear}">
&#169; ${mavenCurrentYear}, ${pom.organization.name}
</j:if>
<j:if test="${pom.inceptionYear != mavenCurrentYear}">
&#169; ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
</j:if>
</j:if>
<j:if test="${empty(pom.inceptionYear)}">
<!-- body start -->
<div id="bodyColumn">
<div class="contentBox">
<jsl:applyTemplates select="$templateContext" />
</div>
</div>
<div class="clear"><hr /></div>
<!-- body end -->
<!-- footer start -->
<div id="footer">
<jsl:applyTemplates select="$nav/body/footer"/>
<div class="xright">
<j:if test="${!empty(pom.organization.name)}">
<j:if test="${!empty(pom.inceptionYear)}">
<j:if test="${pom.inceptionYear == mavenCurrentYear}">
&#169; ${mavenCurrentYear}, ${pom.organization.name}
</j:if>
<j:if test="${pom.inceptionYear != mavenCurrentYear}">
&#169; ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
</j:if>
</j:if>
<j:if test="${date == 'bottom'}">
&#169; - Last published: ${build.date}
<j:if test="${empty(pom.inceptionYear)}">
&#169; ${mavenCurrentYear}, ${pom.organization.name}
</j:if>
</div>
<div class="clear"><hr /></div>
</div>
<!-- footer end -->
</x:element>
</html>
</jsl:template>
<!-- process the properties of the doc -->
<jsl:template match="properties" trim="true">
<!-- stick head block here later -->
</jsl:template>
<!-- Process a menu for the navigation bar -->
<jsl:template match="menu" trim="true">
<j:set var="_menuName"><x:expr select="@name"/></j:set>
<j:set var="_menuName"><doc:escapeNameToken value="${_menuName}"/></j:set>
<j:choose>
<j:when test="${!empty(_menuName)}">
<div id="menu${_menuName}">
<h5><x:expr select="@name"/></h5>
<ul><jsl:applyTemplates select="item"/></ul>
</div>
</j:when>
<j:otherwise>
<div>
<ul><jsl:applyTemplates select="item"/></ul>
</div>
</j:otherwise>
</j:choose>
</jsl:template>
<jsl:template match="item" trim="true">
<x:set var="item" select="."/>
<x:set var="_name" select="string(@name)"/>
<x:set var="_link" select="string(@href)"/>
<x:set var="_img" select="string(@img)"/>
<x:set var="_target" select="string(@target)"/>
<x:set var="_childCount" select="count(./item)"/>
<j:set var="_isCollapsed" value="${navbean.isCollapsed(item.get(0))}"/>
<j:set var="_state" value="none"/>
<j:if test="${_childCount.intValue() gt 0}">
<j:if test="${!_isCollapsed}"><j:set var="_state" value="expanded"/></j:if>
<j:if test="${_isCollapsed}"><j:set var="_state" value="collapsed"/></j:if>
</j:if>
<li class="${_state}">
<j:if test="${navbean.isSelected(item.get(0))}">
<strong><doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}" target="${_target}"/></strong>
</j:if>
<j:if test="${!navbean.isSelected(item.get(0))}">
<doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}" target="${_target}"/>
</j:if>
<j:if test="${_state == 'expanded'}">
<ul>
<jsl:applyTemplates select="item"/>
</ul>
</j:if>
</li>
</jsl:template>
<!-- Process the breadcrumb navbar -->
<jsl:template match="links" trim="true">
<j:set var="linkCount" value="1"/>
<x:forEach var="link" select="item">
<j:set var="_img"><x:expr select="@img"/></j:set>
<j:set var="_name"><x:expr select="@name"/></j:set>
<j:set var="_link"><x:expr select="@href"/></j:set>
<j:set var="_target"><x:expr select="@target"/></j:set>
<j:whitespace trim="false">
<j:if test="${linkCount != 1}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
</j:if>
<doc:itemLink name="${_name}" link="${_link}" img="${_img}" target="${_target}"/>
</j:whitespace>
<j:set var="linkCount" value="${1+linkCount}"/>
</x:forEach>
<j:if test="${date == 'bottom'}">
&#169; - Last published: ${build.date}
</j:if>
</div>
<div class="clear"><hr /></div>
</div>
<!-- footer end -->
</x:element>
</jsl:template>
<!-- Google site search -->
<jsl:template match="search" trim="true">
<!-- Search code: http://www.google.com/searchcode.html -->
<!-- Google logos: http://www.google.com/stickers.html -->
<!-- Terms: http://www.google.com./services/terms_free.html -->
<div id="search">
<h5>Search ${pom.name}</h5>
<form method="get" action="http://www.google.com/search">
<a class="navlink" href="http://www.google.com">
<img src="http://www.google.com/logos/Logo_25wht.gif" width="75" height="32" alt="Google" />
</a>
<j:set var="siteURL" value="${pom.url}"/>
<!-- google fails on urls that end with / -->
<j:if test="${siteURL.endsWith('/')}">
<j:set var="URLLength" value="${siteURL.length() - 1}"/>
<j:set var="siteURL" value="${siteURL.substring(0, URLLength.intValue())}"/>
</j:if>
<input type="text" id="q" size="15" name="q" maxlength="255" value=""/>
<input type="submit" id="btnG" value="Go" name="btnG"/>
<input type="hidden" name="domains" value="${siteURL}"/>
<input type="hidden" id="search" name="sitesearch" value="${siteURL}"/>
</form>
</div>
</jsl:template>
<!-- process a documentation section -->
<jsl:template match="section" trim="true">
<div class="section">
@@ -361,7 +272,7 @@
<j:if test="${!empty(_sectionName)}">
<a name="${_anchorName}"/><h2>${_sectionName}</h2>
</j:if>
<jsl:applyTemplates select="*"/>
<jsl:applyTemplates />
</div>
</jsl:template>
@@ -373,114 +284,17 @@
<j:if test="${!empty(_sectionName)}">
<a name="${_anchorName}"/><h3>${_sectionName}</h3>
</j:if>
<jsl:applyTemplates select="*"/>
<jsl:applyTemplates />
</div>
</jsl:template>
<jsl:template match="source" trim="false">
<ant:echo>into source...</ant:echo>
<div class="source"><pre><jsl:applyTemplates /></pre></div>
</jsl:template>
<jsl:template match="escapeXml" trim="false"><j:set var="escapedChunk"><jsl:applyTemplates/></j:set>${escapedChunk}</jsl:template>
<!-- preserve whitespace in the following elements -->
<jsl:template match="pre | script | style" trim="true">
<x:set var="nodename" select="name()"/>
<x:element name="${nodename}">
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<j:whitespace trim="false"><jsl:applyTemplates /></j:whitespace>
</x:element>
</jsl:template>
<!-- xhtml fixup: add missing alt attribute for images -->
<jsl:template match="img" trim="true">
<x:element name="img">
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<x:set var="noalt" select="count(./@alt) = 0" />
<j:if test="${noalt}" >
<x:attribute name="alt"></x:attribute>
</j:if>
</x:element>
</jsl:template>
<jsl:template match="footer" trim="true">
<div class="xleft">
<jsl:applyTemplates select="*"/>
</div>
</jsl:template>
<jsl:template match="table" trim="true">
<j:set var="rowcount" value="0"/>
<table class="bodyTable">
<jsl:applyTemplates select="*"/>
</table>
</jsl:template>
<jsl:template match="tr" trim="true">
<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"><j:whitespace trim="true">
<x:attribute name="class">${rowMode}</x:attribute>
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<jsl:applyTemplates select="*"/>
</j:whitespace></x:element>
</jsl:template>
<!--************************-->
<!-- goals documentation -->
<!--************************-->
<jsl:template match="goals" trim="true">
<!-- reset row alternation -->
<j:set var="rowMode" value="" />
<div class="h3">
<a name="Goals"/><h3>Goals</h3>
<table class="bodyTable">
<thead>
<tr><th>Goal</th><th>Description</th></tr>
</thead>
<tbody>
<jsl:applyTemplates select="goal"/>
</tbody>
</table>
</div>
</jsl:template>
<!-- a goal -->
<jsl:template match="goal" trim="true">
<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"><j:whitespace trim="true">
<x:attribute name="class">${rowMode}</x:attribute>
<j:set var="_goalName"><x:expr select="./name" /></j:set>
<td style="width:20%"><a name="${_goalName}"/>${_goalName}</td>
<td ><jsl:applyTemplates select="description" /></td>
</j:whitespace></x:element>
</jsl:template>
<jsl:template match="description">
<jsl:applyTemplates trim="false"/>
</jsl:template>
<!-- remove the space at the end of parsed "a" anchors and fix local hrefs -->
<jsl:template match="a" trim="true">
<x:element name="a" trim="true">
<x:forEach var="attr" select="@*">
@@ -525,13 +339,200 @@
</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>
<!-- Process the breadcrumb navbar -->
<jsl:template match="links" trim="true">
<j:set var="linkCount" value="1"/>
<x:forEach var="link" select="item">
<j:set var="_img"><x:expr select="@img"/></j:set>
<j:set var="_name"><x:expr select="@name"/></j:set>
<j:set var="_link"><x:expr select="@href"/></j:set>
<j:set var="_target"><x:expr select="@target"/></j:set>
<j:whitespace trim="false">
<j:if test="${linkCount != 1}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
</j:if>
<doc:itemLink name="${_name}" link="${_link}" img="${_img}" target="${_target}"/>
</j:whitespace>
<j:set var="linkCount" value="${1+linkCount}"/>
</x:forEach>
</jsl:template>
<!-- Process a menu for the navigation bar -->
<jsl:template match="menu" trim="true">
<j:set var="_menuName"><x:expr select="@name"/></j:set>
<j:set var="_menuName"><doc:escapeNameToken value="${_menuName}"/></j:set>
<j:choose>
<j:when test="${!empty(_menuName)}">
<div id="menu${_menuName}">
<h5><x:expr select="@name"/></h5>
<ul><jsl:applyTemplates select="item"/></ul>
</div>
</j:when>
<j:otherwise>
<div>
<ul><jsl:applyTemplates select="item"/></ul>
</div>
</j:otherwise>
</j:choose>
</jsl:template>
<jsl:template match="menu/item" trim="true">
<x:set var="item" select="."/>
<x:set var="_name" select="string(@name)"/>
<x:set var="_link" select="string(@href)"/>
<x:set var="_img" select="string(@img)"/>
<x:set var="_target" select="string(@target)"/>
<x:set var="_childCount" select="count(./item)"/>
<j:set var="_isCollapsed" value="${navbean.isCollapsed(item.get(0))}"/>
<j:set var="_state" value="none"/>
<j:if test="${_childCount.intValue() gt 0}">
<j:if test="${!_isCollapsed}"><j:set var="_state" value="expanded"/></j:if>
<j:if test="${_isCollapsed}"><j:set var="_state" value="collapsed"/></j:if>
</j:if>
<li class="${_state}">
<j:if test="${navbean.isSelected(item.get(0))}">
<strong><doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}" target="${_target}"/></strong>
</j:if>
<j:if test="${!navbean.isSelected(item.get(0))}">
<doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}" target="${_target}"/>
</j:if>
<j:if test="${_state == 'expanded'}">
<ul>
<jsl:applyTemplates select="item"/>
</ul>
</j:if>
</li>
</jsl:template>
<!-- Google site search -->
<jsl:template match="search" trim="true">
<!-- Search code: http://www.google.com/searchcode.html -->
<!-- Google logos: http://www.google.com/stickers.html -->
<!-- Terms: http://www.google.com./services/terms_free.html -->
<div id="search">
<h5>Search ${pom.name}</h5>
<form method="get" action="http://www.google.com/search">
<a class="navlink" href="http://www.google.com">
<img src="http://www.google.com/logos/Logo_25wht.gif" width="75" height="32" alt="Google" />
</a>
<j:set var="siteURL" value="${pom.url}"/>
<!-- google fails on urls that end with / -->
<j:if test="${siteURL.endsWith('/')}">
<j:set var="URLLength" value="${siteURL.length() - 1}"/>
<j:set var="siteURL" value="${siteURL.substring(0, URLLength.intValue())}"/>
</j:if>
<input type="text" id="q" size="15" name="q" maxlength="255" value=""/>
<input type="submit" id="btnG" value="Go" name="btnG"/>
<input type="hidden" name="domains" value="${siteURL}"/>
<input type="hidden" id="search" name="sitesearch" value="${siteURL}"/>
</form>
</div>
</jsl:template>
<!-- preserve whitespace in the following elements -->
<jsl:template match="pre | script | style" trim="true">
<x:set var="nodename" select="name()"/>
<x:element name="${nodename}">
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<j:whitespace trim="false"><jsl:applyTemplates /></j:whitespace>
</x:element>
</jsl:template>
<!-- xhtml fixup: add missing alt attribute for images -->
<jsl:template match="img" trim="true">
<x:element name="img">
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<x:set var="noalt" select="count(./@alt) = 0" />
<j:if test="${noalt}" >
<x:attribute name="alt"></x:attribute>
</j:if>
</x:element>
</jsl:template>
<jsl:template match="footer" trim="true">
<div class="xleft">
<jsl:applyTemplates />
</div>
</jsl:template>
<jsl:template match="table" trim="true">
<j:set var="rowcount" value="0"/>
<table class="bodyTable">
<jsl:applyTemplates />
</table>
</jsl:template>
<jsl:template match="tr" trim="true">
<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"><j:whitespace trim="true">
<x:attribute name="class">${rowMode}</x:attribute>
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<jsl:applyTemplates />
</j:whitespace></x:element>
</jsl:template>
<!-- goals documentation -->
<jsl:template match="goals" trim="true">
<!-- reset row alternation -->
<j:set var="rowMode" value="" />
<div class="h3">
<a name="Goals"/><h3>Goals</h3>
<table class="bodyTable">
<thead>
<tr><th>Goal</th><th>Description</th></tr>
</thead>
<tbody>
<jsl:applyTemplates select="goal"/>
</tbody>
</table>
</div>
</jsl:template>
<!-- a goal -->
<jsl:template match="goal" trim="true">
<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"><j:whitespace trim="true">
<x:attribute name="class">${rowMode}</x:attribute>
<j:set var="_goalName"><x:expr select="./name" /></j:set>
<td style="width:20%"><a name="${_goalName}"/>${_goalName}</td>
<td ><jsl:applyTemplates select="description" /></td>
</j:whitespace></x:element>
</jsl:template>
<jsl:template match="description">
<jsl:applyTemplates trim="false"/>
</jsl:template>
<!-- element values don't pass through as text -->
<jsl:template match="@*"/>
<!-- CDATA and text nodes pass-thru -->
<jsl:template match="text()"><x:expr select="."/></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:stylesheet>