<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Repository//EN" "file://config.dtd"> -->
<!DOCTYPE Repository [
    <!--
        the Repository element configures a repository instance;
        individual workspaces of the repository are configured through
        separate configuration files called workspace.xml which are
        located in a subfolder of the workspaces root directory
        (see Workspaces element).

        it consists of

            a FileSystem element (the virtual file system
            used by the repository to persist global state such as
            registered namespaces, custom node types, etc..

            a Security element that specifies the name of the app-entry
            in the JAAS config and the access manager

            a Workspaces element that specifies to the location of
            workspaces root directory and the name of default workspace

            a Workspace element that is used as a workspace configuration
            template; it is used to create the initial workspace if there's
            no workspace yet and for creating additional workspaces through
            the api

            a SearchIndex element that is used for configuring per workspace
            Indexing-related settings

            a Versioning element that is used for configuring
            versioning-related settings
    -->
    <!ELEMENT Repository (FileSystem,Security,Workspaces,Workspace,Versioning,SearchIndex?)>

    <!--
        a virtual file system
    -->
    <!ELEMENT FileSystem (param*)>
    <!ATTLIST FileSystem
      class CDATA #REQUIRED>

    <!--
        the Security element specifies the name (appName attribute)
        of the JAAS configuration app-entry for this repository.

        it also specifies the access manager to be used (AccessManager element).
    -->
    <!ELEMENT Security (AccessManager, LoginModule?)>
    <!ATTLIST Security
      appName CDATA #REQUIRED>

    <!--
        the AccessManager element configures the access manager to be used by
        this repository instance; the class attribute specifies the FQN of the
        class implementing the AccessManager interface
    -->
    <!ELEMENT AccessManager (param*)>
    <!ATTLIST AccessManager
      class CDATA #REQUIRED>

    <!--
        generic parameter (name/value pair)
    -->
    <!ELEMENT param EMPTY>
    <!ATTLIST param
      name CDATA #REQUIRED
      value CDATA #REQUIRED>

     <!--
        the LoginModule element optionally specifies a JAAS login module to
        authenticate users. This feature allows the use of Jackrabbit in a
        non-JAAS environment.
    -->
    <!ELEMENT LoginModule (param*)>
    <!ATTLIST LoginModule
      class CDATA #REQUIRED>

   <!--
        the Workspaces element specifies the workspaces root directory
        (rootPath attribute) and the name of the default workspace
        (defaultWorkspace attribute).

        individual workspaces are configured through individual workspace.xml
        files located in a subfolder each of the workspaces root directory.
    -->
    <!ELEMENT Workspaces EMPTY>
    <!ATTLIST Workspaces
      rootPath CDATA #REQUIRED
      defaultWorkspace CDATA #REQUIRED>

    <!--
        the Workspace element serves as a workspace configuration template;
        it is used to create the initial workspace if there's no workspace yet
        and for creating additional workspaces through the api
    -->
    <!ELEMENT Workspace (FileSystem,PersistenceManager,SearchIndex?)>
    <!ATTLIST Workspace
      name CDATA #REQUIRED>

    <!--
        the PersistenceManager element configures the persistence manager
        to be used for the workspace; the class attribute specifies the
        FQN of the class implementing the PersistenceManager interface
    -->
    <!ELEMENT PersistenceManager (param*)>
    <!ATTLIST PersistenceManager
      class CDATA #REQUIRED>

    <!--
        the SearchIndex element specifies the locaction of the search index
        (used by the QueryHandler); the class attribute specifies the
        FQN of the class implementing the QueryHandler interface.
    -->
    <!ELEMENT SearchIndex (param*,FileSystem?)>
    <!ATTLIST SearchIndex
      class CDATA #REQUIRED>

    <!--
        the Versioning element configures the persistence manager
        to be used for persisting version state
    -->
    <!ELEMENT Versioning (FileSystem, PersistenceManager)>
    <!ATTLIST Versioning
      rootPath CDATA #REQUIRED
    >
]>
<!-- Example Repository Configuration File -->
<Repository>
    <!--
        virtual file system where the repository stores global state
        (e.g. registered namespaces, custom node types, etc.)
    -->
    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
        <param name="path" value="${rep.home}/repository"/>
    </FileSystem>

    <!--
        security configuration
    -->
    <Security appName="Jackrabbit">
        <!--
            access manager:
            class: FQN of class implementing the AccessManager interface
        -->
        <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager">
            <!-- <param name="config" value="${rep.home}/access.xml"/> -->
        </AccessManager>

        <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
           <!-- anonymous user name ('anonymous' is the default value) -->
           <param name="anonymousId" value="anonymous"/>
        </LoginModule>
    </Security>

    <!--
        location of workspaces root directory and name of default workspace
    -->
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
    <!--
        workspace configuration template:
        used to create the initial workspace if there's no workspace yet
    -->
    <Workspace name="${wsp.name}">
        <!--
            virtual file system of the workspace:
            class: FQN of class implementing the FileSystem interface
        -->
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${wsp.home}"/>
        </FileSystem>
        <!--
            persistence manager of the workspace:
            class: FQN of class implementing the PersistenceManager interface
        -->
        <!--
        <PersistenceManager class="org.apache.jackrabbit.core.state.xml.XMLPersistenceManager"/>
        -->
        <!--
        <PersistenceManager class="org.apache.jackrabbit.core.state.mem.InMemPersistenceManager">
            <param name="initialCapacity" value="100000"/>
            <param name="loadFactor" value="0.3"/>
            <param name="persistent" value="true"/>
        </PersistenceManager>
        -->
        <PersistenceManager class="org.apache.jackrabbit.core.state.db.DerbyPersistenceManager">
           <param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/>
           <param name="schemaObjectPrefix" value="${wsp.name}_"/>
        </PersistenceManager>
        <!--
            Search index and the file system it uses.
            class: FQN of class implementing the QueryHandler interface
        -->
        <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path" value="${wsp.home}/index"/>
        </SearchIndex>
    </Workspace>

    <!--
        Configures the versioning
    -->
    <Versioning rootPath="${rep.home}/version">
        <!--
            Configures the filesystem to use for versioning for the respective
            persistence manager
        -->
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${rep.home}/version"/>
        </FileSystem>

        <!--
            Configures the perisistence manager to be used for persisting version state.
            Please note that the current versioning implementation is based on
            a 'normal' persistence manager, but this could change in future
            implementations.
        -->
        <PersistenceManager class="org.apache.jackrabbit.core.state.obj.ObjectPersistenceManager"/>

    </Versioning>

    <!--
        Search index for content that is shared repository wide
        (/jcr:system tree, contains mainly versions)
        
        The same parameters are supported as in the search index configuration
        inside the workspace definition element.
        
        This element is optional. If omitted, the /jcr:system tree will not be
        indexed and no results will be returned for that tree!
    -->
    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
        <param name="path" value="${rep.home}/repository/index"/>
    </SearchIndex>
</Repository>
