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:

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:

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.