org.apache.jackrabbit.core.config
Class RepositoryConfigurationParser

java.lang.Object
  extended by org.apache.jackrabbit.core.config.ConfigurationParser
      extended by org.apache.jackrabbit.core.config.RepositoryConfigurationParser

public class RepositoryConfigurationParser
extends ConfigurationParser

Configuration parser. This class is used to parse the repository and workspace configuration files.

The following code sample outlines the usage of this class:

     Properties variables = ...; // parser variables
     RepositoryConfigurationParser parser =
         new RepositoryConfigurationParser(variables);
     RepositoryConfig rc = parser.parseRepositoryConfig(...);
     WorkspaceConfig wc = parser.parseWorkspaceConfig(...);
 

Note that the configuration objects returned by this parser are not initialized. The caller needs to initialize the configuration objects before using them.


Field Summary
static String ACCESS_MANAGER_ELEMENT
          Name of the access manager configuration element.
static String APP_NAME_ATTRIBUTE
          Name of the application name configuration attribute.
static String CLUSTER_ELEMENT
          Name of the cluster configuration element.
static String CLUSTERED_ATTRIBUTE
          Name of the clustered configuration attribute.
static String CONFIG_ROOT_PATH_ATTRIBUTE
          Name of the config root path configuration attribute.
static String DATA_STORE_ELEMENT
          Name of the data store configuration element.
static String DEFAULT_QUERY_HANDLER
          Name of the default search index implementation class.
static String DEFAULT_SYNC_DELAY
          Default synchronization delay, in milliseconds.
static String DEFAULT_WORKSPACE_ATTRIBUTE
          Name of the default workspace configuration attribute.
static String FILE_SYSTEM_ELEMENT
          Name of the file system configuration element.
static String ID_ATTRIBUTE
          Name of the id configuration attribute.
static String ISM_LOCKING_ELEMENT
          Name of the ism locking configuration element.
static String JOURNAL_ELEMENT
          Name of the journal configuration element.
static String LOGIN_MODULE_ELEMENT
          Name of the login module configuration element.
static String MAX_IDLE_TIME_ATTRIBUTE
          Name of the maximum idle time configuration attribute.
static String PERSISTENCE_MANAGER_ELEMENT
          Name of the persistence manager configuration element.
static String REPOSITORY_HOME_VARIABLE
          Name of the repository home directory parser variable.
static String ROOT_PATH_ATTRIBUTE
          Name of the root path configuration attribute.
static String SEARCH_INDEX_ELEMENT
          Name of the search index configuration element.
static String SECURITY_ELEMENT
          Name of the security configuration element.
static String SYNC_DELAY_ATTRIBUTE
          Name of the syncDelay configuration attribute.
static String VERSIONING_ELEMENT
          Name of the versioning configuration element.
static String WORKSPACE_ELEMENT
          Name of the workspace configuration element.
static String WORKSPACE_HOME_VARIABLE
          Name of the workspace home directory parser variable.
static String WORKSPACE_NAME_VARIABLE
          Name of the repository name parser variable.
static String WORKSPACES_ELEMENT
          Name of the general workspace configuration element.
 
Fields inherited from class org.apache.jackrabbit.core.config.ConfigurationParser
CLASS_ATTRIBUTE, NAME_ATTRIBUTE, PARAM_ELEMENT, VALUE_ATTRIBUTE
 
Constructor Summary
RepositoryConfigurationParser(Properties variables)
          Creates a new configuration parser with the given parser variables.
 
Method Summary
protected  RepositoryConfigurationParser createSubParser(Properties variables)
          Creates a new instance of a configuration parser but with overlayed variables.
 AccessManagerConfig parseAccessManagerConfig(Element security)
          Parses the access manager configuration.
protected  ClusterConfig parseClusterConfig(Element parent)
          Parses cluster configuration.
protected  DataStoreConfig parseDataStoreConfig(Element parent)
          Parses data store configuration.
protected  ISMLockingConfig parseISMLockingConfig(Element parent)
          Parses ism locking configuration.
protected  JournalConfig parseJournalConfig(Element cluster)
          Parses journal configuration.
 LoginModuleConfig parseLoginModuleConfig(Element security)
          Parses the login module configuration.
protected  PersistenceManagerConfig parsePersistenceManagerConfig(Element parent)
          Parses the PersistenceManager config.
 RepositoryConfig parseRepositoryConfig(InputSource xml)
          Parses repository configuration.
