<!--

    Copyright (C) 2009 eXo Platform SAS.
    
    This is free software; you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as
    published by the Free Software Foundation; either version 2.1 of
    the License, or (at your option) any later version.
    
    This software is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    Lesser General Public License for more details.
    
    You should have received a copy of the GNU Lesser General Public
    License along with this software; if not, write to the Free
    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
    02110-1301 USA, or see the FSF site: http://www.fsf.org.

-->

<repository-service default-repository="repository">
  <repositories>
    <repository name="repository" system-workspace="system" default-workspace="portal-system">
      <security-domain>gatein-domain</security-domain>
      <access-control>optional</access-control>
      <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>

      <!-- System --> 
      <workspaces>
        <workspace name="system">
          <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
            <properties>
              <property name="source-name" value="jdbcexo${container.name.suffix}"/>
              <property name="dialect" value="hsqldb"/>
              <property name="multi-db" value="false"/>
              <property name="update-storage" value="true"/>
              <property name="max-buffer-size" value="204800"/>
              <property name="swap-directory" value="${gatein.jcr.data.dir}/system${container.name.suffix}"/>
            </properties>
            <value-storages>
              <value-storage id="system" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
                <properties>
                  <property name="path" value="${gatein.jcr.data.dir}/values/system${container.name.suffix}"/>
                </properties>
                <filters>
                  <filter property-type="Binary"/>
                </filters>
              </value-storage>
            </value-storages>
          </container>
          <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
            <properties>
              <property name="root-nodetype" value="nt:unstructured"/>
              <property name="root-permissions" value="*:/platform/administrators read;*:/platform/administrators add_node;*:/platform/administrators set_property;*:/platform/administrators remove"/>
            </properties>
          </initializer>
          <cache enabled="true">
            <properties>
              <property name="max-size" value="20000"/>
              <property name="live-time" value="30000"/>
            </properties>
          </cache>
          <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
            <properties>
              <property name="index-dir" value="${gatein.jcr.data.dir}/jcrlucenedb/system${container.name.suffix}"/>
            </properties>
          </query-handler>
          <lock-manager>
            <time-out>15m</time-out><!-- 15min -->
            <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
              <properties>
                <property name="path" value="${gatein.jcr.data.dir}/lock/system${container.name.suffix}"/>
              </properties>
            </persister>
           </lock-manager>
        </workspace>

        <!-- Groovy REST data -->
        <workspace name="groovy-rest">
          <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
            <properties>
              <property name="source-name" value="jdbcexo${container.name.suffix}"/>
              <property name="dialect" value="hsqldb"/>
              <property name="multi-db" value="false"/>
              <property name="update-storage" value="true"/>
              <property name="max-buffer-size" value="204800"/>
              <property name="swap-directory" value="${gatein.jcr.data.dir}/swap/groovy-rest${container.name.suffix}"/>
            </properties>
            <value-storages>
              <value-storage id="groovy-rest" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
                <properties>
                  <property name="path" value="${gatein.jcr.data.dir}/values/groovy-rest${container.name.suffix}"/>
                </properties>
                <filters>
                  <filter property-type="Binary"/>
                </filters>
              </value-storage>
            </value-storages>
          </container>
          <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
            <properties>
              <property name="root-nodetype" value="nt:unstructured"/>
              <property name="root-permissions" value="any read;*:/platform/administrators read;*:/platform/administrators add_node;*:/platform/administrators set_property;*:/platform/administrators remove"/>
            </properties>
          </initializer>
          <cache enabled="true">
            <properties>
              <property name="max-size" value="20000"/>
              <property name="live-time" value="30000"/>
            </properties>
          </cache>
          <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
            <properties>
              <property name="index-dir" value="${gatein.jcr.data.dir}/jcrlucenedb/groovy-rest${container.name.suffix}"/>
            </properties>
          </query-handler>
          <lock-manager>
            <time-out>15m</time-out><!-- 15min -->
            <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
              <properties>
                <property name="path" value="${gatein.jcr.data.dir}/lock/groovy-rest${container.name.suffix}"/>
              </properties>
            </persister>
          </lock-manager>
        </workspace>

        <!-- Portal system data -->
        <workspace name="portal-system">
          <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
            <properties>
              <property name="source-name" value="jdbcexo${container.name.suffix}"/>
              <property name="dialect" value="hsqldb"/>
              <property name="multi-db" value="false"/>
              <property name="update-storage" value="true"/>
              <property name="max-buffer-size" value="204800"/>
              <property name="swap-directory" value="${gatein.jcr.data.dir}/swap/portal-system${container.name.suffix}"/>
            </properties>
            <value-storages>
              <value-storage id="portal-system" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
                <properties>
                  <property name="path" value="${gatein.jcr.data.dir}/values/portal-system${container.name.suffix}"/>
                </properties>
                <filters>
                  <filter property-type="Binary"/>
                </filters>
              </value-storage>
            </value-storages>
          </container>
          <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
            <properties>
              <property name="root-nodetype" value="nt:unstructured"/>
              <property name="root-permissions" value="any read;*:/platform/administrators read;*:/platform/administrators add_node;*:/platform/administrators set_property;*:/platform/administrators remove"/>
            </properties>
          </initializer>
          <cache enabled="true">
            <properties>
              <property name="max-size" value="20000"/>
              <property name="live-time" value="30000"/>
            </properties>
          </cache>
          <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
            <properties>
              <property name="index-dir" value="${gatein.jcr.data.dir}/jcrlucenedb/portal-system${container.name.suffix}"/>
            </properties>
          </query-handler>
          <lock-manager>
            <time-out>15m</time-out><!-- 15min -->
            <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
              <properties>
                <property name="path" value="${gatein.jcr.data.dir}/lock/portal-system${container.name.suffix}"/>
              </properties>
            </persister>
          </lock-manager>
        </workspace>

        <!-- Portal work data -->
        <workspace name="portal-work">
          <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
            <properties>
              <property name="source-name" value="jdbcexo${container.name.suffix}"/>
              <property name="dialect" value="hsqldb"/>
              <property name="multi-db" value="false"/>
              <property name="update-storage" value="true"/>
              <property name="max-buffer-size" value="204800"/>
              <property name="swap-directory" value="${gatein.jcr.data.dir}/swap/portal-work${container.name.suffix}"/>
            </properties>
            <value-storages>
              <value-storage id="portal-work" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
                <properties>
                  <property name="path" value="${gatein.jcr.data.dir}/values/portal-work${container.name.suffix}"/>
                </properties>
                <filters>
                  <filter property-type="Binary"/>
                </filters>
              </value-storage>
            </value-storages>
          </container>
          <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
            <properties>
              <property name="root-nodetype" value="nt:unstructured"/>
              <property name="root-permissions" value="any read;*:/platform/administrators read;*:/platform/administrators add_node;*:/platform/administrators set_property;*:/platform/administrators remove"/>
            </properties>
          </initializer>
         <cache enabled="true">
          <properties>
            <property name="max-size" value="20000"/>
            <property name="live-time" value="30000"/>
          </properties>
         </cache>
         <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
          <properties>
            <property name="index-dir" value="${gatein.jcr.data.dir}/jcrlucenedb/portal-work${container.name.suffix}"/>
          </properties>
         </query-handler>
         <lock-manager>
          <time-out>15m</time-out><!-- 15min -->
           <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
             <properties>
               <property name="path" value="${gatein.jcr.data.dir}/lock/portal-work${container.name.suffix}"/>
             </properties>
           </persister>
         </lock-manager>
       </workspace>
       <!-- Workspace for WSRP -->
       <workspace name="wsrp-system">
         <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
           <properties>
             <property name="source-name" value="jdbcexo${container.name.suffix}"/>
               <property name="dialect" value="hsqldb"/>
               <property name="multi-db" value="false"/>
               <property name="update-storage" value="true"/>
               <property name="max-buffer-size" value="204800"/>
               <property name="swap-directory" value="${gatein.jcr.data.dir}/swap/wsrp${container.name.suffix}"/>
             </properties>
             <value-storages>
               <value-storage id="gadgets"
                  class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
                 <properties>
                   <property name="path" value="${gatein.jcr.data.dir}/values/wsrp${container.name.suffix}"/>
                 </properties>
                 <filters>
                    <filter property-type="Binary"/>
                 </filters>
               </value-storage>
             </value-storages>
           </container>
           <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
             <properties>
               <property name="root-nodetype" value="nt:unstructured"/>
                 <property name="root-permissions"
                       value="any read;*:/platform/administrators read;*:/platform/administrators add_node;*:/platform/administrators set_property;*:/platform/administrators remove"/>
             </properties>
           </initializer>
           <cache enabled="true">
             <properties>
               <property name="max-size" value="20000"/>
               <property name="live-time" value="30000"/>
             </properties>
           </cache>
           <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
             <properties>
               <property name="index-dir" value="${gatein.jcr.data.dir}/jcrlucenedb/wsrp${container.name.suffix}"/>
             </properties>
           </query-handler>
           <lock-manager>
             <time-out>15m</time-out>
             <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
               <properties>
                 <property name="path" value="${gatein.jcr.data.dir}/lock/wsrp${container.name.suffix}"/>
               </properties>
             </persister>
           </lock-manager>
         </workspace>

      </workspaces>
    </repository>
  </repositories>
</repository-service>

