The Jakarta Project The Jakarta Slide Project

Main

User's Guide

Administrator's Guide

Programmer's Corner

Services / Stores

Slide can store the data it manages in a broad array of repositories. Each repository is accessed through a module called a Service or a Store. 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.

Default services included with Slide are:

  • File system (default store)
  • JDBC

WebDAV Server

The WebDAV module is a Servlet and requires a properly configured Servlet 2.3 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'.

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.

A domain is an aggregation of one or more namespaces. If we use the UNIX filesystem analogy, a domain represents the root ("/") anchor where filesystems (in this case, namespaces) are mounted.

The domain controls access to its registered namespaces and performs initialization and connection management on behalf of the namespaces.

When Slide is first initialized, the Domain configuration is loaded. Once again, if you are familiar with UNIX, the domain configuration file is the equivalent of the fstab file. The path to the domain configuration file is given through the org.apache.slide.domain property in your slide.properties file (which must be located somewhere in your CLASSPATH).

The domain configuration is written by an administrator and tells how to initialize each Namespace. The namespace initialization includes information like:

  • The low-level services the namespace uses (structure store, content store ...).
  • The namespace base topology, which includes the location of the base actions and paths in the namespace.


Copyright © 1999-2004, Apache Software Foundation