Overview | Package | Class | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

## Package org.apache.slide.common

This package contains the core classes of Slide arranged around the concept of a domain.

See:
Description

Interface Summary
NamespaceAccessToken | The `NamespaceAccessToken` is an interface used to completely hide the real `Namespace` object reference from the client application.
RequestedProperties | With this you may find out, if a specific property is wanted by the request.
RequestedProperty |
Service | Slide Service interface.
SlideMBean | Slide MBean interface.
SlideToken | The SlideToken interface identifies the current acting principal and its credentials, and maintains information about the state of the user transaction.

Class Summary
AbstractService | Slide Service abstract implementation with support for multiple simultaneous transaction context.
AbstractServiceBase | Slide Service abstract implementation.
AbstractSimpleService | Deprecated. do not use as it only allows for a single concurrent transaction context
AbstractXAService | Slide Service abstract implementation, which does not implement any of the XA related methods.
AbstractXAServiceBase | Slide Service abstract implementation.
CacheInfoToken | Caching strategy token class.
Domain | The Domain controls access to its registered namespaces and performs initialization and connection management on behalf of the namespaces.
DomainAccessToken | Domain accessor token class.
EmbeddedDomain | Alternate domain designed to ease embedding.
Namespace | A Namespace contains a hierarchically organized tree of information.
NamespaceAccessTokenImpl | Namespace access token implementation.
NamespaceConfig | Configuration of the Namespace.
PropertyName | This class is a container for the name and namespace of a property.
RequestedPropertiesImpl | Holds one property as part of the SELECT element.
RequestedPropertyImpl | Holds one property as part of the SELECT element.
Scope | Scope object.
ScopeTokenizer | Tokenizes a scope.
Slide | Implementation of the Slide JMX MBean.
SlideTokenImpl | Slide token class.
SlideTokenWrapper | The SlideTokenWrapper wraps around an existing token.
Uri | This class manages the unique identifier of an object which is manipulated by Slide.
UriPath | An URI path.
UriTokenizer | Tokenizes a scope.
XAServiceBase | Slide Service dummy implementation.
XMLMarshaller | XMLMarshaller helper class.
XMLUnmarshaller | XMLUnmarshaller class.

Exception Summary
InvalidNamespaceConfigurationException | Invalid Namespace configuration.
MalformedUriException | Malformed Uri.
NamespaceException | Namespace exception.
NestedSlideException | Nested Slide exception.
ObjectValidationFailedException | Thrown when an object validation fails.
PropertyParseException | This exception is thrown if parsing a Property fails for any reason.
ServiceAccessException | Service access exception.
ServiceConnectionFailedException | Service connection failed.
ServiceDisconnectionFailedException | Service disconnection failed.
ServiceInitializationFailedException | Service initialization failed.
ServiceMissingOnRootNodeException | A service declaration is missing on the root node.
ServiceParameterErrorException | Service parameter error.
ServiceParameterMissingException | Service parameter missing.
ServiceRegistrationFailedException | Service registration failed.
ServiceResetFailedException | Service reset failed.
ServicesInitializationFailedException | Services intitalization failed.
ServicesShutDownFailedException | Services shut down failed.
SlideException | Exception supertype for all Slide components.
SlideRuntimeException | Runtime Exception supertype for all Slide components.
SLMLParsingException | Slide XML parsing exception.
UnableToLocateServiceException | Unable to locate service.
UnknownObjectClassException | Unknown object class.
UnknownServiceDeclarationException | Unknown service declaration exception.

Error Summary
DomainInitializationFailedError | Domain initialization failed.
SlideError | Error supertype for all Slide components.

## Package org.apache.slide.common Description

This package contains the core classes of Slide arranged around the concept of a domain.

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.

From the client application's perspective, the domain represent the only directly accessible object. It is through this object that the client gains access to namespaces, using `Domain.accessNamespace(SecurityToken securityObject, String namespace)` static method call.

Since the domain acts as the root of a directory service, it is a static entity and there can be only one domain per Java VM.

### Initialization

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.

More details about those configuration files are given in the First Steps section.

### Access and Security

After the initialization is complete, the client application can request access to the domain. It uses one of the two different functions calls:

- `Domain.accessNamespace(SecurityToken securityObject, String namespace)`, is used to access a specific namespace. This method returns a `NamespaceAccessToken`, which is used thereafter by the application for performing operations on the namespace
- `Domain.accessDomain(SecurityToken securityObject)`, enumerates the registered namespaces with this domain. This allows application to browse the list of available namespaces.

The Domain uses an object (argument `securityObject`) to decide whether or not the client should be granted access. A good candidate is a reference to the client servlet. If the Domain decides to grant access, it hands out one or more `NamespaceAccessToken(s)` to the client.

The `NamespaceAccessToken` is a wrapper object which is used to completely hide the real Namespace object reference from the client application. It is used by Slide to authenticate and control every operations on the Namespace object.

Using the `NamespaceAccessToken`, the application can obtain access to "helper" functions. These helper interfaces group the namepsace operations into operational categories, such as `Structure`, `Security`, `ContentManagement` and `Locking`.

The NamespaceAccessToken object implements the `UserTransaction` interface (see the Java Transaction API documentation for more details) to allow the client to control transaction demarcation.

A `SlideToken` is retrieved from the servlet container, and is given as the first parameter of every helper function. It is used by the helper functions to identify the current security `Principal` and/or its credentials. It also is used to store information about the user transaction state.

What's very important to point out is that a client application placed in a properly configured environment has no mean of accomplishing any action except if the servlet container hands him a Principal object (from the `java.security package`). So the servlet only has, at a given time, the credentials of the principal who performs an action through it. By itself, it can't do anything.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES