*Index
*News
*Status
*Changelog
*Contributors
Downloads
*Releases
*Nightly
Resources
*Build Status
*Source
*Mailing Lists
*CVS
*Library
User's Guide
*Installation
*Configuration
*FAQ
*Examples
*Tomcat Howto
*Avalon Howto
*JDBC Stores Howto
Programmer's Corner
*Architecture
*Domain
*Namespace
Slide API
*Structure
*Security
*Lock
*Content
*Macro
*Index
*Process
WebDAV
*General Info
*Clients
API Reference
*UML
*JavaDoc
*WebDAV Client Javadoc
     Slide Configuration
 The slide.properties file
Services
WebDAV Server
The Domain configuration file

The slide.properties file

Slide uses a configuration file for environmental properties that is used to define some global options for Slide. Those options affect the general behavior of the Slide Content Management Framework, and can be used for example to completely disable security. Therefore, the security of the slide.proporties file is crucial, and access to it should be restricted to the server administrator. These properties are specified in a Java properties file with the name org.apache.slide.slide.properties.

The Slide JAR includes a default configuration file. A configuration file in the Java library directory (e.g. /jdk1.2/lib) can be used to override the default configuration file with system wide properties. In addition, a configuration file can be placed in the classpath and will override both the system wide properties and default configuration.

When running the provided examples, Slide will use the configuration file located in the examples directory which specifies additional debugging information and pretty printing of all produced XML documents.

The following properties are currently supported in the configuration file:

 # Domain XML definition file. This is the Slide configuration file 
 # (see below).
 # Default : Will look for domain.xml in current directory
 #org.apache.slide.domain=domain.xml
 
 # Automatically perform security checks. If set to false, no security checks
 # will be performed. It's equivalent to giving root access to each principal.
 # Default : true
 #org.apache.slide.security=true
 
 # Automatically perform locking checks. Locking is disabled if set to false.
 # Default : true
 #org.apache.slide.lock=true

Services

Slide can store the data it manages in a broad array of repositories. Each repository is accessed through a module called a Service. Each of these services have widely different dependencies, and can need a lot of extra setup steps. It is expected that services will be developed by Slide adopters to address their specific content management needs. For exemple, one company would want to access its website and NFS file server through Slide, so a NFS Service will be needed, along with a HTTP service.

The scope of the Slide project is not to integrate every existing repository in the universe (although there will be out-of-the-box support for the most widely used ones), but to enable users to easily write services which would enable access to them.

Some services included, or scheduled for inclusion with Slide are :
*Memory
*File system
*File system with versioning
*JDBC
*CVS

WebDAV Server

The WebDAV module is a Servlet and requires a property configured Servlet 2.2 implementation. It also requires JAXP and a JAXP compliant XML parser.

It is recommended that this servlet be loaded as a web application, as defined in the Servlet 2.2 specification.

Parameters can be specified to configure the servlet. They are defined in the web application descriptor of the web application. See the Servlet API documentation for more details about web applications and the web.xml file. The parameters are :
*namespace: Specify the name of the namespace which will be accessed in the Slide domain. Defaults to "webdav".
*domain: Path in the web application where the domain configuration file is. Defaults to "/Domain.xml".
*manager: Path of the manager servlet in the web application. Defaults to "/manager/".

The Domain configuration file

Sample configuration file : click here.

Slide needs a configuration file to initialize the domain. This configuration file defines the namespaces which are part of this domain, the services associated with them, and the namespaces data configuration. This file uses the XML language for its syntax. The XML elements and attributes used by Slide are formally defined in the following schema. A less formal abstract follows.

Note : For convinience purposes, the root element is named "slide". If Slide is run under Avalon, this root element must be "avalon".

*slide/namespace

This element is used to define a namespace in the domain.

Attributes list :
Name Description Required
nameDefines the name of the namespacetrue

*slide/namespace/definition

This contains the declaration of the services mapped by the namespace.

*slide/namespace/definition/store

Declaration of a store service which will be used by the namespace. The association of the service to a specific path in the namespace is done by using the slide/namespace/definition/scope element (see below).
This element can have child stores elements.
If no classname is specified, the org.apache.slide.store.StandardStore will be used.

Attributes list :
Name Description Required
nameName under which the service is mappedtrue
classnameService class namefalse

*slide/namespace/definition/store/parameter

Specifies an additional parameter.

Attributes list :
Name Description Required
nameName of the parametertrue

*slide/namespace/definition/store/[childstore]

