<?xml version="1.0" encoding="UTF-8"?>

<!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>Jackrabbit JCR Server</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>
        <description>
            This servlet provides other servlets and jsps a common way to access
            the repository. The repository can be accessed via JNDI, RMI or Webdav.
        </description>
        <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> -->

        <init-param>
            <param-name>repository-name</param-name>
            <param-value>java:/jca/DocumentStore</param-value>
            <description>Repository Name that is used to retrieve it via JNDI</description>
        </init-param>

        <init-param>
            <param-name>java.naming.provider.url</param-name>
            <param-value>jnp://localhost:1099</param-value>
        </init-param>

        <init-param>
            <param-name>java.naming.factory.initial</param-name>
            <!-- BAD ONE: UNCOMMENT: <param-value>org.jnp.interfaces.NamingContextFactory</param-value> -->
            <!-- <param-value>org.apache.jackrabbit.jca.JCAManagedConnectionFactory</param-value> -->
            <param-value>org.jboss.as.naming.InitialContextFactory</param-value>
        </init-param> 

       <!-- <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 suiteable 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 has a 'user:password' value, the respective
                   simple credentials are generated.
            </description>
        </init-param>-->

        <!--
            JNDI environment variables for creating the initial context
            (all init parameters starting with java.naming.* will be added to the initial context environment).

        <init-param>
            <param-name>java.naming.provider.url</param-name>
            <param-value>http://www.apache.org/jackrabbit</param-value>
        </init-param>
        <init-param>
            <param-name>java.naming.factory.initial</param-name>
            <param-value>org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory</param-value>
        </init-param>
        -->
        <!--
            RMI url, if RMI remoting is needed
        -->
        
        <!--<init-param>
            <param-name>rmi-uri</param-name>
            <param-value>///jackrabbit.repository</param-value>
            <description>The URI for the RMI connection.</description>
        </init-param>-->
        

        <load-on-startup>3</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>
	<!-- <servlet-class>org.apache.jackrabbit.j2ee.JcrRemotingServlet</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>
        <!--
            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>
        -->
        <!--
            Parameter used to configure behaviour of webdav resources such as:
            - destinction between collections and non-collections
            - resource filtering
        -->
        <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>
        <load-on-startup>4</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 webdav servlet that connects HTTP request to the repository.
        </description>
             <servlet-class>org.apache.jackrabbit.j2ee.JCRWebdavServerServlet</servlet-class>
             <!-- <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>        

        <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>
</web-app>
