Jakarta Slide
Main
Introduction
News
Status
Changelog
Contributors
Downloads
Releases
Nightly
Resources
FAQ
Mailing Lists
Build Status
CVS
Library
User's Guide
Server
Client
HOWTOs
Installation
Configuration
Examples
Tomcat Howto
JDBC Stores Howto
Programmer's Corner
Architecture
Domain
Namespace
Slide API
Structure
Security
Lock
Content
Macro
Index
Process
Reference
UML
JavaDoc
WebDAV Client Javadoc
Slide Configuration
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/configuration/auto-create-users

    Setting the value of this element to "true" will enable automatic creation of users.

  • slide/namespace/configuration/auto-create-users-role

    Classname of the users which will be automatically created. This class must extend ObjectNode.

  • slide/namespace/configuration/default-property

    This element can be used to define a set of default properties which will be present in newly created object having the specified role. Specifying role "nobody" will add the property as default for all the nodes in the namespace.

    Attributes list :
    Name Description Required
    nameName of the propertytrue
    namespaceNamespace of the propertytrue
    valueDefault value of the propertytrue
    roleRole which will have the propertytrue

  • 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.



Copyright (c) 2000-2001, Apache Software Foundation