<?xml version="1.0"?>

<!DOCTYPE Repository
          PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
          "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">

<Repository>
    <!--
        virtual file system where the repository stores global state
        (e.g. registered namespaces, custom node types, etc.)
    -->    
    
    <!-- FORMER
    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
        <param name="path" value="${rep.home}/repository"/>
    </FileSystem>
    -->
    
    <!-- HARD CODED DB2 -->
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">        
        <param name="driver" value="javax.naming.InitialContext" />
        <param name="url" value="jdbc/ldpdbDS"/>
        <param name="schemaObjectPrefix" value="fs_"/>
        <param name="schema" value="db2"/>
    </FileSystem>
    
    <!--
        data store configuration
    -->
    <!-- FORMER 
    <DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>
    -->
    
    
    <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
        <param name="url" value="jdbc/ldpdbDS"/>
        <param name="driver" value="javax.naming.InitialContext"/>
        <param name="schemaObjectPrefix" value="datastore_"/>
        <param name="databaseType " value="db2"/>
    </DataStore>
        

    <!--
    ******************************************************************
    security configuration
    ******************************************************************
    -->
    <Security appName="Jackrabbit">
        <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" workspaceName="security">
            <!--<param name="adminPass" value="xbaseadmin"/>-->
        </SecurityManager>

        <!--
            access manager:
            class: FQN of class implementing the AccessManager interface
        -->
        <AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
            
        </AccessManager>

        <LoginModule class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule"> 
           <!-- the values of this configuration where removed to take the ones defined in SecurityConstants.ADMIN_ID
            -->
        </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
        -->
        <!-- FORMER
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${wsp.home}"/>
        </FileSystem>
        -->

        <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">        
            <param name="driver" value="javax.naming.InitialContext" />
            <param name="url" value="jdbc/ldpdbDS"/>
            <param name="schemaObjectPrefix" value="node1_fs_"/>
            <param name="schema" value="db2"/>
        </FileSystem>

        <!--
            persistence manager of the workspace:
            class: FQN of class implementing the PersistenceManager interface
        -->

        <!-- DB2 JNDI Datasource -->
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager">
            <param name="driver" value="javax.naming.InitialContext" />
            <param name="url" value="jdbc/ldpdbDS" />
            <param name="schema" value="db2"/>
            <param name="schemaObjectPrefix" value="${wsp.name}_"/>
            <param name="externalBLOBs" value="false"/>
        </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"/>
            <!-- param name="textFilterClasses" value="org.apache.jackrabbit.extractor.PlainTextExtractor,org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/ -->
            <param name="tikaConfigPath" value="${wsp.home}/tika-config.xml"/>
            <param name="extractorPoolSize" value="2"/>
            <param name="supportHighlighting" value="true"/>
<!-- Advises lucene to use compound files for the index files. (default: true) -->
		<param name="useCompoundFile" value="true"/>
		<!--  Determines how often segment indices are merged. -->
		<param name="mergeFactor" value="8"/>
        </SearchIndex>

    </Workspace>


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

        <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">        
            <param name="driver" value="javax.naming.InitialContext" />
            <param name="url" value="jdbc/ldpdbDS"/>
            <param name="schemaObjectPrefix" value="node1_vsfs_"/>
            <param name="schema" value="db2"/>
        </FileSystem>

        <!--
            Configures the persistence 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.
        -->
    
        <!-- DB2 JNDI Datasource -->
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager">
            <param name="driver" value="javax.naming.InitialContext" />
            <param name="url" value="jdbc/ldpdbDS" />
            <param name="schema" value="db2"/>
            <param name="schemaObjectPrefix" value="version_"/>
            <param name="externalBLOBs" value="false"/>
        </PersistenceManager>

    </Versioning>
    
    <!--
    ******************************************************************
    Search index for content that is shared repository wide
        (/jcr:system tree, contains mainly versions)
    ******************************************************************
    -->
    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
        <param name="path" value="${rep.home}/repository/index"/>
        <!--  param name="textFilterClasses" value="org.apache.jackrabbit.extractor.PlainTextExtractor,org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/ -->
        <param name="tikaConfigPath" value="${rep.home}/tika-config.xml"/>
        <param name="extractorPoolSize" value="2"/>
        <param name="supportHighlighting" value="true"/>
<!-- Advises lucene to use compound files for the index files. (default: true) -->
		<param name="useCompoundFile" value="true"/>
		<!--  Determines how often segment indices are merged. -->
		<param name="mergeFactor" value="8"/>
    </SearchIndex>
    
    <!--
    Cluster configuration.
    -->
    <Cluster id="node1">
        <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
            <param name="driver" value="javax.naming.InitialContext" />
            <param name="url" value="jdbc/ldpdbDS"/>
            <param name="schemaObjectPrefix" value="journal_"/>
            <param name="schema" value="db2"/>
        </Journal>
    </Cluster>
    
</Repository>

