Mailing List Archive

svn commit: r1068306 [22/22] - in /forrest/site: docs_0_100/ docs_0_100/howto/ docs_0_100/howto/cvs-ssh/ docs_0_100/howto/multi/ docs_0_100/images/ pluginDocs/plugins_0_100/ trash/ trash/docs_0_50/ trash/docs_0_70/
Added: forrest/site/pluginDocs/plugins_0_100/pluginInfrastructure.html
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_100/pluginInfrastructure.html?rev=1068306&view=auto
==============================================================================
--- forrest/site/pluginDocs/plugins_0_100/pluginInfrastructure.html (added)
+++ forrest/site/pluginDocs/plugins_0_100/pluginInfrastructure.html Tue Feb 8 09:44:46 2011
@@ -0,0 +1,515 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.10-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Plugin Infrastructure (v0.10-dev)</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://forrest.apache.org/">Apache Forrest</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp;
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="../../index.html">Welcome</a>
+</li>
+<li>
+<a class="unselected" href="../../contrib.html">Developers</a>
+</li>
+<li>
+<a class="unselected" href="../../versions/index.html">Versioned Docs</a>
+</li>
+<li class="current">
+<a class="selected" href="../../pluginDocs/index.html">Plugins</a>
+</li>
+<li>
+<a class="unselected" href="../../tools/index.html">Tools</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs">
+<a class="unselected" href="../../pluginDocs/plugins_0_90/index.html">0.90 (current)</a><a class="selected" href="../../pluginDocs/plugins_0_100/index.html">0.100-dev (under development)</a><a class="unselected" href="../../pluginDocs/plugins_0_80/index.html">0.80 (past)</a>
+</div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+ &nbsp;
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">0.100 Plugins</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../pluginDocs/plugins_0_100/index.html">Index</a>
+</div>
+<div class="menuitem">
+<a href="../../pluginDocs/plugins_0_100/usingPlugins.html">Using Plugins</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Plugin Infrastructure</div>
+</div>
+</div>
+<div id="credit">
+<hr>
+ This is documentation for development version v0.10-dev
+ (<a href="http://forrest.apache.org/pluginDocs/">More</a>)</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+<div id="credit2">
+<a href="http://www.apache.org/events/current-event.html"><img border="0" title="ApacheCon" alt="ApacheCon - logo" src="http://www.apache.org/events/current-event-125x125.png" style="width: 125px;height: 125px;"></a>
+</div>
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div class="trail">Font size:
+ &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>Plugin Infrastructure</h1>
+<div id="front-matter">
+<div id="motd-area">
+ This is documentation for development version v0.10-dev
+ (<a href="http://forrest.apache.org/pluginDocs/">More</a>)</div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#overview">Overview</a>
+</li>
+<li>
+<a href="#What+is+a+Forrest+Plugin%3F">What is a Forrest Plugin?</a>
+<ul class="minitoc">
+<li>
+<a href="#pluginTypes">Types of Plugin</a>
+<ul class="minitoc">
+<li>
+<a href="#inputPlugins">Input Plugins</a>
+</li>
+<li>
+<a href="#outputPlugins">Output Plugins</a>
+</li>
+<li>
+<a href="#internalPlugins">Internal Plugins</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Naming+Conventions">Naming Conventions</a>
+</li>
+<li>
+<a href="#An+Example+Plugin">An Example Plugin</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#What+Does+a+Forrest+Plugin+Look+Like%3F">What Does a Forrest Plugin Look Like?</a>
+<ul class="minitoc">
+<li>
+<a href="#The+IMS+Manifest+Plugin">The IMS Manifest Plugin</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#How+does+Installation+work%3F">How does Installation work?</a>
+</li>
+<li>
+<a href="#Further+Reading">Further Reading</a>
+</li>
+</ul>
+</div>
+</div>
+
+<a name="overview"></a>
+<h2 class="underlined_10">Overview</h2>
+<div class="section">
+<p>
+ Forrest can be extended with the addition of plugins. This document
+ describes what a plugin is and outlines the plugin infrastructure so
+ that you can start building your own Forrest extensions.
+ </p>
+</div>
+
+<a name="What+is+a+Forrest+Plugin%3F"></a>
+<h2 class="underlined_10">What is a Forrest Plugin?</h2>
+<div class="section">
+<p>
+ A Forrest plugin is a set of resources and configuration files that
+ extend the functionality of Forrest. They will typically consist of a
+ sitemap, zero or more stylesheets and zero or more schemas.
+ </p>
+<p>
+ The plugins sitemap is mounted by Forrest's sitemap after the project
+ specific sitemap but before the Forrest default matchers. This allows a
+ plugin to override/extend default Forrest behaviour. By adopting a
+ plugin model we can keep the core of Forrest tightly focused on the
+ basic functionality, whilst still facilitating extensions to suit
+ individual projects needs.
+ </p>
+<a name="pluginTypes"></a>
+<h3 class="underlined_5">Types of Plugin</h3>
+<p>
+ There are three types of plugin, <span class="codefrag">input</span>,
+ <span class="codefrag">output</span> and <span class="codefrag">internal</span>. Each plugin has a
+ specific role to play and extends a different part of Forrest:
+ </p>
+<pre class="code">
+ internal plugins
+ (site.xml, abs-linkmap etc.)
+ |
+ \|/
+ .
+ input format --&gt; intermediate format --&gt; output format
+ . .
+ /|\ /|\
+ | |
+ input plugin output plugin
+ (**.xml) (**.html, **.pdf etc.)
+</pre>
+<a name="inputPlugins"></a>
+<h4>Input Plugins</h4>
+<p>
+ Input plugins provide a new source format. For example, the
+ OpenOffice.org plugin extends Forrest to allow the use of
+ OpenOffice.org Application file formats.
+ </p>
+<p>
+ An input plugin provides an <span class="codefrag">input.xmap</span> file. This
+ provides the source matchers (i.e. **.xml), it is mounted in
+ forrest.xmap before the default forrest **.xml behaviour and
+ therefore can override that default behaviour but it will not
+ interfere with any internal Forrest infrastructure matches, or any
+ other plugins infrastructure matches.
+ </p>
+<p>
+ An input plugin may also provide a <span class="codefrag">resources.xmap</span> file.
+ This can be used to match additional resources that are not stored
+ in XML files, for example, javascript files.
+ </p>
+<a name="outputPlugins"></a>
+<h4>Output Plugins</h4>
+<p>
+ Output plugins provide a new output format. For example, the s5
+ plugin extends Forrest to produce HTML slides from Forrest
+ documents.
+ </p>
+<p>
+ An output plugin provides an <span class="codefrag">output.xmap</span> file. This
+ provides the relevant output matchers (i.e. **.html, **.pdf,
+ **.slides), it is mounted before any of the default matchers for
+ Forrest and so can override this default behaviour.
+ </p>
+<a name="internalPlugins"></a>
+<h4>Internal Plugins</h4>
+<p>
+ Internal plugins are for advanced use only. They provide ways of
+ extending or overriding Forrest's internal operations. For example,
+ the IMSManifest plugin allows Forrest projects to use an IMS
+ Manifest file instead of a site.xml and tabs.xml configuration
+ files.
+ </p>
+<p>
+ Internal plugins provide an <span class="codefrag">internal.xmap</span> file. This
+ provides the infrastructure matchers (i.e. site.xml, faq.xml,
+ issues.xml), and will be mounted before *any* of the Forrest
+ matches. This sitemap can override any behaviour within Forrest and
+ so developers of these plugins must be especially careful with the
+ construction of their matchers, since they will be processed before
+ any other matchers and consequently can easily break existing
+ functionality. You must only do a &lt;map:generate ...&gt; if you
+ are certain you are going to process the full result.
+ </p>
+<a name="Naming+Conventions"></a>
+<h3 class="underlined_5">Naming Conventions</h3>
+<p>
+ Technically you can name a plugin anything you like with one small
+ restriction (see below). However, we do have some naming conventions
+ that we recomend you follow. This is to minimise the chances of
+ collision between plugins from different developers.
+ </p>
+<p>
+ The name should be structured like a java package name, and should
+ include a relevant reverse domain name. For example:
+ </p>
+<pre class="code">org.apache.forrest.plugin.PLUGIN_TYPE.PLUGIN_NAME</pre>
+<pre class="code">net.sf.forrestPlugins.PLUGIN_TYPE.PLUGIN_NAME</pre>
+<p>
+ Where <span class="codefrag">PLUGIN_TYPE</span> is either "internal", "input" or
+ "output" and <span class="codefrag">PLUGIN_NAME"</span> is a suitable name chosen by
+ yourself.
+ </p>
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content">
+ Plugin names cannot have a '-' character in them. This character is
+ used to indicate the start of a version number when defining a plugin
+ to be used. See <a href="../../pluginDocs/plugins_0_100/usingPlugins.html">Using Plugins</a> for
+ more information.
+ </div>
+</div>
+<a name="An+Example+Plugin"></a>
+<h3 class="underlined_5">An Example Plugin</h3>
+<p>
+ In order to fully understand the applicability of Forrest Plugins we
+ will consider an extension to the way in which Forrest defines the
+ structure of the site. By default Forrest uses a site.xml file to
+ define navigation through the site and a tabs.xml file to define the
+ tabs across the top of the page. But what if we want to use a
+ different file to describe site structure? For example, what if we
+ want to use an IMS Manifest file from the SCORM content package
+ standards (http://www.adlnet.org/).
+ </p>
+<p>
+ An IMS Manifest file describes the structure of a site. It is also
+ possible to define a set of rules for extracting tab information from
+ such a file. Consequently, it is possible to use an IMSManifest file
+ to create Forrest's site.xml and tabs.xml files. The advantage would
+ be that we can then use SCORM compliant content objects within
+ Forrest.
+ </p>
+<p>
+ Unfortunately, IMS Manifests are much more complex than site.xml and
+ tabs.xml files. Therefore, not all users will want to use them. Adding
+ the functionality as an optional plugin seems to be the ideal
+ solution.
+ </p>
+</div>
+
+<a name="What+Does+a+Forrest+Plugin+Look+Like%3F"></a>
+<h2 class="underlined_10">What Does a Forrest Plugin Look Like?</h2>
+<div class="section">
+<p>
+ Plugins will need to conform to a specified directory structure. This
+ mirrors the default forrest directory structure:
+ </p>
+<pre class="code">
+[plugin_name]
+ |
+ |-- plugin control files (xmap etc.)
+ |
+ |-- conf
+ | |
+ | `-- cocoon and component config files (e.g. *.xconf, jtidy)
+ |
+ |-- resources
+ |
+ |-- schema
+ | |
+ | |-- catalog.xcat
+ | |
+ | `-- dtd (DTDs etc.)
+ |
+ `-- stylesheets (XSLs etc.)
+</pre>
+<a name="The+IMS+Manifest+Plugin"></a>
+<h3 class="underlined_5">The IMS Manifest Plugin</h3>
+<p>
+ If we consider the IMS Manifest Plugin described above, we see that we
+ will need the following files and directory structure:
+ </p>
+<pre class="code">
+org.apache.forrest.plugin.internal.IMSManifest
+ |
+ |-- sitemap.xmap
+ |
+ |-- resources
+ |
+ |-- stylesheets
+ |
+ |- imsmanifest2site.xsl
+ |- imsmanifest2tabs.xsl
+ |- pathutils.xsl
+ |- repositoryUtils.xsl
+</pre>
+<p>
+ The sitemap.xmap file will override the default behaviour for the
+ navigation generation matchers in Forrest, for example, it contains a
+ matcher as follows:
+ </p>
+<pre class="code">
+
+&lt;map:match pattern="abs-menulinks"&gt;
+ &lt;map:select type="exists"&gt;
+ &lt;map:when test="{properties:content.xdocs}imsmanifest.xml"&gt;
+ &lt;map:generate src="{properties:content.xdocs}imsmanifest.xml" /&gt;
+ &lt;map:transform src="resources/stylesheets/imsmanifest2site.xsl"/&gt;
+ &lt;map:transform src="{forrest:forrest.stylesheets}/absolutize-linkmap.xsl" /&gt;
+ &lt;map:transform src="{forrest:forrest.stylesheets}/site2site-normalizetabs.xsl" /&gt;
+ &lt;map:serialize type="xml"/&gt;
+ &lt;/map:when&gt;
+ &lt;map:when test="{properties:content.xdocs}site.xml"&gt;
+ &lt;map:generate src="{properties:content.xdocs}site.xml" /&gt;
+ &lt;map:transform src="{forrest:forrest.stylesheets}/absolutize-linkmap.xsl" /&gt;
+ &lt;map:transform src="{forrest:forrest.stylesheets}/site2site-normalizetabs.xsl" /&gt;
+ &lt;map:transform src="{forrest:forrest.stylesheets}/normalizehrefs.xsl"/&gt;
+ &lt;map:serialize type="xml"/&gt;
+ &lt;/map:when&gt;
+ &lt;/map:select&gt;
+&lt;/map:match&gt;
+
+ </pre>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ Note that this matcher will default to the behaviour provided by
+ Forrest if there is no imsmanifest.xml file present in the project. At
+ present it is necessary to copy this default behaviour from the
+ original Forrest *.xmap files. We hope to improve on this in the
+ future.
+ </div>
+</div>
+</div>
+
+<a name="How+does+Installation+work%3F"></a>
+<h2 class="underlined_10">How does Installation work?</h2>
+<div class="section">
+<p>
+ See the <a href="../../pluginDocs/plugins_0_100/usingPlugins.html">Using Plugins</a> for an overview
+ of how the plugin installation system works and the places and order
+ that will be searched.
+ </p>
+<p>
+ When Forrest installs a plugin it downloads a zip of the plugin code and
+ extracts it into the <span class="codefrag">plugins</span> directory of Forrest and an
+ entry is made in a temporary sitemap that manages plugins for your
+ content object. For example, installing the IMSManifest plugin described
+ above will result in the following entry being added to the this
+ temporary sitemap:
+ </p>
+<pre class="code">
+
+&lt;map:select type="exists"&gt;
+ &lt;map:when test="output.xmap"&gt;
+ &lt;map:mount uri-prefix=""
+ src="sitemap.xmap"
+ check-reload="yes"
+ pass-through="true"/&gt;
+ &lt;/map:when&gt;
+&lt;/map:select&gt;
+
+ </pre>
+<p>
+ To be more accurate, the entries are made in one of three temporary
+ sitemaps, input.xmap, output.xmap and resources.xmap. These temporary
+ sitemaps are rebuilt each time the content object is built or run, thus
+ we are always guarenteed of having the right plugins installed.
+ </p>
+</div>
+
+<a name="Further+Reading"></a>
+<h2 class="underlined_10">Further Reading</h2>
+<div class="section">
+<p>
+ If you want to build a plugin you might like to start with our
+ <a href="../../docs_0_100/howto/howto-buildPlugin.html">HowTo on Building Plugins</a>.
+ </p>
+</div>
+
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright &copy;
+ 2002-2011 <a href="http://www.apache.org/licenses/">The Apache Software Foundation. Licensed under Apache License 2.0</a>
+<br>
+ Apache Forrest, Forrest, Apache, the Apache feather logo, and the Apache Forrest
+ logos are trademarks of The Apache Software Foundation.
+ </div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>

Propchange: forrest/site/pluginDocs/plugins_0_100/pluginInfrastructure.html
------------------------------------------------------------------------------
svn:eol-style = native

Added: forrest/site/pluginDocs/plugins_0_100/usingPlugins.html
URL: http://svn.apache.org/viewvc/forrest/site/pluginDocs/plugins_0_100/usingPlugins.html?rev=1068306&view=auto
==============================================================================
--- forrest/site/pluginDocs/plugins_0_100/usingPlugins.html (added)
+++ forrest/site/pluginDocs/plugins_0_100/usingPlugins.html Tue Feb 8 09:44:46 2011
@@ -0,0 +1,533 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.10-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Extending Forrest with Plugins (v0.10-dev)</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://forrest.apache.org/">Apache Forrest</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp;
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="../../index.html">Welcome</a>
+</li>
+<li>
+<a class="unselected" href="../../contrib.html">Developers</a>
+</li>
+<li>
+<a class="unselected" href="../../versions/index.html">Versioned Docs</a>
+</li>
+<li class="current">
+<a class="selected" href="../../pluginDocs/index.html">Plugins</a>
+</li>
+<li>
+<a class="unselected" href="../../tools/index.html">Tools</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs">
+<a class="unselected" href="../../pluginDocs/plugins_0_90/index.html">0.90 (current)</a><a class="selected" href="../../pluginDocs/plugins_0_100/index.html">0.100-dev (under development)</a><a class="unselected" href="../../pluginDocs/plugins_0_80/index.html">0.80 (past)</a>
+</div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+ &nbsp;
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">0.100 Plugins</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../pluginDocs/plugins_0_100/index.html">Index</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Using Plugins</div>
+</div>
+<div class="menuitem">
+<a href="../../pluginDocs/plugins_0_100/pluginInfrastructure.html">Plugin Infrastructure</a>
+</div>
+</div>
+<div id="credit">
+<hr>
+ This is documentation for development version v0.10-dev
+ (<a href="http://forrest.apache.org/pluginDocs/">More</a>)</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+<div id="credit2">
+<a href="http://www.apache.org/events/current-event.html"><img border="0" title="ApacheCon" alt="ApacheCon - logo" src="http://www.apache.org/events/current-event-125x125.png" style="width: 125px;height: 125px;"></a>
+</div>
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div class="trail">Font size:
+ &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>Extending Forrest with Plugins</h1>
+<div id="front-matter">
+<div id="motd-area">
+ This is documentation for development version v0.10-dev
+ (<a href="http://forrest.apache.org/pluginDocs/">More</a>)</div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#overview">Overview</a>
+<ul class="minitoc">
+<li>
+<a href="#available">What plugins are available?</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#install">How is a Plugin Installed?</a>
+<ul class="minitoc">
+<li>
+<a href="#required">List of Plugins Needed by the Project</a>
+</li>
+<li>
+<a href="#version">What Version of Plugins will be used ?</a>
+</li>
+<li>
+<a href="#sources">Where does Forrest look for Plugins sources?</a>
+<ul class="minitoc">
+<li>
+<a href="#Overview">Overview</a>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+<a href="#local-deploy">Editing plugins sources to enhance functionality</a>
+</li>
+<li>
+<a href="#no-plugins">Upgrading from a Version of Forrest Without Plugins</a>
+</li>
+<li>
+<a href="#conflict">Avoiding Plugin Conflicts</a>
+</li>
+<li>
+<a href="#more">Further Reading</a>
+</li>
+</ul>
+</div>
+</div>
+
+<a name="overview"></a>
+<h2 class="underlined_10">Overview</h2>
+<div class="section">
+<p>
+ Forrest provides the core functionality for generating documentation in
+ various output formats from a range of input formats. However, it does
+ not end there. Forrest can be extended through the addition of plugins.
+ This document serves as an introduction to the Forrest plugin mechanism.
+ </p>
+<a name="available"></a>
+<h3 class="underlined_5">What plugins are available?</h3>
+<p>
+ You can run the command <span class="codefrag">forrest available-plugins</span> to get
+ a list of the known plugins for Forrest.
+ </p>
+<p>
+ If you would like to have your own plugin added to this list then
+ contact the <a href="../../mail-lists.html">developer mailing list</a>.
+ </p>
+</div>
+
+<a name="install"></a>
+<h2 class="underlined_10">How is a Plugin Installed?</h2>
+<div class="section">
+<a name="required"></a>
+<h3 class="underlined_5">List of Plugins Needed by the Project</h3>
+<p>
+ If a site requires one or more plugins then the site designer will
+ have to list them in the <span class="codefrag">project.required.plugins</span>
+ property in the projects <span class="codefrag">forrest.properties</span> file. When
+ Forrest builds the site it will automatically discover the plugins and
+ install them. In otherwords, the user needs do nothing.
+ </p>
+<p>
+ For example,
+ </p>
+<pre class="code">
+project.required.plugins=org.apache.forrest.plugin.output.pdf,
+ org.apache.forrest.plugin.input.simplifiedDocbook</pre>
+<p>
+ (note that that is all in one line with no spaces)
+ will cause Forrest to load the plugins called
+ "org.apache.forrest.plugin.output.pdf" and
+ "org.apache.forrest.plugin.input.simplifiedDocbook".
+ </p>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ By default a new forrest project has that property configured to
+ include some plugins. Currently there is only one to generate PDF
+ output from your source documents.
+ </div>
+</div>
+<a name="version"></a>
+<h3 class="underlined_5">What Version of Plugins will be used ?</h3>
+<p>
+ In the absence of a version number for the plugin (as is the case in
+ the example above) the most recent version that is applicabe to your
+ release of Forrest will be used. This may result in unexpected
+ behaviour if a new version of the plugin has been released that is
+ incompatible with your current site. To force Forrest into using a
+ specific version of a plugin you should add "-VERSION_NUMBER" to the
+ end of the plugin name. For example, to force forrest to use the version 0.2
+ of the "output.pdf" plugin you would use
+ <span class="codefrag">org.apache.forrest.plugin.output.pdf-0.2</span>. If
+ you define a version of the plugin that does not exist then it will
+ fall back to using the most recent version available. This feature is
+ useful when developing a new site as you can quickly force a plugin
+ upgrade by deleting all installed plugins (use the command 'ant
+ cleanPlugins'). However, this might result in the installation of an
+ in-development plugin, therefore in a production environment you
+ should always specify a known working version.
+ </p>
+<a name="sources"></a>
+<h3 class="underlined_5">Where does Forrest look for Plugins sources?</h3>
+<a name="Overview"></a>
+<h4>Overview</h4>
+<p>
+ This is fairly complex, so here is a simple overview. If you want to
+ know the details you need to read the rest of this section. For most
+ people this overview will be sufficient.
+ </p>
+<p>
+ Forrest will try and retrieve a plugin from local source files
+ first, if that fails it will look on a remote distribution server.
+ Once it finds a copy of the plugin it will deploy it to the local
+ Forrest instance and use it from there.
+ </p>
+<p>
+ The local directories that will be searched are defined in the
+ <span class="codefrag">project.required.plugins.src</span> property, which is defined
+ in the <span class="codefrag">forrest.properties</span> file. By default this is set
+ to
+ <span class="codefrag">${forrest.home}/plugins,${forrest.home}/whiteboard/plugins</span>,
+ which means that these two directories will be searched for plugins.
+ </p>
+<p>
+ If you have a collection of local plugins the directory in which they are located
+ must be added this property. For example, if your local plugins are in <span class="codefrag">/export/forrest_plugins</span>
+ this property should be something like:
+ <span class="codefrag">project.required.plugins.src=${forrest.home}/plugins,${forrest.home}/whiteboard/plugins,/export/forrest_plugins</span>
+
+</p>
+<p>
+ You can add this line to your projects
+ <span class="codefrag">forrest.properties</span> file. However, it may be more
+ convenient to add it to a <span class="codefrag">forrest.properties</span> file in
+ your users home directory.
+ </p>
+<p>
+ Forrest uses a fall back mecanism to find the plugins to install for a
+ project.
+ </p>
+<p>
+ For an unversionned plugin, Forrest tries to get it from :
+ </p>
+<ol>
+
+<li>different local sources directories (<span class="codefrag">project.required.plugins.src</span> property)</li>
+
+<li>if not found : the remote site in the forrest version directory</li>
+
+<li>if not found : the remote site (with no forrest version directory)</li>
+
+</ol>
+<p>
+ For a versionned plugin, Forrest tries to get :
+ </p>
+<ol>
+
+<li>the versionned plugin from different local sources directories (<span class="codefrag">project.required.plugins.src</span> property)</li>
+
+<li>if not found : the versionned plugin from the remote site in the forrest version directory</li>
+
+<li>if not found : the unversionned plugin in different local sources directory (<span class="codefrag">project.required.plugins.src</span> property again)</li>
+
+<li>if not found : the unversionned plugin from the remote site in the forrest version directory</li>
+
+<li>if not found : the remote site (with no forrest version directory)</li>
+
+</ol>
+<p>
+ By default, forrest looks into the two following directories to find
+ plugins sources : <span class="codefrag">${forrest.home}/plugins</span> and
+ <span class="codefrag">${forrest.home}/whiteboard/plugins</span>. It is possible to add
+ other sources locations by specifying the
+ <span class="codefrag">project.required.plugins.src</span> property in the projects
+ <span class="codefrag">forrest.properties</span> file.
+ </p>
+<p>
+ For example,
+ </p>
+<pre class="code">project.required.plugins.src=${forrest.home}/plugins,${forrest.home}/whiteboard/plugins,/export/forrest_plugins</pre>
+<p>
+ will add the project specific directory
+ <span class="codefrag">${project.home}/plugins</span> to the list of directories to
+ search in.
+ </p>
+<p>
+ If sources are not found, forrest will try to get them from the Web.
+ Forrest <em>knows</em> the plugins description with plugins
+ descriptors files in which plugins are described as follows :
+ </p>
+<pre class="code">
+&lt;plugin name="org.apache.forrest.plugin.output.pdf"
+ type="output"
+ author="Apache Forrest Project"
+ website="http://forrest.apache.org/pluginDocs/plugins_0_80/org.apache.forrest.plugin.output.pdf"
+ url="http://forrest.apache.org/plugins/"
+ version="0.2"&gt;
+ &lt;description&gt;
+ Enable Forrest documents to be output in PDF format.
+ &lt;/description&gt;
+ &lt;forrestVersion&gt;0.8&lt;/forrestVersion&gt;
+&lt;/plugin&gt;
+ </pre>
+<p>
+ The url to download the different plugins is indicated in this file.
+ </p>
+<p>
+ By default, forrest gets the two following plugins descriptors files :
+ <span class="codefrag">http://forrest.apache.org/plugins/plugins.xml</span> and
+ <span class="codefrag">http://forrest.apache.org/plugins/whiteboard-plugins.xml</span>.
+ It is possible to add other plugins descriptors files by specifying
+ the <span class="codefrag">forrest.plugins.descriptors</span> property in the projects
+ <span class="codefrag">forrest.properties</span> file.
+ </p>
+<p>
+ For example,
+ </p>
+<pre class="code">forrest.plugins.descriptors=http://forrest.apache.org/plugins/plugins.xml,http://forrest.apache.org/plugins/whiteboard-plugins.xml,file:///${project.home}/plugins/plugins.xml</pre>
+<p>
+ will add the project specific plugins descriptors file
+ <span class="codefrag">file:///${project.home}/plugins/plugins.xml</span> to the list
+ of descriptors.
+ </p>
+</div>
+
+<a name="local-deploy"></a>
+<h2 class="underlined_10">Editing plugins sources to enhance functionality</h2>
+<div class="section">
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ Of course, developers would need the sources. They are available via
+ <a href="../../docs_0_100/howto/../build.html">SVN</a>. Alternatively, see your
+ $FORREST_HOME/build/plugins/ directory. Copy them somewhere for your
+ development and set the project.required.plugins.src property as described
+ above. The SVN method is preferred.
+ </div>
+</div>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ Until issue
+ <a href="http://issues.apache.org/jira/browse/FOR-388">FOR-388</a> is
+ fixed to enable the use of plugins in-place, any change to sources
+ requires you to either restart forrest or to manually deploy the plugin
+ locally with "ant local-deploy". See Further reading for "How to build a
+ Plugin". It is worth noting that if your changes are to Java files you
+ will always have to restart Forrest to ensure the class loader loads
+ your new classes.
+ </div>
+</div>
+<p>
+ If you need to add specific behaviour to an existing plugin, you should
+ first consider whether your changes will be of use to all users of the
+ plugin or not. If they are of general use then you can edit the plugin
+ source files in their original location (i.e. not in the build
+ directory). Once you have completed your changes please
+ <a href="../../contrib.html#patch">prepare a patch and submit it for
+ inclusion</a> in code base.
+ </p>
+<p>
+ If your changes are specific to your own use of the plugin you can
+ create a local copy of the plugin for this. However, we strongly advise
+ against this since you will need to manually update your plugin each
+ time a new release of the original is made. In the vast majority of
+ cases local enhancements to a plugin wil be of use to the wider
+ communtiy. Please donate back to the project and help keep it vibrant
+ and useful. See the Further Reading section at the end of this document
+ for links to documents with more information.
+ </p>
+</div>
+
+<a name="no-plugins"></a>
+<h2 class="underlined_10">Upgrading from a Version of Forrest Without Plugins</h2>
+<div class="section">
+<p>
+ The plugin functionality was introduced in version 0.7 of Forrest. At
+ this time some of the functionality previously in Forrest was extracted
+ into a plugin. However, we have not broken backward compatability with
+ earlier versions. In the absence of a
+ <span class="codefrag">project.required.plugins</span> property in the projects
+ <span class="codefrag">forrest.properties</span> file all plugins that contain
+ functionality previously part of Forrest itself will be loaded
+ automatically. Unless you intend to use new functionality provided by a
+ plugin you will not need to make any changes to your project.
+ </p>
+<p>
+ If you do require additional plugin functionality, be sure to include
+ all required plugins in the <span class="codefrag">project.required.plugins</span>
+ property in the project's <span class="codefrag">forrest.properties</span>. You can view
+ <span class="codefrag">main/webapp/default-forrest.properties</span> to see the names of
+ plugins that provide previously core functionality.
+ </p>
+<p>
+ It is also worth noting that there is a small performance improvement if
+ you remove plugins that are not in use. Therefore, if you do not use one
+ or more of the plugins named in the
+ <span class="codefrag">project.required.plugins</span> property of
+ <span class="codefrag">main/webapp/default-forrest.properties</span> it is recomended
+ that you override this value in your project's
+ <span class="codefrag">forrest.properties</span> file.
+ </p>
+</div>
+
+<a name="conflict"></a>
+<h2 class="underlined_10">Avoiding Plugin Conflicts</h2>
+<div class="section">
+<p>
+ Clashes between plugins can occur. For example, the simplified-docbook
+ and full docbook plugins may try and process the same files. In this
+ instance the one that is mounted first will take precedence. Plugins are
+ mounted in the order they appear in the
+ <span class="codefrag">project.required.plugins</span> property, therefore the mounting
+ order and therefore processing precedence is under user control.
+ </p>
+</div>
+
+<a name="more"></a>
+<h2 class="underlined_10">Further Reading</h2>
+<div class="section">
+<ul>
+
+<li>
+<a href="../../pluginDocs/plugins_0_100/pluginInfrastructure.html">Plugin Infrastructure</a>
+</li>
+
+<li>
+<a href="../../docs_0_100/howto/howto-buildPlugin.html">How to build a Plugin</a>
+</li>
+
+</ul>
+</div>
+
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright &copy;
+ 2002-2011 <a href="http://www.apache.org/licenses/">The Apache Software Foundation. Licensed under Apache License 2.0</a>
+<br>
+ Apache Forrest, Forrest, Apache, the Apache feather logo, and the Apache Forrest
+ logos are trademarks of The Apache Software Foundation.
+ </div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>

Propchange: forrest/site/pluginDocs/plugins_0_100/usingPlugins.html
------------------------------------------------------------------------------
svn:eol-style = native

Added: forrest/site/trash/docs_0_50/upgrading_05.html
URL: http://svn.apache.org/viewvc/forrest/site/trash/docs_0_50/upgrading_05.html?rev=1068306&view=auto
==============================================================================
--- forrest/site/trash/docs_0_50/upgrading_05.html (added)
+++ forrest/site/trash/docs_0_50/upgrading_05.html Tue Feb 8 09:44:46 2011
@@ -0,0 +1,530 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.10-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Upgrading to Forrest 0.5</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://forrest.apache.org/">Apache Forrest</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp;
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li class="current">
+<a class="selected" href="../../index.html">Welcome</a>
+</li>
+<li>
+<a class="unselected" href="../../contrib.html">Developers</a>
+</li>
+<li>
+<a class="unselected" href="../../versions/index.html">Versioned Docs</a>
+</li>
+<li>
+<a class="unselected" href="../../pluginDocs/index.html">Plugins</a>
+</li>
+<li>
+<a class="unselected" href="../../tools/index.html">Tools</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs"></div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+ &nbsp;
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', '../../skin/')" id="menu_1.1Title" class="menutitle">About</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../index.html" title="Welcome and introduction">About Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../linkmap.html" title="Table of Contents for all Forrest documentation">Documentation ToC</a>
+</div>
+<div class="menuitem">
+<a href="http://forrest.apache.org/mirrors.cgi" title="Download a release from your nearest mirror or get the latest from SVN">Download</a>
+</div>
+<div class="menuitem">
+<a href="../../mail-lists.html" title="Discussion mail lists are the heart of the project: dev, user, svn">Mail lists and discussion</a>
+</div>
+<div class="menuitem">
+<a href="../../license.html" title="Notes and FAQs about the licensing">License</a>
+</div>
+<div class="menuitem">
+<a href="../../forrest-contract.html" title="What each party can expect">Our contract</a>
+</div>
+<div class="menuitem">
+<a href="../../compliance.html" title="Declare the status of HTML, WAI, CSS compliance">Standards compliance</a>
+</div>
+<div class="menuitem">
+<a href="../../forrest-issues.html" title="List of currently open issues">Open issues</a>
+</div>
+<div class="menuitem">
+<a href="../../who.html" title="Explain who is involved">Who we are</a>
+</div>
+<div class="menuitem">
+<a href="../../flyer.html" title="One-page description">Flyer</a>
+</div>
+<div class="menuitem">
+<a href="../../live-sites.html" title="Some sites created using Apache Forrest technology">Example sites</a>
+</div>
+<div class="menuitem">
+<a href="../../thanks.html" title="Acknowledgment to those who have become involved">Thanks</a>
+</div>
+<div class="menuitem">
+<a href="http://www.apache.org/foundation/sponsorship.html" title="ASF Sponsorship Program">Sponsorship</a>
+</div>
+<div class="menuitem">
+<a href="http://www.apache.org/security/" title="Please report vulnerabilities via ASF Security">Security</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', '../../skin/')" id="menu_1.2Title" class="menutitle">Related projects</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://www.apache.org/">ASF</a>
+</div>
+<div class="menuitem">
+<a href="http://gump.apache.org/">Apache Gump</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/">Apache Cocoon</a>
+</div>
+<div class="menuitem">
+<a href="http://lenya.apache.org/">Apache Lenya</a>
+</div>
+<div class="menuitem">
+<a href="http://xml.apache.org/">Apache XML</a>
+</div>
+<div class="menuitem">
+<a href="http://projects.apache.org/">projects.apache.org</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+<div id="credit2">
+<a href="http://www.apache.org/events/current-event.html"><img border="0" title="ApacheCon" alt="ApacheCon - logo" src="http://www.apache.org/events/current-event-125x125.png" style="width: 125px;height: 125px;"></a>
+</div>
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div class="trail">Font size:
+ &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>Upgrading to Forrest 0.5</h1>
+<div id="front-matter">
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Introduction">Introduction</a>
+</li>
+<li>
+<a href="#New+Features">New Features</a>
+</li>
+<li>
+<a href="#Upgrading+the+sitemap">Upgrading the sitemap</a>
+</li>
+<li>
+<a href="#Version-specific+sitemaps">Version-specific sitemaps</a>
+</li>
+<li>
+<a href="#Excluding+URLs%3A+filterlinks.xsl+removed+and+cli.xconf+added">Excluding URLs: filterlinks.xsl removed and cli.xconf added</a>
+</li>
+<li>
+<a href="#Skin+invocation+changes">Skin invocation changes</a>
+</li>
+<li>
+<a href="#Upgrading+skinconf.xml">Upgrading skinconf.xml</a>
+</li>
+<li>
+<a href="#Upgrading+forrest.properties">Upgrading forrest.properties</a>
+</li>
+<li>
+<a href="#Run+a+clean+target+after+upgrade">Run a clean target after upgrade</a>
+</li>
+<li>
+<a href="#SVGs+should+omit+DOCTYPE+declarations">SVGs should omit DOCTYPE declarations</a>
+</li>
+<li>
+<a href="#To+be+continued...">To be continued...</a>
+</li>
+</ul>
+</div>
+</div>
+
+<a name="Introduction"></a>
+<h2 class="underlined_10">Introduction</h2>
+<div class="section">
+<p>
+ This page describes changes to Forrest that affect people who are
+ upgrading from 0.4 and earlier to the 0.5 version. Please post your
+ upgrade experiences to the
+ <a href="../../mail-lists.html#forrest-dev">forrest-dev mailing
+ list</a>. As more experience is gained, this document will be
+ updated.
+ </p>
+</div>
+
+<a name="New+Features"></a>
+<h2 class="underlined_10">New Features</h2>
+<div class="section">
+<p>
+ This new version includes many changes, as it as been under development
+ for seven months (in part, awaiting the Cocoon 2.1 release). The
+ following list shows some of the key new features for Forrest 0.5 (for
+ the full list of changes, see the
+ <a href="../../docs_0_100/changes.html">change log</a>).
+ </p>
+<ul>
+
+<li>Significantly faster (100% - 300%) command-line rendering</li>
+
+<li>Docbook support. The DTDs are shipped. Document types are
+ automatically detected by the sitemap and there is a basic stylesheet
+ which converts DocBook documents to intermediate forrest document-v12
+ for standard rendering. For rendering as full DocBook, see
+ <a href="../../docs_0_100/faq.html#docbook">this FAQ entry</a>.
+ </li>
+
+<li>Configuration of URLs to ignore with cli.xconf configuration.</li>
+
+<li>Skin enhancements.</li>
+
+<li>The document-v12 DTDs are added. You can still use the old
+ document-v11 DTDs if you would rather. However it is easy to upgrade
+ - just change the document type declarations in you project's xdocs
+ and run '<span class="codefrag">forrest validate-xdocs</span>'.</li>
+
+<li>Automated handling of documents in Wiki syntax. See the
+ fresh-site example which are generated when you
+ '<span class="codefrag">forrest seed</span>' a new project.</li>
+
+<li>The '<span class="codefrag">forrest backcopy</span>' target copies all
+ types of content that you may have edited under the webapp while
+ doing a '<span class="codefrag">forrest run</span>'.</li>
+
+<li>Flag for email obfuscation.</li>
+
+<li>Support for raw un-processed content. See
+ <a href="../../docs_0_100/faq.html#link_raw">this FAQ entry</a>.
+ </li>
+
+<li>Element <span class="codefrag">&lt;abstract&gt;</span> is now rendered in the
+ HTML output.</li>
+
+<li>Images scale properly in PDF output. See also
+ <a href="../../docs_0_100/faq.html#pdf_images">this FAQ entry</a>.
+ </li>
+
+<li>Configurable table-of-content depth with new 'toc' element in
+ the <span class="codefrag">skinconf.xml</span> configuration.</li>
+
+</ul>
+</div>
+
+<a name="Upgrading+the+sitemap"></a>
+<h2 class="underlined_10">Upgrading the sitemap</h2>
+<div class="section">
+<p>
+ In brief, Forrest 0.5 is <em>mostly</em> backwards-compatible for sites
+ that do not define a custom sitemap. Between 0.4 and 0.5, the Forrest
+ sitemap was completely rewritten. Instead of a single sitemap.xmap doing
+ everything, a 'driver' sitemap.xmap now delegates to a number of mounted
+ subsitemaps handling different functional areas. The new sitemap is
+ fully described in the <a href="../../docs_0_100/sitemap-ref.html">Sitemap
+ Reference</a>.
+ </p>
+<p>
+ Users that have overridden and augmented the Forrest 0.4 sitemap.xmap
+ (run '<span class="codefrag">forrest overrides</span>' to see if your project has) will
+ need to:
+ </p>
+<ol>
+
+<li>Move their overridden sitemap (<span class="codefrag">src/documentation/sitemap.xmap</span>) out the way</li>
+
+<li>Copy the new sitemap, $FORREST_HOME/context/sitemap.xmap, to <span class="codefrag">src/documentation</span>
+</li>
+
+<li>Reapply your customizations to the new sitemap.xmap. Customizations can be determined by comparing your modified
+ sitemap.xmap with
+ <a href="http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/conf/sitemap.xmap?rev=1.66&amp;only_with_tag=FORREST_04">original
+ Forrest 0.4 sitemap</a>.</li>
+
+</ol>
+</div>
+
+<a name="Version-specific+sitemaps"></a>
+<h2 class="underlined_10">Version-specific sitemaps</h2>
+<div class="section">
+<p>
+ Forrest 0.5 now supports <em>version-specific sitemaps</em>. Ie., if
+ your project's overridden sitemap is called
+ <span class="codefrag">sitemap-0.5.xmap</span>, then this sitemap will be used in
+ preference to <span class="codefrag">sitemap.xmap</span>, or any other sitemap-*.xmap
+ variants.
+ </p>
+<p>
+ So if, for example, one has:
+ </p>
+<pre class="code">
+ src/documentation/sitemap.xmap
+ src/documentation/sitemap-0.5.xmap
+ </pre>
+<p>
+ Then Forrest 0.4 will use sitemap.xmap, and Forrest 0.5 will use
+ sitemap-0.5.xmap. This means users don't need to all upgrade to 0.5 at
+ once.
+ </p>
+<p>
+ As Forrest 0.5 has been split into multiple sitemaps, this
+ version-specific behaviour is triggered for any *-0.5.xmap file. For
+ example, if one has:
+ </p>
+<pre class="code">
+ src/documentation/sitemap.xmap
+ src/documentation/forrest-0.5.xmap
+ </pre>
+<p>
+ Then Forrest 0.4 will use sitemap.xmap, and Forrest 0.5 will use
+ Forrest's own sitemap.xmap, plus the user-defined forrest-0.5.xmap file.
+ </p>
+<p>
+ The same system prevents future compatibility problems, so Forrest 0.5
+ should continue to work when future (incompatible) sitemaps are present:
+ </p>
+<pre class="code">
+ src/documentation/sitemap.xmap
+ src/documentation/sitemap-0.5.xmap
+ src/documentation/sitemap-0.6.xmap
+ src/documentation/sitemap-0.7.xmap
+ </pre>
+<div class="note">
+<div class="label">Note</div>
+<div class="content">
+ If your <span class="codefrag">forrest.properties</span> defines the
+ <span class="codefrag">forrest.validate.sitemap.{includes,excludes}</span> properties,
+ these will have to be updated to prevent validation of sitemaps from
+ unused versions. If undefined, Forrest will only validate sitemaps from
+ the current version.
+ </div>
+</div>
+</div>
+
+<a name="Excluding+URLs%3A+filterlinks.xsl+removed+and+cli.xconf+added"></a>
+<h2 class="underlined_10">Excluding URLs: filterlinks.xsl removed and cli.xconf added</h2>
+<div class="section">
+<p>
+ In Forrest 0.4 certain URLs could be excluded from command-line
+ processing by overriding and editing <span class="codefrag">filterlinks.xsl</span> and so
+ excluding the link nodes.
+ </p>
+<p>
+ Forrest 0.5 uses the re-written command-line from Cocoon 2.1.1 which,
+ apart from being much faster, <strong>does not use
+ filterlinks.xsl</strong>. Instead, patterns for command-line inclusion
+ and exclusion can be specified in cli.xconf, as described in
+ <a href="../../docs_0_100/faq.html#cli-xconf">this FAQ entry</a>. There is
+ already a default cli.xconf but you can over-ride that with your own if
+ needed by copying <span class="codefrag">resources/conf/cli.xconf</span> from the Forrest
+ distribution into your project's top-level directory.
+ </p>
+</div>
+
+<a name="Skin+invocation+changes"></a>
+<h2 class="underlined_10">Skin invocation changes</h2>
+<div class="section">
+<p>
+ Users with custom skins <em>may</em> need to update them, depending on
+ what use they make of passed-in XSLT parameters. If your custom skin
+ does not appear to work with 0.5, look in Forrest's
+ <span class="codefrag">sitemap.xmap</span> for occurrences of
+ <span class="codefrag">{forrest:forrest.skin}</span>, and check that the callee (your
+ XSLT) is expecting what the caller (the sitemap) is passing it. Forrest
+ skins can be used as a reference.
+ </p>
+</div>
+
+<a name="Upgrading+skinconf.xml"></a>
+<h2 class="underlined_10">Upgrading skinconf.xml</h2>
+<div class="section">
+<p>
+ Look at the
+ <a href="http://cvs.apache.org/viewcvs/xml-forrest/src/resources/fresh-site/src/documentation/skinconf.xml.diff?r1=1.7%3AFORREST_04&amp;r2=1.15%3AFORREST_05&amp;diff_format=h">differences
+ for the sample skinconf.xml</a> as a guide. You will need to update
+ the internal DTD and add several new elements.
+ </p>
+</div>
+
+<a name="Upgrading+forrest.properties"></a>
+<h2 class="underlined_10">Upgrading forrest.properties</h2>
+<div class="section">
+<p>
+ Look at the
+ <a href="http://cvs.apache.org/viewcvs/xml-forrest/src/resources/fresh-site/forrest.properties.diff?r1=1.20%3AFORREST_04&amp;r2=1.32%3AFORREST_05&amp;diff_format=h">differences
+ for the sample forrest.properties</a> as a guide. Note that
+ project.sitemap has changed to project.sitemap-dir and note that
+ cli.xconf now controls some settings that were previously controlled by
+ forrest.properties, such as project.start-uri
+ </p>
+</div>
+
+<a name="Run+a+clean+target+after+upgrade"></a>
+<h2 class="underlined_10">Run a clean target after upgrade</h2>
+<div class="section">
+<p>
+ To avoid any issue with old classes being loaded, run a '<span class="codefrag">forrest
+ clean</span>' just after you upgraded to this version.
+ </p>
+</div>
+
+<a name="SVGs+should+omit+DOCTYPE+declarations"></a>
+<h2 class="underlined_10">SVGs should omit DOCTYPE declarations</h2>
+<div class="section">
+<div class="fixme">
+<div class="label">Fixme (forrest-dev)</div>
+<div class="content">
+ Is this note still relevant?
+ </div>
+</div>
+<p>
+ In Forrest 0.5, sites that render SVGs may encounter
+ ClassCastExceptions:
+ </p>
+<pre class="code">
+javax.xml.transform.TransformerException: java.lang.ClassCastException
+ at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1326)
+ at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3329)
+...</pre>
+<p>
+ There appears to be a bug in Cocoon 2.1.1's SVG component where the DTD
+ associated with SVGs cannot be resolved. The workaround is to edit your
+ <span class="codefrag">src/documentation/resources/images/*.svg</span> files, and comment
+ out the <strong>&lt;!DOCTYPE ... &gt;</strong> declaration.
+ </p>
+</div>
+
+<a name="To+be+continued..."></a>
+<h2 class="underlined_10">To be continued...</h2>
+<div class="section">
+<p>
+ ..as more issues are discovered/remembered :) Please send feedback to
+ the <a href="../../mail-lists.html#forrest-dev">mailing list</a>.
+ </p>
+</div>
+
+<span class="version">
+ version 1.8</span>
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright &copy;
+ 2002-2011 <a href="http://www.apache.org/licenses/">The Apache Software Foundation. Licensed under Apache License 2.0</a>
+<br>
+ Apache Forrest, Forrest, Apache, the Apache feather logo, and the Apache Forrest
+ logos are trademarks of The Apache Software Foundation.
+ </div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>

Propchange: forrest/site/trash/docs_0_50/upgrading_05.html
------------------------------------------------------------------------------
svn:eol-style = native

Added: forrest/site/trash/docs_0_70/upgrading_07.html
URL: http://svn.apache.org/viewvc/forrest/site/trash/docs_0_70/upgrading_07.html?rev=1068306&view=auto
==============================================================================
--- forrest/site/trash/docs_0_70/upgrading_07.html (added)
+++ forrest/site/trash/docs_0_70/upgrading_07.html Tue Feb 8 09:44:46 2011
@@ -0,0 +1,439 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.10-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Upgrading to Apache Forrest 0.7</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://forrest.apache.org/">Apache Forrest</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp;
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li class="current">
+<a class="selected" href="../../index.html">Welcome</a>
+</li>
+<li>
+<a class="unselected" href="../../contrib.html">Developers</a>
+</li>
+<li>
+<a class="unselected" href="../../versions/index.html">Versioned Docs</a>
+</li>
+<li>
+<a class="unselected" href="../../pluginDocs/index.html">Plugins</a>
+</li>
+<li>
+<a class="unselected" href="../../tools/index.html">Tools</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs"></div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+ &nbsp;
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', '../../skin/')" id="menu_1.1Title" class="menutitle">About</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../index.html" title="Welcome and introduction">About Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../linkmap.html" title="Table of Contents for all Forrest documentation">Documentation ToC</a>
+</div>
+<div class="menuitem">
+<a href="http://forrest.apache.org/mirrors.cgi" title="Download a release from your nearest mirror or get the latest from SVN">Download</a>
+</div>
+<div class="menuitem">
+<a href="../../mail-lists.html" title="Discussion mail lists are the heart of the project: dev, user, svn">Mail lists and discussion</a>
+</div>
+<div class="menuitem">
+<a href="../../license.html" title="Notes and FAQs about the licensing">License</a>
+</div>
+<div class="menuitem">
+<a href="../../forrest-contract.html" title="What each party can expect">Our contract</a>
+</div>
+<div class="menuitem">
+<a href="../../compliance.html" title="Declare the status of HTML, WAI, CSS compliance">Standards compliance</a>
+</div>
+<div class="menuitem">
+<a href="../../forrest-issues.html" title="List of currently open issues">Open issues</a>
+</div>
+<div class="menuitem">
+<a href="../../who.html" title="Explain who is involved">Who we are</a>
+</div>
+<div class="menuitem">
+<a href="../../flyer.html" title="One-page description">Flyer</a>
+</div>
+<div class="menuitem">
+<a href="../../live-sites.html" title="Some sites created using Apache Forrest technology">Example sites</a>
+</div>
+<div class="menuitem">
+<a href="../../thanks.html" title="Acknowledgment to those who have become involved">Thanks</a>
+</div>
+<div class="menuitem">
+<a href="http://www.apache.org/foundation/sponsorship.html" title="ASF Sponsorship Program">Sponsorship</a>
+</div>
+<div class="menuitem">
+<a href="http://www.apache.org/security/" title="Please report vulnerabilities via ASF Security">Security</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', '../../skin/')" id="menu_1.2Title" class="menutitle">Related projects</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://www.apache.org/">ASF</a>
+</div>
+<div class="menuitem">
+<a href="http://gump.apache.org/">Apache Gump</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/">Apache Cocoon</a>
+</div>
+<div class="menuitem">
+<a href="http://lenya.apache.org/">Apache Lenya</a>
+</div>
+<div class="menuitem">
+<a href="http://xml.apache.org/">Apache XML</a>
+</div>
+<div class="menuitem">
+<a href="http://projects.apache.org/">projects.apache.org</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+<div id="credit2">
+<a href="http://www.apache.org/events/current-event.html"><img border="0" title="ApacheCon" alt="ApacheCon - logo" src="http://www.apache.org/events/current-event-125x125.png" style="width: 125px;height: 125px;"></a>
+</div>
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div class="trail">Font size:
+ &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>Upgrading to Apache Forrest 0.7</h1>
+<div id="front-matter">
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#introduction">Introduction</a>
+</li>
+<li>
+<a href="#new">New Features</a>
+</li>
+<li>
+<a href="#clean">Run a clean target after upgrade</a>
+</li>
+<li>
+<a href="#home">New location of $FORREST_HOME</a>
+</li>
+<li>
+<a href="#jdk14">Java 1.4 (or newer) is required</a>
+</li>
+<li>
+<a href="#tips">General upgrade tips</a>
+</li>
+<li>
+<a href="#plugin">Plugin architecture</a>
+</li>
+<li>
+<a href="#configure-plugin">Configure plugins</a>
+</li>
+<li>
+<a href="#raw">Including raw un-processed content</a>
+</li>
+<li>
+<a href="#To+be+continued...">To be continued...</a>
+</li>
+</ul>
+</div>
+</div>
+
+<a name="introduction"></a>
+<h2 class="underlined_10">Introduction</h2>
+<div class="section">
+<p>
+ This page describes some changes to Apache Forrest that affect people
+ who are upgrading to the 0.7 version. If you have other issues, then
+ please discuss on either the
+ <a href="../../mail-lists.html#forrest-dev">dev</a> or
+ <a href="../../mail-lists.html#forrest-user">user</a> mailing lists. As more
+ experience is gained, this document will be updated.
+ </p>
+<p>
+ (If you are upgrading from a version prior to 0.6 then you will need to
+ see the notes for the previous upgrade.)
+ </p>
+</div>
+
+<a name="new"></a>
+<h2 class="underlined_10">New Features</h2>
+<div class="section">
+<p>
+ The following list shows some of the key new features (for the full list
+ of changes, see the <a href="../../docs_0_100/changes.html">change log</a>).
+ </p>
+<ul>
+
+<li>Plugin architecture</li>
+
+<li>Java 1.4</li>
+
+</ul>
+<p>
+ As usual, do a "forrest seed site" in a new directory and compare the
+ forrest.properties and skinconf.xml with that of your project.
+ </p>
+</div>
+
+<a name="clean"></a>
+<h2 class="underlined_10">Run a clean target after upgrade</h2>
+<div class="section">
+<p>
+ Do 'forrest clean-work' in each of your projects. This also removes the
+ old Cocoon disk cache.
+ </p>
+</div>
+
+<a name="home"></a>
+<h2 class="underlined_10">New location of $FORREST_HOME</h2>
+<div class="section">
+<p>
+ $FORREST_HOME is now the top-level of the distribution. Also make sure
+ $PATH gets updated to use the new $FORREST_HOME/bin
+ </p>
+</div>
+
+<a name="jdk14"></a>
+<h2 class="underlined_10">Java 1.4 (or newer) is required</h2>
+<div class="section">
+<p>
+ Java 1.4 (or newer) is required, starting with this Forrest 0.7 version.
+ For further information, see
+ <a href="../../docs_0_100/faq.html#requirements">FAQ</a>.
+ </p>
+</div>
+
+<a name="tips"></a>
+<h2 class="underlined_10">General upgrade tips</h2>
+<div class="section">
+<p>
+ Synchronise your project's skinconf.xml and forrest.properties files.
+ </p>
+<p>
+ Take advantage of the separation of concerns. In a new workspace, create
+ a fresh '<span class="codefrag">forrest seed</span>' site, then tweak its
+ forrest.properties and skinconf.xml until it reflects your old site.
+ When it is ready, replace your project's skinconf.xml and
+ forrest.properties files. Any remaining issues would concern other
+ aspects of your configuration, such as site.xml and your actual content.
+ </p>
+</div>
+
+<a name="plugin"></a>
+<h2 class="underlined_10">Plugin architecture</h2>
+<div class="section">
+<p>
+ See <a href="../../pluginDocs/plugins_0_100/pluginInfrastructure.html">Plugin Infrastructure</a> and
+ <a href="../../pluginDocs/plugins_0_100/usingPlugins.html">Extending Forrest with Plugins</a> and for
+ developing new plugins see <a href="../../docs_0_100/howto/howto-buildPlugin.html">How
+ to Build a Plugin</a>. See the list of
+ <a href="../../pluginDocs/plugins_0_100/index.html">current plugins</a> and their
+ documentation.
+ </p>
+<p>
+ Note that other experimental plugins can be found in the
+ "whiteboard/plugins" directory.
+ </p>
+</div>
+
+<a name="configure-plugin"></a>
+<h2 class="underlined_10">Configure plugins</h2>
+<div class="section">
+<p>
+ Some functionality has been moved out of the forrest core and into
+ plugins. You will need to declare any plugins that are used by your
+ project, e.g. if you use projectInfo (status, changes, todo) and PDF
+ output, then declare the following in forrest.properties
+ </p>
+<pre class="code">
+project.required.plugins=org.apache.forrest.plugin.input.projectInfo,org.apache.forrest.plugin.output.pdf
+ </pre>
+</div>
+
+<a name="raw"></a>
+<h2 class="underlined_10">Including raw un-processed content</h2>
+<div class="section">
+<p>
+ The method for including "raw un-processed content" has changed.
+ </p>
+<p>
+ In 0.6 version, the raw content was placed in the
+ src/documentation/content/ directory and potential sub-directories. In
+ the generated site, these links would automatically function. Any linked
+ file with .html extension was not processed and not adorned with Forrest
+ skin and navigation menus.
+ </p>
+<p>
+ It was also possible to place HTML content in the xdocs directory where
+ it would be copied across if it was linked from the main content.
+ </p>
+<p>
+ In 0.7 version, any file that is linked to, needs to be placed in the
+ content/xdocs/ directory structure. Any linked file with .html extension
+ is now processed and is adorned with Forrest skin and navigation menus.
+ </p>
+<p>
+ If you you wish to emulate the behaviour of 0.6 and earlier then you
+ must add the following to your project sitemap.
+ </p>
+<pre class="code">
+&lt;map:match pattern="**.html"&gt;
+ &lt;map:select type="exists"&gt;
+ &lt;map:when test="{properties:content}{0}"&gt;
+ &lt;map:read src="{properties:content}/{0}" mime-type="text/html"/&gt;
+ &lt;!--
+ Use this instead if you want JTidy to clean up your HTML
+ &lt;map:generate type="html" src="{properties:content}/{0}" /&gt;
+ &lt;map:serialize type="html"/&gt;
+ --&gt;
+ &lt;/map:when&gt;
+ &lt;map:when test="{properties:content.xdocs}{0}"&gt;
+ &lt;map:read src="{properties:content.xdocs}/{0}" mime-type="text/html"/&gt;
+ &lt;!--
+ Use this instead if you want JTidy to clean up your HTML
+ &lt;map:generate type="html" src="{properties:content.xdocs}/{0}" /&gt;
+ &lt;map:serialize type="html"/&gt;
+ --&gt;
+ &lt;/map:when&gt;
+ &lt;/map:select&gt;
+&lt;/map:match&gt;
+ </pre>
+<p>
+ If you need to include files that are not linked to, then place them in
+ the src/documentation/content/ directories as with the 0.6 version.
+ </p>
+</div>
+
+<a name="To+be+continued..."></a>
+<h2 class="underlined_10">To be continued...</h2>
+<div class="section">
+<p>
+ ...as more issues are discovered/remembered :) Please send feedback to
+ the <a href="../../mail-lists.html#forrest-dev">mailing list</a>.
+ </p>
+</div>
+
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright &copy;
+ 2002-2011 <a href="http://www.apache.org/licenses/">The Apache Software Foundation. Licensed under Apache License 2.0</a>
+<br>
+ Apache Forrest, Forrest, Apache, the Apache feather logo, and the Apache Forrest
+ logos are trademarks of The Apache Software Foundation.
+ </div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>

Propchange: forrest/site/trash/docs_0_70/upgrading_07.html
------------------------------------------------------------------------------
svn:eol-style = native