protected  SearchConfig parseSearchConfig(Element parent)
          Parses search index configuration.
 SecurityConfig parseSecurityConfig(Element security)
          Parses security configuration.
protected  VersioningConfig parseVersioningConfig(Element parent)
          Parses versioning configuration.
 WorkspaceConfig parseWorkspaceConfig(InputSource xml)
          Parses workspace configuration.
 
Methods inherited from class org.apache.jackrabbit.core.config.ConfigurationParser
getAttribute, getAttribute, getElement, getElement, getVariables, parseBeanConfig, parseParameters, parseXML, replaceVariables
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REPOSITORY_HOME_VARIABLE

public static final String REPOSITORY_HOME_VARIABLE
Name of the repository home directory parser variable.

See Also:
Constant Field Values

WORKSPACE_HOME_VARIABLE

public static final String WORKSPACE_HOME_VARIABLE
Name of the workspace home directory parser variable.

See Also:
Constant Field Values

WORKSPACE_NAME_VARIABLE

public static final String WORKSPACE_NAME_VARIABLE
Name of the repository name parser variable.

See Also:
Constant Field Values

SECURITY_ELEMENT

public static final String SECURITY_ELEMENT
Name of the security configuration element.

See Also:
Constant Field Values

ACCESS_MANAGER_ELEMENT

public static final String ACCESS_MANAGER_ELEMENT
Name of the access manager configuration element.

See Also:
Constant Field Values

LOGIN_MODULE_ELEMENT

public static final String LOGIN_MODULE_ELEMENT
Name of the login module configuration element.

See Also:
Constant Field Values

WORKSPACES_ELEMENT

public static final String WORKSPACES_ELEMENT
Name of the general workspace configuration element.

See Also:
Constant Field Values

WORKSPACE_ELEMENT

public static final String WORKSPACE_ELEMENT
Name of the workspace configuration element.

See Also:
Constant Field Values

VERSIONING_ELEMENT

public static final String VERSIONING_ELEMENT
Name of the versioning configuration element.

See Also:
Constant Field Values

FILE_SYSTEM_ELEMENT

public static final String FILE_SYSTEM_ELEMENT
Name of the file system configuration element.

See Also:
Constant Field Values

CLUSTER_ELEMENT

public static final String CLUSTER_ELEMENT
Name of the cluster configuration element.

See Also:
Constant Field Values

JOURNAL_ELEMENT

public static final String JOURNAL_ELEMENT
Name of the journal configuration element.

See Also:
Constant Field Values

DATA_STORE_ELEMENT

public static final String DATA_STORE_ELEMENT
Name of the data store configuration element.

See Also:
Constant Field Values

PERSISTENCE_MANAGER_ELEMENT

public static final String PERSISTENCE_MANAGER_ELEMENT
Name of the persistence manager configuration element.

See Also:
Constant Field Values

SEARCH_INDEX_ELEMENT

public static final String SEARCH_INDEX_ELEMENT
Name of the search index configuration element.

See Also:
Constant Field Values

ISM_LOCKING_ELEMENT

public static final String ISM_LOCKING_ELEMENT
Name of the ism locking configuration element.

See Also:
Constant Field Values

APP_NAME_ATTRIBUTE

public static final String APP_NAME_ATTRIBUTE
Name of the application name configuration attribute.

See Also:
Constant Field Values

ROOT_PATH_ATTRIBUTE

public static final String ROOT_PATH_ATTRIBUTE
Name of the root path configuration attribute.

See Also:
Constant Field Values

CONFIG_ROOT_PATH_ATTRIBUTE

public static final String CONFIG_ROOT_PATH_ATTRIBUTE
Name of the config root path configuration attribute.

See Also:
Constant Field Values

MAX_IDLE_TIME_ATTRIBUTE

public static final String MAX_IDLE_TIME_ATTRIBUTE
Name of the maximum idle time configuration attribute.

See Also:
Constant Field Values

DEFAULT_WORKSPACE_ATTRIBUTE

public static final String DEFAULT_WORKSPACE_ATTRIBUTE
Name of the default workspace configuration attribute.

See Also:
Constant Field Values

ID_ATTRIBUTE

public static final String ID_ATTRIBUTE
Name of the id configuration attribute.

