blob: 6fcd1e939c351763d81aa680f890ff1c9bdb280c [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
<document>
<header>
<title>Welcome to the org.apache.forrest.plugin.input.doap Plugin</title>
</header>
<body>
<section id="overview">
<title>Apache Forrest - org.apache.forrest.plugin.input.doap Plugin</title>
<p>
Renders DOAP files in a human readable form, provides various indexes of
DOAP collections and allows the extraction of contact details from a set
of DOAP files.
</p>
</section>
<section>
<title>Project Details</title>
<p>
Project details are generated from a project descriptor file. This file
can be in any of the following formats:
</p>
<ul>
<li>DOAP</li>
<li>DOAP over ATOM</li>
</ul>
<note>
We need your help in adding more formats.
</note>
<p>
The location of this descriptor file is specified in the locationmap
with the hint <code>doap.descriptor</code>. This defaults to a file
called doap.xml in the root of your project's content directory. To place
your descriptor in a different location simply add a matcher like that
shown below in your project locationmap file.
</p>
<source>
<![CDATA[
<match pattern="doap.descriptor.projectDetails">
<location src="[path/to/descriptor/file]" />
</match>
]]>
</source>
<p>
To retrieve the project DOAP file in its raw form request the file
<code>/projectDetails/source.xml</code>.
</p>
<p>
To retrieve the project details page request the file
<code>/projectDetails.[FORMAT]</code>.
</p>
<section>
<title>Multiple Projects</title>
<p>
You can use the doap plugin to pull together project
information for multiple projects. For example, take a look at the
project details for <a href="projectDetails/forrest.html">Apache
Forrest</a>.
</p>
<p>
Using the locationmap you can retrieve this content from anywhere you
want, for example, the DOAP file for the Forrest project comes from
directly from SVN, thus we are always assured of it being up to date.
</p>
<p>
To retrieve the project details of another project make a request for
<code>projectDetails/[PROJECT_NAME].html</code>. For
this to work your project locationmap must have an entry like this:
</p>
<source>
<![CDATA[
<match pattern="doap.descriptor.forrest">
<location src="http://svn.apache.org/repos/asf/forrest/trunk/site-author/content/doap.xml"/>
</match>
]]>
</source>
<warning>
FOR-910 "project DOAP file retrieved numerous times during docs
generation" so use a local copy instead.
</warning>
<p>
Of course, if you have a central location for all your project
descriptor files you could use a match like this:
</p>
<source>
<![CDATA[
<match pattern="doap.descriptor.*">
<location src="path_to_descriptors/{1}.xml"/>
</match>
]]>
</source>
<warning>
The indexing of projects (described below) does not currently work
with wildcard matchers in the locationmap.
</warning>
</section>
<section>
<title>Project Indexes</title>
<p>
The system will automatically create an index of projects from your
projects locationmap file. For example, the "Projects" section of the
navigation on the left is automatically generated.
</p>
<note>
There is considerable repetition in the indexes in this demo. The
intention is to show the range of indexes that can be created. You
should select the most suitable for your individual project.
</note>
<warning>
The indexes to be included in your site navigation only work correctly
when generating a static site. You should only use page based indexes
for dynamic sites.
</warning>
</section>
<section>
<title>Contact Lists</title>
<p>You can extract a comma separated list of contact details contained
in the collection of DOAP files by requesting
<a href="projectDetails/contacts.csv">projectDetails/contacts.csv</a>.</p>
</section>
<section>
<title>Categories</title>
<warning>This functionality is alpha quality and may change in the near future.
In fact this was written by someone (me) who knows very little of RDF and currently
has no network access or texts to inform this implementation. It is very likely there
is a much better way to do this in the RDF world, I've tried, as much as possible,
to make it possible to refactor this code when I'm more informed about how to do
this. Use at your own risk, or better still, tell us how to improve it.</warning>
<p>Projects can be assigned to one or more categories using the <code>doap:category</code>
element. We recommend the use of an <code>rdf:resource</code> attribute to
identify the category the project applies to. But what value should be given
to the <code>rdf:resource</code> attribute?</p>
<p>At present we are using the categories defined by the Apache Software
Foundation. In the future we are likely to use the JISC standards catalogue
as well.</p>
<fixme author="rdg">Add links to previous para</fixme>
<p>When rendering the category this plugin will attempt to resolve a proper name
for the category. First, it will look in the <code>categoriesDefinitions.xml</code>
file contained within this plugin. If no match is found in there it will look for
a <code>dc:title</code> attribute in the doap file itself. If no such attribute is
found it will use the value of <code>rdf:resource</code> attribute.</p>
</section>
</section>
<section>
<title>Dispatcher</title>
<p>
The DOAP plugin provides dispatcher templates for working with DOAP
files. For usage instructions see the docs for the
<a href="/ls.contracts.org.apache.forrest.plugin.input.doap.html">doap
templates</a>.
</p>
</section>
<section id="samples">
<title>Samples</title>
<p>
This section includes links to a number of samples using this plugin.
The plugin is intended to be self documenting through these samples. If
you require further help please ask on the user mailing list.
</p>
<section>
<title>Project Details</title>
<ul>
<li><a href="projectDetails/projectDetails.source.xml">Source XML file</a></li>
<li><a href="projectDetails/projectDetails.rdf">Source RDF file (if the source file is an RDF/XML file this will be the same as the previous example - currently only RDF/XML is supported)</a></li>
<li><a href="projectDetails/projectDetails.html">Descriptor page for this plugin</a></li>
<li><a href="projectDetails/forrest.html">Descriptor page for Forrest</a></li>
<li><a href="projectDetails/index/byLang.html">Index by language</a></li>
<li><a href="projectDetails/index/byLang/Java.html">Index by specific language (Java)</a></li>
<li><a href="projectDetails/index/byCategory.html">Index by category</a></li>
<li><a href="projectDetails/allProjects.json">JSON file for all projects</a></li>
</ul>
</section>
<section>
<title>Maintainer Details</title>
<ul>
<li><a href="projectDetails/allMaintainers.rdf">All maintainers</a> for all projects in FOAF format</li>
<li><a href="projectDetails/contacts.csv">Comma separated list of project contacts who have a recorded email address</a></li>
</ul>
</section>
<section>
<title>In Development Features</title>
<ul>
<li><a href="exhibitTest.html">Browse the catalogue using Exhibit from MIT</a></li>
<li>Record relationships between projects. This is a simple relatedTo property
and is not intended to replace detailed build information.
<warning>This feature currently uses a "relatedTo" proeprty that has been
placed in the asfext namespace. Hwoever, at the time of writing this addition
to the asfext namespace has not been approved.</warning></li>
</ul>
</section>
<note>
The more samples included here the easier it is for users to understand
this plugin. If you can provide additional samples please do so.
</note>
</section>
</body>
</document>