Apache Software Foundation > Apache Forrest
Font size:      

Welcome to Apache Forrest

7 February 2011 : Forrest-0.9 released (More)
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.

The Apache Forrest project uses the opensource Apache License 2.0 and adheres to open development ideals. We are part of The Apache Software Foundation (ASF).

Please realise that Forrest is still pre-1.0 release version. It is certainly usable for those who are prepared to move with it. See more notes about status below.

Explanation and features

Forrest is designed with the new user in mind. Much effort has gone into making the process of generating a new site easy and simple:

  • Step 1: Do 'forrest seed' to populate the directory with template site structure and contents.
  • Step 2: Add content by editing docs in task-specific, presentation-neutral XML.
  • Step 3: Do 'forrest run' then use the web browser to immediately review changes at http://localhost:8888/
  • Step 4: Do 'forrest' to generate the complete website from the XML sources. Various styles (known as skins) are available. Custom skins can be developed.
  • Step 5: For more information about installation and use, see the Using Forrest guide.
The first time you run Forrest it may attempt to retrieve some plugins from the Internet (it depends on which distribution of Forrest you have installed). In some cases this will happen whenever a new plugin is specified, in other cases, for example when you have installed all plugins locally or have checked out the full source tree, the plugins will be retrieved from your local installation. In all cases once a plugin has been installed locally there is no need for Forrest to access the Internet. For more information see the plugins documentation.

Forrest's focus on low "startup cost" makes it ideal for rapid development of small sites, where time and budget constraints do not allow time-wasting HTML experiments. Of course, that same methodology can scale up to large projects. Your development team does not need Java® experience, or even XML skills, to use Forrest. The framework lets you concentrate on content and design.

By separating content from presentation, providing content templates and pre-written skins, Forrest is unequalled at enabling content producers to get their message out fast. This separation of concerns makes Forrest excellent to publish project documentation (notably software projects), intranets, and home pages, and anything else you can think of.

Forrest is far from a quick and dirty solution however. Forrest is built on the world's leading XML application framework, Apache Cocoon, which provides advanced users with extremely powerful publishing capabilities.

  • Multiple task-specific source XML formats can be used (How-To, FAQ, changelogs and todo lists supported natively). Source formats include: Apache xdocs xml format, plain html documents, some Wiki formats, a subset of DocBook, ...
  • Multiple output formats supported, for example HTML and PDF (using Apache FOP).
  • SVG to PNG rendering (using Apache Batik). Simply drop the SVG in the appropriate directory and it will be rendered as PNG.
  • Transparent inclusion and aggregation of external content, like RSS feeds.
  • Anything else possible with the Cocoon sitemap. Using database queries, charting, web services integration; the possibilities are constantly growing as Cocoon grows. See the Cocoon Features list for the full suite of capabilities.
  • Based on Java and XML standards, Forrest is platform-independent, making for a documentation system that is just as portable as the XML data that it processes.

Unique amongst comparable documentation tools, Forrest generates sites that can run both interactively as a dynamic web application, or as statically rendered pages.

This provides a path for site growth: start off small and static, and if dynamic features (user login, forms processing, runtime data, site search etc) are one day needed, these can be accommodated by switching to webapp mode.

Running as a webapp has a major advantage during development: content can be written, and then the rendered output viewed almost instantly in a web browser. This webapp technique enables Forrest's edit/review cycle to be faster than command-line transformation tools.

History and project status

Apache Forrest was started in January 2002, with the major use-case being to create a consistent and efficient xml.apache.org group of project websites with a uniform, lightweight, easy-to-navigate layout and structure. In addition, Forrest was to be a Sourceforge-like project management tool, complementing Apache Gump (hence the name 'Forrest'). See the Apache XML and Apache Cocoon mail lists around end 2001 (e.g. here and here / here). Forrest became a top-level project in May 2004.

The focus shifted for Apache Forrest to primarily be a generic documentation tool capable of meeting many needs. Certain relevant project management facilities are being added.

Apache Forrest is currently progressing rapidly through a series of 0.x releases. It is certainly usable now (despite not yet being version 1.x). See the growing list of example sites including many Apache sites.

In general, prior to 1.0, ensuring quality of design will be considered more important than retaining backwards-compatibility. Users (particularly those with custom sitemaps and skins) should be aware that this is evolving software, and read the release notes carefully before upgrading. That said, we appreciate the commitment in time that adopters make, and will not make capricious or undocumented backwards-incompatible changes.

Documentation on the Apache Forrest website exists for various versions including the latest release, the current development, and past releases. All versions of Forrest include their own copy of the documentation. There is also documentation for each plugin and the forrest seed site contains further examples and documentation (see FAQ).

News and events

See the events list for more detail.

  • Apache Forrest 0.9 was released on 2011-02-07. Consolidation.
  • Apache Forrest 0.8 was released on 2007-04-18. Locationmaps define the mapping from requests to locations, which enables content and resources to be located at various different sources.

Help Wanted!

Apache Forrest is fairly new, and is in need of developers. If you know (or want to learn) any of XML, Ant, HTML, XSLT, or CSS, then you are qualified to help.

As with all Apache projects, Forrest is a meritocracy; the more you put in, the more you get to define the project's future. See the "contributing" page for more information.