Added: lenya/sandbox/pubs/docu/content/authoring/a1297160-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221904892.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a1297160-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221904892.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a1297160-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221904892.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a1297160-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221904892.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>AbstractUsecase</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/a1297160-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a1297160-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a1297160-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/a1297160-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221904892" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221883976"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910792341" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910765431"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781627135" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.1195221895605.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.1195221895605.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.1195221895605.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.1195221895605.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2002-2004 The Apache Software Foundation
+
+ Licensed 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>Publication Configuration</title>
+ </header>
+ <body>
+
+ <section>
+ <title>The publication.xml file</title>
+ <p>
+ The main configuration file of a publication is <code>$PUB_HOME/config/publication.xml</code>.
+ The namespace of this XML file is <code>http://apache.org/cocoon/lenya/publication/1.1</code>.
+ </p>
+ <source xml:space="preserve"><![CDATA[<publication xmlns="http://apache.org/cocoon/lenya/publication/1.1" >]]></source>
+ <p>
+ The first section contains some meta data about the publication which is
+ displayed on overview pages etc.
+ </p>
+ <source xml:space="preserve"><![CDATA[ <name>Default Publication</name>
+ <description>This publication is a best practice, getting started publication.</description>
+ <!-- the @...@ macros are evaluated by ant at build time -->
+ <version>@lenya.version@</version>
+ <lenya-version>@lenya.version@</lenya-version>
+ <lenya-revision>@lenya.revision@</lenya-revision>
+ <cocoon-version>2.1.10-dev</cocoon-version>]]></source>
+ <p>
+ In the languages section you define which content languages should be
+ supported. Exactly one language has to be identified as the default
+ language.
+ </p>
+ <!-- NOTE: The various languages need to be listed for verification and widget building -->
+ <source xml:space="preserve"><![CDATA[ <languages>
+ <language default="true">en</language>
+ <language>de</language>
+ <language>he</language>
+ <language>es</language>
+ <language>fr</language>
+ </languages>]]></source>
+ <p>
+ The following section declares service implementations which are used
+ by the publication.
+ </p>
+ <ul>
+ <li>The <code>template-instantiator</code> element references an <code>Instantiator</code> declaration in
+ <code>cocoon.xconf</code>.</li>
+ <li>The <code>path-mapper</code> element declares the <code>DocumentIdToPathMapper</code> implementation
+ which is used by this publication.</li>
+ <li>The <code>document-builder</code> element references a <code>DocumentBuilder</code> declaration in
+ <code>cocoon.xconf</code>.</li>
+ <li>The <code>site-manager</code> element references a <code>SiteManager</code> declaration in
+ <code>cocoon.xconf</code>.</li>
+ </ul>
+ <source xml:space="preserve"><![CDATA[ <template-instantiator name="default"/>
+ <path-mapper>org.apache.lenya.cms.publication.DefaultDocumentIdToPathMapper</path-mapper>
+ <document-builder name="default"/>
+ <site-manager name="tree"/>]]></source>
+
+ <p>
+ The <code>resource-types</code> section declares all resource types which are
+ used by this publication and assigns them workflow schemas. When the "Create"
+ usecase is invoked without a parameter denoting the resoure type, you can
+ present a list of all these resource types to choose from (this is the default
+ behaviour).
+ </p>
+ <source xml:space="preserve"><![CDATA[ <resource-types>
+ <resource-type name="xhtml" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="homepage" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="links" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="cforms" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="opendocument" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="resource" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="usecase" workflow="fallback://config/workflow/workflow.xml"/>
+ </resource-types>]]></source>
+
+ <p>
+ The <code>modules</code> section declares all modules which are used by this
+ publication. This is necessary to generate the menus accordingly and to access
+ the i18n messages from these modules.
+ </p>
+ <source xml:space="preserve"><![CDATA[ <modules>
+ <module name="editors"/>
+ <module name="xhtml"/>
+ <module name="links"/>
+ <module name="opendocument"/>
+ <module name="cforms"/>
+ <module name="homepage"/>
+ <module name="resource"/>
+ <module name="sitemanagement"/>
+ <module name="sitetree"/>
+ <module name="export"/>
+ <module name="workflow"/>
+ <module name="notification"/>
+ <module name="svg"/>
+ <module name="lucene"/>
+ <module name="development"/>
+ <module name="languageselector"/>
+ <module name="administration"/>
+ <module name="workflow"/>
+ </modules>]]></source>
+
+ <p>
+ The optional <code>content-dir</code> element points to the parent directory
+ of the publications <code>content</code> directory. You can use either an
+ absolute file system path, or a path relative to the web application context
+ (e.g. <code>lenya/pubs/default</code>).
+ </p>
+ <source xml:space="preserve"><![CDATA[ <content-dir src="/home/USERNAME/data/default"/>]]></source>
+ <p>
+ The optional <code>proxies</code> section contains the proxy configuration
+ of this publication. For more information see <a href="lenya-document:1f62d3f0-8731-11dc-ae46-9e7b5d14892d">Proxying</a> and the <a href="lenya-document:ff0240f0-8730-11dc-ae46-9e7b5d14892d">turorial</a>.
+ </p>
+ <p> In short the idea of the following proxy snippet in the configuration is a rewrite of links.
+ Using proxies will prefix all absolute links (starting with
+ <strong>"/"</strong>) to absoult urls (the proxy host). </p>
+ <source xml:space="preserve"><![CDATA[ <proxies>
+ <proxy area="live" ssl="true" url="https://www.host.com/ssl/default"/>
+ <proxy area="live" ssl="false" url="http://www.host.com/default"/>
+ <proxy area="authoring" ssl="true" url="https://www.host.com/lenya/default/authoring"/>
+ <proxy area="authoring" ssl="false" url="http://www.host.com/lenya/default/authoring"/>
+ </proxies>]]></source>
+ <p>Since we have the concept of areas we define the proxy per area and for the different
+ types of pages (ssl protected or not). For example if a link points to a document in the
+ live area and this document is ssl protected then it will be rewritten to
+ <code>"https://www.host.com/ssl/default{$link}"</code>. Where {$link} is the linked
+ document.</p>
+ <p>For all links that are not pointing to a document the global proxy rule in <code>cocoon.xconf/cocoon/component[@role = 'org.apache.lenya.cms.linking.GlobalProxies']</code> is applied (see <code>$LENYA_HOME/src/modules-core/linking/config/cocoon-xconf/globalproxies.xconf</code>):
+ </p>
+ <source xml:space="preserve"><![CDATA[<xconf xpath="/cocoon" unless="/cocoon/component[@role = 'org.apache.lenya.cms.linking.GlobalProxies']">
+ <component logger="lenya.proxy"
+ role="org.apache.lenya.cms.linking.GlobalProxies"
+ class="org.apache.lenya.cms.linking.impl.GlobalProxiesImpl">
+ <!--
+ <proxy ssl="false" url="http://cms.host.com/foo"/>
+ <proxy ssl="true" url="https://cms.host.com/foo"/>
+ -->
+ </component>
+ </xconf>]]></source>
+ <p>
+ For
+ example a link such as
+ <code>/modules/myModule/somePath/some.thing</code> will be rewritten to
+ <code>
+ http://cms.host.com/foo/modules/myModule/somePath/some.thing</code>
+ . In short
+ <code>"/"</code> will be replaced with {proxies/@root}.
+ </p>
+ <source xml:space="preserve"><![CDATA[</publication>]]></source>
+ </section>
+
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221895605.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221895605.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221895605.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221895605.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>Configuration</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/a26d8a20-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221895605" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221883188"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910779757" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910765509"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781630928" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.1195221902227.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.1195221902227.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.1195221902227.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.1195221902227.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2002-2004 The Apache Software Foundation
+
+ Licensed 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>Publication Templating</title>
+ </header>
+ <body>
+
+ <section>
+ <title>What is Publication Templating?</title>
+ <p>
+ Imagine you are a company or organisation with some departments which want to edit
+ their content using a Lenya-based CMS. All departments use similar publications,
+ sharing lots of functionality. The layout is based on a common corporate identity,
+ but some departments want to use their own logo or tweak the navigation menu style.
+ </p>
+ <p>
+ If all departments develop their own publications, it will be very hard to keep them
+ consistent, to add changes to all publications or to update them to a newer Lenya version.
+ This can be simplified using publication templates. You define a base (template) publication
+ which all others are derived from.
+ </p>
+
+<source xml:space="preserve">
+ +----------------------+
+ | Template Publication |
+ +----------------------+
+ |
+ +-----------------+------+---------------------+
+ | | |
+ +--------------+ +--------------+ +--------------+
+ | Department A | | Department B | ... | Department X |
+ +--------------+ +--------------+ +--------------+
+</source>
+
+ <p>Multiple layers of templates are supported.</p>
+
+<source xml:space="preserve">
+ +--------------------------------+
+ | University Website Publication |
+ +--------------------------------+
+ |
+ +-----------------+------+------------------------+
+ | | |
+ +------------+ +--------------------+ +-------------+
+ | Uni Zurich | | Harvard University | ... | UC Berkeley |
+ +------------+ +--------------------+ +-------------+
+ |
+ +----------+---+-----------+
+ | | |
+ +----------+ +-----+ +---------+
+ | Business | | Law | ... | Medical |
+ +----------+ +-----+ +---------+
+</source>
+
+ </section>
+
+ <section>
+ <title>The Concept of Publication Templating</title>
+
+ <ul>
+ <li>There is a publication <em>my-pub</em>.</li>
+ <li>It depends on a template which is called <em>template(my-pub)</em>.</li>
+ <li>When a file is requested using the templating mechanism (<code>fallback://xslt/page2xhtml.xsl</code>),
+ it is searched in a certain traversing order:
+ <ol>
+ <li>
+<code>context://lenya/pubs/my-pub/xslt/page2xhtml.xsl</code>
+</li>
+ <li>
+<code>context://lenya/pubs/template(my-pub)/xslt/page2xhtml.xsl</code>
+</li>
+ <li>
+<code>context://lenya/pubs/template(template(my-pub))/xslt/page2xhtml.xsl</code>
+</li>
+ <li>...</li>
+ <li>
+<code>context://xslt/page2xhtml.xsl</code>
+</li>
+ </ol>
+ </li>
+ </ul>
+
+ <p>
+ The publication <em>my-pub</em> is called an <strong>instance</strong> of the publication <em>template(my-pub)</em>.
+ Note that, in contrast to the fallback mechanism in Lenya 1.2, the prefix <code>lenya</code> is not used,
+ but the path is resolved relatively to the <code>context://</code> root.
+ </p>
+
+ </section>
+
+ <section>
+ <title>Declaration of a Template</title>
+ <p>The template of a publication is declared in <code>my-pub/config/publication.xml</code>:</p>
+
+<source xml:space="preserve"><![CDATA[<publication>
+ ...
+ <templates>
+ <template id="my-template"/>
+ </templates>
+ ...
+</publication>]]></source>
+ </section>
+
+ <section>
+ <title>Usage</title>
+ <p>To invoke publication templating, it is necessary to use the <code>fallback://</code>
+ protocol for all relevant files. For an XSLT stylesheet, the according pipeline looks as follows:</p>
+
+ <source xml:space="preserve"><![CDATA[<map:transform src="fallback://xslt/doctypes/doctype2xhtml.xsl">]]></source>
+ </section>
+
+ <section>
+ <title>XSLT Include and Import</title>
+ <p>
+ To leverage the publication templating concept, it is necessary to apply it to included
+ or imported stylesheets as well. Fortunately, we can make use of the <code>fallback://</code>
+ protocol in XSLT stylesheets. At the moment, this only works with Xalan which means you
+ have to use this one as the default transformer.
+ </p>
+ <source xml:space="preserve"><![CDATA[<xsl:include href="fallback://header.xsl"/>]]></source>
+ <p>
+ To simplify overriding of XSLT stylesheets, it would be useful to import the template
+ stylesheet. For this purpose, an additional template source factory could be used, which
+ skips the current publication when resolving the file:
+ </p>
+ <source xml:space="preserve"><![CDATA[<xsl:import href="template://template/xslt/common/header.xsl"/>]]></source>
+ </section>
+
+ <section>
+ <title>Sitemaps</title>
+ <p>
+ If a sitemap is loaded from a template publication, it is very important that the sitemap
+ is completely fallback-enabled. Otherwise, the source resolver will resolve sources relatively
+ to the template sitemap instead of using the overridden ones.
+ </p>
+ <p>
+ In <code>lenya/global-sitemap.xmap</code>, all publication sitemaps are mounted
+ using the fallback module, for instance
+ </p>
+ <source xml:space="preserve"><![CDATA[<!-- Enter the actual publication -->
+<map:match pattern="*/**">
+ <map:mount uri-prefix="{1}" src="{fallback:sitemap.xmap}"/>
+</map:match>]]></source>
+ </section>
+
+ <section>
+ <title>Usecases</title>
+ <p>
+ The <a href="lenya-document:9ffa4030-8730-11dc-ae46-9e7b5d14892d">usecase framework</a>
+ supports publication templating by default.
+ </p>
+ <p>
+ If you can't (or don't want to) use the usecase framework, you have to implement
+ your own usecase sitemap. The traversing order for usecase sitemaps is
+ </p>
+ <ol>
+ <li>
+<code>context://lenya/pubs/my-pub/usecase.xmap</code>
+</li>
+ <li>
+<code>context://lenya/pubs/template(my-pub)/usecase.xmap</code>
+</li>
+ <li>
+<code>context://lenya/pubs/template(template(my-pub))/usecase.xmap</code>
+</li>
+ <li>...</li>
+ <li>
+<code>context://lenya/usecase.xmap</code>
+</li>
+ </ol>
+ <p>
+ This behaviour is achieved by the usecase fallback module which is called in <code>global-sitemap.xmap</code>:
+ </p>
+<source xml:space="preserve"><![CDATA[<map:match type="usecase" pattern="*">
+ <map:mount src="{usecase-fallback:{1}}" uri-prefix=""/>
+</map:match>]]></source>
+ <p>
+ The decision which <code>usecase.xmap</code> to choose is based on the usecase configuration
+ in <code>publication.xml</code>. To declare a usecase to be implemented by a publication,
+ add the corresponding entry:
+ </p>
+<source xml:space="preserve"><![CDATA[<publication>
+ ...
+ <usecases>
+ <usecase name="create"/>
+ </usecases>
+ ...
+</publication>]]></source>
+ </section>
+
+ <section>
+ <title>Setting Up a Publication To Support Templating</title>
+
+ <p>
+ The service <code>org.apache.lenya.cms.publication.templating.Instantiator</code> is responsible for
+ creating instances of publications which support templating. If your publication shall support
+ templating, you have to follow these steps:
+ </p>
+
+ <section>
+ <title>Implement an <code>Instantiator</code> Class</title>
+
+<source xml:space="preserve"><![CDATA[package org.myproject.lenya;
+
+public class MyInstantiator extends AbstractLogEnabled implements Instantiator {
+
+ public void instantiate(Publication template, String newPublicationId, String name)
+ throws Exception {
+ ...
+ }
+
+}]]></source>
+ </section>
+
+ <section>
+ <title>Add it to <code>cocoon.xconf</code> Using a Patch File</title>
+
+ <p>
+ For instance <code>my-pub/config/cocoon-xconf/instantiator.xconf</code>:
+ </p>
+
+<source xml:space="preserve"><![CDATA[<xconf xpath="/cocoon/template-instantiators"
+ unless="/cocoon/template-instantiators/component-instance[@name = 'default']">
+
+ <component-instance name="mypub"
+ logger="myproject.publication"
+ class="org.myproject.lenya.MyInstantiator"/>
+
+</xconf>]]></source>
+ </section>
+
+ <section>
+ <title>Declare the Instantiator in <code>publication.xml</code>
+</title>
+ </section>
+
+<source xml:space="preserve"><![CDATA[<publication>
+ ...
+ <template-instantiator name="mypub"/>
+ ...
+</publication>]]></source>
+ </section>
+
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902227.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902227.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902227.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902227.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>Publication Templating</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/a3a1c460-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221902227" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221881221"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910798510" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910769440"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781621559" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.1195221909610.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.1195221909610.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.1195221909610.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.1195221909610.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2002-2004 The Apache Software Foundation
+
+ Licensed 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>Resource Types</title>
+ </header>
+ <body>
+
+<section>
+ <title>Introduction</title>
+
+ <p>
+ A resource type defines a certain (XML or binary) source format, together with processing options.
+ It typically consists of
+ </p>
+ <ul>
+ <li>an XML structure definition (e.g., Relax NG), if the resource type is XML-based,</li>
+ <li>some presentation pipelines,</li>
+ <li>some presentation XSLT stylesheets,</li>
+ <li>usecases to manipulate documents.</li>
+ </ul>
+ <p>
+ All of these can be shared between several resource types.
+ </p>
+ <p>
+ The information describing a resource type is managed by a
+ <a href="http://lenya.apache.org/apidocs/2.0/org/apache/lenya/cms/publication/ResourceType.html">
+<code>ResourceType</code>
+</a>
+ service. The default implementation is <code>ResourceTypeImpl</code>.
+ It implements <code>ThreadSafe</code>, which ensures that only a single instance of every resource type is created.
+ It is not possible to declare multiple resource types with the same name.
+ </p>
+</section>
+
+<section>
+<title>Choose a Unique Resource Type Name</title>
+ <p>
+ You should choose a reasonable name for your resource type.
+ </p>
+ <note>
+ In the examples, we use the name <em>profile</em> (page with information about a person).
+ </note>
+</section>
+
+<section>
+ <title>Adding the Resource Type to a Publication</title>
+
+ <p>
+ The resource types used by a publication are declared in <code>publication.xml</code>,
+ including the assignment of a workflow schema to a resource type. You have to add your
+ resource type to the <code><![CDATA[<resource-types>]]></code> section of this file:
+ </p>
+
+<source xml:space="preserve"><![CDATA[<publication>
+ ...
+ <resource-types>
+ <resource-type name="xhtml" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="homepage" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="links" workflow="fallback://config/workflow/workflow.xml"/>
+ <resource-type name="profile" workflow="fallback://config/workflow/workflow.xml"/>
+ ...
+ </resource-types>
+ ...
+</publication>
+]]></source>
+
+
+ <p>
+ You can add references to any resource types configured in
+ <code><![CDATA[<lenya-webapp>/WEB-INF/cocoon.xconf]]></code> (see below),
+ containing
+ </p>
+
+ <ul>
+ <li>resource types provided by modules,</li>
+ <li>resource types of template publications, and</li>
+ <li>resource types of the publication itself.</li>
+ </ul>
+
+ </section>
+
+ <section>
+<title>Providing One or More Sample XML Documents</title>
+ <p>
+ If you want to enable users to create new resources belonging to
+ your resource type, it is useful to provide one more more sample XML documents.
+ </p>
+ <p>
+ The sample document(s) are typically placed in the directory
+ <code>$MODULE_HOME/samples</code>.
+ You can choose arbitrary filenames, but for a single sample
+ it is recommended to use the resource type name
+ (e.g., <code>profile.xml</code>).
+ </p>
+ <p>
+ There are two ways of declaring the samples. The first option is very
+ convenient if you don't need custom samples per publication. You just add
+ the samples to the resource type declaration:
+ </p>
+ <source xml:space="preserve"><![CDATA[<component-instance name="profile" ...
+ ...
+ <sample-name name="Empty Profile" mime-type="application/xml">
+ fallback://lenya/modules/profile/samples/empty.xml</sample-name>
+ <sample-name name="Example Profile" mime-type="application/xml">
+ fallback://lenya/modules/profile/samples/example.xml</sample-name>
+ ...
+</component-instance>]]>
+ </source>
+ <p>
+ The second option allows you to specify a file where the samples declarations
+ are stored. This enables you to override this file in your publications,
+ providing a different sample list per publication:
+ </p>
+ <source xml:space="preserve"><![CDATA[<component-instance name="profile" ...
+ ...
+ <samples uri="fallback://lenya/modules/profile/samples/samples.xml"/>
+ ...
+</component-instance>]]>
+ </source>
+ <p>
+ The <code>samples.xml</code> file uses the same syntax:
+ </p>
+ <source xml:space="preserve"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
+<samples>
+ <sample-name name="Empty Profile" mime-type="application/xml">
+ fallback://lenya/modules/profile/samples/empty.xml</sample-name>
+ <sample-name name="Example Profile" mime-type="application/xml">
+ fallback://lenya/modules/profile/samples/example.xml</sample-name>
+</samples>]]></source>
+ </section>
+
+ <section>
+<title>Providing an XML Structure Definition</title>
+ <p>
+ This step is only needed if you want to edit resources with Lenya
+ or validate them after they have been imported or manipulated.
+ The type of the structure definition
+ (<a href="http://www.w3.org/XML/Schema">XML Schema</a>,
+ <a href="http://www.relaxng.org/">Relax NG</a>, ...)
+ depends on the editor or validator you want to use. For instance,
+ the <a href="http://www.bitfluxeditor.org/">BXE</a> WYSIWYG
+ editor requires a Relax NG document.
+ </p>
+ <p>The structure definition document is typically placed in the directory
+ <code>$MODULE_HOME/resources/schemas</code>. The name
+ of the file is arbitrary, but it is recommended to use the
+ resource type name (e.g., <code>profile.rng</code>).
+ </p>
+ </section>
+
+ <section>
+<title>Creating a Workflow Schema</title>
+ <p>
+ If your resources should have a workflow, you have to add a workflow
+ schema for your resource type as described in
+ <a href="lenya-document:5059c540-8731-11dc-ae46-9e7b5d14892d">Workflow Configuration</a>.
+ A workflow schema can be shared between multiple resource types.
+ The workflow schema is assigned to a resource type in
+ <code>$PUB_HOME/config/publication.xml</code>
+ (see section <em>Adding Resource Types to a Publication</em>).
+ </p>
+ </section>
+
+ <section id="expiration">
+ <title>Cache Expiration Time</title>
+ <p>
+ For each resource type, you can configure how long the documents shall be cached by
+ the client, for instance:
+ </p>
+ <source xml:space="preserve"><![CDATA[<expires seconds="3600" />]]></source>
+ <p>
+ This value can be accessed via the <code>getExpires()</code> methods of the
+ <code>ResourceType</code> and <code>Document</code> interfaces. You can use the
+ header action to set the corresponding HTTP response header in your publication:
+ </p>
+ <source xml:space="preserve"><![CDATA[<map:act type="set-header">
+ <map:parameter name="Expires"
+ value="{date-iso8601-rfc822:{doc-info:{pubId}:{area}:{uuid}:{language}:expires}}"/>
+</map:act>]]></source>
+ </section>
+
+ <section>
+<title>The Resource Type Definition</title>
+ <p>
+ To declare a custom resource type and assign the creator, schema etc. to it,
+ add the component instance to an XPatch file (e.g.,
+ <code>$MODULE_HOME/config/cocoon-xconf/resourcetype-profile.xconf</code>):
+ </p>
+ <source xml:space="preserve"><![CDATA[<xconf xpath="/cocoon/resource-types"
+ unless="/cocoon/resource-types/component-instance[@name = 'profile']">
+
+ <component-instance name="profile"
+ logger="lenya.resourcetypes.profile"
+ class="org.apache.lenya.cms.publication.ResourceTypeImpl">
+
+ <schema src="fallback://lenya/modules/profile/resources/schemas/profile.rng"
+ language="http://relaxng.org/ns/structure/0.9"/>
+
+ <sample-name name="Empty Profile" mime-type="application/xml">
+ fallback://lenya/modules/profile/samples/empty.xml</sample-name>
+
+ <sample-name name="Example Profile" mime-type="application/xml">
+ fallback://lenya/modules/profile/samples/example.xml</sample-name>
+
+ <link-attribute xpath="//*[namespace-uri() = 'http://foo.bar.org/profile']/@href"/>
+
+ <format name="xhtml" uri="cocoon://modules/profile/profile.xml"/>
+
+ <expires seconds="3600" />
+
+ </component-instance>
+
+</xconf>]]></source>
+
+ <p>
+ This XPatch file will be used when the publication is deployed (e.g., when you issue
+ a <code>./build</code> command). Its contents will be patched into
+ <code><![CDATA[<lenya-webapp>/WEB-INF/cocoon.xconf]]></code>.
+ </p>
+
+ </section>
+
+ <section>
+ <title>I18n for the Resource Type Label</title>
+ <p>
+ There is a convention that the message key <em>resourceType-{name}</em> is used for a
+ human-readable, translated resource type label:
+ </p>
+ <source xml:space="preserve"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<catalogue xml:lang="en" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+ <message key="resourceType-profile">Profile</message>
+</catalogue>]]></source>
+ </section>
+
+ <section>
+<title>Define a Custom Menubar</title>
+ <p>
+ If you want to use a custom menubar for your resource type,
+ follow the guidelines on the page
+ <a href="lenya-document:2a82ba70-8731-11dc-ae46-9e7b5d14892d">The Lenya Menubar</a>.
+ Typically, a menubar is shared between multiple resource types.
+ Small customizations can be achieved with Java code in the menubar XSP.
+ </p>
+ <p>
+ To let the user create new resources using the <code>DefaultBranchCreator</code>,
+ you have to add the following menu item:
+ </p>
+ <source xml:space="preserve"><![CDATA[<item uc:usecase="sitemanagement.create" href="?doctype=profile">
+ <i18n:translate>
+ <i18n:text>New ... Document</i18n:text>
+ <i18n:param><i18n:text>resourceType-profile</i18n:text></i18n:param>
+ </i18n:translate>
+</item>]]></source>
+ </section>
+
+ <section>
+ <title>Formats</title>
+
+ <p>
+ A resource type provides a set of <em>formats</em> to provide different ways of presenting content documents.
+ The formats are defined in the resource type declaration in
+ <code>$MODULE_HOME/config/cocoon-xconf/resourcetype-profile.xconf</code>:
+ </p>
+<source xml:space="preserve">
+ <![CDATA[<format name="xhtml" uri="cocoon://modules/profile/xhtml.xml"/>]]>
+ <![CDATA[<format name="include" uri="cocoon://modules/profile/xhtml-inline.xml"/>]]>
+</source>
+ <p>
+ The following figure illustrates some usage examples of formats:
+ </p>
+ <figure alt="Resource type formats" src="lenya-document:686acfd0-8731-11dc-ae46-9e7b5d14892d"/>
+ <ul>
+ <li>
+ Example <strong>A</strong> shows the most typical case - a <em>msg</em> (message) document
+ is rendered using the format <em>xhtml</em> to be displayed as page content.
+ </li>
+ <li>
+ In example <strong>B</strong>, the format <em>teaser</em> is used to render teaser versions
+ of the <em>msg</em> documents to be displayed in the sidebar. This is usually done using
+ an include mechanism (see below).
+ </li>
+ <li>
+ In example <strong>C</strong>, a <em>news</em> document includes the <em>teaser</em>
+ versions of message documents. The <em>news</em> document in turn provides the format
+ <em>xhtml</em> to be rendered as page content.
+ </li>
+ </ul>
+ <p>
+ The <code>uri</code> attribute of the <code>format</code> element may refer to an arbitrary URL,
+ which is typically a request into the module itself. This URI is matched inside the module
+ sitemap (in our case, <code>modules/profile/sitemap.xmap</code>).
+ </p>
+ <p>
+ There are two ways in which the format can be requested:
+ </p>
+ <ul>
+ <li>for the current document - without parameters</li>
+ <li>for a specific document - with the parameters <code>/{pubId}/{area}/{uuid}/{language}</code>
+</li>
+ </ul>
+ <p>
+ Typically, an XSLT is applied to the content document to transform
+ it into another format (XHTML, XSL-FO, ...). In the following example,
+ the name of the XSLT stylesheet is supposed to end with the format name
+ (e.g., <code>profile2xhtml.xsl</code>):
+ </p>
+ <source xml:space="preserve"><![CDATA[
+ <!-- apply a format -->
+ <!-- {format}.xml (current document) -->
+ <map:match pattern="*.xml">
+ <map:generate src="cocoon:/{1}/{page-envelope:publication-id}/ \
+ {page-envelope:area}/ \
+ {page-envelope:document-uuid}/ \
+ {page-envelope:document-language}"/>
+ <map:serialize type="xml"/>
+ </map:match>
+
+ <!-- {format}.xml/{pubId}/{area}/{uuid}/{language} (specific document) -->
+ <map:match pattern="*.xml/*/*/*/*">
+ <map:generate src="lenya-document:{4},lang={5}{link:rev}"/>
+ <map:transform src="fallback://lenya/modules/profile/xslt/profile2{1}.xsl">
+ <map:parameter name="rendertype" value="{request-param:rendertype}"/>
+ <map:parameter name="nodeid" value="{doc-info:{2}:{3}:{4}:{5}:nodeName}"/>
+ <map:parameter name="language" value="{4}"/>
+ </map:transform>
+ <map:serialize type="xml"/>
+ </map:match>
+]]></source>
+ <p>
+ To request a formatted document, you can use the <em>format</em> parameter of the
+ <code>site:</code> and <code>lenya-document:</code> protocols. You can issue such
+ a request from an arbitrary sitemap (e.g., from your publication sitemap or from
+ a different module sitemap).
+ </p>
+<source xml:space="preserve">
+ <![CDATA[<!-- aggregate navigation components and XHTML-formatted content -->
+ <map:aggregate element="cmsbody">
+ <map:part src="cocoon://modules/sitetree/{2}/{3}/breadcrumb/{5}.xml"/>
+ <map:part src="cocoon://modules/sitetree/{2}/{3}/tabs/{5}.xml"/>
+ <map:part src="cocoon://modules/sitetree/{2}/{3}/menu/{5}.xml"/>
+ <map:part src="cocoon://modules/sitetree/{2}/{3}/search/{5}.xml"/>
+ <map:part src="lenya-document:{page-envelope:documente-uuid}?format=xhtml"/>
+ </map:aggregate>
+]]>
+</source>
+
+ <p>
+ Another usage scenario is to include formatted documents in other documents, e.g. as a teaser or summary
+ (see the figure above):
+ </p>
+ <source xml:space="preserve"><![CDATA[<ci:include src="site:/{$language}{$path}?format=teaser"/>]]></source>
+ <source xml:space="preserve"><![CDATA[<ci:include src="lenya-document:{$uuid}?format=teaser"/>]]></source>
+
+ <p>
+ Since formats allow you to select the presentation style of a document
+ on demand, you can use them as layout templates. But unfortunately formats have to
+ be declared in <code>cocoon.xconf</code>, so you can't add new templates at
+ runtime with this approach at the moment. Here's an example how to use formats to select templates:
+ </p>
+ <ul>
+ <li>
+ Set the Dublin Core element <code>format</code> when you create the document,
+ e.g. using a combo box. We use the Dublin Core for simplicity here, for a cleaner
+ approach you should define your own meta data element set.
+ </li>
+ <li>
+ In the resource type module, provide an XSLT stylesheet
+ <code>{resource-type}2{format}.xsl</code> for each format (see above)
+ </li>
+ <li>
+ <p>
+ Add the format parameter to the <code>lenya-document</code> call:
+ </p>
+ <source xml:space="preserve"><![CDATA[<map:generate src="lenya-document:{page-envelope:uuid}?format={dublincore:format}"/>]]></source>
+ </li>
+ </ul>
+
+ </section>
+
+ <section>
+<title>Presentation</title>
+
+ <p>
+ To make your resources available as HTTP pages, you have to add the
+ appropriate pipelines and XSLT stylesheets. In general, there are no
+ restrictions.
+ </p>
+ <p>
+ The pipelines have to be placed in
+ <code>$MODULE_HOME/sitemap.xmap</code>. The stylesheets are typically located in
+ <code>$MODULE_HOME/xslt/</code> and named <code>{resource-type}2{format}.xsl</code>
+ (e.g., <code>profile2xhtml.xsl</code>).
+ </p>
+ <p>
+ In the case of the <em>xhtml</em> format, the stylesheet is supposed to generate
+ a valid XHTML document (in the XHTML namespace). The output of other formats depends
+ on the purpose of the respective format.
+ </p>
+
+ </section>
+
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221909610.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221909610.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221909610.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221909610.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>Resource Types</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/a4ecbaf0-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221909610" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221889102"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910781828" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910767027"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781616294" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.1195221897146.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.1195221897146.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.1195221897146.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.1195221897146.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2002-2004 The Apache Software Foundation
+
+ Licensed 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>Modules</title>
+ </header>
+ <body>
+
+ <section>
+ <title>Introduction</title>
+ <p>
+ Modules are packages providing a certain set of resources or functionality.
+ </p>
+ <p>Examples:</p>
+ <ul>
+ <li>a resource type (e.g., docbook module)</li>
+ <li>a repository implementation (e.g., jdbc module)</li>
+ <li>a collection of XSLTs (e.g., content2svg module)</li>
+ </ul>
+ <p>
+ Some modules are included in the Lenya distribution:
+ </p>
+ <ul>
+ <li>
+<strong>lucene</strong> - search functionality</li>
+ <li>
+<strong>sitetree</strong> - manage documents in a tree-like structure</li>
+ <li>
+<strong>jcr</strong> - store content in a <a href="http://www.jcp.org/en/jsr/detail?id=170">JCR</a> repository (experimental)</li>
+ <li>
+<strong>xhtml</strong> - XHTML-based resource type</li>
+ <li>
+<strong>links</strong> - resource type to manage link lists</li>
+ <li>
+<strong>lenyadoc</strong> - adds the <code>lenyadoc://</code> protocol</li>
+ </ul>
+ </section>
+
+ <section>
+ <title>Implementing a module</title>
+
+ <p>
+ All resources of a module are located in a single directory.
+ The following is an example directory structure, all files are optional
+ and depend on the nature of the module.
+ </p>
+
+<source xml:space="preserve">
+mymodule/
+ config/ configuration files
+ module.xml module descriptor
+ cocoon-xconf/ patches for cocoon.xconf
+ components.xconf
+ usecases/
+ mymodule.jx usecase view
+ resources/
+ images/ image files
+ css/ CSS files
+ schemas/ XML schemas (RNG, XSD, ...)
+ samples/ Samples (in case of resource type modules)
+ java/
+ src/ Java source files
+ test/ Java test classes
+ lib/ Java libraries
+ xslt/ XSLT stylesheets
+ sitemap.xmap main module sitemap
+</source>
+
+ <p>To add a module to your Lenya installation, declare it in <code>local.build.properties</code>:</p>
+
+<source xml:space="preserve">
+modules.root.dirs=src/modules:src/webapp/lenya/pubs/default/modules:/home/john/modules/mymodule
+</source>
+ <p>
+ When the module is deployed, the following steps are executed:
+ </p>
+ <ul>
+ <li>the module files are copied to <code>context://lenya/modules</code>
+</li>
+ <li>Java sources are compiled, libraries are installed</li>
+ <li>
+<code>cocoon.xconf</code> is patched</li>
+ </ul>
+
+ </section>
+
+ <section>
+ <title>The Module Descriptor File</title>
+ <p>
+ Each module must be described using a <em>module descriptor</em> XML file
+ <code>module.xml</code>, located in the <code>config</code> directory of the module.
+ The descriptor is validated when the module is deployed, so be careful! :)
+ </p>
+ <p>
+ A typical module descriptor looks like this:
+ </p>
+ <source xml:space="preserve"><![CDATA[<module xmlns="http://apache.org/lenya/module/1.0">
+ <id>org.myproject.lenya.modules.myeditor</id>
+ <depends module="org.apache.lenya.modules.usecase"/>
+ <depends module="org.apache.lenya.modules.webdav"/>
+ <export package="org.myproject.lenya.modules.myeditor.api"/>
+ <package>org.myproject.lenya.modules</package>
+ <version>0.1-dev</version>
+ <name>My Own Editor</name>
+ <lenya-version>2.0-dev</lenya-version>
+ <description>
+ This is my own editor.
+ For more information, visit http://myproject.org/editor.
+ </description>
+</module>]]></source>
+ <p>
+ The <code>id</code> must start with the <code>package</code> of the module.
+ It is not allowed to deploy two modules with the same ID.
+ </p>
+ <p>If your module uses code from other modules, you have to add
+ a <code><![CDATA[<depends>]]></code> for each of these modules.</p>
+ <p>
+ The <code><![CDATA[<export package="..."/>]]></code> statement(s) declare
+ public packages, which means that these packages are accessible from other
+ modules. You should aim for long-term stability of all interfaces and classes
+ in exported packages, since they represent the Java API of your module.
+ </p>
+ </section>
+
+ <section>
+ <title>Implementing Usecases in Modules</title>
+
+ <section>
+ <title>Declaring the Usecase</title>
+
+ <p>
+ For example, imagine you implement a <code>newsletter</code> module, containing a <code>send</code> usecase.
+ To declare usecases, add a patch file for <code>cocoon.xconf</code>, for instance <code>newsletter/config/cocoon-xconf/usecases.xconf</code>:
+ </p>
+<source xml:space="preserve"><![CDATA[<xconf xpath="/cocoon/usecases"
+ unless="/cocoon/usecases/component-instance[@name = 'newsletter.send']">
+ <component-instance name="newsletter.send"
+ logger="lenya.usecases.newsletter.send"
+ class="org.myproject.lenya.newsletter.usecases.Send">
+ <view template="modules/newsletter/usecases/send.jx" menu="false"/>
+ </component-instance>
+</xconf>]]></source>
+
+ <p>
+ As you can see in the view declaration, the JX templates are typically stored in the <code><module>/usecases</code>
+ directory. The Java source files go into the <code><module>/java/src</code> directory, they are compiled
+ automatically by the Lenya build process.
+ </p>
+
+ </section>
+
+ <section>
+ <title>Calling the Module Sitemap</title>
+
+ <p>
+ The following URL syntax is used to make a call to a module sitemap:
+ </p>
+<source xml:space="preserve"><![CDATA[cocoon://modules/<module>/**]]></source>
+
+ <p>
+ The module sitemap is located at <code>newsletter/sitemap.xmap</code>. To request
+ the latest newsletter and display it on the confirmation screen using the CInclude approach
+ (for more information, see documentation about the usecase framework), you could for instance use
+ the URI <code>cocoon://modules/newsletter/latestNewsletter.xml</code>:
+ </p>
+
+<source xml:space="preserve"><![CDATA[<page:page
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
+ xmlns:page="http://apache.org/cocoon/lenya/cms-page/1.0"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+ xmlns:cinclude="http://apache.org/cocoon/include/1.0"
+ >
+
+ <page:body>
+ <h1><i18n:text>Send Newsletter</i18n:text></h1>
+ <form>
+ ...
+ <jx:import uri="templates/messages.jx"/>
+
+ <cinclude:includexml>
+ <cinclude:src>cocoon://modules/newsletter/latestNewsletter.xml</cinclude:src>
+ </cinclude:includexml>
+
+ <input name="submit" type="submit" value="Send Newsletter"/>
+ </form>
+ </page:body>
+</page:page>]]></source>
+
+ <p>
+ Another useful option is to use a module URL as the usecase view, e.g. to export some XML.
+ Note that the attribute <code>uri</code> is used instead of <code>template</code>.
+ The usecase class <code>DummyUsecase</code> can be used because no Java code shall be
+ executed.
+ </p>
+
+ <source xml:space="preserve"><![CDATA[<xconf xpath="/cocoon/usecases"
+ unless="/cocoon/usecases/component-instance[@name = 'newsletter.download']">
+ <component-instance name="newsletter.send"
+ logger="lenya.usecases.newsletter.send"
+ class="org.apache.lenya.cms.usecase.DummyUsecase">
+ <view uri="cocoon://modules/newsletter/downloadNewsletter.xml"/>
+ </component-instance>
+</xconf>]]></source>
+ </section>
+
+ <section>
+ <title>Adding Menu Items</title>
+
+ <p>
+ A module can provide menu items which are added to the publication menu.
+ To insert the menu items of a module, you have to add the module declaration to <code>publication.xml</code>:
+ </p>
+
+<source xml:space="preserve"><![CDATA[<publication>
+ ...
+ <module name="newsletter"/>
+ ...
+</publication>]]></source>
+
+ <p>
+ If there is a <code>menus.xmap</code> sitemap in the module's root directory, a
+ request of the form <code><area>.xml</code> is sent into this sitemap.
+ The matching pipeline could look like this:
+ </p>
+
+<source xml:space="preserve"><![CDATA[<map:match pattern="**">
+ <map:generate type="serverpages" src="config/menu.xsp"/>
+ <map:serialize type="xml"/>
+</map:match>
+]]></source>
+
+ <p>
+ The server page <code><module>/config/menu.xsp</code> delivers a menu XML
+ which includes the items to be inserted:
+ </p>
+
+<source xml:space="preserve"><![CDATA[<xsp:page ...>
+ <menu>
+ <menus>
+ <menu i18n:attr="name" name="File">
+ <block admin="false">
+ <item uc:usecase="newsletter.send" href="?">
+ <i18n:text>Send Newsletter</i18n:text>
+ </item>
+ </block>
+ </menu>
+ </menus>
+ </menu>
+</xsp:page>]]></source>
+
+
+ </section>
+ </section>
+
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897146.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897146.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897146.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897146.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>Modules</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/a624c5c0-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221897146" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221885001"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910797343" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910768835"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781624256" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.1195221902867.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.1195221902867.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.1195221902867.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.1195221902867.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 1999-2006 The Apache Software Foundation
+
+ Licensed 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.
+-->
+<!-- $Id: metadata.xml 55543 2004-10-26 00:14:59Z gregor $ --><!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document>
+ <header>
+ <title>Meta Data</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>
+ Meta data are organized in <em>element sets</em>.
+ An element set is identified using a namespace URI.
+ Each element set can supply a fixed set of elements.
+ An element is identified using a name. An element can
+ be <em>editable</em>, and it can support <em>multiple values</em>.
+ </p>
+ </section>
+
+ <section>
+ <title>Registering Meta Data Element Sets</title>
+ <p>Element sets are declared using patch files for <code>cocoon.xconf</code>.
+ When the application starts up, they are registered with the <code>MetaDataRegistry</code>.
+ Here's an example:</p>
+<source xml:space="preserve"><![CDATA[<xconf xpath="/cocoon/meta-data"
+ unless="/cocoon/meta-data/component-instance
+ [@name = 'http://apache.org/lenya/metadata/media/1.0']">
+ <component-instance name="http://apache.org/lenya/metadata/media/1.0"
+ class="org.apache.lenya.cms.metadata.ConfigurableElementSet">
+ <element name="filename" multiple="false"/>
+ <element name="format" multiple="false"/>
+ <element name="extent" multiple="false"/>
+ <element name="width" multiple="false"/>
+ <element name="height" multiple="false"/>
+ <element name="caption" multiple="false" editable="true"/>
+ </component-instance>
+</xconf>]]></source>
+ </section>
+
+ <section>
+ <title>Accessing Meta Data</title>
+ <p>Here's an example for accessing the meta data of a document:</p>
+ <source xml:space="preserve"><![CDATA[
+MetaData meta = document.getMetaData("http://myproject.org/metadata/1.0");
+String description = meta.getFirstValue("description");
+String[] references = meta.getValues("references");
+]]></source>
+ <p>To find out which element sets are registered, you can access
+ the <code>MetaDataRegistry</code>:</p>
+ <source xml:space="preserve"><![CDATA[
+MetaDataRegistry registry = null;
+try {
+ registry = (MetaDataRegistry) this.manager.lookup(MetaDataRegistry.ROLE);
+ String[] namespaces = registry.getNamespaceUris();
+ ...
+}
+finally {
+ if (registry != null) {
+ this.manager.release(registry);
+ }
+}
+]]></source>
+ </section>
+
+ <section>
+ <title>The Meta Data Input Module</title>
+ <p>You can use the <code>MetaDataModule</code> to make an element set accessible
+ in Cocoon sitemaps. To declare it, use a patch file for <code>cocoon.xconf</code>:</p>
+ <source xml:space="preserve"><![CDATA[<xconf xpath="/cocoon/input-modules"
+ unless="/cocoon/input-modules/component-instance[@name = 'mymeta']">
+ <component-instance logger="sitemap.modules.input.mymeta" name="mymeta"
+ class="org.apache.lenya.cms.cocoon.components.modules.input.MetaDataModule"
+ namespace="http://myproject.org/metadata/1.0"/>
+</xconf>]]></source>
+ <p>Now you can access the meta data in your pipelines:</p>
+ <source xml:space="preserve"><![CDATA[<map:transform src="...">
+ <map:parameter name="description" value="{mymeta:description}"/>
+</map:transform>]]></source>
+ </section>
+
+ <section>
+ <title>The LenyaMetaDataGenerator</title>
+ <p>
+ To get an XML summary of all meta data, you can use the <code>LenyaMetaDataGenerator</code>.
+ Here's an example how to call it in the sitemap:
+ </p>
+
+ <source xml:space="preserve"><![CDATA[<map:match pattern="**.html.meta">
+ <map:generate type="lenyaMetaData">
+ <map:parameter name="pubid" value="{page-envelope:publication-id}"/>
+ <map:parameter name="area" value="{page-envelope:area}"/>
+ <map:parameter name="uuid" value="{page-envelope:document-uuid}"/>
+ <map:parameter name="lang" value="{page-envelope:document-language}"/>
+ </map:generate>
+ <map:serialize type="xml"/>
+</map:match>]]></source>
+
+ <p>
+ Here's an example for the output of the generator:
+ </p>
+
+ <source xml:space="preserve"><![CDATA[<lenya:metadata xmlns:lenya="http://apache.org/cocoon/lenya/metadata/1.0">
+ <elements xmlns="http://purl.org/dc/elements/1.1/">
+ <title>Search</title>
+ <date>2006-06-12 13:43:14</date>
+ <language>en</language>
+ <creator>lenya</creator>
+ </elements>
+ <elements xmlns="http://apache.org/lenya/metadata/document/1.0">
+ <extension>xml</extension>
+ <resourceType>usecase</resourceType>
+ <contentType>xml</contentType>
+ </elements>
+</lenya:metadata>]]></source>
+
+ </section>
+
+ <section>
+ <title>Storage</title>
+ <p>In 2.0.x meta data is stored separately from the document content but in the same
+ directory (index_{lang}.meta).
+ A typical sample for a meta data XML document may be the following:
+ </p>
+ <source xml:space="preserve"><![CDATA[<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+ <element-set namespace="http://apache.org/lenya/metadata/media/1.0">
+ <element key="width">
+ <value>300</value>
+ </element>
+ <element key="height">
+ <value>374</value>
+ </element>
+ <element key="extent">
+ <value>30291</value>
+ </element>
+ <element key="filename">
+ <value>hello-world.jpg</value>
+ </element>
+ <element key="format">
+ <value>image/jpeg</value>
+ </element>
+ </element-set>
+ <element-set namespace="http://purl.org/dc/elements/1.1/">
+ <element key="creator">
+ <value>lenya</value>
+ </element>
+ <element key="title">
+ <value>Hello World</value>
+ </element>
+ <element key="date">
+ <value>2006-07-20 22:44:37</value>
+ </element>
+ <element key="language">
+ <value>en</value>
+ </element>
+ </element-set>
+ <element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+ <element key="extension">
+ <value>jpg</value>
+ </element>
+ <element key="resourceType">
+ <value>resource</value>
+ </element>
+ <element key="contentType">
+ <value>xml</value>
+ </element>
+ </element-set>
+</metadata>
+]]> </source>
+ </section>
+ <section>
+ <title>Implementation</title>
+ <p>Like nearly all new modules/functionality the meta data usecases are
+ following the new <strong>fallback</strong> concept. Meaning you are
+ using the core contracts as long you are <strong>not</strong> overriding them with
+ your own implementation. To override a core implementation you just
+ need to place your custom implementation to the right path in you pub
+ and lenya will try to pick it up from there.</p>
+ <section>
+ <title>Create meta data</title>
+ <p>Upon creation of a document a set of sample meta data is presented
+ in the creation form. This values are partially filled in by the user
+ (subject, desciption, etc.) and partly by the system (creator,
+ creation data). This is done with the <code>site.create</code>
+ usecase (lenya.usecase=site.create).</p>
+ <p> To tell lenya that you want as
+ well create a set of custom meta data, you need to extend the
+ usecase handler and modify your
+ implementation of the <code>create.jx</code> form.</p>
+ <note label="Custom implementation of create.jx"> An
+ <strong>example</strong> of an implementation can be found in
+ <code>{$default-pub}/lenya/usecases/site/create.jx</code>. Just
+ change it and see what comes out. BTW if you need it in your custom
+ pub just mind the path. ;-)</note>
+ </section>
+ <section>
+ <title>Display/modify meta data</title>
+ <p>The display of meta data is handled by the usecase
+ <code>tab.meta</code>. All editable meta data are presented by the form.</p>
+ </section>
+ </section>
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902867.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902867.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902867.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902867.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>Meta data</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/a7ac0200-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221902867" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221881938"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910775775" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910761535"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781618832" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.1195221900667.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.1195221900667.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.1195221900667.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.1195221900667.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2002-2004 The Apache Software Foundation
+
+ Licensed 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>Lenya Protocols</title>
+ </header>
+ <body>
+ <p>Cocoon uses different protocols to access sources. The protocols are handled by a <code>SourceFactory</code> which resolves the
+ given URI to a source. There are a few protocols specific to Lenya:
+ </p>
+ <ul>
+ <li>
+<a href="lenya-document:ab51ff90-8730-11dc-ae46-9e7b5d14892d">
+<code>lenya-document:</code>
+</a> Reference a document by UUID. The swiss army knife of Lenya. Used for all internal links.</li>
+ <li>
+<a href="lenya-document:ac8ec550-8730-11dc-ae46-9e7b5d14892d">
+<code>site:</code>
+</a> Get a <code>RepositorySource</code> using the path of a document in the site structure.</li>
+ <li>
+<a href="lenya-document:693e7380-8731-11dc-ae46-9e7b5d14892d">
+<code>lenya:</code>
+</a> Get a <code>RepositorySource</code> in the context of Lenya. Used mainly internally.</li>
+ <li>
+<em>deprecated</em> <a href="lenya-document:adb480a0-8730-11dc-ae46-9e7b5d14892d">
+<code>lenyadoc:</code>
+</a> Get a <code>RepositorySource</code> of a specific document using the UUID.</li>
+ </ul>
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221900667.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221900667.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221900667.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221900667.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>Overview</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/a8e2fb60-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221900667" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221890777"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910784961" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910769540"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781625600" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.1195221895138.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.1195221895138.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.1195221895138.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.1195221895138.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2002-2004 The Apache Software Foundation
+
+ Licensed 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>
+<code>lenya:</code> Protocol</title>
+ </header>
+ <body>
+ <p>
+ The <code>lenya:</code> protocol creates a <a href="http://lenya.apache.org/apidocs/1.4/org/apache/lenya/cms/cocoon/source/RepositorySource.html">
+ <code>RepositorySource</code>
+</a>, which is a
+ <a href="http://lenya.apache.org/apidocs/1.4/org/apache/lenya/cms/cocoon/source/TransactionableSource.html">
+<code>TransactionableSource</code>
+</a>.
+ The resolution of the URI is based on the <code>context:</code> protocol
+ handler, i.e. you are accessing files under the webapp base directory.
+ </p>
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221895138.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221895138.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221895138.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221895138.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>lenya Protocol</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/aa12a1c0-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221895138" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221882076"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910792443" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910765740"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781622973" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.1195221905764.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.1195221905764.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.1195221905764.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.1195221905764.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2002-2004 The Apache Software Foundation
+
+ Licensed 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>lenya-document: Protocol</title>
+ </header>
+ <body>
+ <p>
+ The <code>lenya-document:</code> protocol allows to access the source of a Lenya document <strong>by
+ its UUID, publication ID, area, language and revision</strong>, regardless of the sitetree layout.
+ All Lenya-internal links use it, so that links will not break when documents are moved around
+ in the sitetree.
+ </p>
+ <p>
+ Since it is such a fundamental concept, it is documented in detail under <a href="lenya-document:b0364980-8730-11dc-ae46-9e7b5d14892d">Link Management</a>.
+ </p>
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221905764.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221905764.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221905764.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221905764.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>lenya-document Protocol</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/ab51ff90-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221905764" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221884810"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910789427" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910762284"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781625513" version="1"/>
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.