<?xml version="1.0" encoding="ISO-8859-1"?>

<document>

  <properties>
        <author email="remm@apache.org">Remy Maucherat</author>
        <title>Slide Configuration</title>
    </properties>

  <body>
  
      <section name="Services / Stores">

        <p>
          Slide can store the data it manages in a broad array of repositories.
          Each repository is accessed through a module called a Service or a Store. Each
          of these services have widely different dependencies, and can need 
          a lot of extra setup steps. It is expected that services will be
          developed by Slide adopters to address their specific content
          management needs. For exemple, one company would want to access
          its website and NFS file server through Slide, so a NFS Service will
          be needed, along with a HTTP service.
        </p>
        
        <p>
          The scope of the Slide project is not to integrate every existing 
          repository in the universe (although there will be out-of-the-box 
          support for the most widely used ones), but to enable users to 
          easily write services which would enable access to them.
        </p>
        
        <p>
          Default services included with Slide are:
          <ul>
            <li>File system (default store)</li>
            <li><a href="howto-j2eestore.html">JDBC</a></li>
          </ul>
        </p>
        
      </section>

      <section name="WebDAV Server">
        
        <p>
          The WebDAV module is a Servlet and requires a properly configured 
          Servlet 2.3 container. It also requires JAXP, a JAXP compliant XML
          parser and JDOM.
        </p>
        
        <p>
          It is recommended that this servlet be loaded as a web application,
          as defined in the Servlet 2.2 specification.
        </p>
        
        <p>
          Parameters can be specified to configure the servlet. They
          are defined in the web application descriptor of the web application
          (WEB-INF/web.xml). See the Servlet API documentation for more details
          about web applications and the web.xml file. The parameters are:
          <ul>
            <li><b>domain:</b> Path in the web application where the domain 
              configuration file is. Defaults to "/Domain.xml".</li>
            <li><b>namespace:</b> Name of the namespace which will be accessed 
              in the Slide domain. Defaults to the default namespace.</li>
            <li><b>scope:</b> The scope of the Slide namespace that should be 
              exposed by this servlet. For example, if you want to expose only 
              the /files collection via WebDAV, set this parameter to '/files'.
              In that case, any URLs of the form '/context-path/servlet-path/*'
              will be mapped to '/files/*' in the Slide namespace. The default 
              value is an empty string, meaning that the entire namespace will 
              be exposed.</li>
            <li><b>depth-limit:</b> Determines the depth limit for PROPFIND and
              other methods, to avoid performance hits on the server for 
              requests with infinite depth.</li>
            <li><b>default-mime-type:</b> The MIME type that should be used for
              resources of unknown type. For example, if a WebDAV client 
              uploads a file (via PUT) without specifying the Content-Type 
              header, the MIME type defined here will be used. Defaults to 
              'application/octet-stream'.</li>
            <li><b>default-servlet:</b> By default, the WebDAV servlet is 
              mapped as default servlet of the web application context (the 
              url-pattern in servlet-mapping is '/'). If you want to change 
              that mapping so the servlet is no longer the default servlet, you
              must change this initialization parameter to indicate the 
              situation to the servlet, by setting it to 'false'. The default 
              value is 'true'.</li>
          </ul>
        </p>
        
      </section>

      <section name="The Domain configuration file">
        
        <p>
          Sample configuration file : 
          <a href="samples/Domain.sample">click here</a>.
        </p>
        
        <p>
          Slide needs a configuration file to initialize the Domain. This configuration file defines
          the namespaces which are part of this domain, the services associated
          with them, and the namespaces data configuration. This file uses the
          XML language for its syntax. 
        </p>

    <p>
      A domain is an aggregation of one or more namespaces. If we use the 
      UNIX filesystem analogy, a domain represents the root ("/") anchor where
      filesystems (in this case, namespaces) are mounted.
    </p>
    
    <p>
      The domain controls access to its registered namespaces and performs 
      initialization and connection management on behalf of the namespaces.
    </p>
    
    <p>
      When Slide is first initialized, the Domain configuration is loaded. 
      Once again, if you are familiar with UNIX, the domain configuration file
      is the equivalent of the <tt>fstab</tt> file.  The path to the domain 
      configuration file is given through the <tt>org.apache.slide.domain</tt>
      property in your <tt>slide.properties</tt> file (which must be located 
      somewhere in your <tt>CLASSPATH</tt>).
    </p>

    <p>
      The domain configuration is written by an administrator and tells how 
      to initialize each Namespace. The namespace initialization includes 
      information like:
      
    <ul>
      <li>The low-level services the namespace uses (structure store, content 
        store ...).</li>
      <li>The namespace base topology, which includes the location of the base
        actions and paths in the namespace.</li>
    </ul>
  </p>
    
      </section>

  </body>
</document>
