See each plugin for its detailed changes.

Apache Forrest is pleased to release the new version: apache-forrest-0.9

It can be downloaded from one of the Apache Software Foundation mirror sites.

Apache Forrest™ software is a publishing framework that transforms input from various sources into a unified presentation in one or more output formats. The modular and extensible plug-in architecture of Apache Forrest is based on Apache Cocoon and the relevant industry standards that separate presentation from content. Forrest can generate static documents, or be used as a dynamic server, or be deployed by its automated facility.

Requirements

A Java Runtime Environment (1.5 or higher) installed.

To build from source requires a Java Development Kit (1.5 or higher)

Apache Ant is not required: Forrest uses its own packaged version of Ant in tools/ant/

Apache Cocoon is not required: Forrest uses its own packaged version.

Installing Apache Forrest

The distribution contains all Forrest resources (skins, XSLTs, images, schemas), source code, and Forrest's own website documentation.

Copy somewhere permanent, like /usr/local/forrest or c:\forrest (Support for installation on Windows systems into directories containing spaces is very new, please report back on your success or failure.)

Set FORREST_HOME environment variable to point to that top-level directory.

Add to the system PATH environment variable, i.e. $FORREST_HOME/bin (Unix) or %FORREST_HOME%\bin (Windows)

Getting Started

See the file index.html for the quick start tips.

Issue tracking

If you notice what appears to be a bug or wish to make a contribution, please report it via the Forrest issue tracker.

Feedback

Feedback, feature suggestions, contributions, bugs, and any other issues can be discussed on our mailing lists.