Declaration of a substore which will handle storage of a type of objects.
This element can either have a classname element and parameter child elements, or it can refer to another child store defined in this descriptors store.
[childstore] can have the following values :
*nodestore
*securitystore
*lockstore
*revisiondescriptorsstore
*revisiondescriptorstore
*contentstore
The referenced child store must be a properly defined child store defined in the same store. That is, it must have a classname attribute, and must not be a reference to another child store. Additionally, the child store must implement storage for both types.

Attributes list :
Name Description Required
classnameService class namefalse

*slide/namespace/definition/store/[childstore]/reference

Reference to a child store which has already been defined for thsi descriptors store.

Attributes list :
Name Description Required
storeStore typetrue

*slide/namespace/definition/store/[childstore]/parameter

Specifies an additional parameter.

Attributes list :
Name Description Required
nameName of the parametertrue

*slide/namespace/definition/scope

Associates a service to a specified scope in the namespace.

Attributes list :
Name Description Required
matchUri filtertrue
storeName of the store associated with the scopetrue

*slide/namespace/configuration

This element specifies the namespace configuration.

*slide/namespace/configuration/[actions]

Specifies to which object in the namespace the default action types are mapped in the namespace. The value of the element must be the uri of the corresponding object.

[actions] can have one of the following values :
*default-action
*read-object
*create-object
*remove-object
*grant-permission
*revoke-permission
*read-permissions
*lock-object
*kill-lock
*read-locks
*read-revision-metadata
*create-revision-metadata
*modify-revision-metadata
*remove-revision-metadata
*read-revision-content
*create-revision-content
*modify-revision-content
*remove-revision-content
It is legal not to specify any of these elements, al long as the default default-action element is present and have a valid value (which means that an object should exist at the specified uri.

*slide/namespace/configuration/userspath

Specify the uri of the users root. For example, a value of "/users" will indicate that principal "foo" has a corresponding object which uri is "/users/foo" in the namespace. This element is optional.

*slide/namespace/configuration/guestpath

Specify the uri of the guest user, relative to the users root. This value will be used when the credential token contains an empty String or a null value. For example, a value of "foo" will indicate that principal "userspath/foo" will be used as the current principal when the credential token contains no value. This element is optional.

*slide/namespace/configuration/filespath

Specify the uri of the document root. This value is mainly used by the webdav module, which will base it's root directory using this value. Note : This feature is not implemented right now. This element is optional.

*slide/namespace/configuration/parameter

Specifies an additional parameter.

Attributes list :
Name Description Required
nameName of the parametertrue

*slide/namespace/configuration/role

Specifies a role mapping. The value of this element should be the Java class name of the interface representing the role.

Attributes list :
Name Description Required
nameName of the roletrue

*slide/namespace/data

Specify the namespace bootstrap data. Slide will attempt to create the objects specified in this section each time the namespace is intialized, and will stop if it finds the namespace has already been initialized before. Unless the namespace has already been initialized or a repository access error occurs, the creation of the specified objects / ACL / metadata will always be successful. The objects defined in this section should at least contain a user and an action object, so that later on at least one pricipal has enough credentials to perform an action on the namespace (unless security is disabled).

*slide/namespace/data/objectnode

Defines a namespace node. Can have another objectnode element as child element. If the object only has one revision, the revision element can be omitted, and objectnode can contain property and content child elements.

Attributes list :
Name Description Required
classnameClass name of the attributetrue
uriUri of the objecttrue

*slide/namespace/data/objectnode/permission

Grants a permission on the associated node. By defualt, the permission is positive and inheritable.

Attributes list :
Name Description Required
actionAction which can be performedtrue
subjectSubject who can perform the actiontrue
inheritableIf true, the permission will also apply to the child nodesfalse
negativeIf true, will explicitely deny the permission specifiedfalse

*slide/namespace/data/objectnode/revision

Defines a revision on the associated node.

Attributes list :
Name Description Required
numberRevision numbertrue

*slide/namespace/data/objectnode/revision/ancestor

Indicates that the revision is based on a previous revision.

*slide/namespace/data/objectnode/revision/property

Defines a revision's property.

Attributes list :
Name Description Required
nameProperty nametrue

*slide/namespace/data/objectnode/revision/content

Defines the revision's content. This element's value MUST NOT be the actual content, but an URL to the content.



 
$Revision$ $Author$ $Date$
 

Java, JDBC, JNDI, JTA, JMS, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. All other product names mentioned herein are trademarks of their respective owners.
 

The Apache Software Foundation. (C) 2000-2001. All rights reserved