blob: 655360d88eca5ecbe593b7fb19c3012132645705 [file] [log] [blame]
Module categories:
==================
The modules in Lenya are currently split up into the following categories:
* modules-core
This set of modules implements the core functionality of Lenya.
Modules in the core will not have any dependencies outside of the core.
* modules
This is where most of the add-on functionality goes: support for specific
editors, document types, the nifty new feature of the day, etc.
Directory Layout:
=================
Each module should adhere to the following directory layout (subdirectories
if appropriate, take a look at the core modules if in doubt):
mymodule/
config/ configuration files
module.xml module descriptor
cocoon-xconf/ patches for cocoon.xconf:
component-mycomponent.xconf
usecase-myusecase.xconf
usecases/
myusecase.jx usecase view
java/
src/ Java source files
lib/ Java libraries
xslt/ XSLT stylesheets
sitemap.xmap main module sitemap
module.xml
==========
Each module must contain a description file config/module.xml:
<module xmlns="http://apache.org/lenya/module/1.0">
<!-- the ID *must* start with the package name of
your custom Java code -->
<id>org.myproject.lenya.modules.myeditor</id>
<!-- build dependencies; see note below -->
<depends module="org.apache.lenya.modules.usecase"/>
<depends module="org.apache.lenya.modules.webdav"/>
<!-- the Java package your module belongs to -->
FIXME: why is this needed? afaiu it could be gleaned from the id...
<package>org.myproject.lenya.modules</package>
<!-- a version string -->
FIXME: what does this do? just for information, or is there version
management?
<version>0.1-dev</version>
<!-- a short name for your module -->
<name>My Own Editor</name>
<!-- the required lenya version -->
FIXME: is this actually used?
<lenya-version>2.0-dev</lenya-version>
<!-- a detailed description of your module -->
<description>
This is my own editor.
For more information, visit http://myproject.org/editor.
</description>
</module>
NOTE: be careful to specify the depencies correctly. The <depends/> element
is meant for java code dependencies only, i.e. issues that affect
compilation. If a module merely links to another module's usecases in its
views, that does not qualify as a dependency (although maybe it should at
some point in the future).
see also:
=========
Please refer to the online docs at
http://lenya.apache.org/docs/1_4/reference/modules/index.html.