You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by rg...@apache.org on 2008/06/02 23:09:42 UTC
svn commit: r662565 -
/forrest/trunk/whiteboard/multipleSites/master/src/documentation/content/xdocs/index.xml
Author: rgardler
Date: Mon Jun 2 14:09:42 2008
New Revision: 662565
URL: http://svn.apache.org/viewvc?rev=662565&view=rev
Log:
Document how to make plugins work if they use a fixed URL space.
Modified:
forrest/trunk/whiteboard/multipleSites/master/src/documentation/content/xdocs/index.xml
Modified: forrest/trunk/whiteboard/multipleSites/master/src/documentation/content/xdocs/index.xml
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/multipleSites/master/src/documentation/content/xdocs/index.xml?rev=662565&r1=662564&r2=662565&view=diff
==============================================================================
--- forrest/trunk/whiteboard/multipleSites/master/src/documentation/content/xdocs/index.xml (original)
+++ forrest/trunk/whiteboard/multipleSites/master/src/documentation/content/xdocs/index.xml Mon Jun 2 14:09:42 2008
@@ -247,6 +247,77 @@
</section>
<section>
+ <title>Enabling Plugins</title>
+
+ <p>Most plugins will work without any further configuration. However,
+ some plugins use a specific URL space to indicate a required
+ processing step. For example, the projectInfo plugin uses
+ <code>**/docs/**/*</code> for its use case processing. In these
+ instances you will need to add matches to your locationmap.</p>
+
+ <p>It is outside the scope of this document to document all
+ plugins here. However, we will provide an example using the
+ projectInfo plugin.</p>
+
+ <p>First of all we need to examine the plugin code (or if you
+ are lucky documentation) to see what matches are used to drive
+ the processing we want. In the input.xmap we find:</p>
+
+ <source><![CDATA[
+<map:match pattern="**/docs/user/useCases/**.xml">
+ <map:generate src="cocoon:/docs/user/useCases/{1}.{2}.source.xml" />
+ <map:transform src="{lm:projectInfo.transform.useCase.document}">
+ <map:parameter name="includeImplementationNotes" value="false"/>
+ </map:transform>
+ <map:serialize type="xml-document"/>
+</map:match>
+ ]]></source>
+
+ <note>The above sitemap snippet was not present when I started
+ writing this documentation. I had to add it as the plugin had
+ not been designed to work with multiple sites. Previously the
+ pattern was limited to "docs/user/useCases/**.xml". By adding
+ the "**" prefix we allow the plugin to work with sites mounted
+ in a subdirectory.</note>
+
+ <p>The generator for "cocoon:/docs/user/useCases/{1}.{2}.source.xml"
+ is handled by the match:</p>
+
+ <source><![CDATA[
+<map:match pattern="docs/**/useCases/**.source.xml">
+ <map:generate type="file" src="{lm:project.useCases.{2}}" />
+ <map:serialize type="xml"/>
+</map:match>
+ ]]></source>
+
+ <p>So now we need to look in the locationmap for a
+ match for "{lm:project.useCases.{2}}". What we find
+ is:</p>
+
+ <source><![CDATA[
+<match pattern="project.useCases.**">
+ <location src="{properties:content}/useCases/{1}.xml" />
+</match>
+ ]]></source>
+
+ <p>We can see from the above that a request for a resource
+ at "subsite/docs/user/useCases/simpleUseCase.xml" will
+ result in a locationmap lookup for
+ "project.useCases.subsite.simpleUseCase". The default match
+ in thje projectInfo will look for that in the master site
+ useCases directory. So we need to add a locationmap match to
+ the master site that will catch the subsite matches, as
+ follows:</p>
+
+ <source><![CDATA[
+<match pattern="project.useCases.subsite.**">
+ <location src="../../../../uk.ac.osswatch.simal.core/src/documentation/content/useCases/{1}.xml" />
+</match>
+ ]]></source>
+
+ </section>
+
+ <section>
<title>Known Problems</title>
<ul>