To: dev@forrest.apache.org, user@forrest.apache.org,
    announce@apache.org, announcements@xml.apache.org
Subject: [Announce] Apache Forrest 0.8

Apache Forrest is pleased to release the new version:
apache-forrest-0.8 http://forrest.apache.org/mirrors.cgi

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

New features in this version include:

* Locationmaps define the mapping from requests to locations,
which enables content and resources to be located at various
different sources. 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.

* Existing core plugins and sitemaps have been refactored to
take advantage of locationmaps. Some core functionality has
moved to plugins.

* 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.

* Some new documents to explain certain core aspects.
Documentation menu navigation changed to provide clearer
structure for Forrest project versioned product documentation
grouped into howto and background sections. Better layout of
the Developers tab into Getting Involved, Resources (mail lists,
SVN, Issue Tracker) and Best Practices sections. See also the
"linkmap" for an automated Table of Contents ability.

Full list of changes: http://forrest.apache.org/docs/changes.html
See also lists of changes in each plugin's documentation.

Upgrade guide: http://forrest.apache.org/docs/upgrading_08.html

See the issue tracker for known issues:
http://forrest.apache.org/issues.html

Download: http://forrest.apache.org/mirrors.cgi

Thanks for your interest, from the Apache Forrest project.

