The Jakarta Project The Jakarta Slide Project

Main

Resources

User's Guide

Administrator's Guide

HOW-TOs

Programmer's Corner

Slide API

Reference

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 properly configured Servlet 2.2 container. It also requires JAXP, a JAXP compliant XML parser and JDOM.

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 (WEB-INF/web.xml). See the Servlet API documentation for more details about web applications and the web.xml file. The parameters are:

  • domain: Path in the web application where the domain configuration file is. Defaults to "/Domain.xml".
  • namespace: Name of the namespace which will be accessed in the Slide domain. Defaults to the default namespace.
  • scope: The scope of the Slide namespace that should be exposed by this servlet. For example, if you want to expose only the /files collection via WebDAV, set this parameter to '/files'. In that case, any URLs of the form '/context-path/servlet-path/*' will be mapped to '/files/*' in the Slide namespace. The default value is an empty string, meaning that the entire namespace will be exposed.
  • depth-limit: Determines the depth limit for PROPFIND and other methods, to avoid performance hits on the server for requests with infinite depth.
  • default-mime-type: The MIME type that should be used for resources of unknown type. For example, if a WebDAV client uploads a file (via PUT) without specifying the Content-Type header, the MIME type defined here will be used. Defaults to 'application/octet-stream'.
  • default-servlet: By default, the WebDAV servlet is mapped as default servlet of the web application context (the url-pattern in servlet-mapping is '/'). If you want to change that mapping so the servlet is no longer the default servlet, you must change this initialization parameter to indicate the situation to the servlet, by setting it to 'false'. The default value is 'true'.

Administration Webapp

The Slide administration webapp is based on the Jakarta Struts web application framework, a custom Slide tag library and JSP pages. One instance of the administration webapp can be used to administrate a single Slide namespace, so you'll need multiple instances to administrate multiple namespaces.

By default, the administration webapp will be set to access the default namespace. To change this behaviour, change the namespace context parameter in the applications web.xml file to the name of the namespace that should be accessed.

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.

slide/namespace

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

AttributeDescription
name

Defines the name of the namespace.

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.

AttributeDescription
name

Name under which the service is mapped.

classname

Service class name.

slide/namespace/definition/store/parameter

Specifies an additional parameter.

AttributeDescription
name

Name of the parameter.

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.

AttributeDescription
classname

Service class name.

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

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

AttributeDescription
store

Store type.

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

Specifies an additional parameter.

AttributeDescription
name

Name of the parameter.

slide/namespace/definition/scope

Associates a service to a specified scope in the namespace.

AttributeDescription
match

Uri filter.

store

Name of the store associated with the scope.

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.

AttributeDescription
name

Name of the parameter.

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.

AttributeDescription
name

Name of the role.

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.

AttributeDescription
name

Name of the property.

namespace

Namespace of the property.

value

Default value of the property.

role

Role which will have the property.

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.

AttributeDescription
classname

Class name of the attribute.

uri

Uri of the object.

slide/namespace/data/objectnode/permission

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

AttributeDescription
action

Action which can be performed.

subject

Subject who can perform the action.

inheritable

If true, the permission will also apply to the child nodes.

negative

If true, will explicitely deny the permission specified.

slide/namespace/data/objectnode/revision

Defines a revision on the associated node.

AttributeDescription
number

Revision number.

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.

AttributeDescription
name

Property name.

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 © 1999-2001, Apache Software Foundation