You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lenya.apache.org by Apache Wiki <wi...@apache.org> on 2007/10/25 20:40:19 UTC

[Lenya Wiki] Update of "LenyaProperties" by MarkusAngst

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Lenya Wiki" for change notification.

The following page has been changed by MarkusAngst:
http://wiki.apache.org/lenya/LenyaProperties

New page:
==Introduction==
Lenya and your publications can be configured with properties files. This can be
useful for setting global, deployment and publication specific parameter values like database
usernames and passwords, SMTP server hostnames and the like.

==Setting properties==
You can set properties in two different ways:
* using Java system properties on the command line
* in properties files

===Properties files===
Properties files can be found in the following places:
* Lenya properties at `$LENYA_HOME/lenya.properties.xml` and $LENYA_HOME/local.lenya.properties.xml
* Module properties at `$LENYA_HOME/lenya/modules/<modulename>/lenya.properties.xml`
* Publication properties at `$PUB_HOME/lenya.properties.xml`

===Order of precedence===
Properties with the same name (including prefix) and located in different properties files can override each other.
The order of precedence is (lower number wins):
1. Publication
2. System properties
3. Lenya local (`$LENYA_HOME/local.lenya.properties.xml`)
4. Module
5. Lenya
The publication properties files are aggregate-fallback enabled. This means that you can override
properties of a template in a instance publication of that template.[[BR]]
Module properties are visible to all publications, regardless of the publication using a particular module or not.[[BR]]
System properties should probably override publication properties. At the moment they don't.[[BR]]

===Name prefixes===
Prpoerty names should use name prefixes to avoid confusion and accidental overriding. The following name prefixes are suggested:
* Lenya properties: `lenya.<propertyname>`
* Module properties: `<modulename>.<propertyname>`
* Publication properties: `<pubname>.<propertyname>`
* System properties: `system.<propertyname>`
If you want to override a property , the fully qualified property name of the target property including prefix has to be used.[[BR]]
System properties are normally used to override existing Lenya or module properties. Publication properties cannot be overridden
by system properties at the moment.

==Using properties==
The properties are accessible by an input module. They can be used in sitemaps wherever the usage of an input module is appropriate. For example:
{{{
<map:pipeline type="...">
  <map:match pattern="...">
    <map:generate src="..."/>
    <map:transform src="...">
      <map:parameter name="author" value="{properties:pubs.default.author}"/>
    </map:transform>
    ...
}}}
Properties can also be used in the Cocoon configuration for the EmailNotifier class. The Cocoon `.xconf` file would look like this:
{{{
<?xml version="1.0"?>
<xconf xpath="/cocoon" remove="/cocoon/component[@role = 'org.apache.lenya.notification.Notifier']">
  <component logger="lenya.notification"
    role="org.apache.lenya.notification.Notifier"
    class="org.apache.lenya.inbox.InboxNotifier"/>

  <!-- Use the following configuration to send e-mail notifications -->
  <component logger="lenya.notification"
    role="org.apache.lenya.notification.Notifier"
    class="org.apache.lenya.notification.EmailNotifier">
    <smtp host="${pubname.mail.smtp}" username="" password="" />
  </component>
</xconf>
}}}
The patch in bug 42989 would have to be applied for this feature to work, though. Other Cocoon components do not support this feature (yet).

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lenya.apache.org
For additional commands, e-mail: dev-help@lenya.apache.org