<?xml version="1.0"?>
<!--
    The contents of this file are subject to the Mozilla Public License Version 1.1
    (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.mozilla.org/MPL/>.

    Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
    WARRANTY OF ANY KIND, either express or implied. See the License for the specific
    language governing rights and limitations under the License.

    The Original Code is the Venice Web Communities System.

    The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
    for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
    Copyright (C) 2002-03 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.

    Contributor(s): 
-->
<!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>Venice Web Communities System</display-name>
  <description>
    Venice Web Communities System (TODO: fill out description)
  </description>

  <!-- Context parameters -->

  <context-param>
    <param-name>logging.config</param-name>
    <param-value>WEB-INF/logging.xml</param-value>
    <description>
      The path and file name of the Log4J logger configuration file, relative to the application root.
    </description>
  </context-param>

  <context-param>
    <param-name>dynamo.config</param-name>
    <param-value>WEB-INF/dynamo.xml</param-value>
    <description>
      The path and file name of the base Dynamo configuration file, relative to the application root.
      The default, if not specified, is "WEB-INF/dynamo.xml".
    </description>
  </context-param>

  <!-- Servlet definitions -->

  <servlet>
    <servlet-name>ScriptExec</servlet-name>
    <description>Executes a scripting file as a servlet.</description>
    <servlet-class>com.silverwrist.dynamo.servlet.ScriptExecServlet</servlet-class>
    <init-param>
      <param-name>remove.extension</param-name>
      <param-value>vs</param-value>
      <description>
	The extension which is used in the servlet mapping to distinguish scripts to execute.  This
	extension is removed from the servlet path to create the script name.
      </description>
    </init-param>
    <init-param>
      <param-name>script.prefix</param-name>
      <param-value>/scripts</param-value>
      <description>
	The resource prefix to use for scripts.  This is prepended to the servlet path to create the
	script name which is executed.
      </description>
    </init-param>
  </servlet>

  <servlet>
    <servlet-name>XmlRpc</servlet-name>
    <description>Executes XML-RPC requests.</description>
    <servlet-class>com.silverwrist.dynamo.xmlrpc.XmlRpcServlet</servlet-class>
    <init-param>
      <param-name>subsystem.object</param-name>
      <param-value>xmlrpc</param-value>
      <description>
	The object name of the XML-RPC subsystem object.  Must match the name configured for the
	com.silverwrist.dynamo.xmlrpc.XmlRpcSubSystem object in dynamo.xml.
      </description>
    </init-param>
  </servlet>

  <servlet>
    <servlet-name>Remapper</servlet-name>
    <description>Remaps URLs to other URLs programmatically.</description>
    <servlet-class>com.silverwrist.dynamo.servlet.RemapperServlet</servlet-class>
    <init-param>
      <param-name>data.object</param-name>
      <param-value>remapper</param-value>
      <description>
	The object name of the remapper data object.  Must match the name configured for the
	com.silverwrist.dynamo.servlet.RemapperData object in dynamo.xml.
      </description>
    </init-param>
  </servlet>

  <servlet>
    <servlet-name>Image</servlet-name>
    <description>Serves up images from the ImageStore.</description>
    <servlet-class>com.silverwrist.dynamo.servlet.ImageServlet</servlet-class>
    <init-param>
      <param-name>image.store</param-name>
      <param-value>images</param-value>
      <description>
	The object name of the image store object.  Must match the name configured for the
	com.silverwrist.dynamo.db.ImageStoreObject object in dynamo.xml.
      </description>
    </init-param>
  </servlet>

  <servlet>
    <servlet-name>StyleSheet</servlet-name>
    <description>Serves up CSS stylesheets for use by the frame.</description>
    <servlet-class>com.silverwrist.venice.frame.StyleSheetServlet</servlet-class>
  </servlet>

  <servlet>
    <servlet-name>Frame</servlet-name>
    <description>Frames static pages within the outer Venice frame.</description>
    <servlet-class>com.silverwrist.venice.servlet.FrameServlet</servlet-class>
    <init-param>
      <param-name>content.prefix</param-name>
      <param-value>static</param-value>
      <description>
        The prefix to apply to the static content path before retrieving it.  Interpreted
        relative to the Web application root (i.e. where Web content normally gets linked from).
      </description>
    </init-param>
    <init-param>
      <param-name>cache.hard.limit</param-name>
      <param-value>5</param-value>
      <description>
        Maximum number of documents that will be hard-cached by this servlet.  Must be at least 1.
      </description>
    </init-param>
    <init-param>
      <param-name>cache.soft.limit</param-name>
      <param-value>10</param-value>
      <description>
        Maximum number of documents that will be soft-cached by this servlet.  Will always be at least
        twice the number of hard-cached documents.
      </description>
    </init-param>
  </servlet>

  <servlet>
    <servlet-name>PasswordRecovery</servlet-name>
    <description>Used to access the password recovery feature; changes user passwords.</description>
    <servlet-class>com.silverwrist.venice.session.PasswordRecoveryServlet</servlet-class>
  </servlet>

  <servlet>
    <servlet-name>User</servlet-name>
    <description>Displays user profiles.</description>
    <servlet-class>com.silverwrist.venice.servlet.UserServlet</servlet-class>
  </servlet>

  <servlet>
    <servlet-name>Community</servlet-name>
    <description>Displays the community homepage.</description>
    <servlet-class>com.silverwrist.venice.servlet.CommunityServlet</servlet-class>
  </servlet>

  <!-- Servlet mappings -->

  <servlet-mapping>
    <servlet-name>ScriptExec</servlet-name>
    <url-pattern>*.vs</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>XmlRpc</servlet-name>
    <url-pattern>/RPC2</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>Remapper</servlet-name>
    <url-pattern>/verifyemail</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>Image</servlet-name>
    <url-pattern>/imagedata/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>StyleSheet</servlet-name>
    <url-pattern>/stylesheet-base.css</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>StyleSheet</servlet-name>
    <url-pattern>/stylesheet-advanced.css</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>Frame</servlet-name>
    <url-pattern>/frame/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>PasswordRecovery</servlet-name>
    <url-pattern>/passrecovery/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>User</servlet-name>
    <url-pattern>/user/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>Community</servlet-name>
    <url-pattern>/community/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>Community</servlet-name>
    <url-pattern>/sig/*</url-pattern>  <!-- the backwards-compatible mapping -->
  </servlet-mapping>

  <!-- Global parameters for the HTTP session -->
  <session-config>
    <session-timeout>60</session-timeout>    <!-- 1 hour -->
  </session-config>

  <!-- The list of "welcome files" for the application -->
  <welcome-file-list>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

</web-app>