Added document to facilitate upgrading to v0.9 Suppress extra generated id when converting xdoc sections to html. See upgrading notes. Added an FAQ to explain "svn:eol-style" and un-necessary svn diffs. See also How to deploy documentation with the Forrestbot "svn" workstage. Added standalone 'validate-status' build target to validate the project status changes file. ForrestBar: Enabled access to some more intermediate processing data via the "Dev" menu. Improved the FAQ about "version and properties" and linked to the documentation of the new Properties system. Fix hard-coded path in ForrestLogTargetFactory and ForrestConfUtils which caused files to be placed in the wrong directory when using ForrestBot. ForrestBar added search options for Gossamer Threads archives and MarkMail archives. ForrestBar updated to clarify some menus and items, add some tooltips, and fix some broken links. Improve startup performance by dealing with only the specified property rather than iterating through all of them. Fix syntax errors for import of additional style sheets for "tigris" skin. Improve ASF Branding and trademark statements for Forrest websites. Add initial "Markdown" output plugin to Whiteboard. Added an FAQ to try to explain that Forrest does not require Java 6. Improved the Sitemap Reference document. Updated Ehcache to 2.2.0 version. Update commons-io, commons-jxpath, commons-collections, commons-lang, and commons-cli to latest versions. For packaged supporting products, we now refer to all licenses from our top-level LICENSE.txt file. Added new search facility to ForrestBar to enable search for a mail Message-Id (only at Gmane.org). Use plain svn commands rather than JSVN for forrestbot and plugins deployment. Switch to a new XML module providing better memory behavior. Fix property "project.issues-rss-url" to use https for our JIRA. Update Rhino to better licensed version rhino-1.6R5 Forrest minimum Java version is now Java 1.5 required starting with Forrest-0.9-dev For Howto docs, make use of generateId.xsl to resolve warnings in generated PDF. Improved SVG template for generating "project name" image. Make it wider and add small space at right-hand end. Changed XSLT import statements in skins to use the LocationMap. Replaced the custom caching implementation with EHCache in the LocationMap feature. Given how integral the LM has become, this gives us much better overall performance, concurrent behavior, and cache configuration options. Added a default cache config file to main/webapp/WEB-INF/ehcache.xml Added initial output plugin "iCal" to the whiteboard. Enabled use of EXSLT extensions via exslt.org stylesheets. See example "EXSLT" in the 'forrest seed-sample' site. Enabled the filtering of output messages from Ant (see FAQ) and explained how to enable coloured output (see FAQ). Assist with xml debugging. Show list of catalog descriptors being used. Improve i18n FAQ. Enable our ASF mirrors system to present an xml listing of the client's closest mirrors. Added a demonstration of using xml source documents without declaring a DTD. See example "no-dtd" in the 'forrest seed-sample' site. Added the ability to use RELAXNG to validate intermediate xml. Do 'localhost:8888/index.validation.xml' for example to validate the "index" page. Also see how to validate intermediate content for the whole site. Added the ability for a "trademark statement" at bottom of all pages. For configuration details, see skinconf.xml from a new "seed" site. The "class" attributes in the document-v13 and document-v20 DTDs now enable multiple space-separated class definitions. Enable "class" attribute to be used for "body" element. Some improvements for the "whole-site" PDF ability. Improvements to documentation for i18n and example. See the "seed-sample" site. Improvements to documentation for Locationmap. There was a problem with plugins libs not being copied. Using the war task from ant fixes this issue. Enabled the output html serializer to be configurable to either xhtml or html. Improved FAQ about reporting security issues and link to "ASF Security Team" new web site. Remove extraneous quote in document-to-fo.xsl Forrestbot deploy.scp workstage now reports which files were transferred. The preparation of the set of xmlcatalogs is better done in our "validation-props" ant target. A better way to report the set of xmlcatalog files being used. Updated to Jing release (from http://code.google.com/p/jing-trang/). As well as providing us with a reliable RELAX NG tool, this upgrade fixes an issue on some Java 6 with missing datatype library. Updated to Apache-Ant-1.7.1 release. Also jsch-0.1.28 to jsch-0.1.39 release. Added a 'forrest diagnostics' target which reports our Ant's diagnostics. Added new documents: How to deploy documentation with the Forrestbot "svn" workstage which explains how the Apache Forrest project manages their project documentation, and How to deploy documentation with the Forrestbot "scp" workstage which explains how to manage a personal or company website using Secure Shell SCP to deploy the generated documents. Our packaged version of Apache Cocoon has been upgraded to use the latest version of their stable 2.1 branch. This is a major step forward for Forrest. It enables us to use a reliable and up-to-date Cocoon. Forrest developers can again participate at Cocoon to fix issues or develop new blocks. A number of major performance issues are already fixed in this version. Also upgraded various other important supporting products such as Apache Xerces and Apache Xalan, etc. See upgrading notes. Promoting the output.inputModule plugin to core. Main reason for the move is to prevent plugins dependencies since the code has attracted different use cases solved in plugins to move it into core. Upgraded Apache FOP to version 0.95 Added example of using XInclude to the 'forrest seed-sample' site. Added ability to use XInclude to the document-v20 xdoc DTD. See an example in a 'forrest seed-sample' site. Enable configuration of some Cocoon sitemap components, e.g. output html encoding and document type declaration for html and xhtml serializers, JTidy properties file location for html generator. See FAQ There was a partially implemented xml catalog with missing project symbols file. Only affected users of the 'seed-basic' template site. See notes in upgrading to v0.9 Added initial whiteboard input plugin "baetle". Handle Baetle, the RDF vocabulary to describe the content of bug databases. Images had not been reliably reproduced in PDFs (fop version prior to 0.94). The old way always expected a physical URI (file or http) the new fop URIResolver in the FOP-NG block delegates to Cocoon's SourceResolver framework, meaning images can be the result of a pipeline. Fixed docs in several places to work with fop94 upgrade. Moved fo- and pdf-generation completely into pdf-plugin as part of the upgrade to fop 0.94. See plugin docs for addition details. Added demonstration of more xdoc elements to the sample document-v20 The "wholesite" html/pdf ability was broken with the locationmap. Fixed the "forrest" command to cope with recent Cygwin changes with expanding pathnames. Re-configured Forrest Zone to use SMF. Fix unkown font error in FO generation. The "faq" documents were missing generated Table-of-Contents. Fixed bug regarding logging and Servlet Container when using Forrest as a WAR archive. In web.xml use context parameters instead of init-param. Added documentation about using the "Debian update-alternatives system". Added input plugin "uk.ac.osswatch.forrest.input.sourceforge". Extracts data from sourceforge.net Added input plugin "uk.ac.osswatch.forrest.input.ohloh". Extracts data from OhLoh.net using their API. Added input plugin "uk.ac.osswatch.forrest.input.features". Allow project features to be recorded and rendered as part of a content object. This plugin is particularly useful when used in conjunction with the DOAP plugin. Added initial whiteboard input plugin "doac". Handle Description-Of-A-Career (DOAC) data in forrest content objects. Utilise the source document/header/link if available. Suggested by Oshani Seneviratne and various previous people. In SourceTypeAction, RDF files need to check the namespace of more than just the root element. Added method to make URLs absolute in PDF via skinconf.xml. Added method to disable table of contents in PDF via skinconf.xml. Enhance the "HowTo Generate an ASF mirrors page" doc to better explain. Refer to Forrest site-author as an example. This doc explains many things which are useful beyond the "ASF mirrors" example. It shows how to add a specialised HTML form to a forrest-based site, howto to include and exclude non-linked extra documents to the processing using the Cocoon CLI. Refer to ForrestBar from How to do development with Apache Forrest as a way to easily view the internal processing steps. ForrestBar: Re-instated access to some intermediate processing data via the "Dev" menu (**/*.xml and **/*.fo) Add explanation of ForrestBar menu items. Added output plugin "uk.ac.osswatch.forrest.themes". A theme used by the Simal project. Added initial whiteboard input plugin "skos". Handles input documents as Simple Knowledge Organisation Systems (SKOS), a set of specifications to support the representation of thesauri, classification schemes, taxonomies, etc. Added initial whiteboard input plugin "foaf". Handles input documents in Friend of a Friend (FOAF) format. Added initial whiteboard input and output plugins "tei". These handle TEI-Lite Text Encoding Initiative (TEI). Enable PHP by default. See the FAQ. Thanks to Cyriaque Dupoirieux for the suggestion. Fix some menu items, links and version labels. Add more entries to glossary to explain some Apache Cocoon terminology and link to relevant docs. Also add some more Forrest terminology. Added FAQ for "Windows gets confused about which Java version to use". Thanks to Ron Blaschke and Ross Gardler. Explicitly set the javac target@ to our defined base version. This fixed an issue with plugins being deployed by committers using more recent versions.
Added document to facilitate upgrading to v0.8 New section to explain Locationmap processing and the magic of the naming convention. New document to explain Cocoon sitemaps using a specific worked example. Enhanced the Message of the Day (MOTD) facility to enable specific matches. See skinconf.xml from a "seed" site for configuration details. The @starts-with=true anchors the URI string to the start, otherwise contains. To use it, declare skinconfig-v08-1.dtd in your skinconf.xml file. Added notes to explain the main documentation, as well as documentation and examples in each plugins and documentation and examples in the 'forrest seed-sample' site. Added notes about configuring a system-wide XML Catalog Entity Resolver to share local DTDs between multiple projects. Added notes about debugging the XML Catalog Entity Resolver for local DTDs. Enabled ForrestBar preferences to specify the port number if 'forrest run' is different from the default 8888. Handling of document/header/version elements is now re-enabled. Improved the autogenerated site linkmap.html page. Do not show empty links for group labels. Use a better title and introduction. Use @description if available. Update docs to reflect locationmap naming conventions. Thanks to Gunther Sablon for reporting this issue. Plugins were not being deployed to a Webapp WAR file correctly. Hard coded URLs of versions causing maintenance issues in the generated Plugins Index. Use a parameter instead to construct the URL per version. Add a HowTo sample document to the fresh-site samples. Fixes problem if contexts were not utilized in status.xml, an incorrect changes document would be generated. Rename webapp build target to run-webapp to distinguish the resulting webapp from one suitable for deployment (use the war target for that) and provide a new xconf that is used in the war to ensure plugins can be found in war files Add initial DOAP plugin to Whiteboard. Add initial Solr plugin to Whiteboard. With comments & thanks also to Paul Kronenwetter, fixes a bug where duplicate apply-templates was causing duplicate content with span classes. Fix caching problem that made a restart neccessary after making a locationmap resource location change. After doing 'forrest clean' then Forrest could not be run without network access, due to not being able to retrieve plugin descriptor files. Readding the loading from (default-)forrest.properties which got removed in r430588 when closing FOR-916. When using html as source, the "a" elements were not rendered properly if both @href and @name attributes. A side-effect of this fix is that now all other attributes such as @title or @target are copied over. Also removed the automated generation of @id attributes from @name attributes, which can lead to invalid IDs and other confusion. Explain how to update the different module calls in custom code. Merging the defaults and project modules to the new properties module. You can use it like {properties:forrest.home}, please refer to the update documentation how to change your {defaults:*} {project:*} and {forrest:*}. Make forrest.properties.xml (as aggregation of all properties) available via cocoon:// protocol. The last remaining issue was implementing the Iterator getAttributeNames in the ForrestConfModule. To see all available properties add org.apache.forrest.plugin.output.inputModule and request cocoon://module.properties.properties. Adding site-wide configuration files. Updated the cocoon.xconf and declared the core components that are needed for flow. This makes it possible to use flow in forrest. Enabled i18n by default in fresh-site: as the default i18n config now requires an explicit locale specification (using an URL parameter for example), this shouldn't affect people who do not use i18n. Completed the de and fr translations of the fresh-site, added fr and de versions of the index page as examples of language switching. Moved LocaleAction and LocaleMatcher configurations to main sitemap, and changed I18nTransformer use to take locale info from enclosing LocaleAction everywhere. Added FAQ to explain the Cocoon Cache and some ways to enhance responsiveness. Inspired by comments from Torsten Stolpmann. Enhance the explanation of integrating DocBook sources to also explain how to use Content Aware Pipelines (SourceTypeAction). Enhance the FAQ about efficiently generating single documents. Use 'wget' or Ant to retrieve individual files. Review and enhance the Release doc. Added doc to explain Skins and Dispatcher status. Updated to Apache-Ant-1.6.5 release, jsch-0.1.28, apache-jakarta-commons-net-1.4.1 Use locationmap to resolve i18n catalogues. Move documentation from text file into howto Release doc and enhance it. Re-arrange documentation menus, added best practice and procedures sections. Updated xerces to 2.8.0, xml-apis to 1.3.03, log4j to 1.2.13 and ehcache to 1.2. Add document about project tasks. Howto-v20 now properly handles a/@class=fork etc. attribute to enable links to open in a new browser window. Fixed inconsistent line-endings in comments of generated html. Add initial glossary to explain some Forrest terminology. Added initial whiteboard input plugin "citations". Thanks to Gavin for turning the contribution into a plugin. Use input docs that are lists of citations. Added initial whiteboard input plugin "glossary". Thanks to Gavin for turning the contribution into a plugin. Enable glossary input: a list of technical terms and definitions. Added initial whiteboard input plugin "odt". Use OpenDocument ODT as input. Add note about using entity catalogs for DTDs etc. for plugins. Improved the explanation of using plugins: how they are declared, what version of a plugin is used, what locations are searched for plugins sources. Enhance the FAQ about efficiently generating single documents. Add FAQ about using older versions of specific plugins. Add new build target "clean-build". Add support to the tigris skin for header/meta tags in xdoc input documents. Able to declare additional sources for plugins. Assists with development of private and local project-specific plugins. Add demo page to seed site for "Using Scalable Vector Graphics (SVG)". Link from whiteboard/forrestdoc/README.txt to some past mail discussion to encourage its development. Forrestdoc is a Javadoc-like/Sourcecode/Documentation management system. Forrestbot deploy.scp workstage now uses keyfile/passphrase in preference, then fallback to remote password. New page for thanks. Add FAQ about job postings. Retrieve i18n catalogue from whatever skins directory is in use. Add explanation of processing to the pathutils stylesheet. Enable optional printing of image alt text in PDFs. Added initial whiteboard input plugin "serverStatus". Uses the StatusGenerator to show Cocoon's operating environment and shows the contents of the cache stores. Update the Forrest plugin for the XMLmind XML Editor at tools/xxe Upgrade our packaged Cocoon to cocoon-2.2.0-dev-r351990 and enhanced the notes about how to upgrade. New skinconf parameter "disable-copyright-footer" (default=false) to not show the copyright notice in html page footer. Add FAQ about Enabling Cocoon Checksum. Added initial whiteboard internal plugin "DevTools". Intended for various development-related tasks, e.g. publish a page to the local build directory from within 'forrest run'. Added initial whiteboard output plugin "Anakia". Output as the Anakia "xdoc" format. Add explanation of Using Cocoon sitemap execution logger. Ensure that content exists before forrest starts. Add a new xslt template "add.class" to properly append extra class attributes to note|warning|fixme|code elements to enable extra CSS classification. Diff Review and synchronise our Cocoon configuration. Added initial whiteboard output plugin "php" to integrate php calls. Add FAQ #crawler to explain how the Cocoon crawler gathers links. Add notes about how to use the Issue Tracker. Added lenya.zone site to the dispatcher section in the live sites. New skinconf parameter "disable-copyright-footer" (default=false) to not show the copyright notice in html page footer. Update the notes on patch submission. Techniques suggested by Richard Calmbach and Ross Gardler. Added ForrestConfModule as the beginning of a new configuration system. A "half way" solution to using plugins in place. Note that if you modify your plugin code you will still need to do "ant local-deploy" to see the changes. This patch only ensures that the plugin is installed on the first run. Improved forrestbot docs. Enhance the FAQ #single-document about "project.start-uri" to control which files to process. Explain how developers can add sites to Example sites. Remove xconf support for plugins. Cocoon has moved away from this XConfToolTask xpatch technique. Diff Various documentation updates. Reduce some log messages duplication. Tidy up the log configuration file. Add a commented example of adding contextual info to other logs. Improve symlink resolution and fix incorrect argument passing in the bin/forrest shell script. Add new site seeding targets and a new business seed target. This allows for interactive creation of seed sites - existing 'forrest seed' behaviour is unchanged which is equivalent to 'forrest seed-sample'. New ones are 'forrest seed-business' and 'forrest seed-basic'. Enable use of common character entities in skinconf.xml, e.g. accented characters and trademark symbols. Enhance etc/RELEASE_NOTES.txt Changed handling of table elements with class-attributes in source: Table elements w/o class elements will receive standard Forrest styling like before (cellpadding="4" cellspacing="1" class="ForrestTable") while elements that have class will pass unchanged. Note: To style tables with class elements like before you have to add styling code in the extra-css-section of skinconfig. Fixed problems with disappearing of id-attributes in img-element and several others. Add section about using new/experimental features (e.g. Locationmap, Dispatcher) together with plugins. See Howto Build Plugins doc. Add section about managing the plugins descriptors to Howto Build Plugins doc. Added new "clean" targets. Doing 'forrest clean-site' will remove the contents of the project's generated documents directory. Doing 'forrest clean-work' will remove the project's work directories (usually build/tmp and build/webapp which include the Cocoon cache and the Cocoon logs). Doing 'forrest clean' will remove both sections. Added LocationmapSourceFactory.java. With this it is possible to request locationmap source via lm://my-location which makes it easier to use it without contacting a input module in java and any other files. Diff Added variable.helper.xsl to the core, should be enhanced by matching the default.forrest.properties.xml. This xsl will produce all variables we use in skins to the new property system. Moved pathutils.xsl to the core from the skins. Diff Added initial whiteboard internal plugin "NoteTaking". Adds a form to a page that can be used to enter notes relating to the page. Added helper stylesheets to locationmap and core stylesheets. generateId.xsl (will generate a unique id) and replaceCharsInString.xsl (will find and replace character in a string) Diff Clarify some confusing notes about site/@href in seeds xdocs/site.xml files. Finish renaming of files for a-to-b.xsl naming convention. Add a Devs menu to ForrestBar to help with testing intermediate Cocoon pipelines. Fixed and enhanced the Forrest plugin for the XMLmind XML Editor at tools/xxe Updated ForrestBar to be compatible with recent versions of Firefox. Describe the status messages that are issued by Cocoon CLI during processing of each doc. The broken-links file is now copied into to the site root as "broken-links.xml" so that when building with Forrestbot you can easily view it. Correctly handle w3c-xml-schema rules in SourceTypeAction. Reviewed all sitemaps to use locationmap references (lm:). At the same time we changed filenames of core stylesheets to follow a filename convention (e.g. html2document.xsl => html-to-document.xsl) which enables automated locationmap matches. Thanks to the many people who were involved with addressing this issue. See the commit logs associated with FOR-200. Prototype of new xml-based properties system. Projects and plugins can use a forrest.properties.xml file. At this stage, it supplements the existing forrest.properties file. See the projectInfo plugin for an example of its use. Add notes about naming convention for locationmap references. Gathered from a ForrestFriday IRC session (thanks to Tim Williams for writing them up). See locationmap docs. Added initial whiteboard input plugin "XDoc". Forrest xdoc input to internal XHTML2. Added initial whiteboard internal plugin "xhtml2". Started work on xhtml in the core. Upgrade our packaged Cocoon to cocoon-2.2.0-dev-r279987 and enhanced the notes about how to upgrade. Added basic instructions to deploy and install the ForrestBar from the source as readme.txtDiff Removed the project.theme-dir property by adding it to the lm like suggest by Ross. Diff Changed the 'local forrest' caption to host:port format. Added localhost as option. added structurer xml view to devs. Diff Allowed as well localhost as local address for jetty for the ForrestBar. Diff Clarify the FAQ about using raw HTML docs with no decoration. The xml comments from source files were not being generated to the output. Add Cocoon Validation Block. Uses transformers to enable RELAX NG validation and W3C XML Schema validation using Jing and Xerces. See documentation. Added initial whiteboard input plugin "ecs". Use the responses from Amazon web services (ECS) as input. We now have a regular 24-hour IRC session once per month. Developers get together. See ForrestFriday. Added initial whiteboard input plugin for Lenya integration. Added initial whiteboard input plugin for "Blog". Use an XPathDirectory generator to publish indices of articles. Added the beginnings of a sitemap analysis tool to the whiteboard. Doesn't do much at the moment. Added initial whiteboard input plugin for "Resume". Use input docs in xmlresume format. Added initial whiteboard internal plugin for "GoogleSitemap". Access a list of pages in "Google Sitemap" format. Add WTP 0.7 compatability for Eclipse plugin. Clarify installation notes. Add Cocoon Profiler block. Use this during development to list the various sitemap pipelines and components that are being used, how much time was used by each, whether each component uses the Cocoon cache, and show the actual xml data. See documentation. Thanks to Ron Blaschke for the suggestion. Documenting some of the locationmap syntax and naming conventions as comments/examples until it can be done more formally. See 'forrest seed-sample' and locationmap docs. Use locationmap's mounting capability to allow selective project location overrides. Add locationmap selector based mounting (and project-based mounting). Add locationmap mounting capability. The hlink and vlink colors were not set correctly by SkinconfTransformer. Synchronise the appearance of warning, fixme, and note elements in the pelt skin. Enhanced notes about using plugins. Strip remaining <i18n:text> elements that remain if i18n processing has been disabled. This was causing invalid HTML output. Thanks to assistance from Gavin McDonald. Added support for actions in the locationmap. Plugins can now define their own *.xconf file to add configuration information to cocoon.xconf. Simply place your *.xconf file in PLUGIN_HOME/conf/*.xconf. Note that changes to this configuration file will not take effect until Forrest has been restarted. Add an "events" section to our SVN to hold materials for gatherings of developers that have been held outside the mailing list community. Add a new document How to do development with Apache Forrest. Provides some tips and procedures for all aspects of using Forrest. Clarify documentation for Forrestbot. Added initial whiteboard output plugin for "voice". Read a document using a voice enabled browser such as Opera. Strip remaining <i18n:text> elements that remain if i18n processing has been disabled. This was causing invalid HTML output. Enhanced the initial Eclipse plugin for using Forrest via Eclipse. This work was enabled via a "Google Summer of Code" project. See docs. Added information about how to debug forrest java classes to the faq Diff Added a shell script to do some steps of the cocoon update process. Still there are some steps that should rather be done by a script, rather than committer interaction. Updated the readme to state that some steps could be done by the script. Diff Added new seed targets seed-basic and seed-sample. That closes FOR-253. Diff Fixed sample sites from the seedTestBusiness FOR-670: forrest seedTestBusiness; forrest site fails resume dtd validation Diff Refactored the view resolver code of the internal.view plugin. Created an action that is doing the same as before the combination of sitemap+xsl.
Added 2 java classes to package org.apache.forrest.plugin.internal.view.acting:
1.FallbackResolverAction.java
2.FallbackResolverHelper.java
Removed project.view-defaultView properties and added project.theme-extension instead. The combination of project.theme-extension and project.theme is equal to project.view-defaultView. Added new elements to org.apache.forrest.conf.ForrestConfModule name="defaults":
view-themes
theme-ext
theme
Removed "defaultView" and added new element to org.apache.forrest.conf.ForrestConfModule name="project":
theme-ext
normalize-space() the forrest:properties before parsing them to the pipe Added document to explain the process for Becoming an Apache Forrest committer. Use sets of symbols as xml entities for character replacement. There is a core set and each project can define a set. For example, use "&myp-t;" to represent the project name together with trademark symbol "My Project Name™". See FAQ. Plugins can now define their own *.xconf file to add configuration information to cocoon.xconf. Simply place your *.xconf file in PLUGIN_HOME/conf/*.xconf. Note that changes to this configuration file will not take effect until Forrest has been restarted. New site seeding mechanism. You can now run "forrest seed" as before, or you can run "forrest seed-business". The later will ask a number of questions about the site being seeded (business name, description etc.) and will create a very simple site designed for business. To quickly see the results, i.e. avoid answering the questions, do "forrest seedTestBusiness". More seed sites will be added in the future. Added support for Locationmaps. This enables content to be retrieved from a location that is defined in a locationmap file. A project-based file can be located at PROJECT_HOME/src/documentation/content/locationmap.xml while core locationmaps are at $FORREST_HOME/main/webapp/locationmap-*.xml files.
The advantage of this is that the URL seen by the user need bear no relation to the location of the source document, thus Forrest can separate the client URL space from the source document URL space. Thus, using the locationmap it is possible to pull together documents from many different locations into a single uniform site.
In addition, since the user URL space is now unconnected to the source URL space it is possible to move source documents without breaking any existing user links.
See locationmap docs for more information. Thanks to Unico Hommes for the original locationmap implementation which was added to Forrest long ago.

See each plugin for its detailed changes.

apache-forrest-0.7.1-dev

Will only be released if absolutely necessary

Added document to facilitate upgrading to v0.7 Howto-v20 now properly handles a/@class=fork etc. attribute to enable links to open in a new browser window. Forrestbot deploy.scp workstage now uses keyfile/passphrase in preference, then fallback to remote password. Changed handling of table elements with class-attributes in source: Table elements w/o class elements will receive standard Forrest styling like before (cellpadding="4" cellspacing="1" class="ForrestTable") while elements that have class will pass unchanged. Note: To style tables with class elements like before you have to add styling code in the extra-css-section of skinconfig. Fixed problems with disappearing of id-attributes in img-element and several others. Added new "clean" targets. Doing 'forrest clean-site' will remove the contents of the project's generated documents directory. Doing 'forrest clean-work' will remove the project's work directories (usually build/tmp and build/webapp which include the Cocoon cache and the Cocoon logs). Doing 'forrest clean' will remove both sections.

See each plugin for its detailed changes.

Added document to facilitate upgrading to v0.7 Config check for the i8n attribute for i18n transformer so it is used only when necessary. Added initial whiteboard input plugin "Daisy". Input is content retrieved from a "Daisy CMS repository". Added initial whiteboard output plugin "OpenOffice.org". Output OOo writer files. Added initial whiteboard output plugin "Chart". Draw charts using jCharts. Added initial whiteboard input plugin "Database". Uses much of the Cocoon DB block code and is part of a larger experiment to get Cocoon blocks working as Forrest plugins. Enhanced the Message of the Day (MOTD) facility. See skinconf.xml from a "seed" site for configuration details. Append a small text string after html title. Add text to a panel on the page. Select different messages depending on the URI string pattern. To use it, declare skinconfig-v07-1.dtd in your skinconf.xml file. Enable skinconf to specify optional page number format for PDF. Plugins are now version controlled. The "extra-css" from skinconf.xml is now inserted at the very end of the CSS. That enables it to properly override other elements. Rewrote example of raw content in fresh-site to correctly document the behaviour in 0.7. Removed ihtml example from fresh-site and replaced with an example of embedded HTML. The use of ihtml is now deprecated in favour of embedded HTML. Fixed a bug with individual "credit image" placement in the pelt skin. If one credit was specified to be in the alternative location, then all credits were placed there. Also added a second alternative location. Split plugins.xml between plugins.xml in main plugins dir and whiteboard-plugins.xml in whiteboard/plugins and added relevant docs to plugins index page. Added importance attribute to actions on status.dtd Added ability to add page breaks to output. See Page Breaks FAQ Allow the serving of raw SVG files to allow clients to render locally. Plugin docs are now upated automatically when a plugin is deployed. Alternatively you can update the docs independantly by running the deploy-docs target in the plugin directory. * Uses skinconf.xml to determine background and border color for notes, warnings, and fixmes; * Uses skinconf.xml to determine background and border color for table cells (headers and data); * Honors headings type set in skinconf.xml (clean|underlined|boxed) and colors headings accordingly; * Uses skinconf.xml to determine font color for links. In addition, this patch extends the "link" template to also apply to the "fork", "jump", and "a" elements. Generate html/head/meta elements from document-v2. Added org.apache.forrest.plugin.input.listLocations plugin. Use lists of locations maintained in a simple xml format and transform them to documents. Reinstate error reporting for broken "site:" and "ext:" links which are due to missing entries in site.xml or typos in site: links. The text "error:" is also prepended. This is a workaround for bug FOR-284 "link rewriting broken when linking to xml source views which contain site: links". This latter issue is handled by the core. However, if your project uses a Cocoon cli.xconf then you will need add the same "exclude" entries. Handle FAQs sections and faqs with both howto-v1.* and howto-v2.* docs. Apply proper section numbering. Removed old versions of pre-release plugins following renaming to the convention defined in Plugin Infrastructure. Added org.apache.forrest.plugin.input.dtdx plugin by moving functionality out of the core. Generates DTD documentation using a custom Cocoon Generator. Removed the leather-dev docs and added the begining of the View plugin docs. Changed plugin template location to {forrest.plugins.dir}/pluginTemplate in the build.xml of plugins/ and whiteboard/plugins/. That allows to create new plugins in the whiteboard/plugin/ directory. Added viewHelper plugin and removed experimental leather plugin. Enhanced the documentation of view/viewHelper. Images group.svg and project.svg were rendered with the shadow effect slightly clipped. Needed to add width and height to filter element. Created a new plugin org.apache.forrest.plugin.internal.view from the fbits core and removed the fbits plugin. Added FAQ about "pageBreakBefore" and "pageBreakAfter" class int PDF documents and describe how to enable the page break behaviour in HTML documents. Use "pageBreakBefore" and "pageBreakAfter" class to sections to force a page break in PDF output. Added How to customize processing of html source Moved status "changes" and "todo" page generation to the org.apache.forrest.plugin.input.projectInfo plugin. Fix broken links in Table of Contents when titles contain accented characters. I18n uses org.apache.cocoon.matching.LocaleMatcher instead of i18n transformer. This requires that your source must now be foo.lang.xml instead of foo_lang.xml Added proxy.host, proxy.port, proxy.user and proxy.password to allow plugin downloads from behind a proxy. Fix various bugs with Lucene search. Added a plugin to handle input documents from Microsoft Excel. Enabled XInclude in site.xml and tabs.xml Added external plugin POD-input to allow Plain Old Documentation (POD) files to be included in a Forrest site. Updated nekodtd to 0.1.11 Moved POD output from the common skin to its own plugin. Fixed quotes in forrest.bat so forrest can be in a directory with spaces. Added a text-output plugin. Added WYSIWYG editor as a plugin (only works in dynamic webapps). Added photoGallery plugin. Added capability to deploy directly to site in SVN using "ant deploy" from within plugin directory. Stopped doing deletion of the cache-dir, so consecutive "forrest site" actions can be cached. Added testing facilities to plugins to facilitate integration testing. Merge xdocs and raw files in the same directory src/document/content/xdocs Added How-To Run Forrest from Maven. Added How-To Build a plugin. Split plugin documentation between user and developer topics. LocaleAction changed its API. The "lang" value is "language" now. Ignore directory links for aggregations. Added HowTo about editing CSS in a WYSIWYG fashion using Mozilla Firefox and its Edit-CSS plugin. Added custom xml sample and project sitemap to the 'forrest seed site'. Added How to modify the color of generated corner images. Added links to example websites to demonstrate each available default skin. Changed Ant build property name "version" to "forrest.version" to prevent collisions with other build systems when using the Ant "import" task. Fixed some public identifiers (for DTD-v2.0) which were still pointing to old versions of DTDs. Added to the document-v20 DTD to support "usemap" attribute in img tag. Also added demonstration of client-side imagemap to the "seed site". Added FAQ to explain character encoding for certain languages. Enable sitemap plugins. Plugins allow Forrest to have functionality added through the addition of small code blocks (plugins). Plugins are downloaded automatically when a site that requires them is built. See Extending Forrest with Plugins. Update fop-0.20.5 just with optional jimi support. This fixes the issue building the Apache FOP site. Replace libraries to use the cocoon-2.2.0-dev version. Added initial whiteboard output plugin "htmlArea". Output pages that enable editing of the input. Only html at this stage. Added initial whiteboard output plugin "rtf". Output documents as RTF. Added initial whiteboard input plugin "logs". Use various logfiles as input. Currently only Java Logging API. The brokenlinks file now contains referer information. Upgraded lib/core/cocoon.jar and added attribute "show-referrers" to the Cocoon cli.xconf Updated How-To: How to create a PDF document for each tab to create subject-specific aggregated documents. Java 1.4 is required starting with Forrest-0.7-dev Add initial PDF plugin Add initial Wiki plugin Add initial Feeder plugin
Added initial whiteboard internal plugin "IMSManifest". Alternative navigation method. Generates menu links from IMS Manifests (Learning Objects). Proper positioning of icon/links for PDF, XML, POD, Print content options on pelt skin. Updated commons-collections to 3.1, commons-logging to 1.0.4, jcs to 1.1-dev.20040811, lucene to 1.4.1 Enable email address obfuscation to be configurable using the obfuscate-mail-value option in skinconf.xml Allow forrest to run in a project directory with a space in the name. Fixed the domain bug of the searchbox in pelt. Fixed the menu in pelt by adding getMenu.js and changing the site2xhtml.xsl. Now the chapter image will get expand again. getMenu.js - fixes a path issue and the double click behaviour of pelt. Explained the usage of the extra-css element in skinconf.xml of the fresh site. Initial Chaperon grammar for minimal MoinMoin Wiki to Forrest xdocs transformation. Source documents use the *.moinwiki filename extension. Requesting linkmap.html Forrest now renders the site.xml file as a table of contents. Now the *.ihtml and *.cwiki extensions are deprecated. To get the same functionality it is recommended to switch to *.html and *.jspwiki. With this it's now possible to have a site in simple html, edited with any html editor. The *.jspwiki extension was put to make it clear what the format is about. New project sitemap extension mechanism. Now it is possible to add a project sitemap that plugs into the processing at the beginning. If the requested url is resolved by it, it will serve the file directly. If the requested url with the extension changed to xml is matched, then Forrest will use that result as the intermediate format and render it. This will enable project-specific sitemaps to not collide with future Forrest updates. Relative URIs with absolute paths were broken in the site.xml linking mechanism. Re-write the Chaperon grammar for JSPWiki to address ambiguity with paragraphs and sub-sections. Added configuration for XMLMind XML Editor to scratchpad. Originally from splike.com Enhance the document2pod functionality to handle many other elements and enable the link to this format to be configured via skinconf. See the issue report for some notes. Automatically add some meta elements to head of html (Generator name, Forrest version, skin name) Optional feedback link for the footer of all skins. New output format for POD (the Perl community's Plain Old Documentation) triggered using the .pod filename extension. Initial work, needs enhancement. See forrest-dev discussion Eclipse plugin code added to scratchpad (donated by Burrokeet). Initial work, needs enhancement. Skins "forrest-css" and "avalon-tigris" are deleted. The "tigris-style" is renamed to "tigris". Aliases set in place for backward-compatibility. The old "forrest-site" and "krysalis-site" skins are retained for a little while longer, but are deprecated, so please move to one of the other skins. See notes about Default skins. Updated Ant 1.6.2. JCS log messages go through cocoon instead of to stdout. Generate proper html for figures in simplified docbook. Have @class attribute in DTD for every element, which enables the "extra-css" section in the skinconf to be put to good use. Updated all v1.2 DTDs to become v1.3 DTDs (forward compatibility: v1.2 docs will work fine as V1.3). Updated the v2.0a DTDs to become v2.0 DTDs (forward incompatibility: v1.2/1.3 docs are not forward-compatible as V2.0). Added demo of extra-css to the seed site and updated some sample docs to use new v1.3 DTDs. See the samples and reference docs. See the issue report for full list of changes. Added a How-To: Generate an ASF mirrors page using interactive web form using ihtml to include additional html form elements. Added forrestbot deploy.svn implmentation. Support running Forrest on Win9x. Don't copy unneeded project files in 'war' and 'webapp' targets. Add more descriptions to forrest targets. Highlight the most common ones. Added a How-To: How to create a PDF document for each tab to create subject-specific aggregated documents. Created the How-To section of the documentation. Continue Dianna Shannon's good work with designing the DTDs, concepts, and documentation effort at Cocoon. The new "pelt" skin (uses CSS and div). See notes about Default skins. Projects can use a local CatalogManager.properties to declare additional Catalogs for DTDs and other entities. Improve look of PDF pages. PDF pages receive skinconf properly (through the skinconf pipeline). FAQ page does not need to provide it's own extra index. Brokenlinks file is now generated in project.home rather than forrest.home Added a mechanism to enable impoverished XML tools that do not use the Catalog Entity Resolver to fetch the DTDs direct from the website. See notes for "Upgrading to v0.6". Please help to upgrade our /dtd/.htaccess file (see issue FOR-107) and please help to address the SVN Issue 1233. In skinconfig, add box-location attribute to search element. Remove 'template' skin; better to base a new skin on an existing one. Replace URLs in all docs to be http://forrest.apache.org/ Add missing xdocs from the validate.exclude property. Allowing to exclude files. Improved resolving image references in PDFs. Now CSS files are parsed internally, so that the urls are included in the static site generation. Forrest is now a top-level Apache project. The new website is at http://forrest.apache.org/ Lucene-index target works. If search@provider="lucene" is set create a search index. Build site and run targets as per project directory instead of forrest.home. Fix relative links and image references in aggregate pages. Worked search functionality into all skins. Fixed query parameters for Google site search. Lateral search box was incompatible with new skinconf.xml format. Added new documentation about Searching Forrest-built documentation which describes both Lucene and Google search. Upgrade to cocoon 2.1.5 Clean up first Lucene search implementation in Forrest. Locationmap modules added. Not in use yet. Forrestdoc code added to scratchpad; previously was Jakarta Alexandria Removed author and cvs-id tags from code and xdocs. Repack Jetty without JSP support. Now we can remove org.apache.jasper.jar Moved forrestbot2 from scratchpad into main. Uses ant 1.6's 'import' task instead of XSLT/ant. Webapp completely rewritten to use JSTL, Struts, Java utility classes, and OpenSymphony's OSUser for flexible authentication. Forrest does not copy anything around anymore. The only step to make it work is to have java compile the forrest jar; all other resources are used in their original location. Moved all references to //skinconfig out of the document2html.xsl into the site2xhtml.xsl file. * Rationalized the Table of Contents stuff by creating a "toc" mode in the common/xslt/html/document2html.xsl. That is then used to generate the per-page ToC and the ToC attached to the menu. * Removed extraneous default xsl matchers on the non-common document2html and site2xhtml XSLs. This allows matches defined in the imported transformation sheets to match (imported sheets have lower precedence). * Defined a couple of <div id="..."> place holder tags used by the document2html. Those are then skinned by the site2xhtml sheets. * Note: If you have your own skins that were referencing "$config" or "//skinconfig" in the document2html.xsl then you need to make similar changes. * For more information see the FOR-146 issue report. Add <copyright-link> element to skinconf The .ehtml files have been deprecated. Use .ihtml instead. Future html input support will be based on this discussion. Remove misleading error message. Reported a cocoon bug #28939 Revert the changes to access skinconf using "skinconf//" done on r10259 Information about the new forrest-user mail list. Jetty jar was mistakenly compiled for jdk 1.4 - now re-compiled for jdk 1.3 Forrest-targets with ant proxy is obsolete; use forrestbot now. 'build patch' command updated for SVN. Completely rewritten Lucene-based index and search functionality. skinconf was being ignored for the svg and fo formats. "Warning" was mistakenly labeled as "Note" in PDF. site2book.xsl handle all menu-item and menu attributes Proper table around 'graphic' in simplified docbook. Replace document() function to get skinconf values and use "//skinconfig". Fix order so it can validate skinconf. Use <search/> instead of <disable-search/> <disable-lucene/> <searchsite-domain/> <searchsite-name/>. Fix skinconf.xsl so it produces a proper skinconf Updated jetty to 4.2.19 Update scripts and config files to allow upgrade to cocoon 2.1.5-dev New stylesheet to import the original cocoon.xconf file Stop overwriting skinconf and cocoon.xconf on webapp target. Libs were not copied on the webapp target. Move context targets from forrest.build.xml to targets/context Use skinconf DTD. Use xmlvalidate for skinconf. Create upgradeskinconf.xsl for old skinconf.xml files The language alternative div displays language in your own language. Docbook support for refentry element and it's children. Generally used for man pages. Do not create ToC unless it has been defined on the skinconf. Change level attribute to max-depth attribute. Add a min-sections attribute to define a minimun number of sections before create a toc. Add Language alternatives div. To test it: i18n-foo.html Page size and orientation for pdf. Converted repository from CVS to SVN. Upgrade to batik 1.5.1 Add i18n to single file content. ToC element is optional on skinconf. Updated Ant 1.6.1 Add i18n to tabs. Putting a jettyconf.xml file in your document directory will override the one supplied in the default Forrest context. Also no longer copies jettyconf.xml to build dir (one more file closer to no copying ;-)) Allow a full url image to be included on a pdf file. Use only tmp as the temporary directory. Split build file in various parts (webapp,war,validate,site) Support multiple skin descriptor files via the forrest.skins.descriptors property Move ant + Jetty under tools on the build target Libraries are not copied anymore in the servlet context of the dist and of the project being built; they are added instead to the classpath of jetty for the 'run' target and of the Cocoon CLI for the default 'site' target. New 'clean-dist' target for build.xml, which is now the default target. Wrong directory being used for wiki grammars. Upgrade to Jing 20030619. Validation is now "dynamic", by setting the parser feature "http://apache.org/xml/features/validation/dynamic". This means that documents with DTD are fully validated, while documents without DTD are just checked for well-formedness. Added SkinconfTransformer, that augments the skinconf.xml by adding these attributes to colors if not present: @highlight, @lowlight, @font, @link, @vlink, @hlink. Removed xml2xhtml.xsl import in profile2page.xsl that was not used (file not present). New build target to build a webapp that can be distributed. "war" target depends on "code" which will produce an deployable webapp, "run" target depends on "webapp-local" which leaves many files in the project directory to ease editing (e.g. src, resources and skins) Now skins can get a stab at enhancing skinconf.xml, by placing a skinconf.xsl file in the skin directory. By default some values are added by the common skin, like default Forrest colors. Upgrade to cocoon 2.1.3 nekodtd 0.1.9 remove excalibur-concurrent-20020820.jar remove excalibur-cli-1.0.jar remove excalibur-datasource-vm12-20021121.jar remove jakarta-oro-2.0.6.jar Add support for Openoffice Writer 1.1 files. Instead of forrest-targets.ent with Ant 1.6 Forrest can now also be used with the new import facility: <import file="forrest-targets.xml"/> Fixes to the krysalis skin to bring it up to snuff. Added lateral search bar. Added credits section. Use automatically skinnable borders Fix code font size. Other small enhancements. Automatic generation of borders from skin colors and naming convention. Rounded and straight 45 degrees corners supplied. For example, to generate a 'r'ounded corner for 't'op 'l'eft the size of '5' pixels of background 'header', foreground 'tab-selected' and border of 'tab-unselected' I can just ask for: /skin/images/rc-t-l-5-1header-2tab-selected-3-tab-unselected.png Removed all validation includes and excludes from the fresh site, except the most basic one. This means that the feature is to be considered deprecated. New "extra-css" tag in skinconf can contain css that is injected in forrest.css, added in the skins by default. New section in skinconf about colors used by the site. Enabled for krysalis-site and tigris-style. If a needed color is not specified, the default one is used. Now skin resources can be generated from skinconf.xml from xslt. For example '/myskin/css/my.css.xslt' is used by forrest on 'skinconf.xml' to get 'my.css' It is now possible to have two levels of tabs. External links are now identified by a small trailing icon. The icon can be overridden by the skin and the behaviour can be disabled in skinconf.xml. Added new 'tigris' skin, by using exactly the same skin version 1.1. from the project Style at http://style.tigris.org/. This will completely replace the avalon-tigris skin in subsequent versions. The avalon-tigris skin is to be considered deprecated and no longer developed. Properties from ${user.home}/forrest.properties are loaded, after the project's forrest.properties and before the default-forrest.properties are. Updated Ant 1.6.0 Refactored forrestbot to organize workstages and their implementations. Properties named by workstage and implementation for clarity and to prevent conflicts. The 'clean-site' target appears in 'forrest -projecthelp'. Deletes temp, webapp, and brokenlinks files too. Began documentation for new forrestbot; moved stable forrestbot docs Now skins that are edited in place have their non-traversable resources also copied for static rendering. New file format: '.aart'. These are text files that are converted automatically be Cocoon in SVG, if requested with a '.png' extension. Updated and separated in their directory all the resources needed by Chaperon, and make the pipeline generate the xml grammar versions if unavailable. This fixes some wiki rendering bugs and makes sections follow the correct level nesting. Now also all forrest /resources are editable in forrest.home and translations in their source space. Skins are now editable directly in FORREST_HOME. DHTML menus in Krysalis skin now work on all levels. Updated Entity Resolver from pre-release to official xml-commons-resolver-1.1 release. Updated Jetty to 4.2.14 Removed the deprecated Ant @tag@ substitution method for skins to reduce copying further. Wrong default value for translations directory. All resources in skins/common/images|scripts are used if the corresponding resource is not found in the skin being used. Moved under these dirs the images and the scripts that were placed by default under resources/images or copied in each skin, and added a temporary sitemap rule to route the request of the images to the new location. Moved the images of fresh-site to the src/content/xdocs directory, for the new layout that has been decided on forrest-dev. Now images are generated from the xdocs content dir as if they were in the resources/images dir. The latter will be phased out. Fixed the handling of images and resources in the resources.xmap pipeline, to cater for the new system that does not copy docs prior to rendering. Added a new property to forrest.properties (project.raw-content-dir=${project.content-dir}/content) to define where raw files are to be served from. Also removed the internal property real-content.dir that was used internally for this and replaced it with a raw-content.dir property. Major update to inner working of the krysalis-site skin: - removed all use of the spacer.gif image - replaced all visual enhancement icons with css icons - fixed CSS and html validation - reduced final output size, - removed all font tag usage in favor of css - added aural (speech) style in css - reduced usage of nested tables - refactored main xhtml stylesheet to be more clear and maintainable - refactored css to have a single small place where to define the skin colors - changed icons to original icons (made by me and not gotten from elsewhere) - removed unused icons. - made location of minitoc configurable as "page", "menu", or "both" Removed duplicated copying of files during the creation of the distro. Now the command-line context dir is like the webapp context dir. This reduces Forrest build time from 53 to 19 seconds on my system. Fixed bug in the autodownload support for skins that was preventing custom skins in the project source dir from working. Added support for docbook version 4.1.2. Allows importing files from various editors (Open office, Abiword). Added default translation for menu on fresh-site so it is used when the user locale can not be found. Synchronized some I18n labels after a modification on fresh-site. Patch facility to be used by any contributor (From Ant's project). To use it run "build.[sh|bat] patch". Added German Translation for menu in fresh-site example seed. Patched directory2book.xsl to be able to serve raw documents from the side menu (e.g. pdf); previously it always generated .html links. Skins can now be packaged, downloaded and automatically installed. See documentation. Added creation of TOC support on PDF files. Improved so it uses value from skinconfig.xml. Improve algoritm to define font size for section/subsection/... First I18n integration for menus in forrest. In the generated "changes" document, add "version_" to section@id as required by document-v12. Sort action types order to "add","remove","update","fix". The 'validate-site' build target will validate the intermediate xdocs. Integrate Lucene on Forrest. Check the bug report for more info. Added XSP support. For old sitemap.xmap add this tag: <map:generator name="serverpages" src="org.apache.cocoon.generation.ServerPagesGenerator"/> Upgrade to Cocoon 2.1.2, which fixes a bug that caused some pages in a site not to be rendered from the command-line, and has some cosmetic improvements. In skinconf.xml, made project-description optional to keep compatibility with 0.4. Added obfuscate-mail-links skinconf.xml option, on by default. Fix forrest-site tables bug that broke Opera forrest.antproxy.xml script now properly fails when Cocoon fails Fixed URLs for comma-separated bug keys in status.xml Fix bugs in forrest.bat|sh scripts encountered when used in odd environments (perl and Win9x). The 'forrest' command no longer sources /etc/antrc and ~/.antrc, which solves problems on some *nix distributions. Added new document to facilitate upgrading to v0.5 Added @label support for note and warning elements. Fixed java.lang.reflect.InvocationTargetException caused by catalog DTD HTTP lookup. The build had an extra and older resolver.jar Fix character return on line feed for fresh-site on the zip distribution New property "bugtracking-url" to allow a bug tracking systems other than bugzilla. Added a "forrest clean" task that removes the project build directory. In the forrest-site skin and derivatives, display the author and version at the bottom of the page, as krysalis-site does. Also added parsing for CVS Revision tags, so <version>$Revision: 1.288 $</version> can be used. Added ability to have version-specific overridden sitemaps. For example, src/documentation/sitemap-0.5.xmap will be used by Forrest 0.5 in preference to any others present in the same directory. This means a site with overridden sitemaps can build with Cocoon versions expecting different sitemap formats. Added email template for html content in common skin. Support for version, type and notice on html format. Style information on the common skin. build directory created in wrong directories. On fresh-site: Synchronize size for group and project logo. Added description on site.xml elements so it displays tooltip. Remove errors for fopx:bookmarks element. Add description to {group, project} logo. Switched off skinconf.rnc validation to promote better forwards-compat. Upgraded to Cocoon 30/08/2003, now with ability to exclude URLs from being processed, in cli.xconf. Add "title" attribute to menu item links using the "description" attribute from entries in site.xml or book.xml The generated Tables of Contents can be configured to show a certain number of section levels. Default is two levels. Level 0 means show no ToC at all. See the fresh-site skinconf.xml for example usage. New 'expand-dtd' target for generating monolithic DTDs suitable for use in catalog-ignorant XML editors such as IDEA. Allow images to scale on pdf output. Comma separated bugs have a link to bugzilla systems. Docbook table header is shifted one column. ihtml now works again. Had to add a jtidy configuration that prevented it to output tidies html to the pipeline, thus making the stylesheet unusable. Also had to fix the sitemap schema. Cleanup maps:components definitions on sub-maps. Remove indent attr from the xsl:output as it is define on serializer. Move xsl:output for *2document.xsl to "xml-document" serializer. abstract element was ignored for html output. Unescape strings, so they display properly on the trail for all skins. Use sync task to clean the tmp directory for xdocs. Now the Krysalis skin has javascript-collapsable menus. site.xml changes now picked up without requiring a reload of the webapp. Updated to Cocoon 20/7/03, and use the new command-line (cli.xconf), which makes Forrest static rendering more than twice as fast as before. New Icons. Added a text2document.xsl stylesheet. Convert to unix format so it stop EOL character. Simplify so it does not use chaperon format. format. Stopped the rewriting of extensions. Updated Cocoon to -D "2003/06/22 12:00". This fixes a bug where files with unknown extensions were written with 'null' appended to their filename. Allow any sort of content inside resources/, which will be made available to the sitemap but not automatically copied to the generated site output. Add a flag for email obfuscation, and turn it off by default. Fixed bug that showed the krysalis-site skin in IE browsers from a remote site to start with a font size of 100. Also made the font size script kick in at the start of the page rendering, as before it resized only after all the page was loaded, which was not nice to say the least. Added alternative menu/tab selection algorithm, that uses tab attributes in site.xml instead of relying on physical site structure (directories). In PDFs, section titles are no longer numbered/reduced in size indefinitely. Upgraded FOP from 0.20.4 to 0.20.5. Upgraded Cocoon to M2. Make FAQ 'Questions' section more legible, and avoid duplicate numbering in FAQ PDF. Links to subdirectories no longer blow up the command-line rendering. The 'backcopy' command will now copy all types of custom content (*.xmap, skinconf.xml, xdocs, images, stylesheets, DTDs). Add a @indexfile attribute to tabs.xml, so that the user can specify which file the tab links to. Enable link rewriting for *.ehtml files. Enable link rewriting for images and figures (@src attribute). Add <elaborate> to the FAQ <question> element, which lets one provide some background (elaboration) in the FAQ body without cluttering the FAQ list. Allow plain text (instead of just block-level elements) in the FAQ's <answer> element. Added a forrest.maxmemory property specifying the maximum amount of memory allocated to the JVM. Useful for rendering large PDFs. Added forrest.jvmargs property for other JVM options. Get breadcrumbs working in Mac IE 5, and don't capitalize the first letter of each link in the forrest-site skin. Fixed bug where absolute paths to images were created in the build/site directory. Get the Wiki syntax support working again. Created new document-v12 DTD module, containing all DTD improvements made since 0.4 was released, and use it to define new v12 versions of all DTDs (document, howto, faq, etc). The doc-v12 DTD removes many restrictions in the DTD that were found to be unnecessary, and is closer to the HTML content model. A list of changes can be found in the doc-v12 sample page. Fixed rendering of images in PDF for images not located in the resources/images dir. Add automatic (doctype-triggered) handling of todo and changes XML files, regardless of file name or location in the directory tree. The root changes.html and todo.html files are still generated from status.xml. On the ForrestBar, added a community menu, made 'AskSam' a resources submenu, moved the search part to the right. In skins/common/xslt/html/tab2menu.xsl, renamed template 'unselected-tab-href' to 'calculate-tab-href', potentially breaking 3rd party skins. Fix menu bug where links with #fragment identifiers wouldn't display. Get images in PDFs working with FOP 0.20.x. This requires the user to download jimi.jar from Sun and place it in the lib/core (src distro) or WEB-INF/lib (binary distro) directory. On krysalis skin: fixed print css, also using text instead of logos and adding the footer, and changed link colors to blues and red for active links. On krysalis skin: fixed left navigation bar icons and sizing using divs instead of list elements, made all links underlined, added space to the bottom of the page text, and changed font increase-decrease links to buttons. On krysalis skin: users can select font size, reworked left-bar inclusion of page section titles, made them only one level deep, moved buttons after the left navbar, added publish date on top right navbar. For both Forrest and krysalis skins, added single background pixel line below unselected tabs and made selected tab more prominent. Fixed java.lang.NoClassDefFoundError: javax/servlet/ServletInputStream error. Enabled multiple output links on each page (print - pdf - xml) They can be enabled by adding the relative disable-*-link elements and setting them to false. Allow users to determine which URLs Forrest should ignore, by overriding stylesheets/filterlinks.xsl (and other stylesheets in that directory). Upgraded to 2003-03-11 version of Cocoon Docbook stylesheet improvements. ForrestBar is now Phoenix compatible. Added links for both possible local forrests (port 8080 and 8888), and make them configurable in properties.xml. Thanks to Mark Vovsi for pointing it out. Fix a bug with forrest.antproxy.xml introduced in 0.4, which caused unresolved '${project.home}' variables. Refactored the "transform-to-document" sitemap resource to do the the xinclude, linkrewriter, and idgen steps. Added XInclude capability to the documents. Remember to disable validations for files with xincludes as the xinclude is not performed during validation. Added DocBook 4.2 and simplified DocBook 1.0 to the schemas and to the validation catalogue. Added Docbook and simplified Docbook rendering capability for documents. Use meaningful fragment identifiers in krysalis-skin. Correctly ignore @role='pdf' credits in HTML krysalis-site skin now works better with multi-level menus. Added the CSS validation logo, fixed all skins' CSS to validate, minor fixes due to the switch to full HTML-loose DTD. Normalize space in acronym titles. Make the forrestbot shell script work under Cygwin. Got skins working in the forrestbot. Added a minimal template skin. The problem with starting a new forked JVM is that all properties get lost. This makes it able to use one forrest.properties for all multiple projects, and just create the docs from there. The menu is now limited to only pages in the current subdirectory and below. Added the cwiki stylesheets that were missing and an example in the fresh site seed. Make the forrest-site and krysalis-site skins more printer friendly by using CSS media type to hide navigations. the avalon-tigris skin already works well, the forrest-site one still needs tweaking. Use full loose DTD specification for html pages. This also makes the avalon-tigris skin show the same in Mozilla and IE. Switched all loglevels to ERROR. Added page for ForrestBar on the site with a simple link and an autoinstall link to the forrestbar.xpi generated by Gump every day. Correctly serve swf files. Fix site: and ext: rewriting in book.xml, ihtml, ehtml and cwiki files in subdirectories. If build/webapp/content/xdocs/* is more recent than src/* equivalent, forrest webapp won't clobber it. A new forrest backcopy command will copy build/webapp/content/xdocs content back to src/documentation/content/xdocs. forrest-site skin is now HTML 4.0.1 compliant. The compliance validator logo can be switched off with a skinconf.xml element. Indirectly referenced files in skins (e.g. images in CSSurl()'s) are now copied across to the rendered site. Previously, we relied on spidering to cover the URI space, which has proved insufficient. Lots of FAQ improvements: -Improved URI space by using @id attributes as the #fragment-identifier for <faq> and <part> elements. -Number FAQ entries and categories -Added back-links from FAQ entries to the menu -Process tags in <question> in menu entries -Indent FAQ text -FAQ sample added to seed project Thanks to Joerg Pietschmann and Ralf Hauser for the suggestions. On avalon-tigris skin it's now possible to add a mysite.css file to customize the style. An example that can be used is from chaperon.sf.net. Also added a rounded corner to paragraphs, and many minor fixes. Fixed the annoying link highlighting on the krysalis skin due to the border. Removed the border, now it highlights fine. Added <acronym> tag. Added a means to override the check for existing content: forrest seed -Dskip.contentcheck=yes Thanks to Tom Klaasen. Added the possibility to use svg files instead png images. That is, if an image is found in the images dir that is svg and the browsers requests a png with the same name, the png is created from the svg automatically with batik. Added the possibility to use wiki files in xdocs instead of xml files. They must have a .cwiki extension, and follow the chaperon wiki format ATM. Updated part of the editor so that it now can save files in wiki format. Still needs more work. Updated Batik Block so that now PNGs can be created correctly from SVG. Added "Edit Page" button to edit the current page in Composer. Still needs an icon. Added the possibility to use html files in xdocs instead of xml files. They must have an .ihtml extension. HTML fragment identifiers for sections are now meaningfully named, based on the section title, rather than document-id()-generated characters. Fixed site regeneration bugs where changing the skin in forrest.properties had no effect after the first build. Added copyright statement to PDF footer (10pt, light-grey text). if a skinconf.xml 'credit' element has a role='pdf' attribute, this text will be used instead. Thanks to Keiron Liddle. Now all files in src/documentation/content (except xdocs) and src/documentation/resources/images are copied across when Forrest generates a static site. This fixes the problem when an unparseable file links to another, and Cocoon can't crawl (and hence copy) the linked-to file. An example of this are CSS url('foo.png') image refs (so krysalis-site will now work properly). Also, large batches of pregenerated files like Javadocs will now be copied across instead of individually traversed. New site.xml file in content/xdocs. This is used to implement <link href="site:internalURI"> 'semantic' links, <link href="ext:externalURI"> aliases to external links, and renders book.xml files obsolete. See Menus and Linking for more info. Updated some documentation, especially Forrestbot Introduction Now files present in the content dir are correctly linked and copied verbatim by the CLI. The wellknown files are given with the correct mime-type, and links in html and xml are followed. Update to 2002-12-26 Cocoon. Tweaked ForrestBar, added a sub-project menu for Jakarta, fixed download link and added submenu for tools and gump. Added rss capability to changes generation. Added latest krysalis-site skin, using common templates where possible. There is a changes2rss stylesheet that still needs sitemap changes to run. Now even the selected tab retains a link, to be able to easily select the main page of that tab even if it is "current". Fixed a bug in the search form where there was no space between search term and 'site:' term. Search form also no longer requires Javascript. Allow special handling of tab hrefs with #anchor references in them. By default, such menu links are always clickable. Fixed a bug where the no menu entry is 'selected' when in subdirectories. Updated avalon-tigris skin by merging what was in CVS here and what was used in Avalon with its Cocoon-generated site. The visual effect is the same to the current framework and Exalibur Avalon sites. Now error reporting in CLI runs should work and show the cause of the error; before it was just reporting [broken link]. Updated latest Cocoon jars: chain metamodule name set to "forrest", and it is used instead of the default one. Fixed a bug where multiple menu entries are highlighted if the filenames share a common prefix. Allow configuration of a project local-catalog and the entity resolver verbosity level, via forrest.properties configuration. This replaces tokens in the default cocoon.xconf Fixed a bug in forrest.bat, which would fail if run from a different drive to that Forrest was installed in. Fix bug where the webapp would break due to missing XML jars under JDK 1.2/1.3. Moved credit and host logos to bottom left corner on forrest-site skin. Make the seed project use the correct 'built with Apache Forrest' logo instead of Cocoon + Centipede logos. Rewrite skins to share a common block of XSLT, which is used via <xsl:import>. This should make skin maintenance much easier. Removed the 'basic' skin, to be shortly replaced with something much more maintainable. Removed some images (built-with-cocoon.gif, centipede-logo-small.gif) from the skins, and moved them to src/documentation/resources/images, as they are Forrest-specific. Added enhancements to status.xml to comply with the needs for a complete status file, like other "STATUS" text files at Apache. Stylesheets not yet done. Added buttons for nightly Gump runs and local forrest. Corrected and completed existing interface, and made buttons flat (the bar is slimmer too). We need icons for the new buttons. Fixed bug where validation of xdocs was not descending into sub-directories. Fixed bug where changes to the breadcrumb links in skinconf.xml were ignored until the Forrest binary was rebuilt, or the project build/tmp/ deleted. Webapp now works under JDK 1.3 (parsers weren't being copied) SourceAction or the so-called 'content aware pipelines' enables conditional processing of XML documents based on their grammar, being indicated by their DTD, XML Schema PI, root element, or a processing instruction (PI) in the prolog of the document. Added a convert dir in the resources with stylesheets and buildfile to help convert Anakia and Maven-based sites. Validate project sitemaps and choice of skin Validation of important core configuration files at build-time using RELAX NG. Fixed selected menu link (meant to be inactive and yellow) Now an id attribute on any XML element below <body> will be rendered as an anchor which can be linked to. Fixed webapp redirect problems under Tomcat and (sometimes) under Jetty. Added alpha system for editing content in the webapp. To try it do "forrest run" and point the browser to http://localhost:8888/edit/ . Added avalon-tigris skin. Removed unmaintained skins: avalon-site, jakarta-site, xml-apache-site, Removed the dependency that the default "site" target had on clean-site. It means that running "forrest" will not delete the current files in ./build/site/** . Now Cocoon serves a file directly if the filename matches the one in ./src/documentation/contents/** . Put the internal matches in a separate pipeline with internal-only="true". Now site builds do not delete files in build/site that are included in the Ant list of default excludes, like CVS info. Included Jetty in the distro. type "forrest run" to have the ./build/webapp dir contents be run in a local web server, starting from http://localhost:8888/index.html Added a docbook2document.xsl stylesheet to library/xslt. XML validation is now fully configurable through a hierarchical set of forrest.validation.*{includes,excludes,failonerror} properties. Validate XSLTs in user skins and resources/stylesheets directories. Added new document Standards Compliance Thanks to Robert Koberg. Added Jing "RELAX NG validator in Java" and initial grammar for skinconf.xml files. These config files now get validated during the build. Enhanced forrest-site skin's tabs. Any URL (not just directories) can now be tabbed with a new 'href' attribute. There is an improved 'longest match' algorithm for deciding which tab is on which is more robust than the old one. Fixed a bug where having a tabs.xml link to a file not otherwise mentioned in book.xml caused a broken link. See forrest-dev discussion Fixed all broken links in the Forrest site. Simplified the sitemap-stylesheet contract. Instead of 'dir' and 'resource' parameters with varying meaning, there is just one 'path' parameter. Allow user to specify what XML files to validate via forrest.validate.{includes,excludes} properties. Fixed broken PDFs in most subdirectories. Added a subdirectory to the template site and fixed all broken links. XML doc files are now validated before rendering with the 'validate' target. Uses OASIS catalogs provided by Forrest, optionally augmented by user project catalogs. The distribution no longer requires Ant to be preinstalled. Now, nothing but a Java installation is needed. Building Forrest no longer requires a network connection (for downloading Centipede). It is buildable by typing 'ant' or with the provided build scripts. Fixed ClassNotFoundException when running on JDK1.4.x Allow xml:space='preserve' attribute on <p> element, which preserves space without the changed font and block display that <code> uses. Fixed a bug where the log files weren't being created. Thanks to Vladimir Bossicard for reporting. User projects can now override the default cocoon.xconf and logkit.xconf files, by placing these files in src/documentation/conf PDFs for faq, changes and todo now work. "Change History" images (update.jpg, add.jpg etc) are now provided by default by Forrest (in images/), and need not be supplied by user projects. User projects can now add custom classes and jars to Forrest doc builds. Useful for custom sitemap components, or overriding Forrest-provided jars. The locations where Forrest expects doc files to be is now configurable via properties, that can be set in forrest.properties. User projects may now specify their own sitemap, overriding the Forrest-provided one. Made forrest-site skin fully generic, usable with any project. Skins are configured through an external 'skinconf.xml' file, specified by the project. Fixed bug where multiple copies of the same image where generated, one for each directory. Now all image links are page-relative, leading to a single copy. Fixed tab links, which were previously hardcoded and forrest-specific. They are now page-relative. tabs.xml file entries no longer have to end in '/'. Added new document Your Project - getting started with using Forrest Added to the "forrest-site" skin the ability to split source code larger than 80 chars in two or more lines. Replace the "forrest-site" skin with the new "bert" skin. Added the forrestbot - infrastructure and configuration for remote project building. Added breadcrumb trail script from the Avalon site skin. Updated Cocoon to 2.1-dev to use xsltc and new CLI status messages. Logs are in the build/work/WEB-INF/logs directory and the list of broken links is in the build directory. added NekoDTD-based DTD documentation using a custom Cocoon Generator draft forrest toolbar for Mozilla Initial import of Libre facility - replacement for */book.xml Added a draft DTD for the Gump Descriptor forrest.xgump Forrest website is being automatically built and published to krysalis.org Designed a new skin for the Forrest documents. Particular attention to cross-browser issues. Added initial "Dream List" by harvesting statements from the forrest-dev mail list. Added simple xsl stylesheet for forrest.xgump. In IE6 and Mozilla 6 it renders using this, in older ones it uses the more simplifies CSS version. Added Forrest to Gump runs. Added preliminary version of a scarab-like skin. Added simple css stylesheet for forrest.xgump. In IE and Mozilla 6 it renders. Fixed links in Forrest home page and added: contributing, mailing list, list archives, who we are. Updated Centipede stuff to latest changes: - added lib/endorsed dir for endorsed jars that are put in global calsspath - changed the build scripts to not make direct reference to jar files - added "examples" dir in src and creation of examples jar in buils - added "testmodule" target to be run before committing stuff - added "gump" build to be run by Gump Merged forrest needed info in forrest.xgump. Updated project descriptor: now it should be usable by Gump. Added basic Forrest descriptor. Refactored site generation stuff to use skins; still need to integrate with xforrest descriptor. Added jakarta-site, xml-apache-site, cocoon-printer skins. Imported Centipede as a build system. Ensure that initial DTDs are valid and that the initial XML instances can be validated using these DTDs and OASIS Catalogs. Initial Import
Please see our Jira issue tracker for tasks to be done. Note that the Todo list below is old. We need someone to move those tasks over to the issue tracker. Rework the menu generation system to make it more flexible. See thread Fixing menus Define an 'object model' for Forrest sites, in the form of a Cocoon pipeline, that defines - The directory structure of a site - Site metadata (what currently lives in skinconf.xml + gump.xml stuff) - Perhaps site.xml metadata for pages? This info can then be made public to the sitemap (via XMLFileModule attributes) and the stylesheets (through document(cocoon:/...) calls or inlined with source XML). Finalise the project-definition DTDs, like status.xml and module.xml; try to come up with a common format with others on community.at.apache.org. Finish the RSS feed for status.xml. Aggregate status.xml and project.xml to have all needed project data. Add stylesheets to render the enhanced status.xml file contents. In skinconf.xml, change 'disable-search' to 'enable-search'. Enhance the initial forrest toolbar for Mozilla. See email discussion draft forrest toolbar for Mozilla. Fix things so docs can be edited in src/*, and have the changes appear immediately in the webapp. Involves creating/using an InputModule for passing 'forrest.skin' and other properties to the sitemap, so we can avoid the @skin@ hack, and a bit of forrest.build.xml hacking. There are some @tokens@ in a forrest-site CSS file that also need some sort of in-place modification. Perhaps a @token@-to-value Transformer could be the same ${variable}-to-value Transformer mentioned in the RT [3]. Act on 'Entities in XML docs' RT. I can implement Stefano's suggested solution quite easily, but is such limited functionality worth the cost of introducing a proprietary ${variable} syntax? Maybe.. Best short-term alternative seems to be using the XNI XInclude processor for pre-validation inclusion. A lot of the info on the website is outdated. Using metadata from site.xml, it would at least be possible to indicate how old the doc is, and perhaps indicate its relevance from a small controlled vocabulary. Develop a mechanism for supporting legacy URLs. See email discussion - redirects with static sites Fix up and integrate the Forrest Maven plugin. Ensure that PHP-like stuff can be embedded easily in Forrest files and document it. Continue the development of the Libre facility - replacement for */book.xml Start a community doc where we list tools such as "code". Migrate to a decent schema language, primarily so that we can use namespaces in XML docs, allowing things like XInclude, in-line metadata, in-line SVG, Jelly snippets, or anything else users can make a Transformer for. Streamline the process of adding support for new schemas. Ideally we'd have an auto-download system, e.g. 'forrest-update docbook' would fetch and install the Docbook DTDs, create catalog entries, sitemap mods etc. Make a CSS Generator and a stylesheet to serialize it to text. Add a document about authoring in XML for beginners..