See Also:
Constant Field Values

SYNC_DELAY_ATTRIBUTE

public static final String SYNC_DELAY_ATTRIBUTE
Name of the syncDelay configuration attribute.

See Also:
Constant Field Values

DEFAULT_QUERY_HANDLER

public static final String DEFAULT_QUERY_HANDLER
Name of the default search index implementation class.

See Also:
Constant Field Values

CLUSTERED_ATTRIBUTE

public static final String CLUSTERED_ATTRIBUTE
Name of the clustered configuration attribute.

See Also:
Constant Field Values

DEFAULT_SYNC_DELAY

public static final String DEFAULT_SYNC_DELAY
Default synchronization delay, in milliseconds.

See Also:
Constant Field Values
Constructor Detail

RepositoryConfigurationParser

public RepositoryConfigurationParser(Properties variables)
Creates a new configuration parser with the given parser variables.

Parameters:
variables - parser variables
Method Detail

parseRepositoryConfig

public RepositoryConfig parseRepositoryConfig(InputSource xml)
                                       throws ConfigurationException
Parses repository configuration. Repository configuration uses the following format:
   <Repository>
     <FileSystem ...>
     <Security appName="...">
       <AccessManager ...>
       <LoginModule ... (optional)>
     </Security>
     <Workspaces rootPath="..." defaultWorkspace="..."/>
     <Workspace ...>
     <Versioning ...>
   </Repository>
 

The FileSystem element is a bean configuration element, that specifies the file system implementation for storing global repository information. The Security element contains an AccessManager bean configuration element and the JAAS name of the repository application. The Workspaces element contains general workspace parameters, and the Workspace element is a template for the individual workspace configuration files. The Versioning element contains versioning configuration for the repository.

In addition to the configured information, the returned repository configuration object also contains the repository home directory path that is given as the ${rep.home} parser variable. Note that the variable must be available for the configuration document to be correctly parsed.

Variable replacement is performed on the security application name attribute, the general workspace configuration attributes, and on the file system, access manager, and versioning configuration information.

Note that the returned repository configuration object has not been initialized.

Parameters:
xml - repository configuration document
Returns:
repository configuration
Throws:
ConfigurationException - if the configuration is broken
See Also:
ConfigurationParser.parseBeanConfig(Element, String), parseVersioningConfig(Element)

parseSecurityConfig

public SecurityConfig parseSecurityConfig(Element security)
                                   throws ConfigurationException
Parses security configuration. Security configuration uses the following format:
   <Security appName="...">
     <AccessManager ...>
     <LoginModule ... (optional)>
   </Security>
 

Both the AccessManager and LoginModule elements are bean configuration elements.

The login module is an optional feature of repository configuration.

Parameters:
security - the <security> element.
Returns:
the security configuration.
Throws:
ConfigurationException - if the configuration is broken

parseAccessManagerConfig

public AccessManagerConfig parseAccessManagerConfig(Element security)
                                             throws ConfigurationException
Parses the access manager configuration.

Parameters:
security - the <security> element.
Returns:
the access manager configuration.
Throws:
ConfigurationException - if the configuration is broken

parseLoginModuleConfig

public LoginModuleConfig parseLoginModuleConfig(Element security)
                                         throws ConfigurationException
Parses the login module configuration.

Parameters:
security - the <security> element.
Returns:
the login module configuration.
Throws:
ConfigurationException - if the configuration is broken

parseWorkspaceConfig

public WorkspaceConfig parseWorkspaceConfig(InputSource xml)
                                     throws ConfigurationException
Parses workspace configuration. Workspace configuration uses the following format:
   <Workspace name="...">
     <FileSystem ...>
     <PersistenceManager ...>
     <SearchIndex ...>
     <ISMLocking ...>
   </Workspace>
 

All the child elements (FileSystem, PersistenceManager, and SearchIndex) are bean configuration elements. In addition to bean configuration, the search element also contains configuration for the search file system.

In addition to the configured information, the returned workspace configuration object also contains the workspace home directory path that is given as the ${wsp.home} parser variable. Note that the variable must be available for the configuration document to be correctly parsed.

Variable replacement is performed on the optional workspace name attribute. If the name is not given, then the name of the workspace home directory is used as the workspace name. Once the name has been determined, it will be added as the ${wsp.name} variable in a temporary configuration parser that is used to parse the contained configuration elements.

