Mailing List Archive

Problems with site.xml, tabs.xml and so forth
I'm using Forrest 0.5.1 on windows xp, jdk 1.4

I'm trying to move my documentation base over from Maven to Forrest (this is for HiveMind).

My layout is simple and standard: src/documentation/content/xdocs contains the project level stuff,
including site.xml and tabs.xml

There's a hivemind subdirectory that contains data specific to the hivemind module. Eventually there
will be sibling directories for hivemind, for the other related modules under the project.

So:

src/documentation/content/xdocs/
- site.xml
- tabs.xml
- index.xml
- links.ent ( contains XML entities for links to common API docs, etc.)
- hivemind/
- index.xml
- LoggingInterceptor.xml

The documentation seems to be generating OK, except for the menus. The generated site displays two
tabs on the menu, but neither is "selected". The menu items below are for the project.
I.e., my root index.html contains:

<TR><TD vAlign=top width=5 bgColor=#b2c4e0><IMG height=5 alt="" src="skin/images/tab-left.gif"
width=5></TD>
<TD vAlign=center bgColor=#b2c4e0><A class=base-not-selected href="index.html">HiveMind
Project</A></TD>
<TD vAlign=top width=5 bgColor=#b2c4e0><IMG height=5 alt="" src="skin/images/tab-right.gif"
width=5></TD></TR>

The <A> should use a class of base-selected.

Here's my site.xml:

<?xml version="1.0"?>
<!DOCTYPE site>

<!-- site label="HiveMind Project Manual" href="" xmlns="http://apache.org/forrest/linkmap/1.0"
tab="" -->

<site href="" xmlns="http://apache.org/forrest/linkmap/1.0" tab="project">

<project label="HiveMind Project">
<bootstrap label="Bootstrapping the Registry" href="bootstrap.html"/>
<case1 label="Case Study #1: Panorama Startup" href="case1.html"/>
</project>

<hivemind tab="hivemind" href="hivemind" label="Module: hivemind">
<services label="Services">

<LoggingInterceptor href="LoggingInterceptor.html"/>

</services>
</hivemind>




<related label="Related Projects">
<item label="Tapestry" href="http://jakarta.apache.org/tapestry/"/>
</related>

</site>

Here's my tabs.xml:


<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2004 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.
-->
<!-- $Id: tabs.xml,v 1.2 2004/04/04 19:57:13 hlship Exp $ -->
<!DOCTYPE tabs PUBLIC "-//APACHE//DTD Cocoon Documentation Tab V1.0//EN"
"http://apache.org/forrest/dtd/tab-cocoon-v10.dtd">

<tabs software="HiveMind"
title="HiveMind Project"
copyright="Apache Software Foundation"
xmlns:xlink="http://www.w3.org/1999/xlink">

<!-- The rules are:
@dir will always have '/@indexfile' added.
@indexfile gets appended to @dir if the tab is selected. Defaults to 'index.html'
@href is not modified unless it is root-relative and obviously specifies a
directory (ends in '/'), in which case /index.html will be added

HLS NOTE: I don't think the following line is accurate!

If @id's are present, site.xml entries with a matching @tab will be in that tab.
-->

<tab id="project" label="HiveMind Project" dir=""/>

<tab id="hivemind" label="Module: hivemind" dir="hivemind"/>

</tabs>




I've been fiddling, checking, comparing against examples, and so forth. I can't, for the life of me,
determine why it's not working in my environment.

For good measure, here's the output from building my site. The only oddity in my environment is
that I copy the content out of src/documentation and into target/forrest-composite before building.
This will (eventually) combine static xdocs from several modules with dynamically generated xdocs
from some reports.


C:\workspace\jakarta-hivemind>ant -emacs site
Buildfile: build.xml

-setup-forrest-composite:
Created dir: C:\workspace\jakarta-hivemind\target\forrest-composite
Created dir: C:\workspace\jakarta-hivemind\target\forrest-composite\content\xdocs

site:

forrest.site:

-display-download-warning:

-unpack-zip-dependency:

marshall-documentation:

forrest.marshall-documentation:

copy-documentation-to-composite:
Copying 14 files to C:\workspace\jakarta-hivemind\target\forrest-composite

run-reports:

marshall-documentation:

copy-documentation-to-composite:

run-reports:

marshall-documentation:

copy-documentation-to-composite:

run-reports:


*** Invoking Forrest ...



site:

forrest:
Buildfile: C:\workspace\jakarta-hivemind\ext-package\apache-forrest-0.5.1-bin\forrest.build.xml

init-props:
Loading project specific properties from C:\workspace\jakarta-hivemind\forrest.properties

echo-settings:

------------------------------------------------
| Forrest template run.
| Running from ${forrest.home} =
C:\workspace\jakarta-hivemind\ext-package\apache-forrest-0.5.1-bin
| Working on ${project.home} = C:\workspace\jakarta-hivemind
------------------------------------------------
| //where to put the result
| project.site-dir = C:\workspace\jakarta-hivemind/target/docs
| //uri to start crawling/generation process
| project.start-uri = index.html
| //cocoon.xconf location
| project.configfile = C:\workspace\jakarta-hivemind\target\forrest\context/WEB-INF/cli.xconf
| //logkit.xconf location
| project.logkitfile =
C:\workspace\jakarta-hivemind\target\forrest\context/WEB-INF/logkit.xconf
| //temp dir to throw stuff in (i.e. work and ctxt)
| project.temp-dir = target/forrest
| //temp working directory for generation process
| project.work-dir = C:\workspace\jakarta-hivemind\target\forrest\work
| //temp context directory for generation process
| project.ctxt-dir = C:\workspace\jakarta-hivemind\target\forrest\context
| //debuglevel for logging (DEBUG, INFO, WARN, ERROR, FATAL_ERROR)
| project.debuglevel = DEBUG
| //file for list of broken links
| project.brokenlinkfile = C:\workspace\jakarta-hivemind\target\forrest\brokenlinks.xml
| //check if you have tools.jar installed
| tools.jar.present = true
------------------------------------------------
| The following properties could be removed from future builds:
| //which skin to apply
| project.skin = forrest-site
| //where your documentation xml is
| project.content-dir = target/forrest-composite
------------------------------------------------


examine-proj:

validation-props:

validate-skinconf:

load-project-props:

load-forrest-props:

init-skinprops:
Created dir: C:\workspace\jakarta-hivemind\target\forrest
Reading filters from C:\workspace\jakarta-hivemind\target\forrest\skinfilters.properties

init:

bare-context:
____________________________________
Using skin forrest-site
____________________________________
Copying 195 files to C:\workspace\jakarta-hivemind\target\forrest\context
Copying 33 files to C:\workspace\jakarta-hivemind\target\forrest\context
Replacing: @skinconfig.year@ -> 2004
Replacing: @skinconfig.trail.link1.name@ -> Apache
Replacing: @skinconfig.trail.link1.name@ -> Apache
Replacing: @skinconfig.trail.link1.href@ -> http://www.apache.org/
Replacing: @skinconfig.trail.link2.name@ -> Jakarta
Replacing: @skinconfig.trail.link2.name@ -> Jakarta
Replacing: @skinconfig.trail.link2.href@ -> http://jakarta.apache.org/
Replacing: @skinconfig.trail.link3.name@ -> HiveMind
Replacing: @skinconfig.trail.link3.name@ -> HiveMind
Replacing: @skinconfig.trail.link3.href@ -> http://jakarta.apache.org/hivemind/
Created dir: C:\workspace\jakarta-hivemind\target\forrest\context\WEB-INF
Copying 3 files to C:\workspace\jakarta-hivemind\target\forrest\context\WEB-INF
Replacing: @skin@ -> forrest-site
Replacing: @menu-scheme@ -> tab_attributes
Replacing: @bugtracking-url@ -> http://nagoya.apache.org/bugzilla/show_bug.cgi?id=
Replacing: @local-catalog@ ->
C:\workspace\jakarta-hivemind\target\forrest-composite\resources\schema\catalog.xcat
Replacing: @catalog-verbosity@ -> 1
Created dir: C:\workspace\jakarta-hivemind\target\forrest\context\WEB-INF\lib
Created dir: C:\workspace\jakarta-hivemind\target\forrest\context\WEB-INF\classes

check-contentdir:

ensure-content:

validate-xdocs:
7 file(s) have been successfully validated.
...validated xdocs

validate-sitemap:
...validated sitemap

validate-skins-stylesheets:

validate-skins:

validate-skinchoice:
...validated existence of skin 'forrest-site'

validate-stylesheets:

validate:

copy-sitemap:

copy-conf:

copy-xdocs:
Copying 10 files to C:\workspace\jakarta-hivemind\target\forrest\context\content\xdocs

copy-stylesheets:

copy-images:
Copying 4 files to C:\workspace\jakarta-hivemind\target\forrest\context\resources\images

copy-grammars:

copy-resources:

copy-content:

copy-lib:

copy-classes:

copy-skins:

copy-skinconf:
Copying 1 file to C:\workspace\jakarta-hivemind\target\forrest\context

copy-status:

project-context:

prepare-context:

-prepare-classpath:

-site:
Created dir: C:\workspace\jakarta-hivemind\target\forrest\work
Copied 2 empty directories to C:\workspace\jakarta-hivemind\target\docs
Created dir: C:\workspace\jakarta-hivemind\target\docs\skin\images
Copying 22 files to C:\workspace\jakarta-hivemind\target\docs\skin\images
Copying 3 files to C:\workspace\jakarta-hivemind\target\docs\skin
Copied 2 empty directories to C:\workspace\jakarta-hivemind\target\docs\skin
------------------------------------------------------------------------
cocoon 2.1.2
Copyright (c) 1999-2003 Apache Software Foundation. All rights reserved.
------------------------------------------------------------------------


* [0] 0.551s 766b favicon.ico
* [20] 2.364s 10.1Kb index.html
* [0] 0.09s 54b skin/images/label.gif
* [0] 0.04s 8.4Kb skin/breadcrumbs.js
* [0] 0.02s 70b skin/images/tab-right.gif
* [0] 0.02s 55b skin/images/chapter.gif
* [0] 0.0s 43b skin/images/spacer.gif
* [0] 0.0s 52b skin/images/page.gif
* [0] 0.02s 8.3Kb images/jakarta-logo.gif
* [0] 0.01s 55b skin/images/chapter_open.gif
^ hivemind/apidocs/org/apache/hivemind/impl/RegistryBuilder.html
^ hivemind/apidocs/org/apache/hivemind/ClassResolver.html
^ hivemind/apidocs/org/apache/hivemind/Registry.html
^ hivemind/apidocs/org/apache/hivemind/impl/RegistryBuilder.html
* [26] 0.671s 17.3Kb bootstrap.html
* [0] 0.01s 70b skin/images/tabSel-right.gif
* [0] 0.01s 70b skin/images/tabSel-left.gif
* [0] 0.01s 70b skin/images/tab-left.gif
* [0] 0.01s 176b skin/images/menu-right.gif
* [0] 0.01s 1.8Kb images/built-with-forrest-button.png
* [0] 0.01s 766b /favicon.ico
* [0] 0.0s 8.0Kb images/HiveMind-Logo.png
* [0] 0.01s 176b skin/images/menu-left.gif
* [19] 0.471s 19.4Kb sdl.html
* [0] 0.04s 2.8Kb skin/page.css
^ hivemind/apidocs/org/apache/hivemind/Orderable.html
^ hivemind/apidocs/org/apache/hivemind/Locatable.html
* [22] 0.621s 33.7Kb case1.html
* [0] 0.01s 60b skin/images/current.gif
* [20] 0.23s 10.2Kb hivemind/index.html
* [0] 0.0s 7.9Kb images/AdderExample-ProjectLayout.png
Total time: 0 minutes 7 seconds

------------------------------
Static site generated at:
C:\workspace\jakarta-hivemind/target/docs

Please check the file
C:\workspace\jakarta-hivemind\target\forrest\brokenlinks.xml
for any broken links in the generated site.
------------------------------


site:

BUILD SUCCESSFUL
Total time: 12 seconds



BUILD SUCCESSFUL
Total time: 15 seconds


You can see that it never generates LoggingInterceptor.html, since (although its in the menu) it is
not quite referenced.

Also note that some of the docs has the correct menu, such as bootstrap.html and cas1.html.



--
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind
http://howardlewisship.com
Re: Problems with site.xml, tabs.xml and so forth [ In reply to ]
I'm not sure but maybe you should explicitly specify where this root
index file belongs to. So, your site.xml should look like:

> <site href="" xmlns="http://apache.org/forrest/linkmap/1.0" tab="project">

> <project label="HiveMind Project">

<index href="index.html"/>

> <bootstrap label="Bootstrapping the Registry" href="bootstrap.html"/>
> <case1 label="Case Study #1: Panorama Startup" href="case1.html"/>
> </project>

[...]



Best regards
Lechique