<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
  -->

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
    <display-name>Apache Jackrabbit</display-name>

    <!-- ====================================================================== -->
    <!-- R E P O S I T O R Y   S E R V L E T                                    -->
    <!-- ====================================================================== -->
    <servlet>
        <servlet-name>Repository</servlet-name>
        <servlet-class>org.apache.jackrabbit.j2ee.RepositoryAccessServlet</servlet-class>

        <init-param>
          <param-name>repository.context.attribute.name</param-name>
          <param-value>javax.jcr.Repository</param-value>
        </init-param>

        <load-on-startup>2</load-on-startup>
    </servlet>

    <!-- ====================================================================== -->
    <!-- W E B D A V  S E R V L E T                                              -->
    <!-- ====================================================================== -->
    <servlet>
        <servlet-name>Webdav</servlet-name>
        <description>
            The webdav servlet that connects HTTP request to the repository.
        </description>
        <servlet-class>org.apache.jackrabbit.j2ee.SimpleWebdavServlet</servlet-class>
        <init-param>
            <param-name>resource-path-prefix</param-name>
            <param-value>/repository</param-value>
            <description>
                defines the prefix for spooling resources out of the repository.
            </description>
        </init-param>
        <init-param>
            <param-name>resource-config</param-name>
            <param-value>/WEB-INF/config.xml</param-value>
            <description>
                Defines various dav-resource configuration parameters.
            </description>
        </init-param>
        <!--
            Optional parameter to define the behaviour of the referrer-based CSRF protection
        -->
        <!--
        <init-param>
            <param-name>csrf-protection</param-name>
            <param-value>host1.domain.com,host2.domain.org</param-value>
            <description>
                Defines the behaviour of the referrer based CSRF protection
                1) If omitted or left empty the (default) behaviour is to allow only requests with
                   an empty referrer header or a referrer host equal to the server host
                2) May also contain a comma separated list of additional allowed referrer hosts
                3) If set to 'disabled' no referrer checking will be performed at all
            </description>
        </init-param>
        -->
        <load-on-startup>3</load-on-startup>
    </servlet>

    <!-- ====================================================================== -->
    <!-- W E B D A V  S E R V E R  S E R V L E T                                  -->
    <!-- ====================================================================== -->
    <servlet>
        <servlet-name>JCRWebdavServer</servlet-name>
        <description>
            The servlet used to remote JCR calls over HTTP.
        </description>
        <servlet-class>org.apache.jackrabbit.j2ee.JcrRemotingServlet</servlet-class>
        <init-param>
            <param-name>missing-auth-mapping</param-name>
            <param-value></param-value>
            <description>
                Defines how a missing authorization header should be handled.
                1) If this init-param is missing, a 401 response is generated.
                   This is suitable for clients (eg. WebDAV clients) for which
                   sending a proper authorization header is not possible if the
                   server never sent a 401.
                2) If this init-param is present with an empty value,
                   null-credentials are returned, thus forcing an null login
                   on the repository.
                3) If this init-param is present with the value 'guestcredentials'
                   java.jcr.GuestCredentials are used to login to the repository.
                4) If this init-param has a 'user:password' value, the respective
                   simple credentials are generated.
            </description>
        </init-param>
        <!--
            Optional parameter to define the value of the 'WWW-Authenticate' header
        -->
        <!--
        <init-param>
            <param-name>authenticate-header</param-name>
            <param-value>Basic realm="Jackrabbit Webdav Server"</param-value>
            <description>
                Defines the value of the 'WWW-Authenticate' header.
            </description>
        </init-param>
        -->
        <init-param>
            <param-name>resource-path-prefix</param-name>
            <param-value>/server</param-value>
            <description>
                defines the prefix for spooling resources out of the repository.
            </description>
        </init-param>
        <!--
            Init parameters specific for JcrRemotingServlet
        -->
        <!--
        <init-param>
            <param-name>home</param-name>
            <param-value></param-value>
            <description>JcrRemotingServlet: Optional home directory for JcrRemotingServlet temporary files (default: "jackrabbit")</description>
        </init-param>
        <init-param>
            <param-name>temp-directory</param-name>
            <param-value></param-value>
            <description>JcrRemotingServlet: Optional temporary directory name (under home, default: "tmp")</description>
        </init-param>
        <init-param>
            <param-name>batchread-config</param-name>
            <param-value>/WEB-INF/batchread.properties</param-value>
            <description>JcrRemotingServlet: Optional mapping from node type names to default depth.</description>
        </init-param>
        <init-param>
        	<param-name>concurrency-level</param-name>
        	<param-value>50</param-value>
        	<description>Number of concurrent requests expected. Default value is 50.</description>
        </init-param>
        -->
        <!--
            Optional parameter to define the behaviour of the referrer-based CSRF protection
        -->
        <!--
        <init-param>
            <param-name>csrf-protection</param-name>
            <param-value>host1.domain.com,host2.domain.org</param-value>
            <description>
                Defines the behaviour of the referrer based CSRF protection
                1) If omitted or left empty the (default) behaviour is to allow only requests with
                   an empty referrer header or a referrer host equal to the server host
                2) May also contain a comma separated list of additional allowed referrer hosts
                3) If set to 'disabled' no referrer checking will be performed at all
            </description>
        </init-param>
        -->
        <load-on-startup>5</load-on-startup>
    </servlet>

    <!-- ====================================================================== -->
    <!-- R M I   B I N D I N G   S E R V L E T                                  -->
    <!-- ====================================================================== -->
    <servlet>
      <servlet-name>RMI</servlet-name>
      <servlet-class>org.apache.jackrabbit.servlet.remote.RemoteBindingServlet</servlet-class>
    </servlet>

    <!-- ====================================================================== -->
    <!-- S E R V L E T   M A P P I N G                                          -->
    <!-- ====================================================================== -->
    <servlet-mapping>
        <servlet-name>Webdav</servlet-name>
        <url-pattern>/repository/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>JCRWebdavServer</servlet-name>
        <url-pattern>/server/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>RMI</servlet-name>
        <url-pattern>/rmi</url-pattern>
    </servlet-mapping>

    <!-- ====================================================================== -->
    <!-- W E L C O M E   F I L E S                                              -->
    <!-- ====================================================================== -->
    <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <error-page>
        <exception-type>org.apache.jackrabbit.j2ee.JcrApiNotFoundException</exception-type>
        <location>/error/classpath.jsp</location>
    </error-page>
    <error-page>
        <exception-type>javax.jcr.RepositoryException</exception-type>
        <location>/error/repository.jsp</location>
    </error-page>

</web-app>