The search index configuration element is optional. If it is not given, then the workspace will not have search capabilities.

The ism locking configuration element is optional. If it is not given, then a default implementation is used.

Note that the returned workspace configuration object has not been initialized.

Parameters:
xml - workspace configuration document
Returns:
workspace configuration
Throws:
ConfigurationException - if the configuration is broken
See Also:
ConfigurationParser.parseBeanConfig(Element, String), parseSearchConfig(Element)

parseSearchConfig

protected SearchConfig parseSearchConfig(Element parent)
                                  throws ConfigurationException
Parses search index configuration. Search index configuration uses the following format:
   <SearchIndex class="...">
     <param name="..." value="...">
     ...
     <FileSystem ...>
   </Search>
 

Both the SearchIndex and FileSystem elements are bean configuration elements. If the search implementation class is not given, then a default implementation is used.

The search index is an optional feature of workspace configuration. If the search configuration element is not found, then this method returns null.

The FileSystem element in a search index configuration is optional. However some implementations may require a FileSystem.

Parameters:
parent - parent of the SearchIndex element
Returns:
search configuration, or null
Throws:
ConfigurationException - if the configuration is broken

parseISMLockingConfig

protected ISMLockingConfig parseISMLockingConfig(Element parent)
                                          throws ConfigurationException
Parses ism locking configuration. ism locking configuration uses the following format:
   <ISMLocking class="...">
     <param name="..." value="...">
     ...
   </ISMLocking>
 

The ISMLocking is a bean configuration element.

The ism locking is an optional part of the workspace configuration. If the ism locking element is not found, then this method returns null.

Parameters:
parent - parent of the ISMLocking element
Returns:
search configuration, or null
Throws:
ConfigurationException - if the configuration is broken

parseVersioningConfig

protected VersioningConfig parseVersioningConfig(Element parent)
                                          throws ConfigurationException
Parses versioning configuration. Versioning configuration uses the following format:
   <Versioning rootPath="...">
     <FileSystem ...>
     <PersistenceManager ...>
   </Versioning>
 

Both the FileSystem and PersistenceManager elements are bean configuration elements. In addition to the bean parameter values, variable replacement is performed also on the versioning root path attribute.

Parameters:
parent - parent of the Versioning element
Returns:
versioning configuration
Throws:
ConfigurationException - if the configuration is broken

parseClusterConfig

protected ClusterConfig parseClusterConfig(Element parent)
                                    throws ConfigurationException
Parses cluster configuration. Cluster configuration uses the following format:
   <Cluster>
     <Journal ...>
   </Journal>
 

Cluster is a bean configuration element.

Clustering is an optional feature. If the cluster element is not found, then this method returns null.

Parameters:
parent - parent of the Journal element
Returns:
journal configuration, or null
Throws:
ConfigurationException - if the configuration is broken

parseJournalConfig

protected JournalConfig parseJournalConfig(Element cluster)
                                    throws ConfigurationException
Parses journal configuration. Journal configuration uses the following format:
   <Journal class="...">
     <param name="..." value="...">
     ...
   </Journal>
 

Journal is a bean configuration element.

Parameters:
cluster - parent cluster element
Returns:
journal configuration, or null
Throws:
ConfigurationException - if the configuration is broken

parseDataStoreConfig

protected DataStoreConfig parseDataStoreConfig(Element parent)
                                        throws ConfigurationException
Parses data store configuration. Data store configuration uses the following format:
   <DataStore class="...">
     <param name="..." value="...">
     ...
   </DataStore>
 

DataStore is a bean configuration element.

Parameters:
cluster - parent cluster element
Returns:
journal configuration, or null
Throws:
ConfigurationException - if the configuration is broken

parsePersistenceManagerConfig

protected PersistenceManagerConfig parsePersistenceManagerConfig(Element parent)
                                                          throws ConfigurationException
Parses the PersistenceManager config.

Parameters:
parent - parent of the PersistenceManager element
Returns:
persistence manager configuration
Throws:
ConfigurationException - if the configuration is broken

createSubParser

protected RepositoryConfigurationParser createSubParser(Properties variables)
Creates a new instance of a configuration parser but with overlayed variables.

Parameters:
variables - the variables overlay
Returns:
a new configuration parser instance


Copyright © 2004-2008 The Apache Software Foundation. All Rights Reserved.