| <!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>Modules</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> > <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 "> |
| <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 class="current"> |
| <a class="selected" href="../../../../docs/2_0_x/index.html">Version 2.0</a> |
| </li> |
| <li> |
| <a class="unselected" 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"> |
| |
| |
| </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 2.0</div> |
| <div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/index.html">Index</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/faq.html">FAQs</a> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.3', '../../../../skin/')" id="menu_1.1.3Title" class="menutitle">Installation</div> |
| <div id="menu_1.1.3" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/installation/index.html">Download</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/installation/subversion.html">Subversion Access</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/installation/source_version.html">Install Instructions</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.4', '../../../../skin/')" id="menu_1.1.4Title" class="menutitle">Tutorials</div> |
| <div id="menu_1.1.4" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/newpublication/index.html">Create a Publication</a> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.4.2', '../../../../skin/')" id="menu_1.1.4.2Title" class="menutitle">Create a Resource Type</div> |
| <div id="menu_1.1.4.2" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/resourcetype/part1.html">Declaration</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/resourcetype/part2.html">Creation</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/resourcetype/part3.html">Presentation</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/resourcetype/part4.html">Editing (One-Form)</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/resourcetype/part5.html">Editing (BXE)</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.4.3', '../../../../skin/')" id="menu_1.1.4.3Title" class="menutitle">Implement a Usecase</div> |
| <div id="menu_1.1.4.3" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/usecase/part1.html">Prerequisites</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/usecase/part2.html">The Usecase</a> |
| </div> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/setupide/index.html">Setting up Eclipse</a> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.4.5', '../../../../skin/')" id="menu_1.1.4.5Title" class="menutitle">Proxying</div> |
| <div id="menu_1.1.4.5" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/proxy/proxying.html">Proxying</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/proxy/proxy.html">mod_proxy</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/proxy/mod_proxy_ajp.html">mod_proxy_ajp</a> |
| </div> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/bestpractises.html">Best Practises</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/production.html">Production Checklist</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/tutorials/tests.html">Writing Tests</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5', '../../../../skin/')" id="menu_1.1.5Title" class="menutitle">Concepts</div> |
| <div id="menu_1.1.5" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/concepts/publication.html">Publication</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/concepts/documents.html">Working with Documents</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/concepts/authoring_live.html">Authoring and Live mode</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/concepts/wysiwyg.html">WYSIWYG</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_selected_1.1.6', '../../../../skin/')" id="menu_selected_1.1.6Title" class="menutitle" style="background-image: url('../../../../skin/images/chapter_open.gif');">Technical Reference</div> |
| <div id="menu_selected_1.1.6" class="selectedmenuitemgroup" style="display: block;"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/lenya-sitemaps.html">Overview of Lenya Sitemaps</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/repository/index.html">Repository</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/ac.html">Access Control Specification</a> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.6.4', '../../../../skin/')" id="menu_1.1.6.4Title" class="menutitle">Usecase Framework</div> |
| <div id="menu_1.1.6.4" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/usecase-framework/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/usecase-framework/abstractusecase.html">AbstractUsecase</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.6.5', '../../../../skin/')" id="menu_1.1.6.5Title" class="menutitle">Publications</div> |
| <div id="menu_1.1.6.5" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/publication/configuration.html">Configuration</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/publication/publication-templating/index.html">Publication Templating</a> |
| </div> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/resource-types.html">Resource Types</a> |
| </div> |
| <div class="menupage"> |
| <div class="menupagetitle">Modules</div> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/metadata.html">Meta data</a> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.6.9', '../../../../skin/')" id="menu_1.1.6.9Title" class="menutitle">Protocols</div> |
| <div id="menu_1.1.6.9" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/protocols/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/protocols/lenya.html">lenya Protocol</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/protocols/lenya-document.html">lenya-document Protocol</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/protocols/site.html">site Protocol</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/protocols/lenyadoc.html">lenyadoc Protocol</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.6.10', '../../../../skin/')" id="menu_1.1.6.10Title" class="menutitle">URLs and Links</div> |
| <div id="menu_1.1.6.10" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/urlMapping.html">URL Mapping</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/2_0_x/reference/link-management.html">Link Management</a> |
| </div> |
| </div> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../apidocs/2.0/index.html">Core API</a> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8', '../../../../skin/')" id="menu_1.1.8Title" class="menutitle">Core Modules</div> |
| <div id="menu_1.1.8" class="menuitemgroup"> |
| <div onclick="SwitchMenu('menu_1.1.8.1', '../../../../skin/')" id="menu_1.1.8.1Title" class="menutitle">ac</div> |
| <div id="menu_1.1.8.1" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/ac/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/ac/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.2', '../../../../skin/')" id="menu_1.1.8.2Title" class="menutitle">acusecases</div> |
| <div id="menu_1.1.8.2" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/acusecases/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/acusecases/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.3', '../../../../skin/')" id="menu_1.1.8.3Title" class="menutitle">administration</div> |
| <div id="menu_1.1.8.3" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/administration/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/administration/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.4', '../../../../skin/')" id="menu_1.1.8.4Title" class="menutitle">cache</div> |
| <div id="menu_1.1.8.4" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/cache/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/cache/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.5', '../../../../skin/')" id="menu_1.1.8.5Title" class="menutitle">janitor</div> |
| <div id="menu_1.1.8.5" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/janitor/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/janitor/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.6', '../../../../skin/')" id="menu_1.1.8.6Title" class="menutitle">ldap</div> |
| <div id="menu_1.1.8.6" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/ldap/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/ldap/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.7', '../../../../skin/')" id="menu_1.1.8.7Title" class="menutitle">linking</div> |
| <div id="menu_1.1.8.7" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/linking/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/linking/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.8', '../../../../skin/')" id="menu_1.1.8.8Title" class="menutitle">observation</div> |
| <div id="menu_1.1.8.8" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/observation/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/observation/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.9', '../../../../skin/')" id="menu_1.1.8.9Title" class="menutitle">properties</div> |
| <div id="menu_1.1.8.9" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/properties/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/properties/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.10', '../../../../skin/')" id="menu_1.1.8.10Title" class="menutitle">sitemanagement</div> |
| <div id="menu_1.1.8.10" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/sitemanagement/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/sitemanagement/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.11', '../../../../skin/')" id="menu_1.1.8.11Title" class="menutitle">templating</div> |
| <div id="menu_1.1.8.11" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/templating/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/templating/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.12', '../../../../skin/')" id="menu_1.1.8.12Title" class="menutitle">usecase</div> |
| <div id="menu_1.1.8.12" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/usecase/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/usecase/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.8.13', '../../../../skin/')" id="menu_1.1.8.13Title" class="menutitle">workflow</div> |
| <div id="menu_1.1.8.13" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/workflow/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/workflow/index.html">API</a> |
| </div> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9', '../../../../skin/')" id="menu_1.1.9Title" class="menutitle">Standard Modules</div> |
| <div id="menu_1.1.9" class="menuitemgroup"> |
| <div onclick="SwitchMenu('menu_1.1.9.1', '../../../../skin/')" id="menu_1.1.9.1Title" class="menutitle">blog</div> |
| <div id="menu_1.1.9.1" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/blog/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/blog/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.2', '../../../../skin/')" id="menu_1.1.9.2Title" class="menutitle">bxe</div> |
| <div id="menu_1.1.9.2" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/bxe/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/bxe/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.3', '../../../../skin/')" id="menu_1.1.9.3Title" class="menutitle">cforms</div> |
| <div id="menu_1.1.9.3" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/cforms/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/cforms/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.4', '../../../../skin/')" id="menu_1.1.9.4Title" class="menutitle">collection</div> |
| <div id="menu_1.1.9.4" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/collection/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/collection/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.5', '../../../../skin/')" id="menu_1.1.9.5Title" class="menutitle">contactform</div> |
| <div id="menu_1.1.9.5" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/contactform/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/contactform/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.6', '../../../../skin/')" id="menu_1.1.9.6Title" class="menutitle">development</div> |
| <div id="menu_1.1.9.6" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/development/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/development/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.7', '../../../../skin/')" id="menu_1.1.9.7Title" class="menutitle">editors</div> |
| <div id="menu_1.1.9.7" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/editors/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/editors/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.8', '../../../../skin/')" id="menu_1.1.9.8Title" class="menutitle">export</div> |
| <div id="menu_1.1.9.8" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/export/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/export/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.9', '../../../../skin/')" id="menu_1.1.9.9Title" class="menutitle">fckeditor</div> |
| <div id="menu_1.1.9.9" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/fckeditor/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/fckeditor/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.10', '../../../../skin/')" id="menu_1.1.9.10Title" class="menutitle">kupu</div> |
| <div id="menu_1.1.9.10" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/kupu/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/kupu/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.11', '../../../../skin/')" id="menu_1.1.9.11Title" class="menutitle">languageselector</div> |
| <div id="menu_1.1.9.11" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/languageselector/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/languageselector/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.12', '../../../../skin/')" id="menu_1.1.9.12Title" class="menutitle">lenyadoc</div> |
| <div id="menu_1.1.9.12" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/lenyadoc/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/lenyadoc/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.13', '../../../../skin/')" id="menu_1.1.9.13Title" class="menutitle">linkcheck</div> |
| <div id="menu_1.1.9.13" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/linkcheck/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/linkcheck/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.14', '../../../../skin/')" id="menu_1.1.9.14Title" class="menutitle">links</div> |
| <div id="menu_1.1.9.14" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/links/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/links/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.15', '../../../../skin/')" id="menu_1.1.9.15Title" class="menutitle">lucene</div> |
| <div id="menu_1.1.9.15" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/lucene/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/lucene/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.16', '../../../../skin/')" id="menu_1.1.9.16Title" class="menutitle">migration</div> |
| <div id="menu_1.1.9.16" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/migration/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/migration/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.17', '../../../../skin/')" id="menu_1.1.9.17Title" class="menutitle">neutron</div> |
| <div id="menu_1.1.9.17" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/neutron/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/neutron/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.18', '../../../../skin/')" id="menu_1.1.9.18Title" class="menutitle">news</div> |
| <div id="menu_1.1.9.18" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/news/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/news/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.19', '../../../../skin/')" id="menu_1.1.9.19Title" class="menutitle">notification</div> |
| <div id="menu_1.1.9.19" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/notification/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/notification/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.20', '../../../../skin/')" id="menu_1.1.9.20Title" class="menutitle">opendocument</div> |
| <div id="menu_1.1.9.20" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/opendocument/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/opendocument/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.21', '../../../../skin/')" id="menu_1.1.9.21Title" class="menutitle">prettyprinting</div> |
| <div id="menu_1.1.9.21" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/prettyprinting/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/prettyprinting/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.22', '../../../../skin/')" id="menu_1.1.9.22Title" class="menutitle">profiling</div> |
| <div id="menu_1.1.9.22" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/profiling/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/profiling/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.23', '../../../../skin/')" id="menu_1.1.9.23Title" class="menutitle">resource</div> |
| <div id="menu_1.1.9.23" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/resource/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/resource/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.24', '../../../../skin/')" id="menu_1.1.9.24Title" class="menutitle">simplesite</div> |
| <div id="menu_1.1.9.24" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/simplesite/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/simplesite/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.25', '../../../../skin/')" id="menu_1.1.9.25Title" class="menutitle">sitetree</div> |
| <div id="menu_1.1.9.25" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/sitetree/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/sitetree/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.26', '../../../../skin/')" id="menu_1.1.9.26Title" class="menutitle">sourcerepository</div> |
| <div id="menu_1.1.9.26" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/sourcerepository/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/sourcerepository/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.27', '../../../../skin/')" id="menu_1.1.9.27Title" class="menutitle">svg</div> |
| <div id="menu_1.1.9.27" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/svg/roundedcorners.html">Rounded Corners</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/svg/resizeimages.html">Resizing Images</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/svg/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.28', '../../../../skin/')" id="menu_1.1.9.28Title" class="menutitle">tinymce</div> |
| <div id="menu_1.1.9.28" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/tinymce/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/tinymce/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.29', '../../../../skin/')" id="menu_1.1.9.29Title" class="menutitle">usecasedocument</div> |
| <div id="menu_1.1.9.29" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/usecasedocument/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/usecasedocument/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.30', '../../../../skin/')" id="menu_1.1.9.30Title" class="menutitle">webdav</div> |
| <div id="menu_1.1.9.30" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/webdav/index.html">Getting started</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/webdav/monitoring.html">Monitoring</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/webdav/webdav.html">WebDAV Servers</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/webdav/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.31', '../../../../skin/')" id="menu_1.1.9.31Title" class="menutitle">xhtml</div> |
| <div id="menu_1.1.9.31" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/xhtml/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/xhtml/index.html">API</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.9.32', '../../../../skin/')" id="menu_1.1.9.32Title" class="menutitle">xopus</div> |
| <div id="menu_1.1.9.32" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/modules/xopus/index.html">Overview</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../../apidocs/2.0/modules/xopus/index.html">API</a> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div id="credit"> |
| <hr> |
| <a href="http://forrest.apache.org/"><img border="0" title="Built with Apache Forrest" alt="Built with Apache Forrest - logo" src="../../../../images/built-with-forrest-button.png" style="width: 88px;height: 31px;"></a> |
| </div> |
| <div id="roundbottom"> |
| <img style="display: none" class="corner" height="15" width="15" alt="" src="../../../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> |
| <!--+ |
| |alternative credits |
| +--> |
| <div id="credit2"> |
| <a href="http://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="index.pdf"><img alt="PDF -icon" src="../../../../skin/images/pdfdoc.gif" class="skin"><br> |
| PDF</a> |
| </div> |
| <h1>Modules</h1> |
| <div id="front-matter"> |
| <div id="minitoc-area"> |
| <ul class="minitoc"> |
| <li> |
| <a href="#Introduction">Introduction</a> |
| </li> |
| <li> |
| <a href="#Implementing+a+module">Implementing a module</a> |
| </li> |
| <li> |
| <a href="#The+Module+Descriptor+File">The Module Descriptor File</a> |
| </li> |
| <li> |
| <a href="#Implementing+Usecases+in+Modules">Implementing Usecases in Modules</a> |
| <ul class="minitoc"> |
| <li> |
| <a href="#Declaring+the+Usecase">Declaring the Usecase</a> |
| </li> |
| <li> |
| <a href="#Calling+the+Module+Sitemap">Calling the Module Sitemap</a> |
| </li> |
| <li> |
| <a href="#Adding+Menu+Items">Adding Menu Items</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| |
| <a name="N1000D"></a><a name="Introduction"></a> |
| <h2 class="h3">Introduction</h2> |
| <div class="section"> |
| <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 <span class="codefrag">lenyadoc://</span> protocol</li> |
| |
| </ul> |
| </div> |
| |
| |
| <a name="N10051"></a><a name="Implementing+a+module"></a> |
| <h2 class="h3">Implementing a module</h2> |
| <div class="section"> |
| <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> |
| <pre class="code"> |
| 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 |
| </pre> |
| <p>To add a module to your Lenya installation, declare it in <span class="codefrag">local.build.properties</span>:</p> |
| <pre class="code"> |
| modules.root.dirs=src/modules:src/webapp/lenya/pubs/default/modules:/home/john/modules/mymodule |
| </pre> |
| <p> |
| When the module is deployed, the following steps are executed: |
| </p> |
| <ul> |
| |
| <li>the module files are copied to <span class="codefrag">context://lenya/modules</span> |
| </li> |
| |
| <li>Java sources are compiled, libraries are installed</li> |
| |
| <li> |
| <span class="codefrag">cocoon.xconf</span> is patched</li> |
| |
| </ul> |
| </div> |
| |
| |
| <a name="N1007C"></a><a name="The+Module+Descriptor+File"></a> |
| <h2 class="h3">The Module Descriptor File</h2> |
| <div class="section"> |
| <p> |
| Each module must be described using a <em>module descriptor</em> XML file |
| <span class="codefrag">module.xml</span>, located in the <span class="codefrag">config</span> 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> |
| <pre class="code"><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></pre> |
| <p> |
| The <span class="codefrag">id</span> must start with the <span class="codefrag">package</span> 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 <span class="codefrag"><depends></span> for each of these modules.</p> |
| <p> |
| The <span class="codefrag"><export package="..."/></span> 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> |
| </div> |
| |
| |
| <a name="N100AB"></a><a name="Implementing+Usecases+in+Modules"></a> |
| <h2 class="h3">Implementing Usecases in Modules</h2> |
| <div class="section"> |
| <a name="N100B1"></a><a name="Declaring+the+Usecase"></a> |
| <h3 class="h4">Declaring the Usecase</h3> |
| <p> |
| For example, imagine you implement a <span class="codefrag">newsletter</span> module, containing a <span class="codefrag">send</span> usecase. |
| To declare usecases, add a patch file for <span class="codefrag">cocoon.xconf</span>, for instance <span class="codefrag">newsletter/config/cocoon-xconf/usecases.xconf</span>: |
| </p> |
| <pre class="code"><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></pre> |
| <p> |
| As you can see in the view declaration, the JX templates are typically stored in the <span class="codefrag"><module>/usecases</span> |
| directory. The Java source files go into the <span class="codefrag"><module>/java/src</span> directory, they are compiled |
| automatically by the Lenya build process. |
| </p> |
| <a name="N100D4"></a><a name="Calling+the+Module+Sitemap"></a> |
| <h3 class="h4">Calling the Module Sitemap</h3> |
| <p> |
| The following URL syntax is used to make a call to a module sitemap: |
| </p> |
| <pre class="code">cocoon://modules/<module>/**</pre> |
| <p> |
| The module sitemap is located at <span class="codefrag">newsletter/sitemap.xmap</span>. 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 <span class="codefrag">cocoon://modules/newsletter/latestNewsletter.xml</span>: |
| </p> |
| <pre class="code"><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></pre> |
| <p> |
| Another useful option is to use a module URL as the usecase view, e.g. to export some XML. |
| Note that the attribute <span class="codefrag">uri</span> is used instead of <span class="codefrag">template</span>. |
| The usecase class <span class="codefrag">DummyUsecase</span> can be used because no Java code shall be |
| executed. |
| </p> |
| <pre class="code"><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></pre> |
| <a name="N100FF"></a><a name="Adding+Menu+Items"></a> |
| <h3 class="h4">Adding Menu Items</h3> |
| <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 <span class="codefrag">publication.xml</span>: |
| </p> |
| <pre class="code"><publication> |
| ... |
| <module name="newsletter"/> |
| ... |
| </publication></pre> |
| <p> |
| If there is a <span class="codefrag">menus.xmap</span> sitemap in the module's root directory, a |
| request of the form <span class="codefrag"><area>.xml</span> is sent into this sitemap. |
| The matching pipeline could look like this: |
| </p> |
| <pre class="code"><map:match pattern="**"> |
| <map:generate type="serverpages" src="config/menu.xsp"/> |
| <map:serialize type="xml"/> |
| </map:match> |
| </pre> |
| <p> |
| The server page <span class="codefrag"><module>/config/menu.xsp</span> delivers a menu XML |
| which includes the items to be inserted: |
| </p> |
| <pre class="code"><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></pre> |
| </div> |
| |
| |
| </div> |
| <!--+ |
| |end content |
| +--> |
| <div class="clearboth"> </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 © |
| 2002-2007 <a href="http://www.apache.org/licenses/LICENSE-2.0">The Apache Software Foundation.</a> |
| </div> |
| <div id="logos"></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/2_0_x/reference/modules/index.html">dev@lenya.apache.org</a> |
| </div> |
| <!--+ |
| |end bottomstrip |
| +--> |
| </div> |
| </body> |
| </html> |