blob: 1d42d7bd1797e5b6d385416fba77eaa3588331d8 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9-dev">
<meta name="Forrest-skin-name" content="pelt">
<title>Usecases</title>
<link type="text/css" href="../../../../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../../../../skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="../../../../skin/print.css" rel="stylesheet">
<link type="text/css" href="../../../../skin/profile.css" rel="stylesheet">
<script src="../../../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="../../../../favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">apache</a> &gt; <a href="http://lenya.apache.org/">lenya</a><script src="../../../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href=""><img class="logoImage" alt="Lenya" src="../../../../images/apache-lenya-light.png" title=""></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href=""></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://www.google.com/search" method="get" class="roundtopsmall">
<input value="lenya.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with ');" size="25" name="q" id="query" type="text" value="Search the site with ">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li>
<a class="unselected" href="../../../../index.html">Project</a>
</li>
<li>
<a class="unselected" href="../../../../docs/index.html">Developer</a>
</li>
<li>
<a class="unselected" href="../../../../community/index.html">Community</a>
</li>
<li>
<a class="unselected" href="../../../../docs/2_0_x/index.html">Version 2.0</a>
</li>
<li class="current">
<a class="selected" href="../../../../docs/1_2_x/index.html">Version 1.2</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', '../../../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../../../skin/images/chapter_open.gif');">Version 1.2</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="../../../../docs/1_2_x/index.html">Index</a>
</div>
<div onclick="SwitchMenu('menu_1.1.2', '../../../../skin/')" id="menu_1.1.2Title" class="menutitle">Installation</div>
<div id="menu_1.1.2" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/installation/index.html">Download</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/installation/subversion.html">Subversion Access</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/installation/source_version.html">Install Instructions</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.3', '../../../../skin/')" id="menu_1.1.3Title" class="menutitle">Tutorial</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/tutorial/index.html">Introduction</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/tutorial/understanding_lenya.html">1. Understanding Lenya</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/tutorial/installing_lenya.html">2. Installing Lenya</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/tutorial/anatomy_of_the_pipeline.html">3. Anatomy of the Pipeline</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/tutorial/editing_in_lenya.html">4. Editing in Lenya</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/tutorial/custom_navigation.html">5. Custom Navigation in Lenya</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/tutorial/mod_proxy_and_lenya.html">6a. Mod Proxy and Lenya</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/tutorial/mod_proxy_and_lenya_continued.html">6b. Mod Proxy and Lenya</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.4', '../../../../skin/')" id="menu_1.1.4Title" class="menutitle">How-To</div>
<div id="menu_1.1.4" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/faq.html">FAQ</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/new_publication.html">New Publication</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/deploy_publication.html">Deploy Publication</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/look_and_feel.html">Look and Feel</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/custom_resourcetype.html">Custom Resource Type</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/new_mime_type.html">Adding Mime Types</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/site_navigation.html">Site Navigation</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/ldap_authentication.html">LDAP Authentication</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/cms_menus.html">CMS Menus</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/cms_screens.html">CMS Screens</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/search.html">Search Publications</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/external_data.html">External Data</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/how-to/unittests.html">Unit Tests</a>
</div>
</div>
<div onclick="SwitchMenu('menu_selected_1.1.5', '../../../../skin/')" id="menu_selected_1.1.5Title" class="menutitle" style="background-image: url('../../../../skin/images/chapter_open.gif');">Components</div>
<div id="menu_selected_1.1.5" class="selectedmenuitemgroup" style="display: block;">
<div onclick="SwitchMenu('menu_1.1.5.1', '../../../../skin/')" id="menu_1.1.5.1Title" class="menutitle">Access&nbsp;Control</div>
<div id="menu_1.1.5.1" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/accesscontrol/terms.html">Basic Terms</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/accesscontrol/accesscontrollers.html">Access&nbsp;Controllers</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/accesscontrol/accesscontrollerresolvers.html">Access Controller Resolvers</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/accesscontrol/authenticators.html">Authenticators</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/accesscontrol/authorizers.html">Authorizers</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/accesscontrol/policymanagers.html">Policies and Policy&nbsp;Managers</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/accesscontrol/accreditablemanagers.html">Accreditable&nbsp;Managers</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/accesscontrol/ssl.html">SSL Encryption</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.2', '../../../../skin/')" id="menu_1.1.5.2Title" class="menutitle">Authoring</div>
<div id="menu_1.1.5.2" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/authoring/adding-document-creator.html">Adding a new document creator</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/authoring/image-upload.html">Image Upload</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/authoring/openoffice.html">OpenOffice</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.3', '../../../../skin/')" id="menu_1.1.5.3Title" class="menutitle">Deployment</div>
<div id="menu_1.1.5.3" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/deployment/proxying.html">Proxying</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.4', '../../../../skin/')" id="menu_1.1.5.4Title" class="menutitle">Editors</div>
<div id="menu_1.1.5.4" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/editors/htmlform.html">HTML Form Editor</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/editors/1form.html">HTML One Form Editor</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/editors/bxe.html">Bitflux Editor</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/editors/kupu.html">Kupu</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/editors/xopus.html">Xopus</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.5', '../../../../skin/')" id="menu_1.1.5.5Title" class="menutitle">Layout</div>
<div id="menu_1.1.5.5" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/layout/navigation.html">Navigation</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/layout/xhtml-templating.html">XHTML templating</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/layout/static-resources.html">Serving static resources</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/layout/lenya-menubar.html">Lenya Menubar</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.6', '../../../../skin/')" id="menu_1.1.5.6Title" class="menutitle">Publication</div>
<div id="menu_1.1.5.6" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/publication/pageenvelopemodule.html">PageEnvelopeModule</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/publication/siteTree.html">Site tree</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.7', '../../../../skin/')" id="menu_1.1.5.7Title" class="menutitle">Resource&nbsp;Types</div>
<div id="menu_1.1.5.7" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/resource-types/resource-types.html">Resource&nbsp;Types</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.8', '../../../../skin/')" id="menu_1.1.5.8Title" class="menutitle">Revision Control</div>
<div id="menu_1.1.5.8" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/revisioncontrol/revisioncontroller.html">Revision Controller</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/revisioncontrol/rcml.html">RCML</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/revisioncontrol/checkin.html">Check In</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/revisioncontrol/checkout.html">Check Out</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/revisioncontrol/version.html">Revisions</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/revisioncontrol/rollback.html">Rollback</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.9', '../../../../skin/')" id="menu_1.1.5.9Title" class="menutitle">Repository</div>
<div id="menu_1.1.5.9" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/repository/index.html">WebDAV Servers</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.10', '../../../../skin/')" id="menu_1.1.5.10Title" class="menutitle">Search</div>
<div id="menu_1.1.5.10" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/search/lucene.html">Searching with Lucene</a>
</div>
</div>
<div onclick="SwitchMenu('menu_selected_1.1.5.11', '../../../../skin/')" id="menu_selected_1.1.5.11Title" class="menutitle" style="background-image: url('../../../../skin/images/chapter_open.gif');">URI Handling</div>
<div id="menu_selected_1.1.5.11" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/uri-handling/URIParametrizer.html">URI Parametrizer</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/uri-handling/standardURI.html">URI Scheme</a>
</div>
<div class="menupage">
<div class="menupagetitle">Usecases</div>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.12', '../../../../skin/')" id="menu_1.1.5.12Title" class="menutitle">Asset Management</div>
<div id="menu_1.1.5.12" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/asset-management/management.html">Asset Management</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.13', '../../../../skin/')" id="menu_1.1.5.13Title" class="menutitle">Link Management</div>
<div id="menu_1.1.5.13" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/link-management/link-management.html">Link Management</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.14', '../../../../skin/')" id="menu_1.1.5.14Title" class="menutitle">Meta Data</div>
<div id="menu_1.1.5.14" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/metadata/metadata.html">Meta Data Handling</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.15', '../../../../skin/')" id="menu_1.1.5.15Title" class="menutitle">Multilingual Documents</div>
<div id="menu_1.1.5.15" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/multilingual/multilingual.html">Multilingual Document Handling</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.16', '../../../../skin/')" id="menu_1.1.5.16Title" class="menutitle">Tasks</div>
<div id="menu_1.1.5.16" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/concept.html">The Task Concept</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/defining.html">Defining Tasks</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/taskaction.html">The TaskAction</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/scheduling.html">Scheduling a Task</a>
</div>
<div onclick="SwitchMenu('menu_1.1.5.16.5', '../../../../skin/')" id="menu_1.1.5.16.5Title" class="menutitle">Included tasks</div>
<div id="menu_1.1.5.16.5" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/anttask.html">AntTask</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/publisher.html">DefaultFilePublisher</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/exporter.html">StaticHTMLExporter</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/mailtask.html">MailTask</a>
</div>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/tasks/development.html">Developing Tasks</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.17', '../../../../skin/')" id="menu_1.1.5.17Title" class="menutitle">Workflow</div>
<div id="menu_1.1.5.17" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/workflow/terms.html">Terms</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/workflow/state-machine.html">The State Machine</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/workflow/configuration.html">Configuration</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/workflow/implementation.html">Implementation</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.5.18', '../../../../skin/')" id="menu_1.1.5.18Title" class="menutitle">Site Management</div>
<div id="menu_1.1.5.18" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/archive.html">Archive</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/copy.html">Copy</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/deactivate.html">Deactivate</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/delete.html">Delete</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/deletetrash.html">Delete the trash</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/move.html">Move</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/moveupdown.html">Move Up/Down</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/rename.html">Rename</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/components/sitemanagement/restore.html">Restore</a>
</div>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.6', '../../../../skin/')" id="menu_1.1.6Title" class="menutitle">Miscellaneous</div>
<div id="menu_1.1.6" class="menuitemgroup">
<div class="menuitem">
<a href="../../../../docs/1_2_x/misc/namespaces.html">Namespaces</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/misc/reserved_names.html">Reserved Names</a>
</div>
<div class="menuitem">
<a href="../../../../docs/1_2_x/misc/xinclude-processor.html">XInclude Processor</a>
</div>
</div>
<div class="menuitem">
<a href="../../../../apidocs/1.2/index.html">1.2 API (Javadoc)</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="../../../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2">
<a href="http://wiki.apache.org/lenya/MeetingFreiburg2008"><img border="0" title="Meeting Freiburg 2008" alt="Meeting Freiburg 2008 - logo" src="../../../../images/apache-lenya-meeting-freiburg-2008.png" style="width: 160px;height: 40px;"></a>
</div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<div title="Portable Document Format" class="pdflink">
<a class="dida" href="usecases.pdf"><img alt="PDF -icon" src="../../../../skin/images/pdfdoc.gif" class="skin"><br>
PDF</a>
</div>
<h1>Usecases</h1>
<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#Introduction">Introduction</a>
</li>
<li>
<a href="#Matching+Usecases">Matching Usecases</a>
</li>
<li>
<a href="#The+Usecase+Sitemap">The Usecase Sitemap</a>
</li>
<li>
<a href="#Overview+of+use+cases">Overview of use cases</a>
</li>
<li>
<a href="#Use+cases">Use cases</a>
<ul class="minitoc">
<li>
<a href="#Resource+upload">Resource upload</a>
</li>
<li>
<a href="#Create">Create</a>
</li>
<li>
<a href="#Rollback">Rollback</a>
</li>
<li>
<a href="#View+Logs">View Logs</a>
</li>
<li>
<a href="#Usecases+versus+FlowScript">Usecases versus FlowScript</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<a name="N1000E"></a><a name="Introduction"></a>
<h2 class="h3">Introduction</h2>
<div class="section">
<p>
Usecases are sequences of pages that are orthogonal to the website,
i.e. they can be executed without leaving the current URI.
They are mainly used to execute CMS functions, e.g., to publish a page.
Usecases are specified by
</p>
<ul>
<li>a <strong>name</strong> and</li>
<li>a set of <strong>steps</strong>.</li>
</ul>
<p>
A usecase is executed using the request parameters <span class="codefrag">lenya.usecase</span> and
<span class="codefrag">lenya.step</span>.
</p>
</div>
<a name="N10030"></a><a name="Matching+Usecases"></a>
<h2 class="h3">Matching Usecases</h2>
<div class="section">
<p>
To match a usecase in a sitemap, the <span class="codefrag">WildcardRequestParameterMatcher</span>
is used on the <span class="codefrag">lenya.usecase</span> and <span class="codefrag">lenya.step</span> request
parameters. The predefined matchers have the types <span class="codefrag">usecase</span> and
<span class="codefrag">step</span>. A simple example of a usecase pipeline would be:
</p>
<pre class="code">
&lt;map:match type="usecase" pattern="publish"&gt;
&lt;!-- confirmation screen --&gt;
&lt;map:match type="step" pattern="showscreen"&gt;
&lt;map:generate type="serverpages"
src="content/publishing/publish-screen.xsp"/&gt;
&lt;map:transform src="xslt/publishing/publish-screen.xsl"/&gt;
&lt;map:serialize/&gt;
&lt;/map:match&gt;
&lt;!-- call publish task --&gt;
&lt;map:match type="step" pattern="publish"&gt;
&lt;map:act type="task"&gt;
&lt;map:parameter name="publication-id" value="{../../1}"/&gt;
&lt;map:parameter name="task-id" value="{request-param:task-id}"/&gt;
&lt;map:redirect-to uri="{request:requestURI}" session="true"/&gt;
&lt;/map:act&gt;
&lt;/map:match&gt;
&lt;/map:match&gt;
</pre>
</div>
<a name="N1004C"></a><a name="The+Usecase+Sitemap"></a>
<h2 class="h3">The Usecase Sitemap</h2>
<div class="section">
<p>
The main usecase sitemap supports a set of generic usecases.
It is located at <span class="codefrag">lenya/usecase.xmap</span>.
To implement your publication-specific usecases or to override a generic
usecase, just add a <span class="codefrag">usecase.xmap</span>
sitemap to your publication directory. The Lenya usecase sitemap looks for it
and mounts it before the generic usecases are matched.
</p>
</div>
<a name="N1005B"></a><a name="Overview+of+use+cases"></a>
<h2 class="h3">Overview of use cases</h2>
<div class="section">
<p>The following use cases are known:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th colspan="1" rowspan="1">Use case</th>
<th colspan="1" rowspan="1"><span class="codefrag">lenya.usecase=</span></th>
<th colspan="1" rowspan="1"><span class="codefrag">lenya.step=</span></th>
<th colspan="1" rowspan="1">Comment</th>
</tr>
<tr>
<td colspan="1" rowspan="1">Reject Approval</td>
<td colspan="1" rowspan="1">reject</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to reject a document from approval.</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">reject</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Submit for Approval</td>
<td colspan="1" rowspan="1">submit</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to submit a document to approval.</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">submit</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Archive</td>
<td colspan="1" rowspan="1">archive</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to archive a document.</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">archive</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Checkin</td>
<td colspan="1" rowspan="1">checkin</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm the checkin of this document</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">checkin</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Checkout</td>
<td colspan="1" rowspan="1">checkout</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm the checkout of this document</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">checkout</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Copy</td>
<td colspan="1" rowspan="1">copy</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to copy a document. (The document is held in a clipboard until it is pasted again)</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">copy</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Create</td>
<td colspan="1" rowspan="1">create</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Show a form allowing to specify the parameters for
creation of a document</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">create</td>
<td colspan="1" rowspan="1">Create the document</td>
</tr>
<tr>
<td colspan="1" rowspan="1">Cut</td>
<td colspan="1" rowspan="1">cut</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to cut a document. (The document is held in a clipboard until it is pasted again)</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">cut</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Deactivate</td>
<td colspan="1" rowspan="1">deactivate</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to deactivate a document.</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">deactivate</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Delete</td>
<td colspan="1" rowspan="1">delete</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to delete a document.</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">delete</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Logout</td>
<td colspan="1" rowspan="1">logout</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm the logout</td>
</tr>
<tr>
<td colspan="1" rowspan="1">Paste</td>
<td colspan="1" rowspan="1">paste</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to paste a document. (The document which is held in a clipboard until is pasted)</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">paste</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Publish</td>
<td colspan="1" rowspan="1">publish</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm the publication of this document</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">publish</td>
<td colspan="1" rowspan="1">Publish this document</td>
</tr>
<tr>
<td colspan="1" rowspan="1">Asset upload</td>
<td colspan="1" rowspan="1">aset</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Show a form allowing to specify the parameters for
uploading of an asset</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">upload</td>
<td colspan="1" rowspan="1">Upload the asset</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">insert</td>
<td colspan="1" rowspan="1">Insert an already uploaded asset</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">upload-and-insert</td>
<td colspan="1" rowspan="1">Upload and insert an asset</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">remove</td>
<td colspan="1" rowspan="1">Remove a previously uploaded asset</td>
</tr>
<tr>
<td colspan="1" rowspan="1">Rename</td>
<td colspan="1" rowspan="1">rename</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Confirm to rename a document.</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">rename</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Rollback</td>
<td colspan="1" rowspan="1">rollback</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Show a list of all versions of this document</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">view</td>
<td colspan="1" rowspan="1">View a particular version of this document</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">rollback</td>
<td colspan="1" rowspan="1">Roll back to a particular version of this document</td>
</tr>
<tr>
<td colspan="1" rowspan="1">Schedule</td>
<td colspan="1" rowspan="1">schedule</td>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">Show a list of all task scheduled for this document</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">add</td>
<td colspan="1" rowspan="1">Add a new task</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">modify</td>
<td colspan="1" rowspan="1">Modify an existing task</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">delete</td>
<td colspan="1" rowspan="1">Delete an existing task</td>
</tr>
<tr>
<td colspan="1" rowspan="1">Edit</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">Administration</td>
<td colspan="1" rowspan="1">userAddUser</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Add a user</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">userDeleteUser</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Show a form for adding users</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">userChangeProfile</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Change the profile of a user</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">userChangePasswordUser</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Change the password as a user</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">userChangePasswordAdmin</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Change the password as an administrator</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">userChangeGroups</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Change the group affiliation of a user</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">iprangeAddIPRange</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Add an IP range</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">iprangeDeleteIPRange</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Delete an IP range</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">iprangeChangeProfile</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Change the profile of an IP range</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">iprangeChangeGroups</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Change the group affiliation of an IP range</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">groupAddGroup</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Add a group</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">groupDeleteGroup</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Delete a group</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">groupChangeProfile</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Change the profile of a group</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">groupChangeMembers</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">Change the members of a group</td>
</tr>
<tr>
<td colspan="1" rowspan="1">View Logs</td>
<td colspan="1" rowspan="1">view-logs</td>
<td colspan="1" rowspan="1">overview</td>
<td colspan="1" rowspan="1">Show the logfile list for this publication</td>
</tr>
<tr>
<td colspan="1" rowspan="1">&nbsp;</td>
<td colspan="1" rowspan="1">&nbsp;</td>
<td colspan="1" rowspan="1">log</td>
<td colspan="1" rowspan="1">Show a single logfile</td>
</tr>
</table>
</div>
<a name="N10534"></a><a name="Use+cases"></a>
<h2 class="h3">Use cases</h2>
<div class="section">
<a name="N1053A"></a><a name="Resource+upload"></a>
<h3 class="h4">Resource upload</h3>
<p>
<span class="codefrag">lenya.usecase=upload</span>
</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th colspan="1" rowspan="1"><span class="codefrag">lenya.step=</span></th>
<th colspan="1" rowspan="1">additional parameters</th>
<th colspan="1" rowspan="1">sample value</th>
</tr>
<tr>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">xpath</td>
<td colspan="1" rowspan="1">/NewsML/body.content/block[1]/*[1]</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">insertBefore [optional]</td>
<td colspan="1" rowspan="1">true</td>
</tr>
<tr>
<td colspan="1" rowspan="1">upload</td>
<td colspan="1" rowspan="1">documentid</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">xpath</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">insertBefore [optional]</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">uploadFile</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">identifier [optional]</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="2" rowspan="1">All Dublin core identifiers are also accepted</td>
</tr>
</table>
<a name="N105DB"></a><a name="Create"></a>
<h3 class="h4">Create</h3>
<p>
<span class="codefrag">lenya.usecase=create</span>
</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th colspan="1" rowspan="1"><span class="codefrag">lenya.step=</span></th>
<th colspan="1" rowspan="1">additional parameters</th>
<th colspan="1" rowspan="1">sample value</th>
</tr>
<tr>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1">parentid</td>
<td colspan="1" rowspan="1">/dossiers/2003</td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">doctype</td>
<td colspan="1" rowspan="1">Dossier</td>
</tr>
<tr>
<td colspan="1" rowspan="1">create</td>
<td colspan="1" rowspan="1">parentid</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">childid</td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1">doctype</td>
<td colspan="1" rowspan="1"></td>
</tr>
</table>
<a name="N10650"></a><a name="Rollback"></a>
<h3 class="h4">Rollback</h3>
<p>
<span class="codefrag">lenya.usecase=rollback</span>
</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th colspan="1" rowspan="1"><span class="codefrag">lenya.step=</span></th>
<th colspan="1" rowspan="1">additional parameters</th>
<th colspan="1" rowspan="1">sample value</th>
</tr>
<tr>
<td colspan="1" rowspan="1">showscreen</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">view</td>
<td colspan="1" rowspan="1">version</td>
<td colspan="1" rowspan="1"></td>
</tr>
</table>
<a name="N10692"></a><a name="View+Logs"></a>
<h3 class="h4">View Logs</h3>
<p>
<span class="codefrag">lenya.usecase=view-logs</span>
</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th colspan="1" rowspan="1"><span class="codefrag">lenya.step=</span></th>
<th colspan="1" rowspan="1">additional parameters</th>
<th colspan="1" rowspan="1">sample value</th>
</tr>
<tr>
<td colspan="1" rowspan="1">overview</td>
<td colspan="1" rowspan="1"></td>
<td colspan="1" rowspan="1"></td>
</tr>
<tr>
<td colspan="1" rowspan="1">log</td>
<td colspan="1" rowspan="1">logfile</td>
<td colspan="1" rowspan="1">2003-05-13-18-34-00-314.xml</td>
</tr>
</table>
<a name="N106D5"></a><a name="Usecases+versus+FlowScript"></a>
<h3 class="h4">Usecases versus FlowScript</h3>
<p>The usecase concept in Lenya 1.2 is inferior to FlowScript. Lenya 2.0-dev contains a simple <a href="../../../../docs/2_0_x/reference/usecase-framework/"> Usecase Framework</a> for writing usecases based on flow, JX templates, and Java classes for business logic. </p>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2002-2007 <a href="http://www.apache.org/licenses/LICENSE-2.0">The Apache Software Foundation.</a>
</div>
<div id="feedback">
Send feedback about the website to:
<a id="feedbackto" href="mailto:dev@lenya.apache.org?subject=Feedback%C2%A0for%C2%A0docs/1_2_x/components/uri-handling/usecases.html">dev@lenya.apache.org</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
</body>
</html>