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.
Attribute | Description |
name |
Defines the name of 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.
Attribute | Description |
name |
Name under which the service is mapped.
|
classname |
Service class name.
|
|
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.
Attribute | Description |
classname |
Service class name.
|
|
slide/namespace/definition/scope |
Associates a service to a specified scope in the namespace.
Attribute | Description |
match |
Uri filter.
|
store |
Name of the store associated with the scope.
|
|
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/role |
Specifies a role mapping. The value of this element should be
the Java class name of the interface representing the role.
Attribute | Description |
name |
Name of the role.
|
|
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.
Attribute | Description |
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.
Attribute | Description |
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.
Attribute | Description |
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.
|
|
|
|