<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<!--
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.
-->

<web-app>
  <display-name>Open For Business - Work Manager</display-name>
  <description>Work Manager Module of the Open For Business Project</description>

  <context-param>
    <param-name>entityDelegatorName</param-name>
    <param-value>default</param-value>
    <description>The Name of the Entity Delegator to use, defined in entityengine.xml</description>
  </context-param>
  <context-param>
    <param-name>localDispatcherName</param-name>
    <param-value>workeffort</param-value>
    <description>A unique name used to identify/recognize the local dispatcher for the Service Engine</description>
  </context-param>
  <context-param>
    <param-name>scriptLocationPath</param-name>
    <param-value>/WEB-INF/bsh</param-value>
    <description>BeanShell Script Location</description>
  </context-param>
  <context-param>
      <param-name>mainDecoratorLocation</param-name>
      <param-value>component://workeffort/widget/CommonScreens.xml</param-value>
      <description>The location of the main-decorator screen to use for this webapp; referred to as a context variable in screen def XML files.</description>
  </context-param>

    <filter>
        <filter-name>ContextFilter</filter-name>
        <display-name>ContextFilter</display-name>
        <filter-class>org.ofbiz.webapp.control.ContextFilter</filter-class>
        <init-param>
            <param-name>disableContextSecurity</param-name>
            <param-value>N</param-value>
        </init-param>
        <init-param>
            <param-name>allowedPaths</param-name>
            <param-value>/error:/control:/select:/index.html:/index.jsp:/default.html:/default.jsp:/images:/includes/maincss.css</param-value>
        </init-param>
        <init-param>
            <param-name>errorCode</param-name>
            <param-value>403</param-value>
        </init-param>
        <init-param>
            <param-name>redirectPath</param-name>
            <param-value>/control/main</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>ContextFilter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>

  <listener><listener-class>org.ofbiz.webapp.control.ControlEventListener</listener-class></listener>
  <listener><listener-class>org.ofbiz.webapp.control.LoginEventListener</listener-class></listener>
  <!-- NOTE: not all app servers support mounting implementations of the HttpSessionActivationListener interface -->
  <!-- <listener><listener-class>org.ofbiz.webapp.control.ControlActivationEventListener</listener-class></listener> -->

  <servlet>
    <servlet-name>ControlServlet</servlet-name>
    <display-name>ControlServlet</display-name>
    <description>Main Control Servlet</description>
    <servlet-class>org.ofbiz.webapp.control.ControlServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>ControlServlet</servlet-name>
    <url-pattern>/control/*</url-pattern>
  </servlet-mapping>

  <session-config>
    <session-timeout>60</session-timeout>    <!-- in minutes -->
  </session-config>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
<!--
  <error-page>
    <error-code>403</error-code>
    <location>/error/error403.jsp</location>
  </error-page>
  <error-page>
    <error-code>404</error-code>
    <location>/error/error404.jsp</location>
  </error-page>
  <error-page>
    <error-code>410</error-code>
    <location>/error/error.jsp</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/error/error.jsp</location>
  </error-page>
-->

<!-- HTTP Response Code definitions:
| "400"   ; Bad Request
| "401"   ; Unauthorized
| "402"   ; Payment Required
| "403"   ; Forbidden
| "404"   ; Not Found
| "405"   ; Method Not Allowed
| "406"   ; Not Acceptable
| "407"   ; Proxy Authentication Required
| "408"   ; Request Time-out
| "409"   ; Conflict
| "410"   ; Gone
| "411"   ; Length Required
| "412"   ; Precondition Failed
| "413"   ; Request Entity Too Large
| "414"   ; Request-URI Too Large
| "415"   ; Unsupported Media Type
| "500"   ; Internal Server Error
| "501"   ; Not Implemented
| "502"   ; Bad Gateway
| "503"   ; Service Unavailable
| "504"   ; Gateway Time-out
| "505"   ; HTTP Version not supported
-->

<!--
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Entire Site</web-resource-name>
      <description>Entire Site</description>
      <url-pattern>/*</url-pattern>
    </web-resource-collection>
-->
    <!-- For enabling SSL, specify CONFIDENTIAL or INTEGRAL. -->
<!--
    <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
-->
</web-app>
